説明

渦抽出装置、渦抽出方法、渦抽出プログラム、および渦抽出表示システム

【課題】 本件は、流速分布を表わす流速データを基に渦領域を抽出する渦抽出装置等に関し、重要な情報を保持し、かつ、通常のパーソナルコンピュータ等一般的なスペックの計算機等で高速な表示処理を可能とする。
【解決手段】 前記流体空間内を複数のボクセルに分割したときの各ボクセルの各頂点ごとの、該各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出し、それらの第1の数値データに基づいて、渦領域を近似した渦の中心を示す線分を表わすテキストデータを作成し、そのテキストデータ作成後に、可視化演算処理可能なレベルにまでボクセルデータを削減する。

【発明の詳細な説明】
【技術分野】
【0001】
本件は、流体空間内の渦を抽出する渦抽出装置および渦抽出方法に関する。また本件は、プログラムを実行する演算装置により実行されてその演算装置を渦抽出装置として動作させる渦抽出プログラムに関する。さらに本件は、渦抽出装置とその渦抽出装置で抽出された渦を表示する渦表示装置とを有する渦抽出表示システムに関する。
【背景技術】
【0002】
流体空間内の渦を抽出して可視化する技術は、例えば、航空機の翼の周りの風の挙動、船のスクリューの周りの水流の挙動、人体の気管内を流れる空気の挙動等、様々な分野での流体の挙動を知る上で極めて重要である。
【0003】
渦の可視化を実現するための渦の抽出の技術が従来より種々提案されている。この可視化技術における大きな課題は、渦の抽出を高精度に行なおうとすると厖大な量のデータを取り扱う必要があることである。このため、大量のデータを高速に取り扱うことのできる高速の大型演算機を必要とする。この渦抽出のための計算量を削減することも必要ではあるが、さらに大きな課題は、可視化の段階である。渦抽出の計算に用いたデータ量が膨大であることに対応して、抽出した渦を表わすデータのデータ量も厖大となり、渦抽出に用いた計算機と同レベルの高いスペックを持つ計算機を用いないと可視化処理が難しい。すなわち、スペック不足の計算機で可視化すると、表示された渦の回転、移動、拡大、縮小等の操作に対するレスポンスが遅く必要な表示がなかなか得られない。また、渦は、時々刻々と変化する。このため、渦の挙動を知るためには渦の時間的な変化を知る必要がある。しかしながらデータ量の厖大さに起因して、渦の時間的な変化の可視化が難しい。
【0004】
高速な可視化処理を実現しようとしてデータを間引いて可視化すると、計算コストを投じて渦を正確に抽出したにもかかわらず、間引きにより重要な現象が失われて表示されずに見逃されてしまうおそれがある。
【0005】
ここでは、渦抽出に関する文献のほか、厖大な量のデータを取り扱うための領域分割法の一例が示されている文献、および後述する説明で参考となる文献も挙げておく。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−132700号公報
【特許文献2】特開2005−309999号公報
【特許文献3】特開2000−339297号公報
【非特許文献】
【0007】
【非特許文献1】D.Sujudi, R.Haimes,IDENTIFICATION OF SWIRLING FLOW IN 3−D VECTOR FIELDS,Paper of American Institute of Aeronautics and Astronautics,1995
【非特許文献2】T.Weinkauf,Cores of Swirling Particle Motion in Unsteady Flows,Paper of IEEE,2007
【非特許文献3】On the identification of avortex, Jinhee Jeong and Fazle Hussain,Jaurnal of fluid mechanics,vol.285,pp64−94,1995
【非特許文献4】Marching cubes:A high resolution 3 D surface construction algorithm, William E.Lorensen,Harvey E.Cline,Proceedings of the 14th annual conference on Computer graphics and interactive techniques,Pages:163−169,1987
【発明の概要】
【発明が解決しようとする課題】
【0008】
本件開示の渦抽出装置等の課題は、重要な情報を保持し、かつ、通常のパーソナルコンピュータ等一般的なスペックの計算機等で高速な表示処理が可能な渦データを抽出することにある。
【課題を解決するための手段】
【0009】
本件開示の渦抽出装置は、データ取得部と、第1の数値データ算出部と、テキストデータ作成部と、データ出力部とを有する。
【0010】
データ取得部は、流体空間内に分散した複数の各点の流速データを取得する。
【0011】
第1の数値データ算出部は、データ取得部で取得した流速データに基づいて、流体空間内を複数の第1のボクセルに分割したときの各第1のボクセルの各頂点ごとの、各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する。
【0012】
テキストデータ作成部は、データ取得部で取得した流速データに基づいて流体の渦の中心線を求める。また、このテキストデータ作成部は、第1の数値データ算出部で算出された各頂点ごとの第1の数値データに基づいてその中心線の周りの渦領域の寸法を求める。このテキストデータ作成部は、このようにして求めた中心線と寸法とを表わすテキストデータを作成する。
【0013】
データ出力部は、テキストデータ作成部で作成されたテキストデータを出力する。
【0014】
本件開示の渦抽出プログラムおよび渦抽出方法は、本件の渦抽出装置の思想をプログラムおよび方法として把握したものである。
【0015】
また本件開示の渦抽出表示システムは、本件の渦抽出装置と、その渦抽出装置から出力されたデータを受け取って渦を表示する渦表示装置を有する。
【発明の効果】
【0016】
本件によれば、渦領域の中心線と寸法が相対的に高い分解能の流速データに基づいてテキストデータとして作成される。これらの重要な情報が先に作成されているために、その後、本件の渦抽出装置よりもスペックの低い装置で表示を行なうために、ボクセルデータやポリゴンデータ等の削減を仮に行なったとしても、重要な情報が失われることなく高速な渦表示処理が可能となる。
【図面の簡単な説明】
【0017】
【図1】本件の渦抽出装置の一実施形態である大規模計算機を含む、システムの一例を示す模式図である。
【図2】本件の渦抽出プログラムの一実施形態を概括的に示した図である。
【図3】本件の渦抽出装置の一実施形態を概括的に示した図である。
【図4】本件の渦抽出方法の一実施形態の概要を示すフローチャートである。
【図5】大規模計算機の内部構成の概要を示す図である。
【図6】大規模計算機で実行される渦抽出プログラムの各ステップを示すフローチャートである。
【図7】内挿処理の説明図である。
【図8】ピクセル(ボクセル)の寸法の決め方のアルゴリズムの一例を示す図である。
【図9】領域分割処理の説明図である。
【図10】渦度の演算方法の説明図である
【図11】渦領域抽出処理の説明図である。
【図12】図6の渦の中心線分作成処理(S28)の詳細フローを示すフローチャートである。
【図13】ボクセルの模式図である。
【図14】回転判定アルゴリズムの説明図である。
【図15】付加的に追加可能な回転判定アルゴリズムの説明図である。
【図16】ポリゴン数削減処理の説明図である。
【図17】渦表示の一例を示す図である。
【図18】渦を、中心線が左右に延びる方向から見て半透明で表示した図である。
【図19】中心線が紙面に垂直な方向に延びる方向から見て、渦を半透明で示した図である。
【図20】図18の表示画面上にさらに中心線と渦の領域を表わす線を重畳して示した図である。
【図21】図19の表示画面上にさらに中心線と渦の領域を表わす線を重畳して示した図である。
【図22】本実施形態の変形例を示した図である。
【発明を実施するための形態】
【0018】
以下、本件の実施形態について説明する。
【0019】
図1は、本件の渦抽出装置の一実施形態である大規模計算機を含む、システムの一例を示す模式図である。
【0020】
ここでは、大規模計算機10と、ファイルサーバ20と、可視化用計算機30が、インタネット等の通信回線網40を介して接続されている。
【0021】
大規模計算機10は、本件の渦抽出装置の一実施形態に相当する計算機であり、大量のデータの高速演算処理が可能である。
【0022】
ファイルサーバ20は、大規模計算機10での渦抽出の計算の基になる流速データや、大規模計算機10での渦抽出の計算結果を表わすデータがファイリングされる装置である。
【0023】
可視化用計算機30は、渦表示装置の一例であって、大規模計算機10での渦抽出の計算結果を表わすデータを受け取って表示画面31上に表示する計算機である。この可視化用計算機30は、一般に市販されているレベルのパーソナルコンピュータ(以下、「PC」と略記する)等の計算機であってもよい。
【0024】
尚、この図1には、可視化用計算機30を1台のみ示しているが、これは代表的に1台示したのであって、複数台あるいは多数台存在していてもかまわない。
【0025】
ここでは、ファイルサーバ20には、流体空間内の流速分布を表わす、その流体空間内に分散した複数の各点の流速データが格納されているものとする。
【0026】
この流速データは、例えば風洞実験等を行なって実際に計測したデータであってもよく、あるいは、ここには図示しない、シミュレート用の計算機でシミュレートした結果得られたデータであってもよい。あるいは、図1に示す大規模計算機10がシミュレート用の計算機を兼ねていてもよい。
【0027】
ファイルサーバ20内に格納されている流体空間内の流速分布を表わす流速データは、大規模計算機10に入力され(矢印A)、大規模計算機10で渦抽出計算が行なわれる。その大規模計算機10での渦抽出計算結果を表わすデータは、再度ファイルサーバ20に送られてファイルサーバ20に一旦格納される(矢印B)。その後、ファイルサーバ20内の渦抽出計算結果を表わすデータは、可視化用計算機30からの要求に応じて可視化用計算機30に送られる(矢印C)。可視化用計算機30ではその渦抽出計算結果を表わすデータを受け取ってそのデータに基づいて渦を表示する。
【0028】
ファイルサーバ20には、時々刻々と変化する流速分布のデータが時系列に蓄積されており、大規模計算機10では各時刻ごとの渦の抽出が行なわれる。したがって可視化用計算機30では、時々刻々と変化する渦の移り変わり(発生、消滅、合流、分岐等)の表示が可能である。また、ある一時点の渦を方向を変えて、あるいは拡大、縮小等を行なって表示することも可能である。
【0029】
図2は、本件の渦抽出プログラムの一実施形態を概括的に示した図である。
【0030】
この図2に示す渦抽出プログラム100は、大規模計算機10にインストールされてその大規模計算機10で実行され、その大規模計算機10を、本件の渦抽出装置の一例として動作させるプログラムである。この渦抽出プログラム100は、データ取得部110、補間演算部120、第1の数値データ算出部130、第2の数値データ算出部140、テキストデータ作成部150、ポリゴン数削減処理部160、およびデータ出力部170で構成されている。これらの各部110〜170は渦抽出プログラム100を構成する各プログラム部品である。各部110〜170の作用については後述する。
【0031】
図3は、本件の渦抽出装置の一実施形態を概括的に示した図である。
【0032】
この図3に示す渦抽出装置は、データ取得部210、補間演算部220、第1の数値データ算出部230、第2の数値データ算出部240、テキストデータ作成部250、ポリゴン数削減処理部260、およびデータ出力部270を有する。この図3に示す各部210〜260は、図2に示す渦抽出プログラム100を構成する、図3と同じ名称を付した各プログラム部品110〜170が大規模計算機10内で実行されることにより大規模計算機10内に実現する機能をあらわしている。図2と図3とでは同じ名称を用いているが、図2の各部110〜170は、ソフトウェアのみを指し、図3の各部210〜270は、図2に示す同じ名称のプログラム部品と大規模計算機10のハードウェアやOS(Operating System)等との複合により実現する機能を指している。したがって、ここでは、図3の各部210〜270の作用を説明することで、図2の各部110〜170の作用の説明を兼ねるものとする。
【0033】
図3に示す渦抽出装置200を構成するデータ取得部210は、図1に示すファイルサーバ20から通信回線網40を介して、渦抽出対象の流体空間内に分散した複数の各点の流速データを取得する機能を有する。
【0034】
また、補間演算部220は、データ取得部210で取得した流速データに基づく補間演算により、流体空間を構造格子に分割したときの複数の第1のボクセルの各頂点ごとの流速データを算出する。
【0035】
また、第1の数値データ算出部230は、流体空間内を複数の第1のボクセルに分割したときの各第1のボクセルの各頂点ごとの、各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する。この第1の数値データ算出部230は、この第1の数値データを、データ取得部210で取得した流速データに基づいて算出する。
【0036】
さらに、第2の数値データ算出部240は、少なくとも、第1の数値データ算出部230で算出された第1の数値データに基づいて判定される渦領域を構成する各第1のボクセルそれぞれについて、各第1のボクセルごとの渦の強さを指標する第2の数値データを算出する。この第2の数値データ算出部240は、この第2の数値データを、データ取得部210で取得した流速データに基づいて算出する。この第2の数値データ算出部240では、各ボクセルごとの第2の数値データを、渦領域の内部に限って算出してもよく、渦領域の内部であるか外部であるかの判定なしに、流体空間全域に亘って算出してもよい。
【0037】
また、テキストデータ作成部250は、データ取得部210で取得した流速データに基づいて流体の渦の中心線を求める。また、このテキストデータ作成部250は、第1の数値データ算出部230で算出された各頂点ごとの第1の数値データに基づいてその中心線の周りの渦領域の寸法を求める。そしてこのテキストデータ算出部250は、求めた中心線と寸法とを表わすテキストデータを作成する。
【0038】
さらに、ポリゴン数削減処理部260は、第1のデータ算出部230で算出された第1の数値データの等値面で構成される、渦領域の表面を画定するポリゴンの数を計数する。そして、複数の第1のボクセルを、ポリゴンの数が設定値(図3に示す「設定値」261)以下となるまで、流体空間が粗く分割された第2のボクセルに統合する。すなわち、第1の数値データを、第2のボクセルの各頂点に対応する第1の数値データにまで間引く。このポリゴン数削減処理部260はさらに、第2の数値データ算出部240で算出された第2の数値データに基づいて、統合された第2のボクセルそれぞれに対応する第2の数値データを作成する。ここで、「設定値」261は、可視化用計算機30(図1参照)からあらかじめ、その可視化用計算機30ごとに個別に指定された値であってもよい。あるいはこの「設定値」261は、平均的なPCで高速な可視化処理が可能なように大規模計算機10側で、可視化用計算機30の種類等に寄らずに一律に設定した値であってもよい。あるいはこの「設定値」261は、図2に示す渦抽出プログラム100が定数としてもっている値であってもよい。
【0039】
さらに、データ出力部270は、テキストデータ作成部250で作成されたテキストデータを出力する。またこのデータ出力部270は、ポリゴン数削減処理部260で得られた第2のボクセルの各頂点に対応する第1の数値データも出力する。このデータ出力部270は、テキストデータおよび第1の数値データに加え、さらに、第2のボクセルに対応する第2の数値データも出力する。
【0040】
前述した通り、この渦抽出装置200から出力されたデータはファイルサーバ20に一旦格納され、その後可視化用計算機30に送られる。可視化用計算機30では、それらのデータに基づいて表示画面31上に渦が表示出力される。
【0041】
図4は、本件の渦抽出方法の一実施形態の概要を示すフローチャートである。
【0042】
この図4に示す渦抽出方法は、図1に示す大規模計算機10内での図2に示す渦抽出プログラム100の実行により実施される渦抽出方法である。この渦抽出方法は、データ取得過程(S11)、補間演算過程(S12)、第1の数値データ算出過程(S13)、第2の数値データ算出過程(S14)を有する。この渦抽出方法は、さらに、テキストデータ作成過程(S15)、ポリゴン数削減処理過程(S16)、データ出力過程(S17)を有する。
【0043】
これらの各過程S11〜S17における実行内容は、図3に示す渦抽出装置200の各部210〜270の作用とそれぞれ同一であり、ここでは重複説明は省略する。
【0044】
次に更に詳細な実施形態について説明する。以下に説明する実施形態においてもシステムの全体構成は、図1をそのまま流用する。
【0045】
図5は、図1に示す大規模計算機の内部構成の概要を示す図である。
【0046】
この図5に示す大規模計算機10は、プログラムを実行する複数(ここでは4台)のCPU(Central Processing Unit)11A〜11Dと、それらのCPU11A〜11Dで共用されるメモリ12を有する。これら複数のCPU11A〜11Dは、流体空間を分割した各領域における渦の抽出を担当している。ここでは、このように複数のCPUで流体空間内の領域を分けて渦抽出処理を行なっており、高速の演算処理を可能としている。
【0047】
図6は、図1,図5に示す大規模計算機10で実行される渦抽出プログラムの各ステップを示すフローチャートである。
【0048】
ここでは、図6に示すデータ入力処理(S21)からデータ出力処理(S29)までの各処理が実行される。
【0049】
ここで、一例としてデータ入力処理(S21)、内挿処理(S22)、領域分割処理(S23)、およびデータ出力処理(S30)は、図5に示す複数のCPU11A〜11Dのうちの1つのCPU11Aが担当している。その他の処理(S24〜S29)は、他の複数のCPU11B〜11Dが、流体空間を複数に分けたときの各領域についての計算を分担している。図1,図5に示す大規模計算機10には、時々刻々変化する時系列データとしての流速データが入力される。ある時刻についての流速データに関するCPU11Aでの領域分割処理(S23)が終わると、CPU11B〜11Dではそれぞれ分担した領域についてその時刻についての渦抽出処理が実行される。その間、CPU11Aでは、CPU11B〜11Dが分担した領域について渦抽出処理を実行している間に次の時刻の流速データのデータ入力処理(S21)等が行なわれる。CPU11B〜11Dである時刻についての渦抽出処理(S23〜S29)が終了すると、CPU11Aがその抽出処理結果を出力する(S30)。このように、この大規模計算機10では、複数のCPU11A〜11Dで時々刻々変化する流速データについて役割りを分担して並行処理が行なわれる。
【0050】
図6に示すフローチャート中のデータ入力処理(S21)は、前述の実施形態(図3に示す渦抽出装置200で代表させる)のデータ取得部210に対応する処理を実行する。すなわち、このデータ入力処理(S21)は、大規模計算機10にファイルサーバ20に格納されている時系列データとしての流速データを順次受信させ、その受信した流速データをこの図6に示す渦抽出プログラムに取り込む。
【0051】
また、内挿処理(S22)は、大規模計算機10に、図3に示す渦抽出装置200の補間演算部220に対応する処理を実行させる。
【0052】
図7は、内挿処理の説明図である。
【0053】
図7(A)は、内挿処理前の非構造格子の一例を示した図、図7(B)は、図7(A)の非構造格子に構造格子を重ねて示した図、図7(C)は内挿処理後の構造格子を示した図である。これら図7(A)〜(C)それぞれの中央には、飛行機の翼を模擬したときのその翼の断面が示されている。尚、流体空間(ここでは翼の周囲の空間)は三次元であるが、ここでは簡単のため、二次元的に示してある。
【0054】
図7(A)には、不定形の多角形からなるモザイク模様が示されている。このモザイク模様を構成する多角形は、周辺ほど平均的な面積が広く(平均的な辺の長さが長く)、中央の翼に近づくにつれて平均的な面積が狭く(平均的な辺の長さが短かく)なっている。このモザイク模様を構成する各多角形の各頂点には、この流体空間内を流れる流体(例えば空気)の、各頂点の位置における流速を表わす流速データが対応づけられている。この流速データは、その対応づけられている位置の、3次元的な流速方向と大きさからなる流速ベクトルを表わしている。
【0055】
この流速データは、この流体空間内の分散した複数の各点の流速を表わしてはいるが、このままでは取扱いが不便である。そこで、図7(B)に重ねて示すように、xyの2方向(実際はxyzの3方向)に整然と区画された4角形(6面体)のピクセル(ボクセル)を考える。そして、図7(A)に示す不定形の多角形の各頂点に対応づけられた流速データに基づく内挿処理(補間演算処理)により、各ピクセル(各ボクセル)の各頂点に対応づけられた流速データを求める。こうすることにより、図7(C)に示すように、流体空間内に等間隔に配列された各点の流速データが求められて、その後の演算処理が容易となる。
【0056】
各ピクセル(各ボクセル)の1辺の長さ(流体空間内での流速データの間隔)は、特に限定されるものではないが、データ間隔が粗過ぎると重要な現象が抽出されないおそれがある。一方、データ間隔が密過ぎると、大規模計算機10の処理能力が高くても演算に多大な時間がかかるおそれがあり、またいくら密であってももともとの非構造格子(図7(A))の流速の分解能以上の分解能は得られない。したがって非構造格子(図7(A))を構成する多数の多角形の平均的な面積(3次元では平均的な体積)と同程度の面積(体積)のピクセル(ボクセル)となるように、ピクセル(ボクセル)の寸法を決めることが好ましい。あるいは、多数の多角形の平均的な辺の長さと同程度の長さの辺を持つピクセル(ボクセル)となるようにピクセル(ボクセル)の寸法を決めてもよい。
【0057】
図8は、ピクセル(ボクセル)の寸法の決め方のアルゴリズムの一例を示す図である。
【0058】
図8の横軸は、図7(A)の非構造格子に出現する多角形の辺の長さの最小値minと最大値maxとの間を、対数軸上で10等分したものである。また図8の縦軸は、横軸(辺の長さ)を対数軸上で10等分したときの各区画ごとの辺の出現数である。
【0059】
図7(A)に示す非構造格子を構成する多角形の辺の長さを調べて図8の横軸の各区画ごとの辺の長さの出現数のうち、最小の区画Aと最大の区画Bの各出現数を計数する。最小の区画Aの出現数をa、最大の区画Bの出現数をbとし、最小の区画Aの辺の長さの代表値をLmin、最大の区画Bの辺の長さの代表値をLmax、図7(C)に示す構造格子(ボクセル)の一辺の長さをLとしたとき、(1)式
【0060】
【数1】

