(57)【特許請求の範囲】
【請求項１】
混合格子を用いる有限要素法へ解適合格子法（ＡＭＲ）を適用して物理量の数値解析を行う数値解析装置であって、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）の自由な組み合わせを用いて作成された初期格子データを格納する初期格子記憶手段と、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割する格子分割手段と、分割された要素を削除して分割前の要素に戻す格子削除手段と、要素の分割削除によって生じた不完全な節点である中間節点を解消するように遷移要素を生成する遷移要素生成手段と、格子の各要素について分割削除の指針値を計算する指針値計算手段と、指針値に基づいて要素を分割するか削除するかを判定する分割削除判定手段と、遷移要素を削除する遷移要素削除手段とを具備することを特徴とする数値解析装置。
【請求項２】
前記遷移要素生成手段は、要素における中間節点の配置状態に応じた個別の分割方法で要素を分割する個別分割処理手段と、前記個別分割処理手段により要素を分割できない場合に、四面体要素か六面体要素か五面体要素である多面体要素の体心を頂点とし多面体要素の各面を底面とする多面体に分割してからさらに中間節点を通る面で分割するという標準分割方法で要素を分割する標準分割処理手段とを備えることを特徴とする請求項１記載の数値解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、混合格子型解適合格子法を用いた数値解析装置に関し、特に、四面体と五面体（ピラミッド要素、プリズム要素）と六面体を組み合わせた格子を変化に応じて分割削除する混合格子型解適合格子法を用い、遷移要素を生成して有限要素法により計算する数値解析装置に関する。
【背景技術】
【０００２】
圧縮性の高速流体の非定常解析などにおいては、時間とともに変化する衝撃波のような物理量の不連続を取り扱う。このような場合、高精度な結果を得るためには、要素の細かい格子が必要になる。しかし、解析領域全体を細かい格子で分割すると、計算メモリを大量に消費し、計算速度も低下する。メモリを節約し、計算も高速にするためには、物理量の変化の激しい部分だけ、格子を細かくするとよい。この方法として、解適合格子法がある。解適合格子法としては、ｐ法とｒ法とｈ法があるが、衝撃波解析のように不連続部分を取り扱う場合には、要素の細分化を行うｈ法が最も効果的である。特にｈ法は、AMR（Adaptive Mesh Refinement）法と呼ばれ、要素を細分化するだけでなく、不要な部分の要素を初期の要素に戻すことで、最小限の計算メモリで高精度な解析を行うことができる。
【０００３】
また、近年の数値解析においては、解析対象の形状は複雑化しており、格子生成作業の効率化が求められている。解析対象が複雑な形状でも、歪みの少ない高品質な要素を用いて容易に格子生成できることが重要である。三次元解析では、主に四面体要素と六面体要素が用いられる。四面体要素は形状適合性がよいため、複雑な形状の対象に対しても容易に歪みの少ない要素を用いて格子を生成できるが、計算の効率が悪い。六面体要素は、計算の効率はよいが、複雑な形状の対象に対して格子を生成するのは困難であり、要素が歪んでしまう。その他の要素として、ピラミッド要素、プリズム要素がある。プリズム要素は、形状適合性がよく、精度も高い。
【０００４】
複雑な形状の対象物を扱う問題では、これらの要素からなるHybrid格子を用いる。解析領域に可能な限り六面体要素の格子を用い、格子生成が困難な箇所のみに、四面体要素の格子を用いて解析を行うのが最も効率が良い。四面体要素とプリズム要素で、形状適合性を満足させることができる。六面体要素とプリズム要素で、計算効率性を満足させることができる。さらに他の要素として、ピラミッド要素がある。四面体要素と六面体要素の間に、ピラミッド要素を用いることで、連続な格子を無理なく構成することができる。Hybrid格子を用いることで特に、複雑な形状の対象物の周りに、歪みの少ない要素を生成でき、高精度な解析を行うことができる。Hybrid格子にAMR法を適用する方法を、混合格子型解適合格子法（Hybrid Grid Adaptation： HGA）という。
【０００５】
しかし、AMR法を適用した場合、要素の分割・削除によって、分割された要素とその隣接要素との間や、稜を共有する要素との間に、中間節点（不完全な頂点）が生成される。一般に、このような中間節点が生成されたままであると、計算を実行することができない。そのために、何らかの対策を行う必要がある。要素中心有限体積法を用いる場合には、境界面数を調節することにより、流束を評価して計算を行うことができる。
【０００６】
AMR法に関する従来例をいくつか簡単に説明する。本発明者は、特許文献１において、混合格子型解適合格子法を用いて、格子の自由度と計算効率を両立させる数値解析装置を提案した。要素中心有限体積法により数値解析を行う数値解析装置である。四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）の自由な組み合わせを用いて作成した初期格子データを用いる。要素ごとに密度に基づいて分割削除の指針値を計算する。要素の体積が最小値よりも大きくて、要素の格子レベル（分割回数）が最大でなくて、分割削除の指針値が分割しきい値よりも大きければ、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を分割する。要素の格子レベルが零の初期格子でなくて、分割削除の指針値が削除しきい値よりも小さければ、要素を削除併合して分割前の要素に戻す。
【０００７】
非特許文献１には、適応型メッシュ方法が開示されている。階層的な要素分割に基づく適応型の細分化法を定式化したものである。四面体と六面体とプリズムとピラミッドを任意に混合したメッシュを解析した。必要なメモリを、できるだけ少なくするようにした。この方法は、混合メッシュ上で計算する代数的な多格子流体解析装置とともに用いる。粘性流も非粘性流も、四面体と六面体と混合メッシュを適応的に細分化することで、計算できる。
【特許文献１】特願2002-195688号明細書
【非特許文献１】D. J. Mavriplis; "Adaptive meshing techniques for viscous flowcalculations on mixed element unstructured meshes", Int. J. Numer. Meth.Fluids 2000; 34: 93-111.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の混合格子型解適合格子法を有限要素法に適用することは困難である。一般的には、中間節点を一時的に埋める要素（遷移要素）が用いられる。しかし、遷移要素を使うと、アルゴリズムが複雑になり、要素の形状が歪みやすいため、計算が不安定になるという問題がある。四面体要素のみを用いた場合、四面体要素を用いて遷移要素を作成すればよく、アルゴリズムは簡単である。また、要素の歪みは、ある程度解消される。しかし、六面体要素のみを用いた場合、六面体要素を用いて遷移要素を作成する必要があり、この場合、アルゴリズムが複雑になる。さらに、要素が歪みやすいため、計算が不安定になる。
【０００９】
本発明の目的は、従来のこれらの問題を解決して、有限要素法でも混合格子型解適合格子法で計算できるようにすることである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明では、有限要素法により混合格子型解適合格子法を用いて数値解析を行う数値解析装置に、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）の自由な組み合わせを用いて作成された初期格子データを格納する初期格子記憶手段と、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割する格子分割手段と、分割された要素を削除して分割前の要素に戻す格子削除手段と、要素の分割削除によって生じた不完全な節点である中間節点を解消するように遷移要素を生成する遷移要素生成手段と、遷移要素が生成された格子の各要素について分割削除の指針値を計算する指針値計算手段と、指針値に基づいて要素を分割するか削除するかを判定する分割削除判定手段と、遷移要素を削除する遷移要素削除手段とを具備する構成とする。
【００１１】
また、遷移要素生成手段に、要素における中間節点の配置状態に応じた個別の分割方法で要素を分割する個別分割処理手段と、個別分割処理手段により要素を分割できない場合に一律的な標準分割方法で要素を分割する標準分割処理手段とを備える構成とする。
【発明の効果】
【００１２】
本発明では、上記のように構成したことにより、混合格子型解適合格子法を利用する場合でも有限要素法で安定に計算することができる。AMR法をHybrid格子に対応させることにより、遷移要素の作成・削除のアルゴリズムを、ある程度簡単にすることができ、歪みの少ない遷移要素を作成することができ、低容量計算機で高精度な数値流体解析が行える。さらに、Hybrid格子を用いていることから、形状適合性および計算効率性に優れている。特に、複雑な形状の解析対象物の周りの流体解析においても、格子を容易に生成することができ、高精度な解析を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態について、図１〜図15を参照しながら詳細に説明する。
【実施例１】
【００１４】
本発明の実施例１は、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）とを用い、分割削除の指針値が分割しきい値よりも大きければ、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割し、分割削除の指針値が削除しきい値よりも小さければ、要素を削除して分割前の要素に戻し、分割削除により生じた中間節点を遷移要素により解消して、有限要素法により数値解析を行う数値解析装置である。
【００１５】
図１は、本発明の実施例１における数値解析装置の構成を示す機能ブロック図である。図１において、入力装置１は、初期格子データと分割しきい値データと削除しきい値データと物理量などの各種データやパラメータを入力する手段である。初期格子メモリ２は、格子の初期値を格納するメモリである。分割しきい値メモリ３は、格子分割の判定基準を保持するメモリである。削除しきい値メモリ４は、格子削除の判定基準を保持するメモリである。有限要素法演算装置５は、有限要素法により数値解析を行う手段である。格子分割手段６は、格子の要素を分割する手段である。格子削除手段７は、格子を削除し要素を合併してもとのサイズの要素に戻す手段である。指針値計算手段８は、密度などの物理量をもとに指針値を計算する手段である。分割判定手段９は、分割しきい値と指針値を比較する手段である。削除判定手段10は、削除しきい値と指針値を比較する手段である。表示装置11は、数値解析の結果を表示する手段である。遷移要素生成手段12は、遷移要素を生成する手段である。遷移要素削除手段13は、遷移要素を削除する手段である。
【００１６】
図２は、本発明の実施例１における数値解析装置の動作手順を示す流れ図である。図３は、HGA法に関する手順を示す流れ図である。図４は、数値解析装置の分割手順と削除手順を示す流れ図である。
【００１７】
図５は、本発明の実施例１における数値解析装置で用いる格子要素の分割方法を示す図である。図５（ａ）は、四面体の８分割法（Type１）を示す図である。図５（ｂ）は、四面体の６分割法（Type２）を示す図である。図５（ｃ）は、ピラミッド（四角錐）要素を、６つのピラミッドと４つの四面体に分割する10分割法を示す図である。図５（ｄ）は、プリズム（三角柱）要素の８分割法を示す図である。図５（ｅ）は、六面体の８分割法を示す図である。図５(ｆ)は、三角形の面を分割する方法を示す図である。図５(ｇ)は、四角形の面を分割する方法を示す図である。図５（ｈ）は、要素のFamily関係を説明する図である。
【００１８】
図６（ａ）は、二次元における格子レベル差０の要素を分割する方法を示す図である。図６（ｂ）は、二次元における格子レベル差１の要素を分割する方法を示す図である。図６（ｃ）は、二次元における格子レベル差１の要素を削除する方法を示す図である。図６（ｄ）は、二次元における格子レベル差０の要素を削除する方法を示す図である。図６（ｅ）は、二次元における中間節点と遷移要素の説明図である。図７（ａ）は、遷移要素の生成手順を説明する図である。図７（ｂ）は、遷移要素の削除手順を説明する図である。図７（ｃ）は、遷移要素の生成削除を説明する図である。図８は、遷移要素の生成方法を説明する図である。図９は、遷移要素の生成削除の際に隣接要素のデータを修正するための場合分けの方法を説明する図である。
【００１９】
上記のように構成された本発明の実施例１における数値解析装置の動作を説明する。最初に、図１を参照しながら、数値解析装置の機能の概要を説明する。数値解析装置の基本的な構成は、従来の装置と同じである。有限要素法で計算できるように、HGA（Hybrid
Grid Adaptation）法のアルゴリズムに、遷移要素の生成削除の手続きを導入したものである。入力装置１から、初期格子データと分割しきい値データと削除しきい値データと物理量などの各種データやパラメータを入力する。格子の初期値は、初期格子メモリ２に格納しておく。格子分割の判定基準を、分割しきい値メモリ３に保持しておく。格子削除の判定基準を、削除しきい値メモリ４に保持しておく。これらのデータに基づいて、有限要素法演算装置５で、有限要素法により数値解析を行う。
【００２０】
指針値計算手段８で、密度などの物理量をもとに指針値を計算する。分割判定手段９で、分割しきい値と指針値を比較する。削除判定手段10で、削除しきい値と指針値を比較する。指針値が分割しきい値以上であれば、格子分割手段６で、格子の要素を分割する。指針値が削除しきい値以下であれば、格子削除手段７で、格子を削除し要素を合併してもとのサイズの要素に戻す。遷移要素作成手段12で、格子の生成削除で生じた中間節点を解消するための遷移要素を生成する。中間節点が解消された格子について、有限要素法演算装置５で、有限要素法により数値解析を行う。指針値計算手段８で、密度などの物理量をもとに指針値を計算する。その後、遷移要素削除手段13で、遷移要素を削除する。これを繰り返して、数値解析を進める。数値解析の結果を、表示装置11に表示する。
【００２１】
次に、図２を参照しながら、HGA法による数値解析装置の全体の動作手順の概要を説明する。ステップ１で、有限要素法演算装置５は、初期格子メモリ２から初期格子データを読み込む。ステップ２で、有限要素法による計算を実行する。ここで実行する時間単位数は１つでもよく、複数でもよい。ステップ３で、すべての時間単位について計算が終了したかを検査する。終了していれば、ステップ４で、結果を表示して処理を終了する。終了していなければ、ステップ５で、指針値を計算し、ステップ６で、遷移要素を削除し格子データを更新する。格子データの更新とは、隣接要素などのデータの修正のことである。格子データの更新は、要素の分割、削除、遷移要素の削除、作成後に、それぞれ実行する。
【００２２】
ステップ７で、指針値と分割しきい値を比較し、指針値が分割しきい値以上であれば、ステップ８で要素を分割し格子データを更新する。指針値を削除しきい値と比較し、指針値が削除しきい値以下であれば、ステップ９で要素を削除し格子データを更新する。指針値が分割しきい値と削除しきい値の中間であれば、分割も削除もしない。比較と分割と削除の処理を、格子を構成するすべての要素について行う。その後、ステップ10で、遷移要素を生成し格子データを更新して、ステップ２に戻り、有限要素法による計算を実行する。
【００２３】
第３に、図３を参照しながら、数値解析装置のHGA法に特に関係する動作手順の概要を説明する。HGA法の主要部は、図３に示すように、大きく分けて以下の手順で実行される。
（１）分割・削除の指針値の計算、要素へのマーキング
（２）遷移要素の削除
（３）要素の分割
（４）要素の削除
（５）中間節点の存在する要素へのマーキング
（６）遷移要素の作成
（７）要素数・節点数のカウント
【００２４】
HGA法の手順（１）では、分割・削除を行う要素を判断する前段階として、要素ごとに指針値を計算する。HGA法では、物理量変化の急激な箇所に要素を集中させることが目的となる。このような箇所を探知するために、通常、密度や、圧力勾配や、圧力の二階微分などを利用する。圧縮性流体の場合、衝撃波や接触不連続面を探知するための指針値に密度が用いられるので、ここでも、密度を分割・削除の指針値として用いる。この指針値に他の物理量を用いることで、他の数値解析分野にも適用が可能である。
【００２５】
各要素の指針値を計算して、指針値が分割のしきい値よりも大きければ、分割・削除フラグを「分割」に設定する。削除のしきい値よりも小さければ、分割・削除フラグを「削除」に設定する。その中間であれば、分割・削除フラグを「分割・削除を行わない」に設定する。さらに、各要素の格子レベル（分割回数）が、予め設定しておいた最大値に等しい時は、その要素の分割は行われない。また、要素体積が、予め設定しておいた最小値よりも小さい場合は、格子レベルが最大でなくとも、分割・削除フラグを「分割」に設定しない。また、格子レベルが０（初期格子）の場合、削除は行われない。HGA法の手順（２）では、遷移要素を削除する。
【００２６】
HGA法の手順（３）では、要素の分割を行う前に、着目要素と、その隣接要素や、辺（稜）を共有する要素の情報により、要素の再マーキングを行う。この作業は、着目要素とその隣接要素、節点を共有する要素との格子レベルの差が１以内に抑えられるようになるまで、再帰的に繰り返される。つまり、１つの辺（稜）上に中間節点は１個までしか取れないようになっている。その後、各要素形状に応じた分割ルーチンが実行される。HGA法の手順（４）では、要素を削除する。要素の削除は、分割の逆の方法で行う。要素の削除は、特定の条件を満たす場合に実行される。HGA法の手順（５）では、中間節点の存在する要素へマーキングする。HGA法の手順（６）では、遷移要素を作成する。HGA法の手順（７）では、要素数・節点数をカウントする。HGA法の各手順の詳しい内容は後述する。
【００２７】
第４に、図４を参照しながら、要素の分割と削除の手順を説明する。図４（ａ）を参照して、要素の分割処理手順を説明する。ステップ11で、データの移動及びメモリの確保を行う。分割する前の要素情報を、仮親の要素の一時メモリに移す。そして、新たにできる節点、要素のメモリを確保する。ステップ12で、新たにできた要素の情報の設定を行う。分割によって新たにできた要素を構成する節点のメモリと、隣接する要素のメモリを設定し、物理量を与える。ステップ13で、分割する以前の要素に隣接していた要素の情報を修正する。隣接要素の節点、その隣接要素、要素境界面数のデータを修正する。ステップ14で、節点を共有する要素データの設定と修正を行う。要素の分割により新たに生成された節点と既存の節点との節点共有要素のデータを設定、修正する。ステップ15で、分割する以前の要素と辺を共有する要素のデータを修正する。節点を共有する要素を検索し、新たにできた節点を要素情報に追加し、要素データを修正する。ステップ16で、仮親のメモリの解放を行う。
【００２８】
図４（ｂ）を参照して、要素の削除処理手順を説明する。ステップ21で、仮親のメモリの確保とデータの移動を行う。削除以前の親要素の情報を仮親の要素に移す。ステップ22で、削除後の要素情報の設定を行う。削除後の要素のセルデータと、隣接要素の要素データを設定する。ステップ23で、削除される以前の要素に隣接していた要素の情報を修正する。ステップ24で、節点で隣接する要素データの修正を行う。要素が削除されるのに伴い、節点の隣接要素データを修正する。ステップ25で、削除される以前の要素と辺を共有する要素の要素データを修正する。節点を共有する要素を検索し、格子レベル差を考慮して、その節点を削除するかを決定し、要素データを修正する。節点を削除した場合は、その節点のメモリを解放する。ステップ26で、仮親のメモリの解放と、削除された要素のメモリの解放を行う。
【００２９】
第５に、図５と図６を参照しながら、要素の分割方法と削除方法を説明する。四面体要素は、８個の四面体要素に分割する方法（図５（ａ）Type1）と、４個の四面体要素と２個のピラミッド要素に分割する方法（図５（ｂ）Type2）の２種類があり、選択が可能である。また、ピラミッド要素は、図５（ｃ）に示すように、６個のピラミッド要素と４個の四面体要素に分割される。プリズム要素は、図５（ｄ）に示すように、８個のプリズム要素に分割される。六面体要素は、図５（ｅ）に示すように、８個の六面体要素に分割される。削除は、この逆である。このように分割削除を行うことで、要素境界面において、三角形の面、四角形の面は、それぞれ、図５(f)、(g)のようになる。こうすることで、要素境界面の取り扱いが、ある程度容易になり、プログラムの複雑化を防ぐことができる。
【００３０】
要素の分割の具体的な手順を説明する。
（１）データ移動とメモリ確保：分割する前の要素の情報を、仮親の要素に移す。そして、新たにできる節点、要素のメモリを確保する。
（２）新要素データの設定：分割によって新たにできた要素のデータを設定する。さらに、図５（ｈ）に示すようなFamily関係を設定する。図５（ｈ）では、分かり易くするために、二次元の三角形要素で説明してある。分割以前の要素と形状が同じ要素の１つを親要素とする。ただし、親要素の親要素は自分である。兄弟要素は一緒に分割によって生成された要素のうちの１つである。また、Family関係データは配列になっており、格子レベルごとに設定されている。また、親要素や兄弟要素が存在しない場合は、配列の対応位置にNULL文字が値として入っている。
【００３１】
（３）隣接要素の情報修正：要素の分割により、新たな要素が生成されたため、分割以前の要素の隣接要素の各種データを修正する。隣接要素との格子レベル差が０の時（図６(a)）には、要素の各種データを修正し、格子レベル差が１の時（図６(b)）には、隣接要素の各種データのみを修正する。また、それぞれの要素形状に対応した処理が実行される。
（４）節点データの設定と修正：要素の分割により新たに生成された節点、既存の節点の各種データを設定、修正する。
（５）要素のデータ修正：分割する以前の要素と辺を共有する要素を、節点を共有する要素の各種データを用いて検索し、新たにできた節点を要素情報に追加し、各種データを修正する。
（６）メモリの解放：仮親のメモリを解放する。
【００３２】
要素の具体的な削除手順を説明する。要素の削除は、分割の逆の方法で行う。要素の削除は、次の条件を満たす場合に実行される。
（条件１）親要素とその全ての兄弟要素の格子レベル（分割回数）が同じ
（条件２）親要素とその全ての兄弟要素に削除マークがついている
（１）メモリ確保とデータ移動：削除以前の親要素のデータを、仮親の要素に移す。
（２）要素データの設定：削除後の要素の各種データを設定する。
（３）隣接要素のデータ修正：要素が削除されたために、削除される以前の要素の隣接要素の各種データを修正する。隣接要素との格子レベル差が１の時（図６(ｃ)）には、各種データを修正し、格子レベル差が０の時（図６(ｄ)）には、隣接要素情報のみを修正する。それぞれの隣接要素の形状に対応した処理関数が実行される。
【００３３】
（４）データの設定と修正：要素が削除されるのに伴い、節点の各種データを修正する。
（５）要素のデータ修正：削除される以前の要素と辺を共有する要素を、節点を共有する要素の各種データを用いて検索し、格子レベル差を考慮し、その節点を削除するかを決定し、各種データを修正する。節点を削除した場合は、その節点のメモリを解放する。
（６）メモリの解放：仮親のメモリと、削除された要素のメモリを解放する。
【００３４】
第６に、図７を参照しながら、遷移要素の生成方法について説明する。遷移要素とは以下のようなものである。AMR法を適用した場合、要素の分割・削除によって分割された要素と、その隣接要素（辺または稜を共有する要素）との間に、不完全な頂点である中間節点が生成される。中間節点を有する要素を、中間要素と呼ぶことにする。図６（ｅ）に示すように、この中間節点を解消するために、一時的な要素を生成する。この一時的な要素を遷移要素と呼ぶ。遷移要素で構成された格子の部分を遷移格子と呼ぶ。Hybrid格子に対応しているため、四面体要素、ピラミッド要素、プリズム要素、六面体要素を用いて遷移要素を作成することができる。基本的には、図７（ａ）に示すような２つのプロセス（Process1とProcess2）によって、遷移要素を作成する。遷移要素を作成する前に、中間節点の存在する中間要素にマーキングを行う。また、遷移要素の種類は、遷移要素が作成される前の中間要素の形状、中間節点の位置によって分類され、フラグメモリに格納されている。このようにすることにより、アルゴリズムがある程度簡単になる。
【００３５】
Process1では、中間節点の存在する中間要素の中心（体心）に、一時的な節点Temporary nodeを作成し、四面体要素またはピラミッド要素を作成する。四面体要素、ピラミッド要素、プリズム要素、六面体要素については、それぞれ図７（ｃ）のようになる。Process1の具体的な手順は、以下のようになる。
（１）データ移動とメモリ確保：遷移要素を作成する前の中間要素のデータを、仮親の要素に移す。新たにできる節点（中間要素の中心に生成された節点）のメモリと、新要素のメモリを確保する。
（２）新要素のデータ設定：遷移要素の作成によって新たにできた要素のデータとFamily関係を設定する。
（３）データの設定と修正：遷移要素の作成により、新たに生成された節点（要素中心に生成された節点）と、既存の節点の各種データを設定、修正する。
（４）メモリの解放：仮親のメモリを解放する。
【００３６】
Process2では、Process1によって作成された四面体要素、ピラミッド要素の中間節点を解消するように、遷移要素を作成する。Process1の処理結果により、中間節点は１つの面にのみ存在しているようになったため、遷移要素を作成する処理関数の種類は、中間節点の存在する面の形状（三角形または四角形）、中間節点のある位置によって場合分けされる。具体的には、図８のようになる。中間節点が存在する面の形状が三角形の場合は、図８（ａ）のようになる。中間節点が存在する面の形状が四角形の場合は、図８（ｃ）のようになる。このような方法で遷移要素を作成することで、遷移要素の種類を２次元的にとらえることができ、アルゴリズムの複雑化を防ぐことができる。ただし、図中の点線の丸印は、その節点が存在している存在していないの両方を表す。
【００３７】
Process2の具体的な手順は以下のようになる。
（１）データ移動とメモリ確保：遷移要素を作成する前の要素のデータを、仮親の要素に移す。新たにできる節点（caseB-6における面中心の節点を作成する場合）のメモリと、新要素のメモリを確保する。
（２）新要素のデータ設定：遷移要素の作成によって新たにできた要素の各種データとFamily関係を設定する。
（３）隣接要素のデータ修正：遷移要素が作成される以前の隣接要素のデータ（面中心の節点を作成する場合）と隣接要素に関するデータを修正する。このとき実行される処理関数は、図９に示すように場合分けされる。
（４）データの設定と修正：新たに生成された節点（面中心の節点を作成する場合）と、既存の節点の各種データを設定、修正する。
（５）メモリの解放：仮親のメモリを解放する。
【００３８】
第７に、図７（ｂ）を参照しながら、遷移要素の削除方法を説明する。遷移要素は一時的な要素のため、指針値の計算の後に遷移要素は全て削除される。生成の場合と同様に、削除も以下に示す２つのプロセスによって実行され、作成時の逆のプロセスをたどる。Process1では、遷移要素作成のProcess2により作成された遷移要素を削除し、遷移要素作成のProcess1により作成された四面体要素、ピラミッド要素に戻す。
（１）メモリ確保とデータ移動：遷移要素削除以前の要素のうちの１個の要素のデータを、仮親の要素に移す。
（２）要素のデータ設定：遷移要素削除後の要素の各種データを設定する。
（３）隣接要素のデータ修正：隣接要素の各種データを修正する。このとき実行される処理関数は、図９に示すように場合分けされる。
（４）データの設定と修正：遷移要素が削除されるのに伴い、節点の各種データを修正する。
（５）メモリの解放：仮親のメモリと、削除された要素、節点（CaseB-6における面中心の節点を削除する場合）のメモリを解放する。
【００３９】
Process2では、遷移要素作成のProcess1によって作成された四面体要素、ピラミッド要素を削除する。
（１）メモリ確保とデータ移動：遷移要素削除以前の親要素のデータを、仮親の要素に移す。
（２）要素のデータ設定：遷移要素削除後の中間要素の各種データを設定する。
（３）データの設定と修正：遷移要素が削除されるのに伴い、節点の各種データを修正する。
（４）メモリの解放：仮親のメモリと、削除された要素のメモリと、要素中心の節点のメモリを解放する。
【００４０】
新たに生じる要素や節点の配列番号の取り方を説明する。分割によって新たに生じる要素や節点の配列番号の取り方としては、以前の削除によってフリーとなっている配列番号を使い回してやれば、最小限の配列番号で済む。しかし、フリーとなった配列番号の検索には莫大な時間がかかるので、避けるべきである。使用する計算機が許す限り、大きく配列番号を取っておく。分割により新たに必要となる配列は、新しい番号をどんどん使っていく。最大配列番号まで使い切る状態に至ったら、配列番号の使いまわしを行う。こうすることで、最大配列番号を使う状態に至るまでは、非常に速くHGA法を実行できる。
【００４１】
HGA法は、四面体要素とピラミッド要素とプリズム要素と六面体要素から構成されるHybrid格子で、解析対象を要素に分割して、解析する方法である。HGA法では、Hybrid格子において、物理量の変化が急激である箇所の要素を分割し、変化が急激でなく、細かい要素である必要がない箇所の要素を削除し初期の要素に戻すことを、動的に行う。遷移要素を用いて中間節点を解消するため、その他の特別な処理を行う必要はない。Hybrid格子対応の従来の有限要素法プログラムに対して、インターフェースを統一し、HGA法で使用する変数を追加することで、簡単に組み込むことができ、混合格子型解適合格子法を用いた数値解析装置が実現できる。
【００４２】
上記のように、本発明の実施例１では、数値解析装置を、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）とを用い、分割削除の指針値が分割しきい値よりも大きければ、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割し、分割削除の指針値が削除しきい値よりも小さければ、要素を削除して分割前の要素に戻し、分割削除により生じた中間節点を遷移要素により解消して、有限要素法により数値解析を行う構成としたので、混合格子型解適合格子法でも有限要素法で計算できる。
【実施例２】
【００４３】
本発明の実施例２は、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）とを用い、分割削除の指針値が分割しきい値よりも大きければ、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割し、分割削除の指針値が削除しきい値よりも小さければ、要素を削除して分割前の要素に戻し、分割削除により生じた中間節点を、個別分割法を標準分割法に優先して適用する方法で遷移要素を生成して解消して、有限要素法により数値解析を行う数値解析装置である。
【００４４】
図10は、本発明の実施例２における数値解析装置での遷移要素の個別分割法による生成方法を説明する図である。図11は、四面体の遷移要素の個別分割法による生成削除方法を説明する図である。図12は、ピラミッドの遷移要素の個別分割法による生成削除方法を説明する図である。図13は、プリズムの遷移要素の個別分割法による生成削除方法を説明する図である。図14は、六面体の遷移要素の個別分割法による生成削除方法を説明する図である。図15は、遷移要素の個別分割法による生成削除方法を説明する表である。実施例２における数値解析装置の基本的な構成は、実施例１と同じである。個別分割法を優先して遷移要素を生成する点が異なる。
【００４５】
個別分割法による遷移要素の生成と削除を説明する。遷移要素を実施例１の分割法（これを標準分割法とよぶ）のみで生成すると、要素数の増加や要素の歪みのために、計算時間が増加したり、計算が不安定になったりする場合がある。例えば、標準分割法で中間節点が１つある四面体を分割する場合、四面体の体心を頂点とし四面体の各面を底面とする４つの三角錐（四面体）に分割して（図７（c-1））から、さらに中間節点を通る面で分割する（図８（a-2））ので、要素数が６つと多くなり、要素の形状も扁平になる。そこで、中間節点の存在する位置に応じた適切な分割法を個別に適用して、標準分割法とは異なる方法で遷移要素を生成する。
【００４６】
図10に示すように、標準分割法の図８に対応する方法で、中間節点の存在する位置に応じて要素を分割する。例えば、個別分割法で中間節点が１つある四面体を分割する場合、中間節点を通る面で２つに分割するのみ（図11（ｃ））である。要素の形状も扁平にはならない。この個別分割法による遷移要素の生成削除方法を、標準方法よりも優先して実行する。個別分割法で遷移要素を生成できない場合のみ、標準分割法で遷移要素を生成する。個別分割法で生成した遷移要素を削除する場合は、個別分割法の逆の手順で削除する。個別分割法の個々の分割法は、適宜追加や削除が可能である。
【００４７】
個別分割法の遷移要素作成手順を説明する。
（１）データ移動とメモリ確保：遷移要素を作成する前の要素の情報を仮親の要素に移す。そして、新たにできる節点（面中心に節点が生成される場合）と要素のメモリを確保する。
（２）新要素情報の設定：遷移要素の作成によって新たにできた要素の各種データとFamily関係を設定する。
（３）隣接要素の情報修正：遷移要素が生成される以前の要素の隣接要素の各種データを修正する。このとき実行される処理関数は、図９に示すように場合分けされる。
（４）関係データの設定と修正：遷移要素の作成により新たに生成された節点（面中心に節点が生成される場合）と、既存の節点の関係データを設定、修正する。
（５）メモリの解放：仮親のメモリを解放する。
【００４８】
個別分割法の遷移要素削除時の処理を説明する。
（１）メモリ確保とデータ移動：遷移要素削除以前の親要素の情報を仮親の要素に移す。
（２）削除後の要素情報の設定：遷移要素削除後の要素の各種データを設定する。
（３）隣接要素の情報修正：遷移要素が削除される以前の要素の隣接要素の各種データを修正する。このとき実行される処理関数は、図９に示すように場合分けされる。
（４）関係データの設定と修正：要素が削除されるのに伴い、節点の関係データを修正する。
（５）メモリの解放：仮親と削除された要素、節点（面中心の節点を削除する場合）のメモリを解放する。
【００４９】
個別分割法による遷移要素の具体的な生成・削除方法を説明する。図10に示すように、要素の境界面にある中間節点の状態に応じて、境界面を分割する。境界面のこの分割方法は、図８に示す標準分割法の底面の分割法に対応する方法である。この分割法を組み合わせて要素を分割し、遷移要素を生成する。例えば、四面体に１つの中間節点がある場合、図10（ａ）と（ｂ）とを組み合わせて、図11（ｃ）のように分割する。
【００５０】
四面体要素の場合は、図11と図15（ａ）に示すように分割する。ただし、CaseC-1とCaseC-2については、通常の格子の要素の分割方法を使って、四面体に分割する（CaseC-1）方法と、四面体とピラミッドに分割する（CaseC-2）方法を用いる。ピラミッド要素の場合は、図12と図15（ｂ）に示すように分割する。ただし、CaseD-1については、通常の格子の要素の分割方法を使って、四面体４個とピラミッド６個に分割する。プリズム要素の場合は、図13と図15（ｃ）に示すように分割する。ただし、CaseE-1については、通常の格子の要素の分割方法を使って、プリズム８個に分割する。六面体要素の場合は、図14と図15（ｄ）に示すように分割する。ただし、CaseF-1については、通常の格子の要素の分割方法を使って、六面体８個に分割する。
【００５１】
上記のように、本発明の実施例２では、数値解析装置を、四面体要素と六面体要素と五面体要素（ピラミッド要素、プリズム要素）とを用い、分割削除の指針値が分割しきい値よりも大きければ、要素の三角形の面を複数の三角形に、四角形の面を複数の四角形に分割するように、要素を複数の要素に分割し、分割削除の指針値が削除しきい値よりも小さければ、要素を削除して分割前の要素に戻し、個別分割法を優先的に実行する方法で、分割削除により生じた中間節点を遷移要素により解消して、有限要素法により数値解析を行う構成としたので、必要最低限の計算メモリで高精度な解析を行うことができる。
【産業上の利用可能性】
【００５２】
本発明は、数値流体力学（Computational Fluid Dynamics: CFD）に利用するものである。コンピュータグラフィックスやCADへの組込みも可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例１における数値解析装置の構成を示す機能ブロック図、
【図２】本発明の実施例１における数値解析装置の動作手順を示す流れ図、
【図３】本発明の実施例１における数値解析装置のHGA法に関する手順を示す流れ図、
【図４】本発明の実施例１における数値解析装置の分割手順と削除手順を示す流れ図、
【図５】本発明の実施例１における数値解析装置の格子の分割方法を示す図、
【図６】本発明の実施例１における数値解析装置の二次元要素を分割する方法を示す図、
【図７】本発明の実施例１における数値解析装置の遷移要素の生成削除を説明する図、
【図８】本発明の実施例１における数値解析装置の遷移要素の生成を説明する図、
【図９】本発明の実施例１における数値解析装置の遷移要素の生成削除の際に隣接要素のデータを修正するための場合分けの方法を説明する図、
【図１０】本発明の実施例２における数値解析装置の個別分割法による遷移要素の生成方法を説明する図、
【図１１】本発明の実施例２における数値解析装置の個別分割法による四面体の遷移要素の生成を説明する図、
【図１２】本発明の実施例２における数値解析装置の個別分割法によるピラミッドの遷移要素の生成削除を説明する図、
【図１３】本発明の実施例２における数値解析装置の個別分割法によるプリズムの遷移要素の生成削除を説明する図、
【図１４】本発明の実施例２における数値解析装置の個別分割法による六面体の遷移要素の生成削除を説明する図、
【図１５】本発明の実施例２における数値解析装置の個別分割法による遷移要素の生成削除を説明する表である。
【符号の説明】
【００５４】
１  入力装置
２  初期格子メモリ
３  分割しきい値メモリ
４  削除しきい値メモリ
５  有限要素法演算装置
６  格子分割手段
７  格子削除手段
８  指針値計算手段
９  分割判定手段
10  削除判定手段
11  表示装置
12  遷移要素生成手段
13  遷移要素削除手段
【図１】
0003692460.tif 000002
【図２】
0003692460.tif 000003
【図３】
0003692460.tif 000004
【図４】
0003692460.tif 000005
【図５】
0003692460.tif 000006
【図６】
0003692460.tif 000007
【図７】
0003692460.tif 000008
【図８】
0003692460.tif 000009
【図９】
0003692460.tif 000010
【図１０】
0003692460.tif 000011
【図１１】
0003692460.tif 000012
【図１２】
0003692460.tif 000013
【図１３】
0003692460.tif 000014
【図１４】
0003692460.tif 000015
【図１５】
0003692460.tif 000016