以下に本発明の実施例について、図面と共に説明する。
図1に示す本実施例の情報処理システム1は、ユーザから指定された形状モデルをメッシュ化する機能をプログラムにより実現するものである。情報処理システム1が受付可能な形状モデルは、複数の直方体ブロックに分割された形状モデルであり、情報処理システム1は、ユーザからの指示に従って、形状モデルの構成(形状)及び分割パターン及び各直方体ブロックに設定すべき節点の配置情報が記述されたモデルデータを外部から取得し、このモデルデータが表す形状モデルを構成する直方体ブロックの夫々を、隣接ブロックにおける節点及び結線のパターンが一致するように四面体要素によりメッシュ化する。
具体的に、情報処理システム1は、演算装置10と、記憶装置20と、ドライブ装置30と、LANインタフェース40と、ユーザインタフェース50とを備える。演算装置10は、各種プログラムを実行するCPU11及びCPU11によるプログラム実行時に作業領域として使用されるRAM13等から構成され、記憶装置20は、CPU11が実行する各種プログラムやプログラム実行時に使用される各種データを記憶する。この記憶装置20は、例えばハードディスク装置により構成される。
ドライブ装置30は、磁気ディスクや光ディスクに書き込まれたデータを読取可能且つ磁気ディスクや光ディスクに対してデータを書込可能な装置であり、LANインタフェース40は、LANに接続されたノードと通信可能なインタフェースである。
情報処理システム1は、例えばドライブ装置30を通じて、磁気ディスクや光ディスクに書き込まれた上記モデルデータを記憶装置20に読み込み、上記機能によりメッシュ化した直方体ブロックのデータを磁気ディスクや光ディスクに書き込む。この他、情報処理システム1は、LANインタフェース40を通じてLANに接続されたユーザ端末からメッシュ化する形状モデルについての上記モデルデータを取得し、上記機能によりメッシュ化した直方体ブロックのデータを、LANインタフェース40を通じてユーザ端末に提供する。
ユーザインタフェース50は、キーボードやポインティングデバイス等から構成され、情報処理システム1は、このユーザインタフェース50を通じて入力されるユーザからの指示に従って、外部から上記モデルデータを読み込み、このモデルデータに基づいて、形状モデルを構成する直方体ブロック群をメッシュ化し、メッシュ化後の直方体ブロック群のデータを、記憶装置20に書き込む。また、必要に応じて、このデータを、ユーザインタフェース50を通じてユーザから指定された出力先(磁気又は光ディスクやユーザ端末等)に出力する。
この点について詳述すると、情報処理システム1が備える演算装置10は、ユーザインタフェース50を通じてメッシュ化の指示が入力されると、記憶装置20に記憶されたプログラムに従って、図2に示すメッシュモデル生成処理を実行することで、形状モデルを直方体ブロック毎にメッシュ化する上記機能を実現する。
メッシュモデル生成処理を開始すると、演算装置10は、ユーザインタフェース50を通じてモデルデータの指定操作を受け付けて、指定されたモデルデータを読み込む。これによって、モデルデータが示す形状モデルをメッシュ化対象に設定する(S110)。
その後、メッシュ化対象の形状モデルを構成する直方体ブロックの一つであって、メッシュ化の完了していない直方体ブロックの一つを処理対象ブロックに選択する(S120)。図3は、直方体ブロックに分割された形状モデルの概念図である。モデルデータには、形状モデルの分割パターンが規定されており、演算装置10は、このモデルデータに基づき、形状モデルを構成する複数の直方体ブロック群のサイズや座標を特定し、形状モデルを構成する直方体ブロックの一つを処理対象ブロックに選択する。
処理対象ブロックを選択してS130に移行すると、演算装置10は、処理対象ブロックに隣接する直方体ブロックである隣接ブロック群に、メッシュ化の完了した隣接ブロックが存在するか否かを判断する。そして、メッシュ化の完了した隣接ブロックが存在しない場合には(S130でNo)、S140に移行し、メッシュ化の完了した隣接ブロックが存在する場合には(S130でYes)、S150に移行する。
S140に移行すると、演算装置10は、従来手法と同様に、処理対象ブロック全体を包囲する直方体形状のスーパーボックスを生成し、処理対象ブロックに設定すべき節点の夫々をスーパーボックス内に設定して、当該スーパーボックスをDelaunay法に基づき四面体要素でメッシュ化する。これによって処理対象ブロックのメッシュ化を行う。具体的には、処理対象ブロックの外形を構成する8つの各角に節点を設定すると共に、モデルデータに記された処理対象ブロックに設定すべき各節点を設定して、Delaunay法に基づきスーパーボックスを四面体要素によりメッシュ化する。これによって処理対象ブロックに設定すべき節点の全てを導入して当該処理対象ブロックをメッシュ化する。
その後、演算装置10は、S145に移行し、スーバーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込む。S140に移行する場合には拘束面が存在しないため、S140及びS145では、このようにして従来と同手法によって、処理対象ブロックを自動で四面体要素によりメッシュ化し、これを保存する。
その後、S120に移行し、形状モデルを構成する直方体ブロックであって、メッシュ化の完了していない直方体ブロックの一つを次の処理対象ブロックに設定し、S130以降の処理を実行する。
一方、S150に移行すると、演算装置10は、メッシュ化の完了した隣接ブロックと接触する処理対象ブロックの面である拘束面の夫々に隣接ブロックの接触面と同一パターンの節点及び結線を設定する。図3に示すように、処理対象ブロックBの面がメッシュ化の完了した隣接ブロックAの面と接触する場合には、図4に示すように、隣接ブロックAの接触面と同一パターンの節点及び結線を処理対象ブロックBの対応する面に設定する。
その後、演算装置10は、S161に移行し、処理対象ブロックにおける拘束面の配置に基づき、処理対象ブロックが第一分類の処理対象ブロックであるか否かを判断する。ここでは、処理対象ブロックが図5に示すように拘束面を一面のみ有するものである場合、第一分類の処理対象ブロックであると判断し(S161でYes)、S171に移行する。一方、それ以外の場合には否定判断して(S161でNo)、S162に移行する。
S171に移行すると、演算装置10は、図6に示す第一分類メッシュ化処理を実行する。第一分類メッシュ化処理では、図7左上図に示すように、唯一存在する拘束面P13−P12−P15−P18と対向する処理対象ブロックの面P14−P17−P16−P11の四つ角の一つに設けられた節点P11を頂点とし、拘束面P13−P12−P15−P18に形成された三角形状の各メッシュ要素を底面とする四面体要素(三角錐)によって処理対象ブロックを分割する(S210)。
更に、図7右上図に示すように、節点P11と、節点P11の対角に位置する処理対象ブロックの角に設けられた節点P12と、拘束面P13−P12−P15−P18における節点P12を一端に有する第一の辺P13−P12の節点P12とは反対側の端点に設けられた節点P13とを、結ぶ三角形P11−P12−P13の面に形成された三角形状の各メッシュ要素を底面とし、拘束面P13−P12−P15−P18における節点P12を一端に有する第二の辺P12−P15の節点P12とは反対側の端点(節点P15)の対角に位置する処理対象ブロックの角に設けられた節点P14を頂点とする四面体要素により処理対象ブロックを分割する(S220)。
また、図7右下図に示すように、節点P11と、節点P12と、節点P14の対角に位置する処理対象ブロックの角に設けられた節点P15と、を結ぶ三角形P11−P12−P15の面上に設けられた三角形状の各メッシュ要素と底面とし、節点P13の対角に位置する処理対象ブロックの角に設けられた節点P16を頂点とする四面体要素により処理対象ブロックを分割する(S230)。更に、図7左下図に示すように、処理対象ブロックにおいて四面体要素に分割されていない四角錐P11−P16−P17−P14−P12の領域を、P11−P17−P12を境界面として二分割して四面体要素に分割する(S240)。このようにして、ここでは第一分類の処理対象ブロックを簡易に四面体要素でメッシュ化する。
この後、演算装置10は、S250に移行し、図8に示すように処理対象ブロックにおける拘束面P13−P12−P15−P18以外の面である非拘束面(面P14−P17−P12−P13、面P11−P16−P17−P14、面P11−P16−P15−P18、面P11−P14−P13−P18及び面P16−P17−P12−P15)の夫々に、この非拘束面との接触面が非拘束面と同サイズの直方体Q1を付加する。以下、これを第一被覆体Q1とも表現する。第一被覆体Q1は各角に節点を有する。
また、付加前又は後には、第一被覆体Q1の各角に設けられた節点間を結んで、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。具体的には、第一被覆体Q1を、処理対象ブロックの非拘束面に形成された各三角形状のメッシュ要素を底面に有する三角柱の一群に分割し、三角柱の夫々を、三つの四面体要素に分割することによって、第一被覆体Q1を四面体要素でメッシュ化する。
S250の処理後、演算装置10は、S260に移行し、互いに直交する非拘束面のペアが共有する処理対象ブロックの各辺(辺P13−P14、辺P17−P12、辺P18−P11、辺P16−P15、辺P14−P11、辺P17−P16、辺P14−P17、及び辺P11−P16の各辺)に沿って、ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する直方体Q2であって第一被覆体Q1との接触面が第一被覆体Q1の面と同サイズの直方体Q2を付加する。以下、この直方体Q2を第二被覆体Q2とも表現する。第二被覆体Q2は各角に節点を有する。また、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。
具体的には、第二被覆体Q2における第一被覆体Q1に接触する二つの面の内、一方の面に接触する第一被覆体Q1の当該接触面においてS250でのメッシュ化により形成された三角形状の各メッシュ要素を基準に、第二被覆体Q2を、当該各メッシュ要素を底面に有する三角柱の一群に分割し、これら三角柱の夫々を、他方の面に接触する第一被覆体Q1の当該接触面の結線パターンに合わせて、三つの四面体要素で分割することにより、第二被覆体Q2を六つの四面体要素でメッシュ化する。
S260での処理後、演算装置10は、S270に移行し、図8に示すように、拘束面P13−P12−P15−P18に接しない節点P11,P14,P16,P17が設定された角の夫々に、角の周囲に付加される第二被覆体Q2の表面に接触する直方体Q3であって第二被覆体Q2との接触面が第二被覆体Q2の面と同サイズの直方体Q3を付加する。以下、この直方体を第三被覆体Q3とも表現する。また、付加前又は後には、各角に節点を有する第三被覆体Q3を、第二被覆体Q2との接触面において第二被覆体Q2と節点及び結線が一致するように四面体要素でメッシュ化する。
具体的には、第三被覆体Q3における第二被覆体Q2に接触する三つの面(即ち、第一、第二及び第三の面)の内、第一の面に接触する第二被覆体Q2の当該接触面においてS260でのメッシュ化により形成された三角形状の各メッシュ要素を基準に、第三被覆体Q3を、当該各メッシュ要素を底面に有する三角柱の一群に分割し、これら三角柱の夫々を、第二及び第三の面に接触する第二被覆体Q2の当該接触面の結線パターンに合わせて、三つの四面体要素により分割することにより、第三被覆体Q3を六つの四面体要素でメッシュ化する。
このようにして、本実施例では、処理対象ブロックにおける拘束面P13−P12−P15−P18以外の外周に第一〜第三被覆体Q1,Q2,Q3を付加して、処理対象ブロックと第一〜第三被覆体Q1,Q2,Q3とからなる直方体形状のスーパーボックスを生成する。図9(a)は、図8に示す処理対象ブロック及び第一〜第三被覆体Q1,Q2,Q3からなるスーパーボックスを、方角Daから見た斜視図であり、図9(b)は、同スーパーボックスを、方角Dbから見た斜視図である。
S270の処理後、演算装置10は、S280に移行し、スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべきブロック内部及び非拘束面上の未設定の節点を、例えば図10に示すように設定し、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。
その後、S290に移行し、S280で全ての節点を導入して四面体要素でメッシュ化したスーパーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込み、第一分類メッシュ化処理を終了する。また、演算装置10は、S171で第一分類メッシュ化処理を終了すると、S190(図2参照)に移行する。図11(a)は、図9に示すスーパーボックスをDelaunay法に基づき四面体要素でメッシュ化した後に当該スーパーボックスから抽出した処理対象ブロックの構成を表す図であり、図11(b)は、処理対象ブロック抽出後のスーパーボックスの構成を表す図である。
S190に移行すると、演算装置10は、形状モデルを構成する全ての直方体ブロックのメッシュ化が完了したか否かを判断し、完了していない場合には(S190でNo)、S120に移行して、メッシュ化の完了してない直方体ブロックの一つを次の処理対象ブロックに選択し、S130以降の処理を実行する。
一方、S161で処理対象ブロックが第一分類の処理対象ブロックではないと判断してS162に移行すると、演算装置10は、処理対象ブロックが第二分類の処理対象ブロックであるか否かを判断する。ここでは、処理対象ブロックが図12に示すように一辺(辺P26−P22)を共有する位置関係にある計二つの拘束面(面P27−P23−P22−P26及び面P28−P24−P22−P26)を有するものである場合、当該処理対象ブロックが第二分類の処理対象ブロックであると判断し(S162でYes)、それ以外の場合には否定判断する(S162でNo)。そして、肯定判断した場合にはS172に移行し、否定判断した場合にはS163に移行する。
S172に移行すると、演算装置10は、図13に示す第二分類メッシュ化処理を実行する。第二分類メッシュ化処理では、図14上図に示すように、二つの拘束面(面P27−P23−P22−P26及び面P28−P24−P22−P26)が共有する辺P22−P26の端点のいずれか一方と対角関係にある処理対象ブロックの角に設けられた節点P21を頂点とし、二つの拘束面の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S310)。但し、図14左上図では、拘束面P27−P23−P22−P26における節点及び結線の図示を省略する。
その後、節点P21と、節点P21と対角関係にある処理対象ブロックの角に設けられた節点P22と、節点P22を一端とする辺であって二つの拘束面が共有する辺P22−P26とは直交関係にある拘束面の夫々の辺P22−P23及び辺P22−P24において節点P22とは反対側の端点に設けられた節点P23,P24と、を結ぶ三角形P21−P22−P23及び三角形P21−P22−P24の夫々の面に形成された三角形状の各メッシュ要素を底面とし、二つの拘束面が共有する辺P22−P26の端点であって節点P22とは反対側の端点とは対角に位置する処理対象ブロックの角に設けられた節点P25を頂点とする四面体要素により処理対象ブロックを分割する(S320)。このようにして、ここでは第二分類の処理対象ブロックを四面体要素で簡易にメッシュ化する。
この後には、S350に移行し、S250の処理と同様、処理対象ブロックにおける非拘束面(面P21−P25−P23−P27、面P21−P25−P24−P28、面P21−P27−P26−P28及び面P25−P23−P22−P24)の夫々に、第一被覆体Q1を付加する(図15参照)。また、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。
S350の処理後、演算装置10は、S360に移行し、S260の処理と同様、互いに直交する非拘束面のペアが共有する処理対象ブロックの各辺(辺P21−P27、辺P21−P28、辺P21−P25、辺P23−P25及び辺P24−P25の各辺)に沿って、ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する第二被覆体Q2を付加する。また、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。
S360での処理後、演算装置10は、S370に移行し、S270の処理と同様、図8に示すように、二つの拘束面(面P27−P23−P22−P26及び面P28−P24−P22−P26)のいずれにも接しない節点P21,P25が設定された角の夫々に、角の周囲に付加される第二被覆体Q2の表面に接触する第三被覆体Q3を付加する。また、付加前又は後には、第三被覆体Q3を、第二被覆体Q2との接触面において第二被覆体Q2と節点及び結線が一致するように、四面体要素でメッシュ化する。
このようにして、処理対象ブロックが第二分類の処理対象ブロックである場合には、二つの拘束面(面P27−P23−P22−P26及び面P28−P24−P22−P26)以外の周囲に第一〜第三被覆体Q1,Q2,Q3を付加して、処理対象ブロックと第一〜第三被覆体Q1,Q2,Q3とからなる直方体形状のスーパーボックスを生成する。図15(a)(b)は、図12に示す処理対象ブロックに対して形成するスーパーボックスの構成を表す斜視図であり、夫々異なる方角から見たスーパーボックスの斜視図である。
S370での処理後、演算装置10は、S380に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。
その後、演算装置10は、S390に移行し、S380の処理でメッシュ化したスーパーボックスから処理対象ブロックを抽出して、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第二分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。図16(a)は、図15に示すスーパーボックスをDelaunay法に基づき四面体要素でメッシュ化した後、スーパーボックスから抽出した処理対象ブロックの構成を表す図であり、図16(b)は、処理対象ブロック抽出後のスーパーボックスの構成を表す図である。
この他、S162で処理対象ブロックが第二分類の処理対象ブロックではないと判断してS163に移行すると、演算装置10は、処理対象ブロックが第三分類の処理対象ブロックであるか否かを判断する(S163)。ここでは、処理対象ブロックが、図17に示すような互いに平行な計二つの拘束面を有するものである場合、第三分類の処理対象ブロックであると判断し(S163でYes)、それ以外の場合には否定判断する(S163でNo)。そして、肯定判断した場合にはS173に移行し、否定判断した場合にはS164に移行する。
S173に移行すると、演算装置10は、図18に示す第三分類メッシュ化処理を実行する。第三分類メッシュ化処理では、図19左図に示すように、二つの拘束面(面P33−P34−P38−P37及び面P36−P35−P39−P30)に挟まれた処理対象ブロックの表面を除く内部領域における一点(中央領域)に節点P31を設定する(S410)。ここでは、モデルデータが示す処理対象ブロックに設定すべき節点群から適当な節点を一つ選択し、これを節点P31として先行設定する。そして、節点P31を頂点とし拘束面の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S415)。
更に、処理対象ブロックが有する4つの非拘束面(第一〜第四の非拘束面)の内、第一の非拘束面P36−P33−P34−P35の四辺より内側の一点に、図19右図に示すように節点P321を設定する(S420)。即ち、モデルデータが示す処理対象ブロックに設定すべき節点群から適当な節点を一つ選択し、これを節点P321として先行設定する。以下、特定領域に節点を設定する動作は、特に言及しなくても、S410,S420での処理と同様、モデルデータから条件に合致する節点を選択して、これを設定する動作であるものとする。
そして、この節点P321と、第一の非拘束面の拘束面と共有する辺P33−P34及び辺P35−P36上に設定された各節点とを結んで、第一の非拘束面上に三角形状の各メッシュ要素を形成する(S421)。更に、処理対象ブロックを、この各メッシュ要素を底面とし節点P31を頂点とする四面体要素により分割する(S423)。
同様に、第二の非拘束面P37−P38−P39−P30の四辺より内側の一点(中央領域)に節点P322を図20左上図に示すように設定し(S425)、節点P322と、第二の非拘束面の拘束面と共有する辺P37−P38及び辺P39−P30上に設定された各節点とを結んで、第二の非拘束面上に三角形状の各メッシュ要素を形成し(S426)、処理対象ブロックを、この各メッシュ要素を底面とし、節点P31を頂点とする四面体要素により分割する(S427)。
更に、第三の非拘束面P36−P30−P37−P33の四辺より内側の一点(中央領域)に節点P323を図20右上図に示すように設定し(S430)、節点P323と、第三の非拘束面の拘束面と共有する辺P36−P30及び辺P37−P33上に設定された各節点とを結んで、第三の非拘束面上に三角形状の各メッシュ要素を形成し(S431)、処理対象ブロックを、この各メッシュ要素を底面とし、節点P31を頂点とする四面体要素により分割する(S433)。
また、第四の非拘束面P34−P38−P39−P35の四辺より内側の一点(中央領域)に節点P324を図20の右下図に示すように設定し(S435)、節点P324と、第四の非拘束面の拘束面と共有する辺P34−P38及び辺P39−P35上に設定された各節点とを結んで、第四の非拘束面上に三角形状の各メッシュ要素を形成し(S436)、処理対象ブロックを、この各メッシュ要素を底面とし、節点P31を頂点とする四面体要素により分割する(S437)。このようにして、処理対象ブロックを四面体要素により簡易にメッシュ化する。
この後、演算装置10は、S450に移行して、処理対象ブロックにおける非拘束面(面P36−P33−P34−P35、面P36−P30−P37−P33、面P30−P37−P38−P39及び面P34−P38−P39−P35)の夫々に、S250での処理と同様、第一被覆体Q1を付加し(図21参照)、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。但し、第三分類メッシュ化処理では、非拘束面において節点P321,P322,P323,P324を導入しているため、第一被覆体Q1には、角以外に節点P321,P322,P323,P324に対応する節点を設定した後、S250の処理と同思想にて、第一被覆体Q1をメッシュ化する。
S450の処理後、演算装置10は、S460に移行し、互いに直交する非拘束面のペアが共有する処理対象ブロックの各辺(辺P33−P36、辺P37−P30、辺P39−P38及び辺P35−P34の各辺)に沿って、ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する第二被覆体Q2をS260の処理と同様に付加し、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。処理対象ブロックが第三分類の処理対象ブロックである場合には、このようにして処理対象ブロックと第一〜第二被覆体Q1,Q2とからなる直方体形状のスーパーボックスを生成する。図21(a)(b)は、図20に示す処理対象ブロックに対して形成するスーパーボックスの構成を表す斜視図であり、夫々異なる方角から見たスーパーボックスの斜視図である。
S460での処理後、演算装置10は、S480に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。
その後、演算装置10は、S490に移行し、S480でメッシュ化したスーパーボックスから処理対象ブロックを抽出して、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第三分類メッシュ化処理を終了する。その後、S190に移行する。尚、図22(a)は、図21に示すスーパーボックスをDelaunay法に基づきメッシュ化した後に当該スーパーボックスから抽出した処理対象ブロックの構成を表す図であり、図22(b)は、処理対象ブロック抽出後のスーパーボックスの構成を表す図である。
この他、S163で処理対象ブロックが第三分類の処理対象ブロックではないと判断してS164に移行すると、演算装置10は、処理対象ブロックが第四分類の処理対象ブロックであるか否かを判断する(S164)。ここでは、処理対象ブロックが、図23に示すような第一の拘束面(面P42−P46−P47−P43)が有する直交する二辺(辺P46−P47及び辺P47−P43)の夫々に接続された第二及び第三の拘束面(面P43−P47−P48−P44及び面P48−P45−P46−P47)を有する計三つの拘束面を有するものである場合、当該処理対象ブロックが第四分類の処理対象ブロックであると判断し(S164でYes)、それ以外の場合には否定判断する(S164でNo)。そして、肯定判断した場合にはS174に移行し、否定判断した場合にはS165に移行する。
S174に移行すると、演算装置10は、図24に示す第四分類メッシュ化処理を実行する。第四分類メッシュ化処理では、図25に示すように計三つの拘束面のいずれとも接しない処理対象ブロックの角に設定された節点P41を頂点とし、拘束面P42−P46−P47−P43、拘束面P43−P47−P48−P44及び拘束面P48−P45−P46−P47の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割することにより、処理対象ブロックを四面体要素でメッシュ化する(S510)。このようにして、処理対象ブロックを四面体要素により簡易にメッシュ化する。尚、図25においては、拘束面における詳細な節点及び結線の図示を省略する。
この後、演算装置10は、S550に移行し、処理対象ブロックにおける非拘束面(面P41−P45−P46−P42、面P44−P48−P45−P41及び面P41−P42−P43−P44)の夫々に、S250での処理と同様、第一被覆体Q1を付加し、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。
S550の処理後、演算装置10は、S560に移行し、互いに直交する非拘束面のペアが共有する処理対象ブロックの各辺(辺P41−P42、辺P41−P44及び辺P45−P41の各辺)に沿って、上記ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する第二被覆体Q2をS260の処理と同様に付加し、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。
S560の処理後、演算装置10は、S570に移行し、S270の処理と同様、三つの拘束面のいずれにも接しない節点P41が設定された角に、角の周囲に付加される第二被覆体Q2の表面に接触する第三被覆体Q3を付加する。また、付加前又は後には、第三被覆体Q3を、第二被覆体Q2との接触面において第二被覆体Q2と節点及び結線が一致するように、四面体要素でメッシュ化する。
処理対象ブロックが第四分類の処理対象ブロックである場合には、このようにして処理対象ブロックと第一〜第三被覆体Q1,Q2,Q3とからなる直方体形状のスーパーボックスを生成する。尚、当該スーパーボックスの構成については、これまでに説明した内容から容易に把握できるものであるので、図示を省略する。
S570での処理後、演算装置10は、S580に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。その後、S590に移行し、メッシュ化したスーパーボックスから処理対象ブロックを抽出して、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第四分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。
この他、S164で処理対象ブロックが第四分類の処理対象ブロックではないと判断してS165に移行すると、演算装置10は、処理対象ブロックが第五分類の処理対象ブロックであるか否かを判断する。ここでは、図26に示すように処理対象ブロックが第一の拘束面(面P53−P57−P58−P54)が有する平行な2辺の夫々に接続された第二及び第三の拘束面(面P55−P59−P58−P54及び面P52−P56−P57−P53)を有する計三つの拘束面を有するものである場合、当該処理対象ブロックが第五分類の処理対象ブロックであると判断し(S165でYes)、それ以外の場合には否定判断する(S165でNo)。そして、肯定判断した場合にはS175に移行し、否定判断した場合にはS166に移行する。
S175に移行すると、演算装置10は、図27に示す第五分類メッシュ化処理を実行する。第五分類メッシュ化処理では、図28左図に示すように、第一の拘束面P53−P57−P58−P54に対向する当該第一の拘束面に平行な非拘束面P55−P59−P56−P52の四辺の内、第二及び第三の拘束面と共有しない二辺の一方の辺P52−P55に節点P511を設定する(S610)。そして、節点P511を頂点とし、拘束面の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S620)。尚、図28においては、拘束面における詳細な節点及び結線の図示を省略する。
更に、非拘束面P55−P59−P56−P52における第二及び第三の拘束面と共有しない二辺の他方の辺P59−P56に、節点P512を設定し(S630)、節点P512と、節点P512が設定された辺を有する面であって拘束面のいずれとも直交する非拘束面P59−P56−P57−P58の拘束面と共有する三辺(辺P56−P57及び辺P57−P58及び辺P58−P59)の夫々に設定された各節点とを結んで、非拘束面P59−P56−P57−P58上に、三角形状の各メッシュ要素を形成する(S635)。その後、節点P511を頂点とし、S635で形成した三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S640)。このようにして、ここでは処理対象ブロックを四面体要素により簡易にメッシュ化する。
この後、演算装置10は、S650に移行して、処理対象ブロックにおける非拘束面(面P55−P52−P53−P54、面P55−P59−P56−P52及び面P59−P56−P57−P58)の夫々に、S250での処理と同様、第一被覆体Q1を付加し、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。
S650の処理後、演算装置10は、S660に移行し、互いに直交する非拘束面のペアが共有する処理対象ブロックの各辺(辺P55−P52及び辺P59−P56の各辺)に沿って、ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する第二被覆体Q2をS260の処理と同様に付加し、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。
処理対象ブロックが第五分類の処理対象ブロックである場合には、このようにして処理対象ブロックと第一〜第二被覆体Q1,Q2とからなる直方体形状のスーパーボックスを生成する。
S660での処理後、演算装置10は、S680に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。その後、S690に移行し、S680でメッシュ化したスーパーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第五分類メッシュ化処理を終了する。
この他、S165で処理対象ブロックが第五分類の処理対象ブロックではないと判断してS166に移行すると、演算装置10は、処理対象ブロックが第六分類の処理対象ブロックであるか否かを判断する(S166)。ここでは、処理対象ブロックが、図29上図に示すような第一の拘束面(面P63−P68−P69−P64)が有する三辺の夫々に接続された第二及び第三及び第四の拘束面(面P65−P66−P69−P64、面P66−P67−P68−P69及び面P62−P67−P68−P63)を有する計四つの拘束面を有するものである場合、当該処理対象ブロックが第六分類の処理対象ブロックであると判断し(S166でYes)、それ以外の場合には否定判断する(S166でNo)。そして、肯定判断した場合にはS176に移行し、否定判断した場合にはS167に移行する。
S176に移行すると、演算装置10は、図30に示す第六分類メッシュ化処理を実行する。第六分類メッシュ化処理では、図29下図に示すように第一の拘束面P63−P68−P69−P64に対向する当該第一の拘束面に平行な非拘束面P65−P66−P67−P62の第二及び第三及び第四の拘束面と共有しない一辺P62−P65に節点P61を設定する(S710)。但し、図29下図においては、拘束面における詳細な節点及び結線の図示を省略する。
そして、この節点P61を頂点とし、拘束面(面P63−P68−P69−P64、面P65−P66−P69−P64、面P66−P67−P68−P69及び面P62−P67−P68−P63)の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割することにより、処理対象ブロックを四面体要素でメッシュ化する(S720)。このようにして、処理対象ブロックを四面体要素により簡易にメッシュ化する。
この後、演算装置10は、S750に移行して、処理対象ブロックにおける非拘束面(面P65−P62−P63−P64及び面P65−P66−P67−P62)の夫々に、S250での処理と同様、第一被覆体Q1を付加し、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。
S750の処理後、演算装置10は、S760に移行し、互いに直交する非拘束面のペアが共有する処理対象ブロックの辺(辺P62−P65)に沿って、当該ペアに該当する非拘束面の夫々に付加された第一被覆体Q1の表面に接触する第二被覆体Q2をS260の処理と同様に付加し、付加前又は後には、第二被覆体Q2を、第一被覆体Q1との接触面において第一被覆体Q1と節点及び結線が一致するように、四面体要素でメッシュ化する。処理対象ブロックが第六分類の処理対象ブロックである場合には、このようにして処理対象ブロックと第一〜第二被覆体Q1,Q2とからなる直方体形状のスーパーボックスを生成する。
S760での処理後、演算装置10は、S780に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。その後、S790に移行し、S780でメッシュ化したスーパーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第六分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。
この他、S166で処理対象ブロックが第六分類の処理対象ブロックではないと判断してS167に移行すると、演算装置10は、処理対象ブロックが第七分類の処理対象ブロックであるか否かを判断する。ここでは、処理対象ブロックが、図31に示すような第一の拘束面(面P74−P79−P78−P73)が有する平行な二辺の夫々に接続された第二及び第三の拘束面(面P72−P77−P78−P73及び面P75−P76−P79−P74)と、第一の拘束面と平行な第四の拘束面(P75−P76−P77−P72)とを有する計四つの拘束面を有するものである場合、当該処理対象ブロックが第七分類の処理対象ブロックであると判断し(S167でYes)、それ以外の場合には否定判断する(S167でNo)。そして、肯定判断した場合にはS177に移行し、否定判断した場合にはS168に移行する。
S177に移行すると、演算装置10は、図32に示す第七分類メッシュ化処理を実行する。第七分類メッシュ化処理では、二つある非拘束面(面P72−P73−P74−P75及び面P76−P77−P78−P79)の内、第一の非拘束面P72−P73−P74−P75において、図33上段に示すように、この非拘束面P72−P73−P74−P75の拘束面とは接しない領域(非拘束面P72−P73−P74−P75の四辺より内側の領域(中央領域))に一つの節点P711を設定した後(S810)、図33上段及び中段に示すように、この節点P711を頂点とし、拘束面の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S820)。尚、図33上段では、拘束面における節点及び結線の詳細を一部省略する。
また、第二の非拘束面P76−P77−P78−P79において、この非拘束面P76−P77−P78−P79の拘束面とは接しない領域(非拘束面P76−P77−P78−P79の四辺より内側の領域(中央領域))に一つの節点P712を設定し(S830)、第二の非拘束面P76−P77−P78−P79上で、この節点P712と、この非拘束面P76−P77−P78−P79における拘束面と共有する四辺の夫々に設定された各節点とを結んで、図33下段に示すように、この非拘束面P76−P77−P78−P79上に三角形状の各メッシュ要素を形成する(S835)。そして、この非拘束面P76−P77−P78−P79上の三角形状の各メッシュ要素を底面し、節点P711を頂点とする四面体要素により処理対象ブロックを分割する(S840)。このようにして処理対象ブロックを簡易に四面体要素でメッシュ化する。
この後、演算装置10は、S850に移行して、処理対象ブロックにおける非拘束面(面P75−P72−P73−P74及び面P76−P77−P78−P79)の夫々に、S250での処理と同様、第一被覆体Q1を付加し、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。処理対象ブロックが第七分類の処理対象ブロックである場合には、このようにして、処理対象ブロックと第一被覆体Q1とからなる図34に示すような直方体形状のスーパーボックスを生成する。
S850での処理後、演算装置10は、S880に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。その後、S890に移行し、S880でメッシュ化したスーパーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第七分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。
この他、S167で処理対象ブロックが第七分類の処理対象ブロックではないと判断してS168に移行すると、演算装置10は、処理対象ブロックが第八分類の処理対象ブロックであるか否かを判断する。ここでは、図35左図に示すように、処理対象ブロックが計五つの拘束面を有するものである場合、当該処理対象ブロックが第八分類の処理対象ブロックであると判断し(S168でYes)、それ以外の場合には否定判断する(S168でNo)。そして、肯定判断した場合にはS178に移行し、否定判断した場合にはS179に移行する。
S178に移行すると、演算装置10は、図36に示す第八分類メッシュ化処理を実行する。第八分類メッシュ化処理では、図35右図に示すように、唯一の非拘束面P82−P83−P84−P85における拘束面とは接しない領域(非拘束面P82−P83−P84−P85の四辺に囲まれた内側領域(中央領域))に一つの節点P81を設定する(S910)。尚、図35右図では、拘束面における節点及び結線の詳細を省略する。
そして、この節点P81を頂点とし、拘束面(面P82−P87−P88−P83、面P83−P88−P89−P84、面P85−P86−P89−P84、面P87−P82−P85−P86及び面P86−P87−P88−P89)の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割する(S920)。このようにして、処理対象ブロックを四面体要素により簡易にメッシュ化する。
この後、演算装置10は、S950に移行して、処理対象ブロックにおける非拘束面P82−P83−P84−P85に、S250での処理と同様、第一被覆体Q1を付加し、付加前又は後には、第一被覆体Q1を、非拘束面との接触面において非拘束面と節点及び結線が一致するように四面体要素でメッシュ化する。処理対象ブロックが第八分類の処理対象ブロックである場合には、このようにして処理対象ブロックと第一被覆体Q1とからなる直方体形状のスーパーボックスを生成する。
S950での処理後、演算装置10は、S980に移行し、上記スーパーボックスにおける処理対象ブロックに、上記モデルデータに記述された当該処理対象ブロックに設定すべき未設定の節点を設定して、スーパーボックスをDelaunay法に基づき四面体要素で再メッシュ化する。その後、S990に移行し、S980でメッシュ化したスーパーボックスから処理対象ブロックを抽出し、抽出後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込んだ後、第八分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。
この他、S168で処理対象ブロックが第八分類の処理対象ブロックではないと判断してS179に移行すると、演算装置10は、処理対象ブロックが全ての面を拘束面として有する第九分類の処理対象ブロックであるとみなして、図37に示す第九分類メッシュ化処理を実行する。第九分類メッシュ化処理では、図38に示すように、処理対象ブロックの表面以外の内部領域(中央領域)に、一つの節点P91を設定する(S1010)。そして、この節点P91を頂点とし、拘束面の夫々に形成された三角形状の各メッシュ要素を底面とする四面体要素により処理対象ブロックを分割することにより、処理対象ブロックを四面体要素でメッシュ化する(S1020)。このようにして、ここでは、処理対象ブロックを簡易にメッシュ化する。
また、処理対象ブロックが第九分類の処理対象ブロックである場合には、その表面の節点及び結線のパターンが定まっているため、第一〜第三被覆体Q1,Q2,Q3のような直方体を処理対象ブロックの周囲に付加することなく、S1020によるメッシュ化後の処理対象ブロックをスーパーボックスと同様に取り扱ってDelaunay法に基づき四面体要素で再メッシュ化する(S1080)。即ち、モデルデータに従って設定すべき未設定の節点を順に処理対象ボックスに設定して、Delaunay法により処理対象ブロックを再メッシュ化する。その後、S1090に移行し、再メッシュ化後の処理対象ブロックのデータを、メッシュ化の完了した直方体ブロックのデータとして記憶装置20に書き込み、第九分類メッシュ化処理を終了する。その後、演算装置10は、S190に移行する。
このようにして、本実施例では、形状モデルを構成する各直方体ブロックをメッシュ化し、全ての直方体ブロックについてのメッシュ化が完了すると、S190で肯定判断して、当該メッシュモデル生成処理を終了する。
以上、本実施例の情報処理システム1の構成について説明したが、本実施例では、従来のように、メッシュ化対象の処理対象ブロック全体を包囲するスーパーボックスを用いてDelaunay法により処理対象ブロックをメッシュ化せずに、非拘束面に対してのみ直方体を付加して、拘束面を外面に露出したスーパーボックスを生成し、このスーパーボックスに対してDelaunay法を適用して、処理対象ボックスをメッシュ化する。従って、本実施例によれば、拘束面の節点及び結線のパターンを保持しつつ処理対象ブロックをDelaunay法に基づき自動でメッシュ化できる。
よって、形状モデルを複数の直方体ブロックに分割して、各直方体ブロックを隣接ブロックとの節点及び結線のパターンが一致するようにメッシュ化する処理を、形状モデルの情報、分割パターンの情報、節点の情報を与える程度で、自動的にコンピュータに実行させることができ、コンピュータが生成したメッシュを隣接ブロックとの節点及び結線のパターンが一致するよう手作業で修正しなくて済む。
従って、大規模な形状モデルに対応するメッシュモデルを生成する際に、情報処理システム1を利用して、直方体ブロックにより分割した形状モデルをメッシュ化すれば、大規模な形状モデルに対応するメッシュモデルを容易に生成することができる。
即ち、この情報処理システム1によれば、隣接ブロックとの接触面における節点及び結線が隣接ブロックと一致するように各直方体ブロックを自動でメッシュ化することができるので、メッシュ化した直方体ブロックを簡単に結合して、大規模な形状モデルに対応するメッシュモデルを生成することができる。
そして、メッシュ化に際しては、メッシュ化する対象の領域サイズに応じて指数関数的に必要な演算量が増大するが、この情報処理システム1によれば、形状モデルを直方体ブロック毎にメッシュ化することができるので、個々のメッシュモデルを生成するのに必要な演算量を抑えることができ、処理能力の低いコンピュータ(情報処理システム)によっても、大規模な形状モデルに対応するメッシュモデルを生成することができる。
この他、上記情報処理システム1によって形状モデルを細分化してメッシュ化すれば、結合する直方体ブロックの形状モデルの一部に限定することで、形状モデルの一部分のメッシュモデルを生成する作業についても簡単に行うことができる。
従って、国内全域の地質モデルを直方体ブロックに分割して、各直方体ブロックをメッシュ化すれば、直方体ブロックの組合せによって震源に対応する地域のメッシュモデルを簡単に生成することができ、従来のように、震源に対応する地域の専用メッシュモデルを一から作成しなくて済む。従って、この情報処理システム1によれば、地震波動解析の作業量についても大幅に低減することができる。
尚、「特許請求の範囲」記載の各手順と上記実施例との関係は次の通りである。即ち、第一メッシュ化手順は、第一〜第九分類メッシュ化処理における前半部分の処理に対応し、付加手順は、第一〜第九分類メッシュ化処理において第一〜第三被覆体Q1,Q2,Q3を処理対象ブロックに付加する処理に対応し、第二メッシュ化手順は、第一〜第九分類メッシュ化処理において第一〜第三被覆体Q1,Q2,Q3を処理対象ブロックに付加した後の処理に対応する。
ところで、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、以上には、形状モデルを構成する複数の直方体ブロックの夫々を、順次メッシュ化済ブロックとの接触面において節点及び結線が一致するようにメッシュ化する情報処理システム1について説明したが、情報処理システム1で実行される上記メッシュモデル生成処理に対応するプログラムは、単に、拘束面の設定された直方体ブロックの指定をユーザから受けて、この拘束面付の直方体ブロックを、拘束面の配置に応じた第一〜第九分類メッシュ化処理のいずれかでメッシュ化する構成にされてもよい。
即ち、上記メッシュモデル生成処理に対応するプログラムは、上記実施例の情報処理システム1に採用したプログラムから、拘束面付の直方体ブロックをメッシュ化する機能部分を抽出した程度の簡素なプログラムとして構成されてもよい。このような簡素なプログラムは、例えば、形状モデルを複数の直方体ブロックに細分化して、各直方体ブロックの隣接ブロックとの境界面における節点及び結線を設定するまでは、手作業又は別システムを通じて行うケースにおいて、役立つ。
即ち、形状モデルを細分化して各直方体ブロックをメッシュ化する手法としては、上記実施例のように、直方体ブロックを順次メッシュ化して、新たな直方体ブロックのメッシュ化に際しては、既にメッシュ化した隣接ブロックとの境界面における節点及び結線に揃えるように、当該直方体ブロックをメッシュ化する手法の他、各直方体ブロックのメッシュ化を開始する前に、各直方体ブロックにおける境界面の節点及び結線をまとめて設定しておく手法が考えられるが、後者の手法によれば、上記簡素なプログラムが、直方体ブロックのメッシュ化に役立つ。
また、上記実施例では、形状モデルを複数の直方体ブロックに分割する際に、この形状モデルを横・高さ・奥行方向の三方向に分割したが、分割例としては、この他に、形状モデルを一方向に分割する例(例えば横方向のみに分割する例)や、二方向に分割する例(例えば横・奥行方向には分割するが、高さ方向には分割しない例)が考えられる。そして、形状モデルを三方向に分割しない場合には、分割後の各直方体ブロックにおける拘束面の配置が、通常、上記第一〜第九分類の内、一部の分類に限られる。例えば、形状モデルを一方向にしか分割しない場合には、各直方体ブロックにおける拘束面の配置は、通常、上記第一〜第九分類の内、第一分類又は第三分類に限られる。従って、上述のプログラムは、上記第一〜第九分類の内、一部の分類についてのメッシュ化処理を実行できる程度の構成にされてもよい。例えば、上述のプログラムは、一つの特定の分類についてのメッシュ化処理を実行できる程度の構成にされてもよい。