【0061】
に従って構造格子(ボクセル)の1辺の長さLを算出してもよい。例えばこのようにして算出した1辺の長さLのボクセルの各頂点の流速データが内挿処理(補間演算処理)により求められる。ただし、ここに示した長さLの求め方は一例であり、非構造格子の辺の長さの単純平均、流体空間の一部のサンプル領域の辺の平均的な長さ等、様々な算出方法のいずれを採用してもよい。例えば、図7(A)の場合、中央の翼に近づくほど平均的な面積が小さい(辺の平均的な長さが短い)非構造格子となっている。そこで、翼の近傍に関心があるときは、翼の近傍領域の非構造格子の平均的な辺の長さを求めて、その平均的な長さの辺を持つ構造格子となるように内挿処理(補間演算処理)を行なってもよい。
【0062】
尚、内挿処理(補間演算処理)自体は良く知られた手法であり、ここでは、内挿処理(補間演算処理)自体についての説明は省略する。また、ここでは非構造格子としての流速データが入力されるものとして説明したが、もともとの流速データが図7(C)に示すような構造格子の流速データであったときは、この内挿処理(S22)は不必要であるためスキップされる。
【0063】
上記の内挿処理(S22)が終了すると、領域分割処理(S23)を経て次に流速勾配算出処理(S23)が実行される。前述した通り、図6のデータ入力処理(S21)および内挿処理(S22)は、図5に示す複数のCPU11A〜11Dのうちの1つのCPU11Aで実行される。これに対し、流速勾配算出処理(S24)は、他の複数のCPU11B〜11Dで、流体空間が複数に分割された各領域について分担して実行される。そのため、ここでは領域分割処理(S23)が行なわれる。
【0064】
図9は、領域分割の説明図である。ここでも、簡単のため、2次元的な構造格子で示してある。
【0065】
ここでは、流体空間Dが、一部が重なるようにして3つの領域D1〜D3に分割されている。斜線を付した2つの領域D12,D23のうちの領域D12は、領域D1と領域D2の双方に含まれており、もう1つの領域D23は、領域D2と領域D3の双方に含まれている。このように複数の領域に含まれる領域を袖領域と称する。
【0066】
図5に示す複数(3つ)のCPU11B〜11Dは、各領域D1〜D3について、図6のフローチャートにおける局所固有値算出処理(S24)以降の渦抽出処理を実行する。ここで、図9に示すように袖領域D12,D23が設定されているため、袖領域D12,D23については、その袖領域D12,D23を含む領域D1〜D3の処理を分担している複数のCPUでほぼ同じ処理結果を得ることができる。したがって、処理終了後に流体空間Dの全域の処理結果として円滑に統合することができる。
【0067】
以下では、分割された領域であるか、流体空間全域であるかを、特に必要なとき以外は区別せずに説明を続行する。
【0068】
図6のフローチャートでは、流速勾配算出処理(S24)、局所固有値算出処理(S25)、および渦領域抽出処理(S27)の組合せが、図3の第1の数値データ算出部230での処理に対応する。ただし、渦領域抽出処理(S27)は、渦領域の抽出制度を向上させるための処理であり、この渦領域抽出処理(S27)を必ずしも行なわなくても第1の数値データ算出処理としては十分である。
【0069】
流速勾配算出処理(S24)では、以下の(2)式に基づいて、各ボクセルの各頂点の流速勾配が算出される。
【0070】
ここでは、流体空間内のx,y,zの各方向の速度をそれぞれu,v,wで表わし,u,v,wを代表させてqで表わし、x,y,zを代表させてrで表わす。また、各頂点を代表させて、その頂点の座標を(i,j,k)で表わす。さらに、i,j,kを代表させてnで表わし、そのi,j,kやnを省略することがある。
【0071】
このとき、頂点(i,j,k)の流速勾配は、
【0072】
【数2】

【0073】
であらわされる。ただし、Δrはr方向のボクセルの1辺の長さを表わしている。
【0074】
ここで、図7の中央に示す翼との境界や流体空間を画定する壁面等、停止した物体との境界上ではq=0となるように処理を行なうことが好ましい。
【0075】
ここでは、(2)式1つで示しているが、この(2)式は、下記の(3)式の流速行列Jの9つの各要素を表わしている。
【0076】
各ボクセルの各頂点(i,j,k)について、上記の(2)式による流速勾配の算出が行なわれると、次に局所固有値算出処理(S25)が行なわれる。
【0077】
この局所固有値算出処理(S25)では、上記の(2)式に従って求めた流速勾配を要素とする流速行列Jを、
【0078】
【数3】

【0079】
とし、
【0080】
【数4】

【0081】
【数5】

【0082】
ただし、JはJの転置行列である。
としたときの行列A
【0083】
【数6】

【0084】
の3つの固有値λ,λ,λを算出する。
【0085】
これらの3つの固有値λ,λ,λが算出されると、これら3つの固有値λ,λ,λをその値順に並べ、λ<λ<λとする。ただし、λ,λ,λは、それぞれλ,λ,λのいずれかである。
【0086】
ここでは、このようにして値順に並べた3つの固有値λ,λ,λのうちの中央の値を持つ固有値λを抽出する。このλは、図3の第1の数値データ算出部230で算出される第1の数値データの一例に相当する。
【0087】
この固有値λを各ボクセルの各頂点(i,j,k)のそれぞれについて算出する。ある頂点(i,j,k)について算出した固有値λがλ<0のときは、その頂点(i,j,k)は渦領域の内部であると判定され、λ≧0のときはその頂点(i,j,k)は渦領域の外部であると判定される。
【0088】
この渦領域の判定アルゴリズムは、渦を大きく捉えたとき、渦は一次元的に延びる中心線の周りを周回する二次元的な動きであることに着目した判定アルゴリズムである。このアルゴリズム自体は、既知のアルゴリズムであり、Jeongらのλ法と称される(前掲の非特許文献3参照)。
【0089】
ここでは、ある頂点(i,j,k)についてλ<0のが算出されたときは、そのλをその値のままその頂点(i,j,k)に対応づける。一方、ある頂点(i,j,k)についてλ≧0のλが算出されたときは、λをλ=0に置き換えた上で、そのλ=0をその頂点に対応づける。
【0090】
これによりλ<0領域が渦領域、λ=0の領域は渦の外の領域であるという、渦領域の大まかな抽出が行なわれる。
【0091】
次に渦度絶対値算出処理(S26)が実行される。この渦度絶対値算出処理(S26)では渦度ωの絶対値|ω|が算出される。この渦度絶対値算出処理(S26)は、図3の第2の数値データ算出部240での処理に対応する。
【0092】
ここでは、この渦度ωは、ボクセルごとに算出される。
【0093】
この渦度ωは、あるボクセルの流速ベクトルをUとしたとき、
【0094】
【数7】

【0095】
但し、∇は、演算子
【0096】
【数8】

【0097】
であり、×は外積(ベクトル積)を表わしている。
【0098】
【数9】

【0099】
で表記すると、
【0100】
【数10】

【0101】
となる。
【0102】
ここで、Uはボクセルを代表する流速ベクトルであるところ、流速データはボクセルの各頂点の流速データである。1つの手法として各頂点の流速データを基に内挿処理(補間演算処理)によりボクセルの中央の流速データを算出し、その算出した流速データをUとして(9)式の演算を行なうことが考えられる。ただしここでは、内挿演算と、(9)式によるωの演算とを分けることなく、以下のようにしてωを算出する。ここでは、理解の容易さのため、2次元で説明する。
【0103】
(9)式を2次元で書き直すと、
【0104】
【数11】

【0105】
となる。
【0106】
図10は、渦度ωの演算方法の説明図である。ここでは、簡単のためx−yの2次元平面について示してある。
【0107】
あるボクセル(ここでは2次元のため、あるピクセル)各頂点(i,j,k),(i+1,j,k),(i,j+1,k),(i+1,j+1,k)のx方向、y方向の速度を、図10に示すように、それぞれu,vにその頂点の座標(例えばi,j,k等)を付して表記する。
【0108】
このとき、このピクセルの中央の点の、(10)式に従う、渦度
【0109】
【数12】

【0110】
は、
【0111】
【数13】

【0112】
となる。実際には、(10),(11)式に従う2次元の演算ではなく、(9)式に従う3次元の演算が行なわれ、各ボクセルごとの渦度ωが算出され、その絶対値|ω|で表わされる渦の強さが求められる。この渦の強さ|ω|は、図3の第2の数値データ算出部240で算出される第2の数値データの一例に相当する。
【0113】
次に、本実施形態では、図6のフローチャートの渦領域抽出処理(S27)により、局所固有値算出処理(S25)で一旦求めた、渦領域の内部(λ<0)であるか外部(λ=0)であるかを示す固有値λが必要に応じて修正される。
【0114】
図11は、渦領域抽出処理の説明図である。
【0115】
図11(A)は、λ<0の領域を模式的に示した図、図11(B)は、|ω|の値による渦領域分離の説明図である。ここでも簡単のため2次元平面で示してある。
【0116】
図11(A)では、斜線を施した領域がλ<0の領域(渦領域内部)であるとする。ここには、この段階では未だ不明ではあるが、図示の2つの渦が存在しているものとする。ここでは、局所固有値算出処理(S25)で算出された固有値λがλ<0の領域内について、渦度絶対値算出処理(S26)で求められた渦度絶対値、すなわち渦の強さ|ω|の値を調べる。そして|ω|がある閾値と比較され、閾値以下の|ω|を持つボクセルのλをλ=0に置き換える。例えばここでは図11(B)に斜線を付して示した領域内のボクセルの|ω|が閾値以下であるとする。このように、λを用いて一旦抽出した渦領域を|ω|を用いて必要に応じて分離することにより、渦領域がより正確に抽出される。
【0117】
このようにして渦領域の抽出を行なった後、次に図6の渦の中心を示す線分作成処理(S28)が実行される。この渦の中心を示す線分作成処理(S28)は、図3のテキストデータ作成部250での処理に対応する。
【0118】
図12は、図6の渦の中心を示す線分作成処理(S28)の詳細フローを示すフローチャートである。また、図13は、ボクセルの模式図である。
【0119】
図13に示すように、ボクセルの各頂点には、図13に矢印で示すようなベクトルで表現される流速データが対応づけられている。ここでは代表的に、1つの頂点の流速データを(u,v,w)(uはx方向の流速、vはy方向の流速、wはz方向の流速)であらわす。
【0120】
図12に示す渦の中心を示す線分作成処理では、このボクセルの、z方向を向いた2つの面(I面とII面)、y方向を向いた2つの面、およびx方向を向いた2つの面の順に、以下の処理が実行される。ここでは、z方向を向いた2つの面(I面とII面)について説明する。y方向、x方向を向いた各2つの面についても、方向が異なるだけであって、同じ処理が実行される。
【0121】
z方向を向いた2つの面(I面とII面)のうちの、先ずはI面について、そのI面の4つの隅に相当する4つの頂点の各流速ベクトルをI面に写像し、その写像したベクトルを取り扱う。換言すると、4つの各頂点の流速ベクトル(u,v,w)のうち、z方向分wを無視し、x,yの成分(u,v)に基づいて流体が回転しているか否かが判定される。回転しているか否かの判定基準については後述する。I面について流体が回転していることが判定されると、次に同じz方向を向いたもう1つの面であるII面について同様の判定が行なわれる。すなわち、そのII面の4つの隅に相当する4つの頂点の各流速ベクトル(u,v,w)のz成分2は無視され、x,y成分(u,v)に基づいて、流体が、I面での回転方向と同じ方向に回転しているか否かが判定される。さらに、後述する湧出し、吸込みについてもI面とII面とで同一か否かが判定される。I面とII面が共に同じ方向に回転しており、湧出し、吸込みについても同一であると判定されると、このボクセルに、正の定数Vcを割り当てる。この定数Vcは、このボクセルが渦の中心軸上のボクセルであることをあらわしている。これと同じ処理を、流体空間内の、少なくとも1つの頂点がλ<0(渦領域内)であるボクセルについて実行する。さらにこれと同じ処理を、y方向を向いた2つの面について実行し、さらに同じ処理をx方向を向いた2つの面について実行する。
【0122】
図12は、基本的には以上の処理をあらわしたフローチャートであり、このフローチャートに沿って処理内容を説明すると以下の通りとなる。
【0123】
ステップS31では,z,y,xのいずれの方向について処理を実行するか設定する。上述の説明はz方向についての処理である。
【0124】
ステップS32では、z,y,xの3方向とも処理が終了しているか否かが判定され、z,y,xの3方向とも処理が終了すると、ステップS42に進む。ここでは、ステップS42の処理の説明は後回しにする。ここでは、ステップS31でz方向が設定されたものとして以下説明する。ステップS33では、未処理のボクセルの中から1つのボクセルを次の処理実行対象のボクセルとして設定する。ステップS34では、ステップS31で設定した方向(ここではz方向)に関し、全てのボクセルの処理が終了したか否かが判定される。このステップS34で現在設定されている方向(ここではz方向)に関し全てのボクセルの処理が終了したと判定されるとステップS31に戻り、次の方向(例えばz方向の次はy方向)が設定される。ステップS33で未処理のボクセルが設定されるとステップS34を経由してステップS35に進む。このステップS35では、ステップS33で設定されたボクセルの8つの頂点のうちのいずれか1つの頂点でもλ<0を満足するか否かが判定される。8つの頂点の全てがλ=0(前述の通り、λ≧0はλ=0に置き換えてある)のときは、そのボクセルは渦領域の外にあるため、そのボクセルについては処理は不要であり、ステップS33に戻って次のボクセルを設定する。
【0125】
ステップS35で8つの頂点のうちの1つでもλ<0であると判定されると、ステップS36に進み、現在設定されている方向(ここではz方向)を向いた2つの面(I面とII面)のうちの、I面について、流体が回転をしているか否かが判定される。この判定に当たっては、上述の通り、そのI面の4つの隅に相当する4つの頂点の流速ベクトルの、現在設定されている方向(ここではz方向)の流速成分は無視され、残りの2方向の流速成分が考慮される。回転の判定基準の説明はさらに後に回す。
【0126】
I面について回転していないと判定された場合は、そのボクセルのその方向(ここではz方向)についての処理を中止してステップS33に戻る(ステップS37)。I面について回転していると判定されると、今度は同じ方向(ここではz方向)を向いたもう1つの面(II面)について同様の判定が行なわれる(ステップS38)。II面について回転していないと判定された場合(ステップS39)、およびII面について回転しているがI面についての回転方向と同一方向(後述する湧出し、吸込みについても同一)の回転ではないと判定された場合(ステップS40)は、ステップS33に戻る。II面がI面と同じ方向(湧出し、吸込みについても同一)に回転していると判定されると、ステップS41に進み、現在の処理対象のボクセルに、中心軸上のボクセルであることを表わす値Vcを設定した上でステップS33に戻る。ステップS33では、現在処理を行なっている方向(ここではz方向)について未処理のボクセルの中から次の1つのボクセルを次に処理すべきボクセルとして設定する。
【0127】
以上の処理がz,y,xの3方向の全てについて終了すると、ステップS42に進む。ステップS42では、中心軸上のボクセルであることを示す値Vcが設定されたボクセルのうち、ほぼ1次元的に並んだボクセル群にスプライン関数を当て嵌めて渦の中心線を算出する。ほぼ1次元的に並んだボクセル群という条件を入れているのは、1次元的に並んだボクセル以外に、それらのボクセルから離れた位置に別の副次的な中心線が存在することもあり得るからである。渦の中心線が求められると、次にステップS43に進む。ここでは、中心線の長手方向中央の点で、その中心線と垂直に交わる平面を考えたとき、その平面上における渦領域(λ<0の領域)の表面までの、中心線(と平面との交点)からの最短距離rminと最長距離rmaxが求められる。これらの最短距離rminと最長距離rmaxとにより渦領域を概括的に示した領域が定まり、その領域が中心線に沿って延びた渦の中心を示す線分が作成される。
【0128】
図6の渦の中心を示す線分作成処理(S28)では、以上のようにして求めた渦の中心線と渦の領域とによる渦の中心を示す線分のデータが作成される。この渦の中心を示す線分のデータは、中心線を表わす関数と、rmin,rmaxからなる渦領域を表わすデータからなり、個々のポリゴンには対応づけられていないテキストデータとして作成される。
【0129】
次に、図12のステップS36,S38における、回転しているか否かの判定処理について説明する。
【0130】
図14は、回転判定アルゴリズムの説明図である。ここでも簡単のため、各ボクセルを2次元平面上に写像したときのピクセルとして示してある。
【0131】
図14(A),(B)とも、斜線が付されたボクセルが流体が回転していると判定されるボクセルであり、その右隣りのボクセルは流体が回転していないと判定されるボクセルである。図14(A)では、斜線が施されたピクセルの4つの隅の流速ベクトルは、そのピクセルの各辺との角度90°以内で各辺の外側を各辺に沿って同じ回転方向(ここでは時計回りの回転方向)を向いている。この場合、このピクセルの中に渦の湧出しの中心点が存在することになる。
【0132】
また図14(B)では、斜線が施されたピクセルの4つの隅の流速ベクトルは、各辺の内側を向き、各辺から90°以内で各辺に沿って同じ回転方向を向いている。この場合このピクセルの中に渦の吸込みの中心点が存在することになる。
【0133】
尚、図14(A),(B)の斜線が付されたピクセルの右隣りのピクセルは、上記の湧出し、吸込みのいずれの条件にも合致しない。
【0134】
ここでは、同一方向(例えばz方向)を向いたI面とII面のうちの一方の面についてのみ説明したが、同一方向を向くI面とII面の双方の面が、同一方向に、湧出し吸込みも同一に回転していることをもって、そのピクセル(ボクセル)に、渦の中心線上のボクセルであることを表わす値Vcが設定される。
【0135】
但し、図14を参照して説明した回転判定アルゴリズムでは、中心線上のボクセルであるにもかかわらず中心線上のボクセルであると判定されないことがまれに発生する。しかしながら、ここではスプライン関数をあてはめて中心線を定めているので、中心線上のボクセルにまれに値Vcが設定されていなくてもスプライン関数が連続するため問題はない。
【0136】
但し、図14を参照して説明した判定アルゴリズムに、さらに以下の判定アルゴリズムを追加することで、中心線上のボクセルであることの判定精度を高めることも可能である。
【0137】
図15は、付加的に追加可能な回転判定アルゴリズムの説明図である。
【0138】
図15(A),(B)とも、右下のピクセル(ボクセル)が流体が回転しているピクセル(ボクセル)であると判定される。ただしここではI面とII面のうちの一方の面のみ示してあり、I面とII面との双方で回転の条件を満たす必要があることは上述の通りである。
【0139】
図15(A),(B)の右下の4角形のピクセルは、いずれも、図14(A),(B)のいずれの回転判定条件を満足していない。そこで、そのピクセルの対角を結んで三角形を作る。一対の対角を結ぶことで2つの三角形が形成され、別の一対の対角を結ぶことでもう2つの三角形が形成される。それら4つの三角形のそれぞれについて、図14を参照して説明した判定基準と同じ判定基準を適用する。すなわち、図15(A),(B)のそれぞれに斜線を付した三角形に着目すると、その三角形の3つの頂点の流速ベクトルは各辺から90°以内で各辺に沿って同一の回転方向を向いており、かつ湧出し、吸込み(図15(A),(B)はいずれも湧出し)の条件も満たしている。このような三角形が存在するボクセルにも、値Vcを設定する。図14の判定アルゴリズムに、この図15の判定アルゴリズムを追加することで、渦の中心線上のボクセルであることの判定精度を高めてもよい。
【0140】
次に、図6のフローチャート中の、ポリゴン数削減処理(S29)について説明する。
【0141】
図16は、ポリゴン数削減処理の説明図である。ここでも、簡単のため、ポリゴンを2次元的なピクセルとして示してある。またここでは、これも簡単のため、縦4個×横4個の合計16個のポリゴン(ピクセル)のみ示してある。
【0142】
各ポリゴン(ピクセル)の各頂点には、λが対応づけられている。ここでは、このλの添字の2は省略し、座標を表わすi,j等を添字として付してある。ただし、各座標のλを代表させるときは添字2を付してλと表記する。前述の通り、各λは、λ<0又はλ=0である。ここでは、絶対数の小さいマイナスの値、例えば−0.1等を設定し、Marching Cube法を適用してλ=−0.1の等値面からなるポリゴンを生成する。このポリゴンは、図16上では、線分としてあらわれている。Marching Cube法自体は、例えば前掲の非特許文献4に記載されている公知の技術である。このλ=−0.1の等値面からなるポリゴンは、渦領域の表面を画定するポリゴンである。図16では、斜めの実線の線分が各ポリゴンに相当する。3次元ボクセルが配列されている流体空間では、1つずつのポリゴンは三角形となる。
【0143】
このようにして生成したポリゴンの数を計数する。ここでは、図5を参照して説明したように複数のCPU11B〜11Dで領域を分担して(図9参照)処理を実行している。このためここでは、CPU11Aが、それら複数のCPU11B〜11Dからそれぞれの分担領域のD1〜D3ポリゴン数の報告を受け、袖領域D12,D23におけるポリゴン数が二重に計数されないようにしながらポリゴン数を集計する。そしてこのポリゴン数が設定値を上回わった時は、各CPU11B〜11Dに指示してボクセルを、ポリゴン数が設定値以下となるまで、流体空間が粗く分割されて新たなボクセルに統合させる。具体的には、例えば図16に示す縦4個×横4個のボクセルを隣接した縦2個×横2個ボクセルを統合して、図16に一点鎖線で示す新たなボクセルとする。この新たなボクセルに統合するということは、この新たなボクセルの各頂点のλのみ残し新たなボクセルの各頂点以外の点のλを削除することにより、解像度を下げることを意味している。このようにして作成された新たなボクセルに関し、上記と同様にしてλ=−0.1の等値面(ポリゴン)を作成してそのポリゴンの数を集計する。x,y,z方向に並ぶ、もともとのボクセルの数をそれぞれm,n,oとしたとき、ボクセルの数をm/2,n/2,o/2;m/3,n/3,o/3;…のように順次下げながら、すなわち、分解能を順次下げながら、ポリゴンの数が設定値以下となるまでポリゴンの作成を繰り返し、そのポリゴンの数の集計を行なう。
【0144】
ここで、この設定値は、図1に示す可視化用計算機30で渦の可視化のために十分な演算速度を持って処理することが可能なポリゴン数(例えば100万個等)を意味している。この設定値は、可視化用計算機30があらかじめ指定した値であってもよく、あるいは、一律に設定された、可視化用計算機として用い得る標準的なPCで十分な演算速度を持って処理できる値であってもよい。
【0145】
設定値以下のポリゴン数が得られたら、そのポリゴン数が得られたボクセル1つずつについて、渦度の強さ|ω|が設定される。もともとの統合前の各ボクセルについて渦度の強さ|ω|が求められており(図6のステップS26)、統合したボクセルについては、その統合したボクセルに含まれる複数の元々のボクセルの渦度の強さ|ω|の平均値や中央値等の代表値が設定される。
【0146】
このようなポリゴン数削減処理(図6のステップS29)により、流体空間内のλや|ω|についての分解能は低下するが、可視化用計算機30ではスムーズな表示が可能となる。このため渦の時間的変化(発生、消滅、分岐、合流等)の観察が容易となり、また、渦を別の角度から見るときの回転や、その他の渦の拡大、縮小、移動等の操作に対する応答性が向上する。また、表示の分解能は、渦抽出演算時点の分解能より低下するが、渦の中心線と領域とを表わすテキストデータの作成処理は分解能を下げる前の段階で行なっている。したがって、例えば分解能を下げることによってあらわれなくなるような、重要な過渡現象などもきちんと捉えることができる。
【0147】
図6のデータ出力処理(S30)では、図3のデータ出力部270に対応する処理が行なわれる。すなわちここでは、渦の中心を示す線分作成処理(S28)で作成された渦の中心を示す線分を表わすテキストデータの出力処理が行なわれる。さらに、このデータ出力処理(S30)では、ポリゴン数削減処理(S29)で統合された後の新たなボクセルの各頂点に対応づけられたλ、および統合後の新たなボクセルに対応づけられた|ω|のデータも出力される。また、渦の中心線上のボクセル(値Vcが対応づけられたボクセル)の位置座標も出力してもよい。ただし、本実施形態では、ポリゴン数削減処理(S29)を実行する途中で作成されたポリゴンを表わすデータは出力されない。その理由は、ポリゴンを表わすデータはかなり大きなデータ量となり、通信時間や格納しておくためのメモリ容量上不利であること、および、必要であれば可視化用計算機30で十分な演算速度でポリゴンを作成することが可能であること、である。
【0148】
このようにして、図1に示す大規模計算機10から出力されたデータは、ファイルサーバ20に一旦格納され、可視化用計算機30からの要求に応じて可視化用計算機30に送られる。可視化用計算機30では受け取ったデータに基づいて表示画面31上にテキストデータに基づく渦の中心を示す線分やボクセルデータに基づく渦自体の表示が行なわれる。
【0149】
ここでは、可視化用計算機30における表示態様の如何を問うものではないが、以下では、可視化用計算機30での典型的な表示態様を説明しておく。
【0150】
最小限の表示としては、渦の中心を示す線分を表わすテキストデータに基づく渦の中心を示す線分の表示であり、渦の発生、消滅、合流、分岐、移動などを視認することができる。
【0151】
詳細な表示としては、前述と同様にして、可視化用計算機30側でMarching Cube法を用いてポリゴンデータを作成し、表示画面31上に渦の表面形状を表示することが挙げられる。
【0152】
こうすると、テキストデータに基づく渦の中心を示す線分の表示では不明な、渦の詳細な形状を知ることができる。また、このようなポリゴンによる渦の表面形状の表示に加え、その表面のポリゴンを含むボクセルに対応づけられた|ω|をその大きさに応じた色で表示してもよい。例えば大きな値の|ω|については赤色、小さな値の|ω|については青色で表示する。こうすると、渦の強さが色分布で表示され、渦中心の方向も理解可能となる。
【0153】
また、ポリゴンによる渦の表面形状の表示に加え、その表面形状を半透明で表示し、テキストデータに基づく渦の中心線や領域を重畳して表示してもよい。さらに、上記の各表示態様について、断面を表示して渦の内部を観察してもよい。
【0154】
次に図面を参照しながら表示例を説明する。
【0155】
図17は、渦表示の一例を示す図である。
【0156】
ここでは、立方体内に流体が満たされており、その立方体の上面を等速で移動させた場合を模擬して作成した流速分布を基にして抽出した渦を表わしたものである。その渦の表面の|ω|の大きさを色の濃淡であらわしてもよい。
【0157】
図18は、渦を、中心線が左右に延びる方向から見て半透明で表示した図である。また、図19は、その渦を中心線が紙面に垂直な方向に延びる方向から見て、渦を半透明で示した図である。
【0158】
図18,図19には中心線に相当する値Vcが設定されたボクセルが示されている。
【0159】
図20,図21は、それぞれ、図18,図19の表示画面上にさらに中心線と渦の中心を示す線分の領域を表わす線を重畳して示した図である。
【0160】
本実施形態によれば、十分な描画速度をもって渦をこのような様々な形態で表示することが可能となる。また、本実施形態によれば、ボクセルを統合する前の高い分解能の演算で渦の中心を示す線分のテキストデータを作成しているため、重要な情報の欠落を避けることができる。
【0161】
図22は、本実施形態の変形例を示した図である。
【0162】
ここには、図5に示す大規模計算機と同じ大規模計算機10が示されている。ここで、図5では、流体空間内の流速分布を表わすデータはファイルサーバ20(図1参照)にあらかじめ格納されていてそのデータを受け取るものとして説明した。これに対し、この図22では、流体空間内の流速分布を求めるシミュレーションもこの大規模計算機10で実行される。流体空間が領域分割され、各CPU11A〜11Dでは各領域を分担し、その分担した領域について先ずシミュレーションにより流速分布を算出し、次いで渦抽出を行なっている。渦抽出が終了すると、次の時刻についての流速分布算出のシミュレーションが行なわれ、その時刻の渦抽出が行なわれる。図22の各CPU11A〜11Dでは、このようにして、流速分布算出のシミュレーションと渦抽出が交互に行なわれている。このように、本件では、渦抽出のみに特化している必要はなく、流速分布算出のシミュレーション用の計算機と兼ねてもよい。
【符号の説明】
【0163】
10 大規模計算機
20 ファイルサーバ
30 可視化用計算機
31 表示画面
40 通信回線網
100 渦抽出プログラム
110,210 データ取得部
120,220 補間演算部
130,230 第1の数値データ算出部
140,240 第2の数値データ算出部
150,250 テキストデータ作成部
160,260 ポリゴン数削減処理部
170,270 データ出力部
200 渦抽出装置

【特許請求の範囲】
【請求項1】
流体空間内に分散した複数の各点の流速データを取得するデータ取得部と、
前記データ取得部で取得した流速データに基づいて、前記流体空間内を複数のボクセルに分割したときの各ボクセルの各頂点ごとの、該各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する第1の数値データ算出部と、
前記データ取得部で取得した流速データに基づいて流体の渦の中心線を求めるとともに、前記第1の数値データ算出部で算出された前記各頂点ごとの前記第1の数値データに基づいて該中心線の周りの渦領域の寸法を求め、該中心線と該寸法とを表わすテキストデータを作成するテキストデータ作成部と、
前記第1のデータ算出部で算出された前記第1の数値データの等値面で構成される、前記渦領域の表面を画定するポリゴンの数を計数し、前記複数のボクセルを、該ポリゴンの数が設定値以下となるまで前記流体空間が粗く分割された新たなボクセルに統合することにより、前記第1の数値データを、該新たなボクセルの各頂点に対応する第1の数値データにまで間引くポリゴン数削減処理部と、
前記テキストデータ作成部で作成されたテキストデータおよび前記ポリゴン数削減処理部で得られた前記新たなボクセルの各頂点に対応する前記第1の数値データを出力するデータ出力部とを有することを特徴とする渦抽出装置。
【請求項2】
前記データ取得部で取得した流速データに基づいて、前記第1の数値データ算出部で算出された前記第1の数値データに基づいて判定される渦領域を構成する前記各ボクセルの渦の強さを指標する第2の数値データを算出する第2の数値データ算出部をさらに有し、
前記ポリゴン数削減処理部は、前記新たなボクセルの各頂点に対応する第1の数値データにまで間引くとともに、前記第2の数値データ算出部で算出された第2の数値データに基づいて前記新たなボクセルそれぞれに対応する第2の数値データを作成するものであり、
前記データ出力部は、前記テキストデータおよび前記第1の数値データに加え、さらに、前記新たなボクセルに対応する前記第2の数値データを出力するものであることを特徴とする請求項1記載の渦抽出装置。
【請求項3】
前記データ取得部で取得した流速データに基づく補間演算により、前記流体空間を構造格子に分割したときの複数のボクセルの各頂点ごとの流速データを算出する補間演算部を有することを特徴とする請求項1又は2記載の渦抽出装置。
【請求項4】
前記第1の数値データ算出部は、
前記各ボクセルの各頂点の流速勾配行列を、代表的に
【数1】

とし、
【数2】

【数3】

ただし、流体空間内のx,y,z方向の流速u,v,wをqで代表させ、かつx,y ,zをrで代表させたとき、
【数4】

であり、またJは行列Jの転置行列である。
としたときの、行列A=S+Qの3つの固有値λ,λ,λを値順にλ<λ<λ(但し、λ,λ,λはそれぞれλ,λ,λのいずれか)と並べたときの中央の値の固有値λを求め、該固有値λに由来する数値データを前記第1の数値データとするものであることを特徴とする請求項1から3のうちいずれか1項記載の渦抽出装置。
【請求項5】
前記第2の数値データ算出部は、
前記各ボクセルの流速ベクトルをUとしたとき、
【数5】

但し、
【数6】

×は外積
|ω|はωの大きさ
を表わす。
を算出し、該|ω|に由来する数値データを前記第2の数値データとするものであることを特徴とする請求項2記載の渦抽出装置。
【請求項6】
前記テキストデータ作成部は、流体空間内の関心点の周囲を取り巻く各点の流速データにより表わされる液体の流れの方向に基づいて該関心点が前記中心線上の点であるか否かを判定する処理を複数の関心点について実行することにより、該中心線を求めるものであることを特徴とする請求項1から5のうちいずれか1項記載の渦抽出装置。
【請求項7】
前記テキストデータ作成部は、前記渦領域の寸法として、前記中心線上の代表点から、該中心線が交わる方向に広がる面内での前記渦領域表面までの最短距離と最長距離とを求めるものであることを特徴とする請求項1から6のうちいずれか1項記載の渦抽出装置。
【請求項8】
プログラムを実行する演算装置により実行され、該演算装置を、
流体空間内に分散した複数の各点の流速データを取得するデータ取得部と、
前記データ取得部で取得した流速データに基づいて、前記流体空間内を複数のボクセルに分割したときの各ボクセルの各頂点ごとの、該各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する第1の数値データ算出部と、
前記データ取得部で取得した流速データに基づいて流体の渦の中心線を求めると共に、前記第1の数値データ算出部で算出された前記各頂点ごとの前記第1の数値データに基づいて該中心線の周りの渦領域の寸法を求め、該中心線と該寸法とを表わすテキストデータを作成するテキストデータ作成部と、
前記第1のデータ算出部で算出された前記第1の数値データの等値面で構成される、前記渦領域の表面を画定するポリゴンの数を計数し、前記複数のボクセルを、該ポリゴンの数が設定値以下となるまで前記流体空間が粗く分割された新たなボクセルに統合することにより、前記第1の数値データを、該新たなボクセルの各頂点に対応する第1の数値データにまで間引くポリゴン数削減処理部と、
前記テキストデータ作成部で作成されたテキストデータおよび前記ポリゴン数削減処理部で得られた前記新たなボクセルの各頂点に対応する前記第1の数値データを出力するデータ出力部とを有する渦抽出装置として動作させることを特徴とする渦抽出プログラム。
【請求項9】
流体空間内に分散した複数の各点の流速データを取得するデータ取得過程と、
前記データ取得過程で取得した流速データに基づいて、前記流体空間内を複数のボクセルに分割したときの各ボクセルの各頂点ごとの、該各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する第1の数値データ算出過程と、
前記データ取得過程で取得した流速データに基づいて流体の渦の中心線を求めるとともに、前記第1の数値データ算出過程で算出された前記各頂点ごとの前記第1の数値データに基づいて該中心線の周りの渦領域の寸法を求め、該中心線と該寸法とを表わすテキストデータを作成するテキストデータ作成過程と、
前記第1のデータ算出過程で算出された前記第1の数値データの等値面で構成される、前記渦領域の表面を画定するポリゴンの数を計数し、前記複数のボクセルを、該ポリゴンの数が設定値以下となるまで前記流体空間が粗く分割された新たなボクセルに統合することにより、前記第1の数値データを、該新たなボクセルの各頂点に対応する第1の数値データにまで間引くポリゴン数削減処理過程と、
前記テキストデータ作成過程で作成されたテキストデータおよび前記ポリゴン数削減処理過程で得られた前記新たなボクセルの各頂点に対応する前記第1の数値データを出力するデータ出力過程とを有することを特徴とする渦抽出方法。
【請求項10】
流体空間内に分散した複数の各点の流速データに基づいて該流体空間内の渦を表わすデータを作成する渦抽出装置と、該渦抽出装置で作成されたデータを受け取って該渦を表示する渦表示装置とを有する渦抽出表示システムであって、
前記渦抽出装置が、
流体空間内に分散した複数の各点の流速データを取得するデータ取得部と、
前記データ取得部で取得した流速データに基づいて、前記流体空間内を複数のボクセルに分割したときの各ボクセルの各頂点ごとの、該各頂点が流体の渦領域の内側にあるか外側にあるかを指標する第1の数値データを算出する第1の数値データ算出部と、
前記データ取得部で取得した流速データに基づいて流体の渦の中心線を求めるとともに、前記第1の数値データ算出部で算出された前記各頂点ごとの前記第1の数値データに基づいて該中心線の周りの渦領域の寸法を求め、該中心線と該寸法とを表わすテキストデータを作成するテキストデータ作成部と、
前記第1のデータ算出部で算出された前記第1の数値データの等値面で構成される、前記渦領域の表面を画定するポリゴンの数を計数し、前記複数のボクセルを、該ポリゴンの数が設定値以下となるまで前記流体空間が粗く分割された新たなボクセルに統合することにより、前記第1の数値データを、該新たなボクセルの各頂点に対応する第1の数値データにまで間引くポリゴン数削減処理部と、
前記テキストデータ作成部で作成されたテキストデータおよび前記ポリゴン数削減処理部で得られた前記新たなボクセルの各頂点に対応する前記第1の数値データを出力するデータ出力部とを有する渦抽出装置であることを特徴とする渦抽出表示システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2011−128798(P2011−128798A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−285535(P2009−285535)
【出願日】平成21年12月16日(2009.12.16)
【出願人】(000005223)富士通株式会社 (25,993)
【出願人】(304024430)国立大学法人北陸先端科学技術大学院大学 (169)