【解決手段】重合格子を用いて解析を行う情報解析装置1であって、第一メッシュ情報と第二メッシュ情報とが格納されるメッシュ情報格納部101と、第二のメッシュを第一のメッシュに対して相対的に移動させるメッシュ移動部102と、メッシュ移動部102による移動によって第二のメッシュとの重なり状態が変化する第一のメッシュの領域に応じて、第一のメッシュを構成するセルのうちの第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得部103と、取得部103が取得したセルのコントロールボリュームの変化量を用いて第一のメッシュ及び第二のメッシュの少なくとも一方に関する解析を行う解析部104と、解析部104の解析結果を出力する出力部105とを備えた。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域に応じて、前記第二のメッシュを移動させる前の状態において移動後の前記第二のメッシュの境界と交わる位置にあった前記第一のメッシュ内のセルである境界セルのコントロールボリュームの変化量を取得する請求項1記載の情報解析装置。
前記取得部は、1以上の前記境界セルを有する前記第一のメッシュの連続している1以上のセルであって、前記第二のメッシュの移動により当該第二のメッシュとの重なり状態が変化するセルの、重なり状態が変化する領域の大きさに応じて、当該連続している1以上のセルが有する前記境界セルのコントロールボリュームの変化量を取得する請求項2記載の情報解析装置。
前記取得部は、前記1以上の境界セルの移動後の第二のメッシュと重ならない部分の大きさと、移動前の前記第二のメッシュの境界に当該第二のメッシュの移動方向側で接する1以上のセルから前記1以上の境界セルまでのセルの大きさとの差に応じて、前記重なり状態が変化する領域の大きさを取得し、当該取得した大きさに応じて、前記1以上の境界セルのコントロールボリュームの変化量を取得する請求項3記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記1以上の境界セルに分割して、前記境界セルのコントロールボリュームの変化量を取得する請求項3または請求項4記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記1以上の境界セルのそれぞれに対して、当該境界セルのそれぞれの移動後の第二のメッシュと重ならない部分の大きさに応じて分割して、前記1以上の境界セルのそれぞれのコントロールボリュームの変化量を取得する請求項5記載の情報解析装置。
前記取得部は、一の前記境界セルのコントロールボリュームの変化量を、前記第二のメッシュの移動方向において連続している当該一の境界セルを含む1以上のセルの、前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化した領域の大きさに応じて取得する請求項3記載の情報解析装置。
前記取得部は、前記一の境界セルの移動後の第二のメッシュと重ならない部分の大きさと、移動前の前記第二のメッシュの境界に当該第二のメッシュの移動方向側で接する一のセルから前記一の境界セルまでのセルの大きさとの差に応じて、前記一の境界セルのコントロールボリュームの変化量を取得する請求項7記載の情報解析装置。
前記メッシュ移動部は、前記第二のメッシュを移動させる際に、前記1以上の境界セルの、当該第二のメッシュと重なる節点に対応する節点を、当該第二のメッシュの移動方向において、移動後の第二のメッシュと重ならなくなる位置に配置する請求項1から請求項8いずれか一項記載の情報解析装置。
前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域は、前記メッシュ移動部による移動によって前記第二のメッシュと新たに重なる第一のメッシュの領域である請求項1から請求項9いずれか一項記載の情報解析装置。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュと重ならなくなった第一のメッシュの領域の大きさに応じて、当該重ならなくなった領域を有するセルの1以上についてコントロールボリュームの変化量を取得する請求項1記載の情報解析装置。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュと重ならなくなった前記第一のメッシュの領域の大きさを、前記第一のメッシュの当該重ならなくなった領域を有する1以上のセルで分割して、当該セルについてのコントロールボリュームの変化量を取得する請求項11記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記重ならなくなった1以上のセルのそれぞれの、移動後に前記第二のメッシュと重ならなくなった部分の大きさに応じて分割して、前記重ならなくなった1以上のセルのそれぞれのコントロールボリュームの変化量を取得する請求項12記載の情報解析装置。
複数のセルで構成される第一のメッシュの情報である第一メッシュ情報と、複数のセルで構成される第二のメッシュの情報である第二メッシュ情報とが格納されるメッシュ情報格納部と、メッシュ移動部と、取得部と、解析部と、出力部とを用いて、重合格子を用いた解析を行う情報解析方法であって、
前記メッシュ移動部が、前記第二のメッシュを、前記第一のメッシュに対して相対的に移動させるメッシュ移動ステップと、
前記取得部が、前記メッシュ移動ステップによる移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域の大きさに応じて、前記第一のメッシュを構成するセルのうちの、前記第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得ステップと、
前記解析部が、前記取得ステップで取得した前記セルのコントロールボリュームの変化量を用いて、前記第一のメッシュ及び前記第二のメッシュの少なくとも一方に関する解析を行う解析ステップと、
前記出力部が、前記解析ステップによる解析結果を出力する出力ステップとを備えた情報解析方法。
複数のセルで構成される第一のメッシュの情報である第一メッシュ情報と、複数のセルで構成される第二のメッシュの情報である第二メッシュ情報とが格納されるメッシュ情報格納部にアクセス可能なコンピュータに、重合格子を用いた解析を行わせるプログラムであって、
コンピュータを、
前記第二のメッシュを、前記第一のメッシュに対して相対的に移動させるメッシュ移動部と、
前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域の大きさに応じて、前記第一のメッシュを構成するセルのうちの、前記第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得部と、
前記取得部が取得した前記セルのコントロールボリュームの変化量を用いて、前記第一のメッシュ及び前記第二のメッシュの少なくとも一方に関する解析を行う解析部と、
前記解析部の解析結果を出力する出力部として機能させるためのプログラム。
【発明を実施するための形態】
【0039】
以下、情報解析装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0040】
(実施の形態)
図1は、本実施の形態における情報解析装置1のブロック図である。
【0041】
情報解析装置1は、メッシュ情報格納部101、メッシュ移動部102、取得部103、解析部104、出力部105を備える。
【0042】
情報解析装置1は、重合格子を用いて解析を行う装置である。重合格子とは、重ねて配置される2以上の計算格子である。計算格子は、例えば、解析対象を、有限個の要素に分割したものである。計算格子は、複数の要素で構成される。計算格子は、複数の要素の集合体と考えてもよい。解析対象は、例えば、解析対象となる部品や部材、あるいはこれらの形状に相当する領域や、容器内の空間等の閉じられた領域や、閉じられていない領域等を含む概念である。解析対象は、解析領域や解析空間と考えてもよい。重合格子を用いて行われる解析は、例えば、重合格子法と呼ばれる。なお、計算格子は、例えば、メッシュやグリッドと呼ばれることがある。また、要素は、例えば、セルや計算セルと呼ばれる場合がある。本実施の形態においては、以下、計算格子を、メッシュと呼ぶ。また、計算格子を構成する各要素をここではセルと呼ぶ。
【0043】
情報解析装置1が行う解析は、例えば、有限体積法(FVM:Finite Volume Method)を用いる解析である。情報解析装置1は、例えば、数値流体力学(Computational Fluid Dynamics)のシミュレーション等に用いられる。情報解析装置1は、例えば、コンピュータや専用装置等により実現可能である。
【0044】
メッシュ情報格納部101には、第一メッシュ情報と、第二メッシュ情報とが格納される。第一メッシュ情報は、第一のメッシュの情報である。第一のメッシュは、複数のセルで構成されている。例えば、第一のメッシュは、連続して接続されている複数のセルで構成されている。第二のメッシュは、第一のメッシュと同様のものである。第一のメッシュ及び第二のメッシュは、例えば、解析に用いられる重合格子を構成するメッシュである。第一のメッシュ、及び第二のメッシュの各セルの形状や、セルの数等は問わない。セルの形状としては、例えば、通常の流体解析に利用可能な形状が利用可能である。セルの形状としては、例えば、任意の多面体等が利用可能である。
【0045】
第一のメッシュは、第一の解析対象に対応したメッシュである。具体的には、第一のメッシュは、第一の解析対象をメッシュで表したものである。第一の解析対象は、例えば、気体や液体等の流体である。第一の解析対象は、例えば、圧縮性流体である。圧縮性流体とは、密度が圧力や温度の変化に応じて変化する流体である。第一のメッシュは、例えば、予め指定された領域内、例えば、シリンダ内等の予め指定された容器内に配置された流体をメッシュで表したものと考えてもよい。ただし、第一のメッシュは、閉じられていない系の流体等をメッシュで表したものであってもよい。なお、第一の解析対象は流体以外のもの、例えば、流体以外の部品や部材等の固体であってもよい。また、第一の解析対象は、複数の解析対象の集合体であってもよい。なお、第一のメッシュに、第二のメッシュを重ねていくことで解析を行う場合、例えば、この第一のメッシュを独立メッシュや独立格子、第二のメッシュを従属メッシュや従属格子等と呼ぶようにしてもよい。
【0046】
第二のメッシュは、第二の解析対象に対応したメッシュである。具体的には、第二のメッシュは、第二の解析対象をメッシュで表したものである。第二の解析対象は、例えば、部品や部材等である。また、第二の解析対象は、複数の解析対象の集合体であってもよい。例えば、第二の解析対象は、一の部品や部材と、その近傍に位置する流体とを組み合わせたものであってもよい。この流体は、例えば、第一の解析対象と同じ流体であってもよい。第二の解析対象は、例えば、上述した第一の解析対象を圧縮したり、伸張したりするものである。例えば、第二のメッシュは、シリンダ内の流体である第一の解析対象に対して、圧縮等を行うピストンや、ピストンとその近傍の流体とを組み合わせを表すメッシュである。ただし、第一の解析対象は部品や部材以外のもの、例えば流体等であってもよい。
【0047】
第二のメッシュは、境界を有している。第二のメッシュの境界とは、例えば、第二のメッシュの、第二のメッシュ以外の領域との境界部である。第二のメッシュの境界は、第二のメッシュの全ての境界部分であってもよいし、境界部分の一部であってもよい。第二のメッシュの境界とは、例えば、第二のメッシュが立体である場合、第二のメッシュの境界面である。第二のメッシュの境界面は、第二のメッシュの外側に位置する面である。第二のメッシュの境界面は、第二のメッシュの表面と考えてもよい。以下、第二のメッシュの境界面を、第二のメッシュの表面と呼ぶ。第二のメッシュの表面は、例えば、第二のメッシュの外側をなす面と考えてもよい。第二のメッシュの表面は、例えば、第二のメッシュを構成する複数のセルの面のうちの、同じ第二のメッシュ内の他のセルと接していない1以上の面の集合である。第二のメッシュの表面は、第二のメッシュの全ての外側の面であってもよいし、その一部であってもよい。例えば、第二のメッシュの表面は、第二のメッシュの上面であってもよい。第二のメッシュの表面は、例えば、第二のメッシュの外側に位置する面のうちの、ユーザにより指定された面である。例えば、第二のメッシュの外側に位置する面のうちの、ユーザにより指定された範囲内の表面であってもよいし、予め指定された条件を満たす面、例えば、第二のメッシュの移動方向に垂直な面等であってもよい。
【0048】
第一メッシュ情報は、例えば、第一のメッシュの3以上の節点情報を有している。節点情報は節点の情報であり、例えば、節点の位置を示す情報を有している。節点情報は、例えば、節点の座標や位置ベクトルである。節点は、格子点と考えてもよい。節点情報は、例えば、各節点の識別子(以下、節点識別子と称す)と対応づけられて格納されている。節点識別子は、例えば、節点に割り当てられたコードや文字列等である。
【0049】
また、第一メッシュ情報は、第一のメッシュを構成する各セルを示す情報と、セルの識別子であるセル識別子とを対応づけて有するセル管理情報を有していてもよい。セルを示す情報は、例えば、セルの3以上の頂点の座標を示す情報や、セルの3以上の頂点となる節点の節点識別子である。セル識別子は、例えば、セルに割り当てられたコードや文字列等である。
【0050】
第二のメッシュ情報は、上述した第一のメッシュ情報と同様に、例えば、第二のメッシュの3以上の節点情報やセル管理情報等を有している。
【0051】
また、第二メッシュ情報は、さらに、第二のメッシュの表面を示す情報を有していてもよい。表面を示す情報は、例えば、表面の座標を表す式等であってもよいし、表面の3以上の座標であってもよい。例えば、第二のメッシュが三次元形状を示す場合、座標は、例えば、三次元空間の座標である。かかることは以下においても同様である。また、表面を示す情報は、第二のメッシュの表面に位置する節点を示す情報、例えば、節点識別子を示す情報であってもよい。例えば、表面を示す情報は、表面に位置する節点の節点識別子と対応づけられた、表面の節点であることを示すフラグ等の情報であってもよい。なお、第一メッシュ情報も同様の表面を示す情報を有していてもよい。
【0052】
第一メッシュ情報、及び第二メッシュ情報は、それぞれ、メッシュの識別子であるメッシュ識別子を有していてもよい。
【0053】
なお、本実施の形態においては、第一メッシュ情報、及び第二メッシュ情報の節点情報が座標である場合を例に挙げて説明する。なお、説明の便宜上、本実施の形態においては、第一メッシュ情報の節点情報である座標の座標系と、第二メッシュ情報の節点情報である座標の座標系とが同じ座標系である場合、つまり、第一のメッシュと第二のメッシュとが同じ座標系に配置される場合について説明する。ただし、これらは異なる座標系であってもよく、座標系をどのように設定するかは問わない。例えば、異なる座標系である場合、第一のメッシュと、第二のメッシュとが配置される仮想空間の座標系の座標に、それぞれのメッシュの座標系を適宜変換するようにすれば、実質的にこの実施の形態と同様の構成となる。
【0054】
メッシュ情報格納部101に格納される第一のメッシュがどのように取得されるかは問わない。例えば、第一の解析対象を示すCADデータ等を用いて、この第一の解析対象を予め用意されたアルゴリズム等を用いて複数のセルに分割して第一のメッシュを取得してもよい。また、ユーザが手作業等により複数のセルに分割して第一のメッシュを取得してもよい。かかることは,第二のメッシュに関しても同様である。
【0055】
メッシュ情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、以下の格納部においても同様である。
【0056】
メッシュ移動部102は、第二のメッシュを、第一のメッシュに対して相対的に移動させる。ここでの移動は、第一及び第二のメッシュが配置された空間における移動である。例えば、メッシュ移動部102は、第二のメッシュを、第一のメッシュと重なるように、第一のメッシュに対して相対的に移動させる。相対的に移動させるということは、第一のメッシュ及び第二のメッシュの少なくとも一方を移動させることであってもよいし、両方を移動させることであってもよい。重なるように移動させるということは、第一のメッシュが第二のメッシュと新たに重なるように移動させることであってもよいし、第一のメッシュが第二のメッシュとが重ねられた状態を保ちながら移動させることであってもよい。この場合の重ねた状態は、第一のメッシュと第二のメッシュとの部分的な重なりであってもよい。なお、以下においては説明の便宜上、第二のメッシュの相対的な移動を、単に第二のメッシュの移動と呼ぶ場合がある。また、以下においては、第二のメッシュを相対的に移動させる前を、単に移動前、第二のメッシュを相対的に移動させた後を、単に移動後と呼ぶ場合がある。
【0057】
メッシュ移動部102は、例えば、第二のメッシュを、予め指定された方向に、予め指定された量だけ、第一のメッシュに対して相対的に移動させる。第二のメッシュの相対的な移動方向を示す情報や、移動量を示す情報は、例えば、図示しない格納部等に予め格納しておくようにすればよい。移動方向を示す情報は、例えば、x軸方向やy軸方向やz軸方向の移動量の値や比により方向を示す情報や、移動方向を示すベクトルである。なお、移動量の代わりに、移動速度を示す情報を格納しておくようにし、メッシュ移動部102は、この移動速度から、予め指定された単位時間内に移動する移動量を算出するようにしてもよい。
【0058】
ここでの第二のメッシュを移動させるということは、第二のメッシュが配置される位置を変更することや、移動後の位置を示す情報を取得することと考えてもよい。第二のメッシュを移動させることは、例えば、第二メッシュ情報が有する各節点についての節点情報である座標を、移動前の座標から、移動後の座標に更新することである。かかることは、第一のメッシュの移動に関しても同様である。なお、移動後の節点情報で、第二メッシュ情報の移動前の節点情報である座標を更新する代わりに、移動後の節点情報を、節点識別子等と対応づけて、図示しない格納部等に蓄積するようにして、この節点情報を、移動後の第二のメッシュの位置を示す情報として用いるようにしてもよい。
【0059】
ここでの移動は、複数回行われる相対的な移動のうちの任意の一の移動と考えてもよい。例えば、シミュレーション等における、一の単位時間内における移動や、一の時間ステップにおける移動と考えてもよい。
【0060】
なお、第一のメッシュ及び第二のメッシュを構成するセルは、第二のメッシュの移動方向に対して平行にのびる形状を有していることが好ましい。また、各メッシュの各セルの移動方向と交わる面は、移動方向に直交する面であることが好ましい。また、各メッシュの移動方向に対して垂直な方向において連続しているセルの、移動方向に直交する面は、同一平面上の面であることが好ましい。
【0061】
メッシュ移動部102は、通常、MPUやメモリ等から実現され得る。メッシュ移動部102の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0062】
取得部103は、メッシュ移動部102による移動によって第二のメッシュとの重なり状態が変化する第一のメッシュの領域に応じて、第一のメッシュを構成するセルのうちの、第二のメッシュとの重なり状態が変化した領域を有するセルの1以上についてコントロールボリュームの変化量を取得する。
【0063】
コントロールボリュームとは、セルの大きさを示す情報であり、例えばセルの大きさを示す値である。例えば、メッシュ及びセルが三次元形状を示す場合、セルのコントロールボリュームは、セルの体積である。また、例えば、メッシュ及びセルが二次元形状を示す場合、セルのコントロールボリュームは、セルの面積である。例えば、メッシュについて解析を行う場合において、コントロールボリュームが、セル内の一の代表点に対応するセルの大きさを示す値として用いられる。例えば、有限体積法等の数値解析手法は、空間に連続的に分布する物理量を有限個の点(離散点)上に離散的に存在するとし、計算の対象となる方程式を数値的に解析して近似解を得る手法であるが、この個々の離散点が代表する空間あるいはその大きさのことをコントロールボリュームと呼ぶ。例えば、このコントロールボリュームの集合が解析対象とする空間を表現する。なお、以下、本実施の形態においては、メッシュ及びセルが三次元形状を示しており、コントロールボリュームが体積である場合について説明する。このため、セルのコントロールボリュームの変化量を、適宜、セルの体積の変化量と呼ぶ。
【0064】
重なり状態が変化する第一のメッシュの領域に応じてセルのコントロールボリュームの変化量を取得するということは、例えば、重なり状態が変化する第一のメッシュの領域の大きさに応じてセルの体積の変化量を取得するということである。領域の大きさとは、メッシュやセルが三次元形状である場合、例えば、領域の体積である。具体例を挙げると、重なり状態が変化する第一のメッシュの領域に応じて変化量を取得するということは、重なり状態が変化する領域の体積に応じてセルのコントロールボリュームである体積の変化量を取得することである。以下、本実施の形態においては、メッシュ内の領域の大きさを、適宜、領域の体積と呼ぶ。また、同様に、ここでは、メッシュやセル内の一部分等の大きさが、体積である場合を例に挙げて説明する。
【0065】
ここでのセルの体積の変化量、即ちセルのコントロールボリュームの変化量は、例えば、第二のメッシュの移動に伴うセルの体積の変化量であり、例えば、移動後の体積から、移動前の体積を減算した値等である。重なり状態が変化した領域を有するセルは、例えば、少なくとも一部に、第二のメッシュとの重なり状態が変化した領域を有するセルである。例えば、移動の前後で第二のメッシュとの重なり量が増減したセルである。第二のメッシュとの重なり状態が変化した領域を有する1以上のセルは、重なり状態が変化した領域を有する全てのセルであってもよいし、後述する境界セルのような一部のセルであってもよい。
【0066】
取得部103は、例えば、メッシュ移動部102による移動によって第二のメッシュとの重なり状態が変化する第一のメッシュの領域に応じて、境界セルの体積の変化量を取得する。ここでの体積の変化量は、例えば、第二のメッシュの移動に伴う境界セルの体積の変化量であり、例えば、移動後の体積から、移動前の体積を減算した値等である。
【0067】
取得部103は、例えば、メッシュ移動部102による移動によって第二のメッシュと新たに重なる第一のメッシュの領域に応じて、境界セルの体積の変化量を取得する。この境界セルについて体積の変化量を取得する処理は、例えば、メッシュ移動部102による移動によって第二のメッシュと新たに重なる第一のメッシュの領域が発生する場合に用いることが好ましい。
【0068】
境界セルとは、第二のメッシュを移動させる前の状態において移動後の第二のメッシュの表面と交わる位置にあった第一のメッシュ内のセルである。なお、ここでの第二のメッシュを移動させる前の状態は、第二のメッシュの移動が複数回行われる場合、この複数回の移動が行われる前の第一のメッシュの状態と考えてもよい。例えば、第一のメッシュの全ての移動前の初期状態と考えてもよい。なお、境界セルが、第二のメッシュの移動後に、この移動後の第二のメッシュの表面と交わっているか否かは問わない。例えば、後述するように、第二のメッシュを移動する際において、メッシュ移動部102が、境界セルの移動後の第二のメッシュと重なる節点を第二のメッシュと重ならない位置に移動させる場合、この節点を移動させた境界セルは、第二のメッシュの表面と必ずしも交わらなくてもよい。なお、セルが第二のメッシュの表面と交わるとは、例えば、セルが第二のメッシュの表面と接することや、セルの一の面と第二のメッシュの表面とが重なること等を除く概念である。
【0069】
例えば、取得部は、1または2以上の境界セルを有する第一のメッシュの連続している1または2以上のセルであって、第二のメッシュの移動によりこの第二のメッシュとの重なり状態が変化するセルの、重なり状態が変化する領域の大きさに応じて、連続している1以上のセルが有する前記境界セルの体積の変化量を取得する。ここでの領域の大きさとは、例えば、領域の体積である。
【0070】
連続している領域とは、例えば、つながっている領域や連結された領域である。連続している1または2以上のセルとは、例えば、1または2以上のつながっているセルや、1または2以上の連結されたセルである。連続している1または2以上のセルは、他のセルとつながっていない一のセルも含む概念である。連続した二つのセルは、例えば、一の面を共有する二つのセルや、一の面が重なる、あるいは接する二つのセルや、交わる関係にある二つのセルである。隣接しているセルについても同様である。
【0071】
なお、一または二の節点が一致するのみの2つのセルや、一の辺のみを共有する、あるいは一の辺と辺とだけが接する二つのセルは、連続していないセル、あるいは、少なくとも直接は連続していないセルと考えてもよい。かかることは、隣接しているセルについても同様である。
【0072】
第二のメッシュとの重なり状態が変化する第一のメッシュの領域とは、例えば、第一のメッシュの、第二のメッシュが移動する前と移動した後とで、第二のメッシュとの重なりの有無が変化した領域であり、例えば、移動によって、新たに重なるようになる領域や、新たに重ならなくなる領域である。また、第二のメッシュとの重なり状態が変化する第一のメッシュの領域とは、例えば、第一のメッシュの、第二のメッシュが移動する前と移動した後とで、第二のメッシュとの重なり量が変化した領域、例えば、重なり量が増加した領域、あるいは減少した領域であってもよい。
【0073】
重なり状態が変化する第一のメッシュの領域の体積とは、例えば、第二のメッシュの移動によって、重なり状態が変化した領域の体積の積算値である。例えば、取得部103は、第二のメッシュの移動によって、重なり状態が変化する領域を検出し、検出された領域の体積の積算値を取得する。一の領域の重なり状態が変化したか否かは、一の領域の移動前の重なり状態と、移動後の重なり状態から判断可能である。ただし、結果的に、1以上のセルの重なり状態が変化した領域の体積の積算量に相当する値が取得できれば、どのような演算等を行ってもよい。かかることは、以下においても同様である。また、ここでの積算は、セルに対応づけられた属性(例えば、材料や材質、物性等)に応じて重み付けを行った積算であってもよい。
【0074】
取得部103は、例えば、移動によって重なり状態が変化する第一のメッシュの領域の体積として、重なり状態の変化が同じである領域同士の体積を取得することが好ましい。例えば、重なり状態の変化が同じである領域の体積だけを積算することが好ましい。重なり状態の変化が同じである領域同士とは、例えば、新たに重なるようになった領域同士や、新たに重ならなくなった領域同士である。あるいは、取得部103は、新たに重なるようになった領域の体積と、新たに重ならなくなった領域の体積とを、異なる符号として加算するようにしてもよい。また、重なり状態の変化が同じである領域同士とは、重なり量が増加した領域同士や、重なり量が減少した領域同士であってもよい。かかることは、以下においても同様である。
【0075】
境界セルの体積の変化量とは、例えば、境界セルの体積の増加量と考えてもよく、減少量と考えてもよい。例えば、変化量を増加量と考えた場合、変化量が負の値であれば、境界セルの体積が減少したことを意味する。
【0076】
重なり状態が変化する領域の体積に応じて変化量を取得するということは、例えば、重なり状態が変わった領域の体積をそのまま変化量とすることや、あるいは、体積を用いて、予め指定された演算等を行うことで境界セルについての変化量を算出することである。重なり状態が変化する領域の体積を、1以上の境界セルで分割することであってもよい。
【0077】
なお、本実施の形態において用いられるメッシュやセルの体積とは、メッシュに対応した解析対象の、メッシュやセルに対応した領域(部分)の体積と考えてもよい。また、ここでの領域とは、例えば、三次元の領域である。領域は、空間と考えてもよい。
【0078】
取得部103は、境界セルをどのように検出してもよい。例えば、取得部103は、第二のメッシュの表面に位置する1以上の節点の移動後の座標を、セルの内部の座標として有する移動前の状態の第一のメッシュのセルを、境界セルと判断する。表面に位置する一の節点の座標が、一のセル内の内部の座標であるか否かは、例えば、第一のメッシュの各セル毎の全ての頂点の座標と、表面に位置する一の節点の座標から判断可能である。第二のメッシュの表面の節点の座標は、第二メッシュ情報が有する移動後の節点情報等を用いて取得可能である。また、取得部103は、第二メッシュ情報が有する移動後の第二のメッシュの表面を示す式に、移動前の第一のメッシュを構成するセル毎に、セルの頂点となる全ての節点の座標を代入して、符号の異なる解が得られた場合に、このセルを境界セルと判断してもよい。なお、この場合、例えば、第二メッシュ情報が有する表面を示す式は、第二メッシュ情報の移動に応じて、適宜更新する。なお、第二のメッシュの表面が、第一のメッシュの一の面を共有する二つのセルの、この共有面と重なる場合においては、例えば、この二つのセルのうちの、第二のメッシュと重なっていない方のセルを境界セルと考えるようにしてもよい。
【0079】
取得部103は、一の境界セル毎に体積の変化量を取得するようにしてもよい。また、取得部103は、1または2以上の境界セルについてまとめて体積の変化量を取得するようにしてもよい。以下、第二のメッシュの移動により、第一のメッシュに、第二のメッシュと新たに重なる領域が発生した場合において、新たに重なる第一のメッシュの領域に応じて、取得部103が、境界セルの体積の変化量を取得する処理の例について説明する。
【0080】
(1)一の境界セル毎に変化量を取得する場合
取得部103は、例えば、一の境界セルの体積の変化量を、第二のメッシュの移動方向において連続しているこの一の境界セルを含む1以上のセルの、メッシュ移動部103による移動によって第二のメッシュとの重なり状態が変化した領域の体積に応じて取得する。
【0081】
上述した連続している一の境界セルを含む1以上のセルは、一の境界セルであってもよいし、一の境界セルと、これに連続する1以上のセルであってもよい。上述した連続している一の境界セルを含む1以上のセルの、メッシュ移動部103による移動によって第二のメッシュとの重なり状態が変化した領域は、一の境界セル内の領域であってもよいし、一の境界セルを超える領域であってもよい。
【0082】
例えば、取得部103は、第一のメッシュについて、移動前の第二のメッシュとの重なり状態を示す情報と、移動後の第二のメッシュとの重なり状態を示す情報とを取得して、この情報を比較することで、重なり状態が変化した領域を検出して、この変化した領域の大きさである体積を取得する。重なり状態を示す情報は、例えば、第一のメッシュと第二のメッシュとが重なっている領域や重なっていない領域を示す情報である。移動の前後でこの重なっている領域や重なっていない領域を示す情報を比較すること、例えば、一致しない領域を検出することで、重なり状態が変化した領域を判断可能である。また、体積は、例えば、この重なり状態が変化した領域を合計した体積である。
【0083】
領域の体積に応じて境界セルの体積の変化量を取得するということは、例えば、領域の体積をそのまま、境界セルの体積の変化量として取得することであってもよいし、領域の体積を引数として用いて、予め指定された演算等を行うことで、境界セルの体積の変化量を取得することであってもよい。また、領域の体積の絶対値を、境界セルの体積の変化量として取得することであってもよい。
【0084】
セルの重なり状態が変化した領域は、どのように検出してもよい。例えば、取得部103は、第一のメッシュの一のセルについて、移動前の第二のメッシュが重なっている領域と、移動後の第二のメッシュが重なっている領域との差を示す情報を、セルの重なり状態が変化した領域を示す情報として取得するようにしてもよい。
【0085】
取得部103は、例えば、一の境界セルの体積の変化量を、この一の境界セルの、移動後の第二のメッシュと重ならない部分の大きさ(例えば、体積)と、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルからこの一の境界セルまでのセルの大きさ(例えば、体積)との差に応じて取得する。ここでの移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルは、例えば、上記の一の境界セルを通過する第二のメッシュの移動方向に平行な直線上に位置するセルであることが好ましい。
【0086】
移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルとは、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルと、一の境界セルと、これらのセルの間に位置するセルである。なお、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルは、境界セルであってもよく、この場合、上記の移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルは、一の境界セルである。
【0087】
第二のメッシュの移動方向側とは、例えば、第二のメッシュが、移動によって、第一のメッシュと重なる領域が増加する場合においては、第二のメッシュの表面の外向きの法線方向であり、第一のメッシュと重なる領域が減少する場合においては、第二のメッシュの表面の内向きの法線方向である。セルが、第二のメッシュの表面と接するということは、例えば、セルが、その外側の面の少なくとも1以上の点で第二のメッシュの表面と接することであってもよいし、セルの外側の面の一つと、第二のメッシュの表面がセルの外側の面の一つとが重なっている、あるいは共有されていることであってもよい。
【0088】
ここで、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルが一の境界セルである場合に、取得部103が行う第一の処理の詳細について、例を挙げて説明する。
【0089】
(1−1)第一の処理
図2は、取得部103が行う第一の処理を説明するための、第二のメッシュを移動させる前の第一のメッシュと第二のメッシュとの関係を示す平面模式図(
図2(a))、及び、第二のメッシュを移動させた場合の第一のメッシュと第二のメッシュとの関係を示す平面模式図(
図2(b))である。
図2においては、第一のメッシュ11の一部を一重線で、また、第二のメッシュ12の一部を二重線でそれぞれ示している。また、点線は、第一のメッシュの第二のメッシュと重なっている部分を示している。
【0090】
例えば、
図2(a)に示す状態において、第一のメッシュ11の、第二のメッシュ12の表面12sに沿って接しているセルC
D0の体積が、V
0であったとする。
【0091】
この第二のメッシュ12を、矢印13が示す方向に移動させた場合、即ち、第一のメッシュ11側に向かって移動させた場合の、移動後の状態が、
図2(b)であるとする。移動後の状態においては、第二のメッシュ12の表面12sが、セルC
D0内に位置するものとする。この状態の第二のメッシュ12の表面12sが交わるセルC
D0の、表面12sに対して第二のメッシュとは反対側にある領域C
D1の体積が、V
1であったとする。なお、移動後において、セルC
D0は、第二のメッシュ12の表面12sと交わることから、このセルC
D0は境界セルである。
【0092】
この場合、セルC
D0内の、第二のメッシュ12の移動によって重なり状態が変化する領域は、セルC
D0内の、移動により新たに第二のメッシュと重なることとなる領域であり、ここでは、領域C
D1から領域C
D0を除外した領域である。つまり、移動の前後において、移動によって重なり状態が変化する領域の体積は、領域C
D1の体積から領域C
D0の体積を減算した値、即ち、体積(V
1−V
0)で表すことができる。
【0093】
従って、第二のメッシュ12が移動した場合の境界セルC
D0の体積の変化量ΔVは、
ΔV=V
1−V
0
となる。
【0094】
なお、ここでは、一の境界セルC
D0が第二のメッシュの表面に沿って接している場合について説明したが一の境界セルC
D0が第二のメッシュの表面と少なくとも一点で接している場合においても同様である。
【0095】
このように、一の境界セルが、第二のメッシュの表面の移動方向側に接するセルである場合、取得部103は、この境界セルの移動後の第二のメッシュと重ならない部分の体積と、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルの体積との差に応じて、一の境界セルの体積の変化量を取得する。例えば、取得部103は、この体積の差を、一の境界セルの体積の変化量として取得する。
【0096】
取得部103は、例えば、移動前の第二のメッシュの表面と少なくとも一部が接しているセルから、境界セルを検出し、検出した境界セルの1以上、好ましくは全てについて上記の処理を行う。ただし、これ以外の場合においても、上記の処理を行うようにしてもよい。なお、ここでの移動前の第二のメッシュの表面と少なくとも一部が接している第一のメッシュのセルは、移動前の第二のメッシュと交わるセルの、第二のメッシュの表面に対して第二のメッシュの移動方向側に位置する領域を含むと考えてもよいし、考えなくてもよい。
【0097】
取得部103は、重なり状態が変化した領域の体積を、そのまま一の境界セルの体積の変化量として取得する代わりに、この重なり状態が変化した領域の体積に応じて得られる値、例えば、重なり状態が変化した領域の体積を引数とした、予め指定された演算により得られる値を、体積の変化量として取得するようにしてもよい。例えば、予め指定された補正等のための係数を乗算した値を、重なり状態が変化した領域の体積に乗算して得られた値を、体積の変化量として取得するようにしてもよい。また、重なり状態が変化した領域の体積の絶対値を、一の境界セルの体積の変化量として取得してもよい。かかることは、以下においても同様である。
【0098】
なお、メッシュ移動部102は、第二のメッシュを移動させる際に、移動後の第二のメッシュが重なる位置にある境界セルが有する節点に対応する節点を、この第二のメッシュの移動方向において、移動後の第二のメッシュと重ならなくなる位置に配置することが好ましい。境界セルが有する節点に対応する節点は、境界セルが有する節点自身であってもよいし、境界セルが有する節点に対応して作成される節点であってもよい。例えば、境界セルが有する節点に対応する節点を配置するということは、移動後の第二のメッシュが重なる位置にある境界セルが有する節点を移動させることであってもよいし、移動後の第二のメッシュが重なる位置にある境界セルに対応する節点を、新たに作成することであってもよい。このようにして配置した節点を、境界セルの移動後の第二のメッシュが重なる位置にあった境界セルの代わりに解析部104が解析に用いることで、高品質な解析結果を得ることが可能となる。なお、この節点の移動により、境界セルが、変形したと考えてもよい。あるいは、この移動させた節点を、後述する解析部104が、境界セルについて解析等を行う際に利用するための節点と考えて、境界セル自体は変形されていないと考えてもよい。
【0099】
例えば、第二のメッシュを移動させる際に、メッシュ移動部102は、境界セルの、移動後の第二のメッシュが重なる位置にある節点、例えば、
図2(a)の節点11a及び節点11bを、それぞれ、第二のメッシュ12の移動方向において、移動後の第二のメッシュ12と重ならなくなる位置、例えば、
図2(b)の節点11c及び節点11dに移動させるようにしてもよい。この移動先の節点の位置は、どのような位置であってもよい。ただし、節点を移動させた境界セルが、移動後の第二のメッシュの表面と接するものとなるように、節点の移動先を決定することが好ましい。移動先の節点の位置は、例えば、第二のメッシュの移動方向において、移動後の第二のメッシュの表面と交わる位置、例えば座標である。また、第二のメッシュの表面が曲面である場合、複数の節点の移動先となる位置は、移動後の節点を結んだ辺が、移動後の第二のメッシュの表面の接線となる位置であってもよい。このようにした場合、例えば、境界セルは、第二のメッシュの移動後には、第二のメッシュの表面と交わらないようになる。かかることは、以下においても同様である。
【0100】
なお、全ての移動前の第一のメッシュの全ての節点等の座標は、例えば、メッシュ情報格納部101にマスターデータとして蓄積しておくことが好ましい。例えば、第二のメッシュが、上記で移動させた節点の移動方向とは逆の方向に移動することにより、第二のメッシュの移動によって節点を移動させた第一のメッシュのセルの、節点を移動させる前の元の状態のセルが、第二のメッシュと重ならなくなった場合、メッシュ移動部102が、この節点を移動させたセルの各節点の位置を移動前の元の位置に復元する、即ち、元の位置に移動させることが好ましい。このため、節点の元の位置を取得可能なマスターデータ等が必要となるからである。
【0101】
また、上記の演算等は、一例であり、実質的に同様の演算結果が得られる演算であれば他の演算等を行ってもよい。また、演算を実行する順番等は問わない。かかることは以下においても同様である。
【0102】
次に、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルが一の境界セルでない場合に、取得部103が行う第二の処理について例を挙げて以下に説明する。
【0103】
(1−2)第二の処理
図3は、取得部103が行う第二の処理を説明するための、第二のメッシュが移動する前の第一のメッシュと第二のメッシュとの関係を示す平面模式図(
図3(a))、第二のメッシュが移動した後の第一のメッシュと第二のメッシュとの第一の関係を示す平面模式図(
図3(b))、及び第二のメッシュが移動した後の第一のメッシュと第二のメッシュとの第二の関係を示す平面模式図(
図3(c))である。
図3においては、第一のメッシュ11の一部を一重線で、また、第二のメッシュ12の一部を二重線でそれぞれ示している。
【0104】
例えば、
図3(a)に示す状態において、第一のメッシュ11の、第二のメッシュ12の表面12sに沿って接しているセルC
D3の体積が、V
3であったとする。また、セルC
D3に第二のメッシュの移動方向において隣接するセルC
D4の体積が、V
4であったとする。
【0105】
この第二のメッシュ12を、矢印13が示す方向、即ち、第一のメッシュ11側に向かって、移動させる場合、移動後の状態は、
図3(b)となるとする。移動後の状態においては、第二のメッシュ12の表面12sは、移動前のセルC
D3に隣接するセルC
D4と交わる位置にあるとする。この状態の第二のメッシュ12の表面12sと交わるセルC
D4の、表面12sに対して第二のメッシュの反対側にある領域C
D5の体積が、V
5であったとする。この移動により、セルC
D3は、第二のメッシュ12に完全に重なることとなる。セルC
D4は、移動後の第二のメッシュ12の表面12sと交わる位置にあることから、このセルC
D4は境界セルである。
【0106】
この場合、第二のメッシュ12の移動方向において連続するセルC
D3、C
D4において、第二のメッシュ12の移動によって重なり状態が変化する領域は、
図3(a)の状態から、移動により新たに第二のメッシュと重なることとなる第一のメッシュ11の領域であり、ここでは、セルC
D3と、セルC
D4からセルC
D5を除外した領域である。つまり、移動の前後において、移動によって重なり状態が変化する領域の体積は、領域C
D3と領域C
D4の体積の和を、領域C
D5の体積から減算した値、即ち、体積(V
5−(V
3+V
4))で表すことができる。
【0107】
従って、境界セルC
D4の、第二のメッシュ12の移動による体積の変化量ΔVは、
ΔV=(V
5−(V
3+V
4))
となる。
【0108】
なお、上述したように、移動の際に、メッシュ移動部102が、境界セルC
D4の第二のメッシュ12と重なる節点を第二のメッシュ12と重ならない位置に移動させる場合、移動後の境界セルを、例えば、領域C
D5と考えてもよい。
【0109】
なお、領域C
D5は、セルC
D4から移動後の第二のメッシュと重なる部分を切り取った形状のセルと考えてもよいし、上述したように、セルC
D4の移動後の第二のメッシュと重なる節点を、第二のメッシュの移動方向において、第二のメッシュと重ならない位置に移動させて得られたセルと考えてもよい。
【0110】
なお、
図3(c)に示すように、移動後の第二のメッシュ12の表面が、セルC
D4に、第二のメッシュの移動方向において隣接するセルであるセルC
D6に交わる場合、即ちセルC
D6が境界セルである場合、セルC
D6の体積をV
6、セルC
D6の、移動後の第二のメッシュ12の表面12sに対して、第二のメッシュ12の反対側にある領域C
D7の体積をV
7とすると、移動による境界セルV
6の体積の変化量ΔVは、
【0111】
ΔV=(V
7−(V
3+V
4+V
6))となる。
【0112】
かかることは、境界セルが、領域C
D7に対して、第二のメッシュの移動方向においてさらに連続している配置されているセルである場合においても同様である。
【0113】
このように、一の境界セルが、第二のメッシュの表面の移動方向側に接するセルでない場合、取得部103は、例えば、一の境界セルの移動後の第二のメッシュと重ならない部分の体積と、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルから一の境界セルまでのセルの全てのセルの体積の積算量との差に応じて、一の境界セルの体積の変化量を取得する。例えば、取得部103は、体積の積算量の差を、一の境界セルの体積の変化量として取得する。
【0114】
なお、取得部103は移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する一のセルを含む、第二のメッシュの移動方向において一の境界セルと接する連続した1以上のセルの全てが、移動後の第二のメッシュと新たに完全に重なるようになった場合、または新たに全く重ならなくなった場合に、上記の処理を行うようにしてもよい。
【0115】
取得部103は、第一のメッシュの一のセルが、第二のメッシュと完全に重なっているか否かをどのように判断してもよい。例えば、一のセルの各頂点の座標が、それぞれ第二のメッシュのいずれかのセル内の座標である場合に、このセルを、第二のメッシュと完全に重なっていると判断する。例えば、取得部103は、第一のメッシュの全ての節点について、その座標が、第二のメッシュのいずれかのセル内の座標であるか否かを判断する。そして、この判断結果を用いて、第一のメッシュのセルのうちの、全ての頂点である節点の座標が、第二のメッシュのいずれかのセル内の座標であるセルを、第二のメッシュと完全に重なっているセルであると判断する。
【0116】
また、取得部103は、第一のメッシュの一のセルが、第二のメッシュと全く重なっていないか否かをどのように判断してもよい。例えば、一のセルの各頂点の座標が、いずれも第二のメッシュのいずれかのセル内の座標でない場合に、このセルが、第二のメッシュと全く重なっていないと判断する。例えば、取得部103は、第一のメッシュの全ての節点について、その座標が、第二のメッシュのいずれかのセル内の座標であるか否かを判断する。そして、この判断結果を用いて、第一のメッシュのセルのうちの、全ての頂点である節点の座標が、第二のメッシュのいずれかのセル内の座標でもないセルを、第二のメッシュと全く重ならないセルであると判断する。
【0117】
取得部103は、例えば、移動前の第二のメッシュの表面と少なくとも一部が接しているセルの中から、移動後に新たに第二のメッシュに完全に重なるようになるセル、あるいは、全く重ならなくなるセルを検出し、検出したセルから移動方向において連続するセルについて、上記の処理を行う。好ましくは、移動前の第二のメッシュの表面と少なくとも一部が接しているセル等から検出したセルの1以上、好ましくは全てについて上記の処理を行う。ただし、これ以外の場合においても、上記の処理を行うようにしてもよい。
【0118】
なお、第二のメッシュを移動させる際に、メッシュ移動部102は、上述したように、境界セルの、移動後の第二のメッシュと重なる位置にある節点を移動させるようにしてもよい。
【0119】
(2)1または2以上の境界セルについてまとめて変化量を取得する場合
取得部103は、例えば、1以上、好ましくは2以上の境界セルを有する第一のメッシュの連続している1以上のセルであって、第二のメッシュの移動によりこの第二のメッシュとの重なり状態が変化するセルの、重なり状態が変化する領域の体積に応じて、この連続している1以上のセルが有する境界セルの体積の変化量を取得する。
【0120】
1以上、好ましくは2以上の境界セルを有する第一のメッシュの連続している1以上のセルとは、例えば、1以上の境界セルのみで構成される連続したセルであってもよいし、1以上の境界セルと、そのいずれかの境界セルに連続したセルとで構成される連続したセルであってもよい。
【0121】
ここでの連続しているセルは、移動方向に連続しているセルであっても、移動方向以外に連続しているセルであってもよい。ただし、この連続しているセルは、上記の(1)で説明したような移動方向に連続しているセルを、複数束ねて連続させたセルであることが好ましい。
【0122】
取得部103は、例えば、上記の1以上の連続しているセルの、第二のメッシュの移動によりこの第二のメッシュとの重なり状態が変化するセルの、重なり状態が変化する領域の体積を、この連続したセルに含まれる全ての境界セルで分割して、境界セルの体積の変化量を取得する。
【0123】
この場合、例えば、取得部103は、重なり状態が変化する領域の体積を、連続した領域に含まれる全ての境界セルに対して、各境界セルの、移動後の第二のメッシュと重ならない部分の体積に応じて分割するようにしてもよい。例えば、各境界セル間における移動後の第二のメッシュと重ならない部分の体積の関係は、通常、移動前の各境界セルの体積に対応していることから、重なり状態が変化する領域の体積を、移動後の第二のメッシュと重ならない部分の体積に応じて分割することで、体積の変化量を各境界セルに適切に割り当てることができる。
【0124】
体積に応じて分割とは、例えば、体積の比と同じ比率で分割することである。例えば、各境界セルが、第二のメッシュの移動方向に伸びる形状を有しており、かつその端面が第二のメッシュの表面と平行に配置されている場合、各境界セルの移動後の第二のメッシュと重ならない部分の体積間の関係は、移動前の各境界セルの体積間の関係に比例していると考えられる。このように分割することで、各境界セルに体積の変化量を適切に割り当てることができる。ただし、ここでの同じ比率は、誤差等を含む値であってもよいし、任意の桁で切り上げ切り捨て等を行った比率であってもよい。なお、体積に応じて割り当てることは、上記のように、境界セルの移動方向の長さが同じである場合、断面積に応じて割り当てることと考えてもよい。
【0125】
境界セルの、移動後の第二のメッシュと重ならない部分の体積とは、例えば、境界セルの第二のメッシュと重なる節点が、上述したように第二のメッシュの移動の際に、第二のメッシュと重ならないように移動される場合、この節点が移動された境界セルの体積と考えてよい。また、境界セルの節点が移動しない場合、例えば、境界セルの移動後の第二のメッシュの表面に対して、第二のメッシュとは異なる側の領域の体積と考えてよい。
【0126】
ここで、1以上の境界セルについての体積の変化量をまとめて取得する場合の処理であって、上記の(1−1)において説明した処理に対応する第三の処理について説明する。
【0127】
(2−1)第三の処理
図4は、取得部103が行う第三の処理を説明するための、第二のメッシュを移動させる前の第一のメッシュと第二のメッシュとの関係を示す平面模式図(
図4(a))、及び、第二のメッシュを移動させた場合の第一のメッシュと第二のメッシュとの関係を示す平面模式図(
図4(b))である。
図4においては、第一のメッシュ11の一部を一重線で、また、第二のメッシュ12の一部を二重線でそれぞれ示している。また、点線は、第一のメッシュの第二のメッシュと重なっている部分を示している。
【0128】
例えば、
図4(a)に示す状態において、第一のメッシュ11の、第二のメッシュ12の表面12sに沿って接しているセルC
11の体積がV
11、セルC
12の体積がV
12、セルC
13の体積がV
13、であったとする。セルC
11と、セルC
12と、セルC
13とは、表面12sに沿って連続して位置しているとする。
【0129】
この第二のメッシュ12を、矢印23が示す方向、即ち、第一のメッシュ11側に向かって、移動させた場合の、移動後の状態が、
図4(b)であるとする。移動後の状態においては、第二のメッシュ12の表面12sが、セルC
11−セルC
13内に位置するものとする。この状態の第二のメッシュ12の表面12sが交わるセルC
11の、表面12sに対して第二のメッシュ12とは反対側にある領域C
21の体積がV
21であったとする。同様に、第二のメッシュ12が移動した後のセルC
12の、表面12sに対して第二のメッシュ2とは反対側にある領域C
22の体積がV
22、第二のメッシュ12が移動した後のセルC
13の、表面12sに対して第二のメッシュ12とは反対側にある領域C
23の体積がV23であったとする。なお、第二のメッシュ12が移動した後において、セルC
11−セルC
13は、第二のメッシュ12の表面12sと交わることから、これらのセルC
11−セルC
13は、境界セルである。
【0130】
この場合、連続しているセルC
11−C
13内の、第二のメッシュ12の移動によって重なり状態が変化する領域は、セルC
11−C
13内の、移動により新たに第二のメッシュ12と重なることとなる領域であり、ここでは、セルC
11から領域C
21を除外した領域、セルC
12から領域C
22を除外した領域、及びセルC
13から領域C
23を除外した領域である。つまり、第一のメッシュ11の境界セルを含む連続したセル内において、第二のメッシュ12が移動した場合に、第二のメッシュ12との重なり状態が変化する領域の体積V
allは、セルC
11の体積を領域C
21の体積から減算した値と、セルC
12の体積を領域C
22の体積から減算した値と、セルC13の体積を領域C23の体積から減算した値の合計となる。即ち、
【0131】
V
all=(V
21−V
11)+(V
22−V
12)+(V
23−V
13)
で表すことができる。
【0132】
そして、ここでは、この体積を、上記の連続したセルが含む境界セルであるセルC
11−C
13に分割して、各境界セルの第二のメッシュ12が移動した場合の体積の増加量を取得する。分割の際においては、例えば、境界セルC
11−C
13の、それぞれの、移動後の第二メッシュ12の表面12sに対して第二のメッシュ12とは反対側にある領域C
21−C
23の体積比で分割する。これにより、例えば、セルC
11の体積の増加量ΔV
11は、
【0133】
ΔV
11=V
all×{V
21/(V
21+V
22+V
23)}
となる。境界セルC
12及びC
13の体積の増加量についても同様である。
【0134】
なお、ここでは、体積比で分割するようにしたが、境界セルの体積V
21、V
22、及びV
23が同じである場合や、ほぼ同じと見なすことができる場合等においては、境界セルが三つであるため、上記の体積V
allを単に三等分してもよい。
【0135】
なお、ここでは、連続したセルC
11−C
13が第二のメッシュ12の表面12sに沿って接している場合について説明したが、境界セルC
11−C
13が第二のメッシュの表面と少なくとも一点で接している場合においても同様である。
【0136】
また、上記の処理は、第二のメッシュの移動方向が逆の場合も同様である。ただし、逆方向の移動の場合、移動により重なり状態が変化する領域は、移動によって新たに重ならなくなる領域となる。
【0137】
このように、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する1以上のセルと、1以上の境界セルとが同じセルである場合、取得部103は、例えば、1以上の境界セルの移動後の第二のメッシュと重ならない部分の体積と、この1以上の境界セルの体積との差に応じて、重なり状態が変化する領域の体積を取得し、当該取得した体積に応じて、前記1以上の境界セルの体積の変化量を取得するようにしてもよい。
【0138】
例えば、取得部103は、1以上の境界セルの移動後の第二のメッシュと重ならない部分の全ての体積の積算量と、この1以上の境界セルの体積の全ての積算量との差を、これらの連続したセルが有する全ての境界セルに分割するようにしてもよい。あるいは、1以上の境界セルの全ての体積の積算量を、これらの連続したセルが有する全ての境界セルに分割して、各境界セルの第二のメッシュと重ならない部分の体積と、この各境界セルに分割した値との差を、各境界セルの体積の変化量として取得するようにしてもよい。
【0139】
なお、取得した体積を分割する際には、各境界セルの、移動後の第二のメッシュと重なっていない部分の体積に応じて、例えば、体積比により、分割するようにしてもよい。
【0140】
取得部103は、例えば、この処理を、第二のメッシュの表面と少なくとも一部が接している、あるいは、第二のメッシュの表面と交わっている連続した1以上、好ましくは2以上の境界セルの集合の1以上、好ましくは全ての集合について行う。ただし、これ以外の場合においても、上記の処理を行うようにしてもよい。
【0141】
なお、取得部103が、上記と同様に、各境界セルの、移動後の第二のメッシュと重なる位置にある節点を、重ならないように移動させてよいことはいうまでもない。
【0142】
次に、1以上の境界セルについての体積の変化量をまとめて取得する場合の処理であって、上記の(1−2)において説明した処理を利用した第四の処理について説明する。
【0143】
(2−2)第四の処理
図5は、取得部103が行う第四の処理を説明するための、第二のメッシュを移動させる前の第一のメッシュと第二のメッシュとの関係を示す図(
図5(a))、第二のメッシュを移動させた場合の第一のメッシュと第二のメッシュとの第一の関係を示す平面模式図(
図5(b))、及び、第二のメッシュを移動させた場合の第一のメッシュと第二のメッシュとの第二の関係を示す平面模式図(
図5(c))である。
図5においては、第一のメッシュ11の一部を一重線で、また、第二のメッシュ12の一部を二重線でそれぞれ示している。また、点線は、第一のメッシュ11の、第二のメッシュ12が重なっている部分を示している。
【0144】
例えば、
図5(a)に示す状態において、第一のメッシュ11の、第二のメッシュ12の表面12sに沿って接しているセルC
11の体積がV
11、セルC
12の体積がV
12、セルC
13の体積がV
13、であったとする。セルC
11と、セルC
12と、セルC
13とは、表面12sに沿って連続して位置しているとする。また、セルC
11−セルC
13に対して、第二のメッシュの移動方向において隣接しているセルC
31−セルC
33のそれぞれの体積がV
31−V
33、セルC
31−セルC
33に対して、第二のメッシュの移動方向において隣接しているセルC
51−セルC
53のそれぞれの体積がV
51−V
53であるとする。セルC
11−セルC
13、セルC
31−セルC
33、及びセルC
51−セルC
53は2以上の連続したセルである。
【0145】
図5(a)に示した第二のメッシュ12を、矢印33が示す方向、即ち、第一のメッシュ11側に向かって、移動させた場合の、移動後の状態が、
図5(b)であるとする。移動後の状態においては、第二のメッシュ12の表面12sが、セルC
11−セルC
13に対して、第二のメッシュの移動方向において隣接しているセルC
31−セルC
33内に位置するものとする。この状態の第二のメッシュ12の表面12sが交わるセルC
31の、表面12sに対して第二のメッシュ12とは反対側にある領域C
41の体積がV
41であったとする。同様に、第二のメッシュ12が移動した後のセルC
32の、表面12sに対して第二のメッシュ2とは反対側にある領域C
42の体積がV
42、第二のメッシュ12が移動した後のセルC
33の、表面12sに対して第二のメッシュ12とは反対側にある領域C
43の体積がV
43であったとする。なお、第二のメッシュ12が移動した後において、セルC
31−C
33は、第二のメッシュ12の表面12sと交わることから、これらのセルC
31−C
33は、境界セルである。
【0146】
この場合、連続しているセルC
11−C
13及びC
31−C
33内の、第二のメッシュ12の移動によって重なり状態が変化する領域は、セルC
11−C
13及びC
31−C
33内の、移動により新たに第二のメッシュ12と重なることとなる領域であり、ここでは、セルC
11−C
13と、セルC
31−C
33から領域C
41−C
43を除外した領域と、セルC
11−C
13とをあわせた領域である。つまり、第一のメッシュ11の境界セルC
31−C
33を含む連続したセル内、即ち、セルC
11−C
13及びC
31−C
33において、第二のメッシュ12が移動した場合に、第二のメッシュ12との重なり状態が変化する領域の体積V
ALLは、セルC
31の体積V
31を領域C
41の体積V
41から減算した値と、領域C
32の体積V
32を領域C
42の体積V
42から減算した値と、領域C
33の体積V
33を領域C
43の体積V
43から減算した値との合計から、領域C
11の体積V
11と、領域C
12の体積V
12と、領域C
13の体積V
13と、を減算した値となる、即ち、
【0147】
V
ALL=(V
41−V
31)+(V
42−V
32)+(V
43−V
33)
−V
11−V
12−V
13
で表すことができる。
【0148】
そして、ここでは、この体積V
ALLを、上記の連続したセルが含む境界セルであるセルC
31−C
33に分割して、各境界セルC
31−C
33の、第二のメッシュ12が移動した場合の体積の増加量を取得する。分割の際においては、例えば、境界セルC
31−C
33の、それぞれの、移動後の第二メッシュ12の表面12sに対して第二のメッシュ12とは反対側にある領域C
41−C
43の体積比で分割する。これにより、例えば、セルC
31の体積の増加量ΔV
31は、
【0149】
ΔV
31=V
all×{V
41/(V
41+V
42+V
43)}
となる。境界セルC
12及びC
13の体積の増加量についても同様である。
【0150】
なお、ここでは、体積比で分割するようにしたが、境界セルの体積V
41、V
42、及びV
43が同じである場合や、ほぼ同じと見なすことができる場合等においては、境界セルが三つであるため、上記の体積V
allを単に三等分してもよい。また、上記の演算は、実質的に同じ演算結果が得られる処理であれば、演算の順番等は問わない。
【0151】
なお、ここでは、連続したセルC
11−C
13が第二のメッシュ12の表面12sに沿って接している場合について説明したが、境界セルC
11−C
13が第二のメッシュの表面と少なくとも一点で接している場合においても同様である。
【0152】
また、上記の処理は、第二のメッシュの移動方向が逆の場合も同様である。ただし、逆方向の移動の場合、移動により重なり状態が変化する領域は、移動によって新たに重ならなくなる領域となる。
【0153】
なお、
図5(c)に示すように、移動後の第二のメッシュ12の表面12sが、セルC
31−C
33に、第二のメッシュ12の移動方向において隣接するセルであるセルC
51−C
53に交わる場合、即ちセルC
51−C
53が境界セルである場合、セルC
51−C
53の体積をV
51−V
53、セルC
51−C
53の、移動後の第二のメッシュ12の表面12sに対して、第二のメッシュ12の反対側にある領域C
61−C
63の体積をV
61−V
63とすると、第二のメッシュ12が移動した場合に、第二のメッシュ12との重なり状態が変化する連続したセルC
11−C
13、C
31−C
33及びC
51−C
53において、第二のメッシュ12との重なり状態が変化する領域の体積V
ALLは、
【0154】
V
ALL=(V
61−V
51)+(V
62−V
52)+(V
63−V
53)
−V
31−V
32−V
33−V
11−V
12−V
13
となり、移動後の、境界セルC
51−C
53のそれぞれの体積の変化量ΔVは、上記の体積V
ALLを、これらの境界セルC
51−C
53に分割した値となる。
【0155】
このように、1以上の境界セルが、第二のメッシュの表面の移動方向側に接するセルでない場合、取得部103は、例えば、1以上の境界セルの移動後の第二のメッシュと重ならない部分の体積と、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する1以上のセルと1以上の境界セルとの間の全てのセルの体積の積算量との差に応じて、1以上の境界セルの体積の変化量を取得する。
【0156】
例えば、取得部103は、体積の積算量の差を、1以上の全ての境界セルで分割した体積を、各境界セルの体積の変化量として取得する。また、取得した体積を分割する際には、各境界セルの、移動後の第二のメッシュと重なっていない部分の体積に応じて、例えば、体積比により、分割するようにしてもよい。
【0157】
例えば、取得部103は、1以上の境界セルの移動後の第二のメッシュと重ならない部分の体積と、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する1以上のセルと1以上の境界セルとの間の全てのセルの体積の積算量との差を、これらの連続したセルが有する全ての境界セルに分割するようにしてもよい。あるいは、移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する1以上のセルと1以上の境界セルとの間の全てのセルの体積の積算量を、これらの連続したセルが有する全ての境界セルに分割し、各境界セルの第二のメッシュと重ならない部分の体積と、この各境界セルに分割した値との差を、各境界セルの体積の変化量として取得するようにしてもよい。
【0158】
なお、取得部103は移動前の第二のメッシュの表面にこの第二のメッシュの移動方向側で接する1以上のセルを含む、第二のメッシュの移動方向において1以上の境界セルと接する連続した1以上のセルの全てが、移動後の第二のメッシュと新たに完全に重なるようになった場合、または新たに全く重ならなくなった場合に、上記の処理を行うようにしてもよい。
【0159】
取得部103は、例えば、移動前の第二のメッシュの表面と少なくとも一部が接している第一のメッシュのセルの中から、移動後の第二のメッシュにより新たに完全に重なることとなるセルを検出し、検出したセルから表面に沿って連続しているセルの集合を検出する。そして、一の集合を構成する1以上の各セルについて、第二のメッシュの移動方向において連続している移動後の第二のメッシュにより新たに完全に重なることとなるセルと、第二のメッシュの移動方向において連続している境界セルとを検出する。そして、一の集合について検出された1以上の境界セルについて、上記のように体積の変化量を取得する。この処理を、上記で検出したセルの集合の1以上について行う。取得部103は、例えば、移動後の第二のメッシュにより新たに完全に重ならなくなるメッシュについても同様の処理を行う。ただし、これ以外の場合においても、上記の処理を行うようにしてもよい。
【0160】
なお、取得部103が、上記と同様に、各境界セルの、移動後の第二のメッシュと重なる位置にある節点を、重ならないように移動させてよいことはいうまでもない。
【0161】
なお、取得部103は、例えば、メッシュ移動部102による移動によって第二のメッシュと重ならなくなった第一のメッシュの領域の大きさ(例えば、体積)に応じて、この重ならなくなった領域を有するセルの1以上について体積の変化量を取得するようにしてもよい。例えば、取得部103は、第二のメッシュが、第一のメッシュとの重なる領域が減少するように移動する場合に、この重ならなくなった領域を有する第一のメッシュのセルの1以上について体積の変化量を取得するようにしてもよい。例えば、上述したような境界セル以外の、新たに重ならなくなったセルについても、体積の変化量を取得してもよい。
【0162】
以下、第二のメッシュの移動により、第一のメッシュに、第二のメッシュと新たに重ならなくなった領域が発生した場合において、取得部103が、重ならなくなった領域を有するセルの1以上について体積の変化量を取得する処理の例について説明する。ここでは、複数のセルについてまとめて体積の変化量を取得する処理について説明する。
【0163】
(3)重ならなくなった領域を含むセルについて体積の変化量を取得する処理
例えば、
図2(b)に示す状態にあった第二のメッシュが、矢印13が示す移動方向とは逆方向に移動し、
図2(a)に示す状態になったとする。このセルC
D1は、第二のメッシュ12が矢印13が示す方向に移動したことに応じて、セルC
D0の節点の一部が第二のメッシュと重ならないように移動したことにより変形されたセルであるとする。つまり、セルC
D1とセルC
D0は、実質的に同じセルであるとする。
【0164】
この場合、第二メッシュ12の表面12sは、セルC
D1の変形前のセルであるセルC
D0と交わる位置にあるため、セルC
D1の第二のメッシュ12の表面12sと接していた節点は、移動後の第二のメッシュ12の表面12sに接する位置に移動して、セルC
D0となる。そして、このセルC
D0の体積の増加量ΔVは、
ΔV=V
0−V
1
となる。つまり、このようにして、移動後のセルの体積の変化量を算出すればよい。かかることは、第二のメッシュ12の表面12sが、移動前の元のセルC
D0と交わる位置に移動する限りは同様である。
【0165】
また、例えば、
図3(c)に示す状態にあった第二のメッシュが、矢印13が示す移動方向とは逆方向に移動し、
図3(a)に示す状態になったとする。
【0166】
この場合、厳密にはセルC
D6の体積の変化量はV
6−V
7、セルC
D4の体積の変化量はV
4(=V
4−0)、セルC
D3の変化量はV
3(=V
3−0)と考えられる。しかし、流体解析等においては、セルC
D4,C
D3のように体積がゼロのセルから、新たに体積を発生させると不都合が生じる場合がある。
【0167】
このため、第二のメッシュの移動方向において一列に配列された1以上のセルの体積の変化量の積算量を取得し、これを、配列されているセルに分配する。この場合はセルC
D6の変化量はΔV×{V
6/(V
3+V
4+V
6)},セルC
D4の変化量はΔV×{V
4/(V
3+V
4+V
6)}、セルC
D3の変化量はΔV×{V
3/(V
3+V
4+V
6)}となる。ただし、ΔV=V
3+V
4+V
6−V
7である。つまり、移動後の各セルの体積比で、各セルの新たに重ならなくなった領域の体積の積算量を分割することで、各セルの体積の変化量を取得する。
【0168】
なお、ここでは、第二のメッシュの移動方向において一列に配列された各セルについて、体積の変化量を取得する場合について説明したが、一列に配列されたメッシュに限らず、連続している複数のメッシュについてまとめて各セルの体積の変化量を取得するようにしてもよい。
【0169】
例えば、
図5(c)に示す状態から、
図5(a)に示す状態となるように、矢印33とは逆方向に第二のメッシュを移動させたとする。この場合、例えば、新たに重ならなくなった領域の体積の積算量ΔV
ALLは、
【0170】
ΔV
ALL=V
31+V
32+V
33+V
41+V
42+V
43+V
51+V
52+V
53−V
61−V
62−V
63
【0171】
となり、これらの重ならなくなった領域を少なくとも一部に含むセルC
11−C
13、C
41−C
43及びC
51−C
53のそれぞれの体積の増加量は、この積算量ΔV
ALLにそれぞれの体積の比を乗算した値ととなる。
【0172】
このように、取得部103は、メッシュ移動部102による移動によって第二のメッシュと重ならなくなった第一のメッシュの領域の体積を、第一のメッシュのこの重ならなくなった領域を有する1以上のセルで分割して、セルについての体積の変化量を取得するようにしてもよい。好ましくは、取得部103は、重なり状態が変化する領域の体積を、重ならなくなった1以上のセルのそれぞれの、移動後に第二のメッシュと重ならなくなった部分の体積に応じて分割することで、重ならなくなった1以上のセルのそれぞれの体積の変化量を取得するようにしてもよい。
【0173】
なお、取得部103は、上記のような第一から第四の処理の1以上や、第二のメッシュの移動により、第一のメッシュに、第二のメッシュと新たに重ならなくなった領域が発生した場合にセルの体積の変化量を取得する処理等をどのように組み合わせて用いるようにしてもよい。
【0174】
なお、取得部103は、上記のように境界セルについて体積の変化量を取得するだけでなく、後述する解析処理に利用される情報等を適宜取得してもよい。また、体積の変化量を取得する際に取得した情報を、解析処理に利用する情報として取得して、図示しない格納部等に蓄積しておくようにしてもよい。
【0175】
例えば、取得部103は、第二のメッシュが移動することにより、第二のメッシュに完全に重なることとなる第一のメッシュのセルを検出してもよい。同様に、第二のメッシュに全く重ならなくなる第一のメッシュのセルを検出してもよい。例えば、取得部103は、完全に重なることとなった第一のメッシュのセルのセル識別子に対し、完全に重なっていることを示すフラグ情報を対応づけるようにし、全く重ならなくなった第一のメッシュのセルのセル識別子に対し、完全に重なっていないことを示すフラグ情報を対応づけるようにしてもよい。このフラグ等の情報は、例えば、第一メッシュ情報等に格納されるようにすればよい。例えば、重合格子法等においては、完全に重なるセルは、後述する解析部104等が計算対象等として用いないセルであることから、このフラグの情報を、計算対象でないことを示すフラグの情報としてもよい。あるいは、取得部103は、これらのセルのセル識別子等を、例えば、第一メッシュ情報から取得して、図示しない記憶媒体等に蓄積してもよい。
【0176】
取得部103は、通常、MPUやメモリ等から実現され得る。取得部103の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0177】
解析部104は、取得部103が1以上の境界セルについて取得した体積の変化量を用いて、第一のメッシュ及び第二のメッシュの少なくとも一方に関する解析を行う。解析部104が行う解析は、例えば、メッシュ内のセル、具体的には境界セルの体積の変化量を用いた解析である。例えば、解析部104は、移動後の第二のメッシュや、第一のメッシュの節点の座標や、セルの情報等を解析に用いてもよい。例えば、解析部104は、上述したように、第二のメッシュと重ならないように移動した境界セルの節点の座標等を用いて、解析を行う。解析部104が行う解析は、例えば、有限体積法に基づいた解析である。解析部104が行う解析は、例えば、いわゆるシミュレーションも含む概念である。
【0178】
解析部104は、各メッシュに対応する解析対象について解析を行う。例えば、解析部104は、第二のメッシュが示す部品周りの、第一のメッシュが示す流体についての解析を行う。解析部104は、例えば、第一のメッシュと第二のメッシュとが接する位置や重なる位置において、第一のメッシュと第二のメッシュとの節点間で、必要に応じて相互に情報交換を行って解析を行う。
【0179】
解析部104は、例えば、第一のメッシュの第二のメッシュが完全に重なっている領域を、計算対象、即ち解析に利用しない。これにより、第一のメッシュの形状を、第二のメッシュとの重なりを考慮して変更しなくても、適切に解析できる。
【0180】
解析部104は、例えば、流体について流速、密度、温度、及び圧力の少なくとも1以上を従属変数とした解析を行う。例えば、この場合、通常、第一のメッシュおよび第二のメッシュに解析対象である流体領域を表現するセルを含むメッシュとなる。
【0181】
なお、解析部104が、境界セルについて取得した体積の変化量を用いたどのような解析を行うかは問わない。例えば、解析部104は、移流を含む熱移動の解析や物質濃度等の拡散解析を行ってもよい。また、体積の変化量を用いた解析は、例えば、体積の変化量を用いて取得された情報を用いた解析も含む概念である。
【0182】
解析部104が、解析に用いるパラメータ等は、例えば、メッシュ情報格納部101や、図示しない格納部等に予め格納されている。
【0183】
例えば、以下に示す各基礎式(式1)−(式4)、即ち、各従属変数の保存を表した時間・空間に対する偏微分方程式を時間・空間に対して離散化、即ち、方程式を数値的なアルゴリズムで計算できる形に変形し、各セルごとに周囲のセルとの移流・拡散による流束(フラックス)の授受を連立方程式によってバランスさせることによって解を得る(有限体積法)。
【0184】
質量の保存式:圧縮性流体の場合
【数1】
【0185】
運動量の保存式(i=1〜3):圧縮性流体の場合
【数2】
【0186】
エネルギーの保存式:圧縮性流体の場合
【数3】
【0187】
状態方程式:圧縮性流体の場合
【数4】
【0188】
なお、上記基礎式(式1)−(式4)においてx
i;位置座標[m]、u
i;x
i方向の流速[m/s]、t;時間[s]、ρ;密度[kg/m
3]、p;圧力[Pa]、μ;粘性係数[Pa・s]、H;比エンタルピー[J/kg]、g
i;加速度[m/s
2]、β;体膨張率[1/K]、T;温度[K]、T
0;流体の基準温度[K]、C
p;定圧比熱[J/kg・K]、K;熱伝導率[W/m・K]、
;発熱量[J/m
3・s]、R;ガス定数[J/kg・K]、σ
ij;応力テンソル
【数5】
であるとする。ここで、サフィックスはEinsteinの総和規約に従い、δ
ijはクロネッカーのデルタを意味する。
【0189】
この式変形の過程で、セル体積の時間変化は圧力や温度に関する式の発生項(増減に寄与)として現れるため、境界セルの体積変化は圧力変化と温度変化に反映される。さらに状態方程式を連立することで、密度変化を得ることができる。
【0190】
解析部104は、通常、MPUやメモリ等から実現され得る。解析部104の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0191】
出力部105は、解析部104の解析結果を出力する。ここでの出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0192】
なお、上述したメッシュ移動部102による第二のメッシュの移動を複数回行い、移動を行う毎に、取得部103が、境界セルの体積の変化量等を取得し、解析部104が、取得部103が取得した情報を用いて、第一のメッシュや、第二のメッシュに対する解析を行って、解析結果を出力部105が、図示しない記憶媒体等に順次蓄積し、複数回の移動が終了した場合に、出力部105が蓄積された複数回の移動に対応した解析結果を、出力するようにしてもよい。
【0193】
出力部105は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部105は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0194】
次に、情報解析装置1の動作の一例について
図6のフローチャートを用いて説明する。ここでは、取得部103が上記において(2−1)で説明した第三の処理及び(2−2)で説明した第四の処理を用いて、境界セルの体積の変化量を取得する場合について説明する。
【0195】
(ステップS101)取得部103は、第二のメッシュの移動前の状態において、第一のメッシュの各セルにおいて、第二のメッシュと完全に重なっているセルと、全く重なっていないセルとを検出する。取得部103は、例えば、完全に重なっていると判断したセルのセル識別子に、完全に重なるセルであることを示すフラグ等の情報を対応づけて、メッシュ情報格納部101等に蓄積する。また、全く重なっていないと判断したセルのセル識別子に、完全に重なっていないセルであることを示すフラグ等の情報を対応づけて、メッシュ情報格納部101等に蓄積する。また、いずれでもないセル、即ち、一部が重なっているセルについては、一部が重なっていることを示すフラグ等の情報を対応づけて、メッシュ情報格納部101等に蓄積する。
【0196】
(ステップS102)メッシュ移動部102は、図示しない格納部等から移動方向や移動距離等の情報を取得し、取得した情報を用いて第二のメッシュを移動させる。例えば、メッシュ移動部102は、第二のメッシュの移動後の節点情報、例えば、節点の座標を取得する。そして、取得した節点情報で第二メッシュ情報の節点情報を更新する。なお、移動前の第二のメッシュの節点情報等は、メッシュ情報格納部101や、図示しない記憶媒体等に蓄積しておくようにしてもよい。
【0197】
(ステップS103)取得部103は、第二のメッシュの移動後において、ステップS101と同様に、完全に重なっているセルと、全く重なっていないセルとを検出する。そして、ステップ101等において既にセル識別子と対応づけて蓄積されている、完全に重なるセルであるか否かを示すフラグ等の情報を、新たな判断結果を用いて、更新する。
【0198】
(ステップS104)取得部103は、ステップS103で蓄積したフラグ等の情報に変化があったセルのセル識別子を取得する。具体的には、取得部103は、移動後に新たに完全に第二のメッシュと重なるようになったセルのセル識別子を取得する。また、取得部103は、移動後に全く第二のメッシュと重ならなくなったセルのセル識別子を取得する。そして、取得したセル識別子を、それぞれ、メッシュ情報格納部101等に蓄積する。これらのセルのセル識別子に、重なり状態が変化したことを示す情報を付与して蓄積するようにしてもよい。
【0199】
(ステップS105)取得部103は、移動前の第二のメッシュの、移動方向側の表面に接するセルの中に、新たに完全に第二のメッシュと重なることとなったセルがあるか否かを判断する。例えば、取得部103は、移動方向側の表面に接するセルのセル識別子を取得し、取得したセル識別子が、ステップS105において取得した新たに完全に重なることとなったセルのセル識別情報のいずれかと一致するか否かを判断する。そして、一致するものがあれば、新たに完全に第二のメッシュと重なることとなったセルがあると判断する。ある場合、ステップS106に進み、ない場合、ステップS109に進む。
【0200】
(ステップS106)取得部103は、境界セルを検出する。例えば、取得部103は、移動後の第二のメッシュの表面と交わる第一のメッシュのセルを検出する。例えば、取得部103は、第二のメッシュの表面の座標の1以上が内部に含まれるセルを、境界セルとして検出する。検出したセルのセル識別子を、メッシュ情報格納部101や、図示しない格納部等に蓄積する。
【0201】
(ステップS107)取得部103は、移動前の第二のメッシュの移動方向側の表面に接するセルのうちの、新たに完全に第二のメッシュと重なることとなったセルのうちの隣接するセルをグループ化していく。なお、隣接するセルがないセルは、一のセルを一のグループとする。
【0202】
(ステップS108)取得部103は、ステップS107で検出した各グループについて、第二のメッシュの表面の移動方向側に接するセルが境界セルでない場合における、境界セルについて体積の変化量を取得する処理を行う。この処理は、上述した第四の処理に相当する処理である。この処理の詳細については後述する。
【0203】
(ステップS109)取得部103は、移動後に、第二のメッシュと重ならなくなった領域が増加したセルがあるか否かを判断する。重ならなくなった領域が増加したセルは、例えば、完全に重なっていた状態から、部分的に重ならなくなった状態となったセルや、完全に重なっていた状態から、全く重ならなくなった状態となったセル等である。また、重ならなくなった領域が増加したセルは、例えば、第二のメッシュの外側において移動前の第二のメッシュの表面に接していたセルであって、第二のメッシュが、第二のメッシュの表面の内向きの法線方向に移動する際に、移動前にこのセルの表面に接していた面またはこの表面上に位置していた節点を、この表面に追従して移動させることで、重ならない領域の体積が増加したセルである。領域が増加したセルがある場合、ステップS110に進み、ない場合、ステップS112に進む。
【0204】
(ステップS110)取得部103は、移動前の第二のメッシュの表面に接していたセルであって、第二のメッシュの移動によって第二のメッシュと重ならなくなった領域が変化したセルのうちの、隣接するセルを順次グループ化していく。なお、隣接するセルがないセルは、一のセルを一のグループとする。
【0205】
(ステップS111)取得部103は、ステップS110で検出した各グループについて、各セルの体積の変化量を取得する処理を行う。この処理は、上述した(3)に示した処理に相当する処理である。この処理の詳細については後述する。
【0206】
(ステップS112)取得部103は、ステップS106と同様に境界セルを検出し、移動前の第二のメッシュの表面の外向きの法線方向において、移動前の第二のメッシュの表面に接するセルの中に、境界セルがあるか否かを判断する。ある場合、ステップS113に進み、ない場合、ステップS115に進む。
【0207】
(ステップS113)取得部103は、移動前の第二のメッシュの表面に接する境界セルのうちの隣接するものをグループ化していく。なお、隣接する境界セルがない境界セルは、一のセルを一のグループとする。
【0208】
(ステップS114)取得部103は、ステップS113で検出した各グループについて、第二のメッシュの表面の移動方向側に接するセルが境界セルである場合における、境界セルについて体積の変化量を取得する処理を行う。この処理は、上述した第三の処理に相当する処理である。この処理の詳細については後述する。
【0209】
(ステップS115)取得部103は、第二のメッシュの表面の位置に合わせて、適宜、第一のメッシュのセルの節点の位置を移動させる。例えば、境界セルの第二のメッシュと重なる節点を、重ならない位置に配置する。例えば、重ならない位置に移動させる。また、既に、節点を移動したセルについては、第二のメッシュと重ならなくなった場合、その節点を、元の節点の位置に移動させてもよい。また、既に、節点を移動したセルであって、移動後の第二のメッシュの表面が、節点を移動する前の状態の同じセルと交わるセルについては、その移動後の第二のメッシュの表面と重なる位置、あるいは表面と隣接する位置に、第二のメッシュ側に位置していた節点を移動させてもよい。
【0210】
(ステップS116)解析部104は、ステップS108や、ステップS110や、ステップS114で取得した境界セルの体積の変化量と、ステップS115で移動させた節点の節点情報等を用いて、第一のメッシュや第二のメッシュについて解析を行う。解析結果は、例えば、解析部104や出力部105が図示しない格納部等に蓄積する。
【0211】
(ステップS117)メッシュ移動部102は、第二のメッシュを再度移動させるか否かを判断する。例えば、移動回数が予め指定されている場合、移動を行う毎に、移動回数をカウントして、カウント数が指定された回数になるまで、移動を繰り返すようにしてもよい。移動を行う場合、ステップS102に戻り、移動を行わない場合、ステップS117に進む。
【0212】
(ステップS118)メッシュ移動部102は、ステップS116で取得した解析結果を出力する。そして処理を終了する。
【0213】
なお、
図6のフローチャートにおいて、移動を繰り返す場合、二回目以降の移動においては、ステップS104等で変化のあったセルを検出する際に、前回の移動の際にステップS103で取得したフラグ等の情報を用いるようにすればよい。
また、
図6のフローチャートにおいて、ステップS111の処理と、ステップS108のいずれか一方の処理だけを行うようにしてもよい。
【0214】
次に、情報解析装置1の、第二のメッシュの表面の移動方向側に接するセルが境界セルでない場合における、境界セルについて体積の変化量をグループ毎に取得する処理の一例について
図7のフローチャートを用いて説明する。この処理は、例えば、
図6のステップS108に相当する処理である。
【0215】
(ステップS201)取得部103は、カウンターmに1を代入する。
【0216】
(ステップS202)取得部103は、ステップS107で取得したグループにm番目のグループがあるか判断する。ある場合、ステップS203に進み、ない場合、上位の処理に戻る。
【0217】
(ステップS203)取得部103は、カウンターnに1を代入する。
【0218】
(ステップS204)取得部103は、m番目のグループにn番目のセルがあるか否かを判断する。ある場合、ステップS205に進み、ない場合、ステップS214に進む。
【0219】
(ステップS205)取得部103は、n番目のセルの体積を取得する。例えば、n番目のセルの節点の座標等から体積を算出する。取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0220】
(ステップS206)取得部103は、カウンターrに1を代入する。
【0221】
(ステップS207)取得部103は、n番目のセルに対して、移動方向に連続するr番目のセルが、第二のメッシュと完全に重なったセルであるか否かを判断する。例えば、ステップS103による検出結果を用いて判断する。重なったセルである場合、ステップS208に進み、重なったセルでない場合、ステップS209に進む。重なったセルでない場合、このセルは、通常、境界セルである。
【0222】
(ステップS208)取得部103は、r番目のセルの体積を取得する。取得部103は、取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0223】
(ステップS209)取得部103は、r番目のセルである境界セルの体積を取得する。取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0224】
(ステップS210)取得部103は、r番目のセルの、移動後の第二のメッシュと重ならない領域の体積を取得する。この体積は、例えば、第二のメッシュの表面の座標と、r番目のセルの座標を用いて取得可能である。取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。そして、ステップS213に進む。
【0225】
(ステップS211)取得部103は、カウンターrの値を1インクリメントする。
【0226】
(ステップS212)取得部103は、n番目のセルに対して、第二のメッシュの移動方向に連続するr番目のセルがあるか否かを判断する。ある場合、ステップS207に戻り、ない場合、ステップS213に進む。
【0227】
(ステップS213)取得部103は、カウンターnの値を1インクリメントする。そして、ステップS204に戻る。
【0228】
(ステップS214)取得部103は、m番目のグループについて、重なり状態が変化した全ての領域の体積を取得する。例えば、取得部103は、m番目のグループについてステップS208で取得した全てのセルの体積と、ステップS209で取得した全てのセルの体積とを、ステップS210で取得した全ての体積の和から減算する。
【0229】
(ステップS215)取得部103は、ステップS214で取得した体積を、このグループに含まれる境界セルに分割して、各境界セルの体積の変化量を取得する。例えば、一の境界セルの体積の変化量として、この境界セルについてステップS210で取得した体積を、このグループの全ての境界セルについてステップS210で取得した体積の和で除算した値を、ステップS214で取得した値に乗算した値を取得する。
【0230】
(ステップS216)取得部103は、ステップS215で取得した各境界セルの体積の変化量を、例えば、各境界セルのセル識別子と対応づけて、図示しない格納部等に蓄積する。
【0231】
(ステップS217)取得部103は、カウンターmの値を1インクリメントする。そして、ステップS202に戻る。
【0232】
次に、情報解析装置1の、第二のメッシュの表面の移動方向側に接するセルが境界セルである場合における、境界セルについて体積の変化量をグループ毎に取得する処理の一例について
図8のフローチャートを用いて説明する。この処理は、例えば、
図6のステップS114に相当する処理である。
【0233】
次に、情報解析装置1の動作の一例について
図8のフローチャートを用いて説明する。
【0234】
(ステップS301)取得部103は、カウンターmに1を代入する。
【0235】
(ステップS302)取得部103は、ステップS113で取得したグループにm番目のグループがあるか判断する。ある場合、ステップS303に進み、ない場合、上位の処理に戻る。
【0236】
(ステップS303)取得部103は、カウンターnに1を代入する。
【0237】
(ステップS304)取得部103は、m番目のグループにn番目のセルがあるか否かを判断する。ある場合、ステップS305に進み、ない場合、ステップS308に進む。
【0238】
(ステップS305)取得部103は、n番目のセルについて体積を取得する。n番目のセルは、境界セルである。取得部103は、例えば、取得した体積をn番目のセルのセル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0239】
(ステップS306)取得部103は、n番目のセルの、移動後の第二のメッシュと重ならない領域の体積を取得する。この体積は、例えば、第二のメッシュの表面の座標と、n番目のセルの座標を用いて取得可能である。取得した体積を、例えば、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0240】
(ステップS307)取得部103は、カウンターnの値を1インクリメントする。そして、ステップS304に戻る。
【0241】
(ステップS308)取得部103は、m番目のグループについて、重なり状態が変化した全ての領域の体積を取得する。例えば、取得部103は、m番目のグループについてステップS305で取得した全ての体積を、ステップS306で取得した全ての体積の和から減算する。
【0242】
(ステップS309)取得部103は、ステップS308で取得した体積を、このグループに含まれる境界セルに分割して、各境界セルの体積の変化量を取得する。例えば、一の境界セルの体積の変化量として、この境界セルについてステップS306で取得した体積を、このグループの全ての境界セルについてステップS306で取得した体積の和で除算した値を、ステップS308で取得した値に乗算した値を取得する。
【0243】
(ステップS310)取得部103は、ステップS309で取得した各境界セルの体積の変化量を、例えば、各境界セルのセル識別子と対応づけて、図示しない格納部等に蓄積する。
【0244】
(ステップS311)取得部103は、カウンターmの値を1インクリメントする。そして、ステップS302に戻る。
【0245】
次に、情報解析装置1の、第二のメッシュと重ならない領域が増加したセルについて、体積の変化量をグループ毎に取得する処理の一例について
図21のフローチャートを用いて説明する。この処理は、例えば、
図6のステップS111に相当する処理である。なお、ここでは、既に第二のメッシュの移動等に伴って節点を移動したセルであって、移動後の第二のメッシュの表面が、節点を移動する前の状態の同じセルと交わるセルについては、その移動前の第二のメッシュ側に位置していた節点を、移動後の第二のメッシュの表面と重なる位置、あるいは表面と隣接する位置に、移動させる場合を例に挙げて説明する。
【0246】
(ステップS401)取得部103は、カウンターmに1を代入する。
【0247】
(ステップS402)取得部103は、ステップS107で取得したグループにm番目のグループがあるか判断する。ある場合、ステップS403に進み、ない場合、上位の処理に戻る。
【0248】
(ステップS403)取得部103は、カウンターnに1を代入する。
【0249】
(ステップS404)取得部103は、m番目のグループにn番目のセルがあるか否かを判断する。ある場合、ステップS405に進み、ない場合、ステップS413に進む。
【0250】
(ステップS405)取得部103は、n番目のセルの第二のメッシュが移動した後の体積を取得する。例えば、n番目のセルの節点の座標等から体積を算出する。このステップでの移動後の体積とは、例えば、n番目のセルの第二のメッシュ側の節点を、移動後の第二のメッシュの表面と重なる位置、もしくは表面に隣接する位置に、第二のメッシュの移動方向に向かって移動させた場合の体積である。取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0251】
(ステップS406)取得部103は、n番目のセルの第二のメッシュが移動する前の体積を取得する。取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0252】
(ステップS407)取得部103は、カウンターrに1を代入する。
【0253】
(ステップS408)取得部103は、n番目のセルに対して、移動方向に連続するr番目のセルが、第二のメッシュと重なっていない領域の体積が移動後に増加したセルであるか否かを判断する。増加したセルである場合、ステップS409に進み、増加したセルでない場合、ステップS412に進む。
【0254】
(ステップS409)取得部103は、r番目のセルの移動後の第二のメッシュと重なった領域の体積を取得する。取得部103は、例えば、r番目の取得した体積を、セル識別子と対応づけてメッシュ情報格納部101や、図示しない格納部に蓄積する。
【0255】
(ステップS410)取得部103は、カウンターrの値を1インクリメントする。
【0256】
(ステップS411)取得部103は、n番目のセルに対して、第二のメッシュの移動方向に連続するr番目のセルがあるか否かを判断する。ある場合、ステップS408に戻り、ない場合、ステップS412に進む。
【0257】
(ステップS412)取得部103は、カウンターnの値を1インクリメントする。そして、ステップS404に戻る。
【0258】
(ステップS413)取得部103は、m番目のグループについて、重なり状態が変化した全ての領域の体積を取得する。例えば、取得部103は、m番目のグループについてステップS405で取得した全てのセルの体積と、ステップS409で取得した全てのセルの体積との和から、ステップS406で取得した全ての体積の和を減算する。
【0259】
(ステップS414)取得部103は、ステップS413で取得した体積を、このグループに含まれる全てのセルに分割して、各セルの体積の変化量を取得する。例えば、一のセルの体積の変化量として、このセルについてステップS405またはステップS409で取得した体積を、このグループの全ての境界セルについてステップS405またはステップS409で取得した体積の和で除算した値を、ステップS413で取得した値に乗算した値を取得する。
【0260】
(ステップS415)取得部103は、ステップS415で取得した各境界セルの体積の変化量を、例えば、各境界セルのセル識別子と対応づけて、図示しない格納部等に蓄積する。
【0261】
(ステップS416)取得部103は、カウンターmの値を1インクリメントする。そして、ステップS402に戻る。
【0262】
なお、上記のステップS413及びステップS414の代わりに、各グループに属している各セルから第二のメッシュの移動方向に一列に伸びるよう連続して配列されている重ならない領域が増加したセル群毎に、この重ならない領域の増加した体積を積算し、その積算した体積を、このセル群を構成する各セルに対し、各セルの第二のメッシュと重なっている領域の体積比で分割してセル毎の体積の増加量を算出するようにしてもよい。このようにすることで、第二のメッシュの移動方向に伸びる列ごとに、第一のメッシュのセルの体積の増加量を取得することができる。
【0263】
(具体例1)
以下、本実施の形態における情報解析装置1の具体的な動作について説明する。ここでは、一例として、第一のメッシュが、シリンダ内の領域を示しており、第二のメッシュが、そのシリンダ内で移動するピストンのヘッド部分である場合について説明する。また、ここでは、第二のメッシュのみが移動するものとする。また、第一のメッシュ及び、第二のメッシュは、z軸方向にのびるように配置されており、第二のメッシュは、z軸方向のみに、上下移動するものとする。また、第一のメッシュと第二のメッシュを構成するセルは、全て、シリンダ内及びピストンのz軸方向に平行にのびる形状を有しているものとする。
【0264】
図9は、メッシュ情報格納部101に格納されている第一のメッシュの節点情報を管理する第一節点情報管理表である。この節点情報は、第一メッシュ情報の一部である。第一節点情報管理表は、「第一節点ID」と、「座標」という属性を有している。「第一節点ID」は、第一のメッシュの節点の識別子である。「座標」は節点の座標である。なお、「座標」のx
100や、y
100、z
100等は任意の値を示すものとする。かかることは、以下の座標においても同様である。
【0265】
図10は、格納されている第一のメッシュのセルを管理するセル管理表である。このセル管理表は、第一メッシュ情報の一部である。セル管理表は、「セルID」と、「節点ID」と、「マスク」と、「変化」という属性を有している。「セルID」は、セル識別子である。「節点ID」は、セルを構成する節点の節点識別子である。ここでは、各セルが、三角柱であり、節点を6つ有している場合について説明する。「マスク」は、セルが、第二のメッシュと重なっている状態を示す属性であり、値「1」は、セルが完全に重なっていることを示し、値「−1」は、セルが全く重なっていないことを示し、値「0」は、セルが一部重なっている個とを示す。この「マスク」の初期値は「Null」であるとする。「変化」は、第二のメッシュの移動前と移動後とで、セルの「マスク」の値が変わったか否かを示す属性であり、値「1」は、「マスク」の値が移動の前後で変わったことを示し、値「0」は、「マスク」の値が移動前後で変わっていないことを示す。初期値は「Null」であるとする。
【0266】
図11は、メッシュ情報格納部101に格納されている第二のメッシュの節点情報を管理する第二節点情報管理表である。この節点情報は、第二メッシュ情報の一部である。第二節点情報管理表は、「第二節点ID」と、「座標」と、「表面」いう属性を有している。「第二節点ID」は、第二のメッシュの節点の識別子である。「座標」は、第一のメッシュの節点情報の座標と同じ座標系であるとする。「表面」は、節点が第二のメッシュの表面の節点であるか否かを示すフラグ情報であり、値「1」は、表面のセルであることを示し、値「0」は、表面のセルでないことを示す。なお、ここでは、省略しているが、第二のメッシュについても、
図10と同様のセル管理表がメッシュ情報格納部101に格納されている。ただし、第二のメッシュのセル管理表は、「マスク」や「変化」の情報は不要である。
【0267】
図12は、
図9の第一節点情報管理表が示す第一のメッシュ100を示す模式図(
図12(a))、及び
図11の第二節点情報管理表が示す第二のメッシュ200を示す模式図(
図12(b))である。
【0268】
まず、ユーザが、例えば、情報解析装置1に解析処理を行う指示を与えると、取得部103は、第一節点情報管理表と、第二節点情報管理表と、セル管理表とを用いて、第一のメッシュの各セルが、第二のメッシュの移動前の状態、ここでは、初期配置の状態において、第二のメッシュと完全に重なっているか否か、及び全く重なっていないか否かを判断する。具体的には、取得部103は、セル管理表で管理されている一のセルの全ての節点の座標を、セル管理表の「セルID」の値と、第一節点情報管理表とを用いて取得し、その全ての節点が、移動前の第二のメッシュの内部の座標であるか否かを判断する。全ての座標が内部であれば、
図10に示した「マスク」の値を「1」に設定し、1以上の座標が内部にあり、かつ1以上の座標が内部になければ「0」を設定する。また、全ての座標が内部になければ、「マスク」の値を「−1」に設定する。この処理を、第一のメッシュの全てのセルに対して行う。例えば、ここでは、第一のメッシュの全てのセルが、第二のメッシュに全く重なっていなかったため、「マスク」の値が、「−1」に設定されたとする。なお、ここでは、第二のメッシュに接しているセルは、全く重なっていないと判断するようにしたが、接しているセルは、一部が重なっていると判断するようにしてもよい。
【0269】
次に、メッシュ移動部102が、図示しない格納部から移動方向と移動距離を示す情報とを取得する。ここで取得する移動方向を示す情報は、例えばz軸の正の方向に垂直に向かう方向を示す単位ベクトルであり、距離は「d」であるとする。そして、取得した移動方向を示す情報が示す方向、即ちz軸の正の方向に、距離「d」だけ、第二のメッシュを移動させる。ここでは、メッシュ移動部102は、第二節点情報管理表の各節点の「座標」を、移動後の値に変更する。ここでは、
図11に示した「座標」のz軸の値に、全て移動距離である「d」を加算する。なお、移動前の第二節点情報管理表は、例えば、メッシュ情報管理表等に一時記憶しておく。あるいは、移動後の節点情報を、例えば、メッシュ情報管理表等に一時記憶しておくようにして、境界セルの体積の変化量等を取得した後に、移動前の第二節点情報管理表を、一時記憶しておいた移動後の節点情報で更新するようにしてもよい。
【0270】
図13は、移動後の第二節点情報管理表を示す図である。
【0271】
図14は、第二のメッシュが移動する前の、第一のメッシュと第二のメッシュとを配置した状態を示す模式図(
図14(a))、及び第二のメッシュを移動した後の、第一のメッシュと第二のメッシュとを配置した状態を示す模式図(
図14(b))である。ここでは、説明を簡単にするため、
図14(a)に示すように、移動前は、第二のメッシュ200はその上面が、第一のメッシュ100の底面に接触した状態となっているものとする。移動後は、
図14(b)に示すように、第二のメッシュ200の上部が、第一のメッシュの底部と重なっているものとする。ただし、移動前も、第一のメッシュ100と第二のメッシュ200とが重なっていてもよいことはいうまでもない。
【0272】
次に、取得部103は、上記と同様に、移動後の第二のメッシュ200に、第一のメッシュ100の各セルがマスクされているか否かを順次判断し、判断結果で、
図10に示したセル管理表の「マスク」の値を順次更新する。なお、値が一緒であれば、値は変更しなくてもよい。また、直前に蓄積されている「マスク」の値と、移動後に取得した「マスク」の値とが異なる場合、「変化」の値を「1」に設定し、「マスク」の値と、移動後に取得した「マスク」の値とが同じである場合、「変化」の値を「0」に設定する。
【0273】
図15は、このようにして更新されたセル管理表である。
【0274】
また、取得部103は、第二のメッシュ200の表面と交わる第一のメッシュ100のセル、即ち、境界セルを検出する。ここでの表面は、第二のメッシュの上面に予め指定されており、第二節点情報管理表において、上面の節点に対する「表面」の値のみが「1」となっているものとする。例えば、取得部103は、
図11に示した第二節点情報管理表の「表面」の値が「1」であるレコードの「座標」の値を取得し、この取得した「座標」を内部に含む第一のメッシュ100のセルや、取得した2以上の「座標」の中点等を内部に含むセルを検出する。検出したセルのセル識別子を、図示しない格納部に蓄積する。
【0275】
図16は、取得部103が取得して蓄積した境界セルを管理する境界セル管理表である。境界セル管理表は、境界セルのセル識別子である「境界セルID」を有している。
【0276】
次に、取得部103は、移動前の第二のメッシュ200の表面の移動方向側に接しているセルを順次検出し、検出したセルが、移動後において新たに完全に重なったセルであるか否かを順次判断する。具体的には、移動前の第二のメッシュ200の表面に接していたセルのセル識別子を取得し、このセル識別子と一致する「セルID」を有するレコード(行)を、
図15のセル管理表から検出し、検出したレコードの「マスク」の値が「1」であり、かつ、「変化」の値が「1」であれば、新たに完全に重なったセルであると判断する。表面に接しているセルは、例えば、移動前の第二のメッシュの表面である節点を、一の面上に有しているセルを検出すればよい。
【0277】
1以上のセルが、新たに完全に第二のメッシュに重なったと判断された場合、更に、同様に完全に第二のメッシュに重なったと判断されたセルを移動前の第二のメッシュ200の表面に接するセルについて検出し、新たに完全に重なったと判断されたセルのうちの隣接するものを順次グループ化していく。ここでは、例えば、移動前の第二のメッシュ200の表面に接するセルの全てが、移動後に新たに第二のメッシュ200に重なったと判断されたとすると、これらのセルを一つにグループ化する。
【0278】
そして、取得部103は、このグループに属する一番目のセルの体積を取得して、セル識別子と対応づけて図示しない格納部に蓄積する。また、この一番目のセルに対して第二のメッシュ200の移動方向において隣接するセルを検出し、この隣接するセルが、上記と同様に新たに完全に第二のメッシュに重なったセルであるか否かを判断する。ここでは、新たに完全に重なったセルでないと判断されたとする。この場合、通常、このセルは、境界セルである。このため、取得部103は、このセルの体積を取得して、セル識別子と対応づけて図示しない格納部に蓄積する。なお、同じグループの二番目以降のセルに対して、移動方向において隣接するセルも、ここでは、境界セルであるとする。
【0279】
また、取得部103は、このセルの移動後の第二のメッシュ200の表面と交わる位置よりも、第二のメッシュ200側でない領域の体積を、第二のメッシュの表面の節点の座標や、第一のメッシュの節点の座標等を用いて取得する。第二のメッシュ200側でない領域は、ここでは、境界セルの第二のメッシュ200の上面よりも上方の領域である。そして、この体積も、境界セルのセル識別子と対応づけて図示しない格納部等に蓄積する。
【0280】
取得部103は、同様の処理を同じグループの二番目以降のセルについても同様に、その体積と、第二のメッシュ200の移動方向において隣接する境界セルの体積と、この境界セルの第二のメッシュ200の表面と交わる位置よりも、第二のメッシュ200側でない領域の体積を取得する。
【0281】
そして、取得部103は、上記で取得した新たに完全に重なった全てのセルの体積と、この全てのセルに移動方向において隣接する全ての境界セルの体積とを、この全ての境界セルの、第二のメッシュ200の表面と交わる位置よりも、第二のメッシュ200側でない領域の体積の合計から減算する。
【0282】
さらに取得部103は、減算した値を、そして、分割した値を、第二のメッシュの移動による各境界セルの体積の変化量として、各境界セルのセル識別子と対応づけて図示しない格納部に蓄積する。
【0283】
また、メッシュ移動部102は、各境界セルの移動後の第二のメッシュ200と重なる位置にある節点を、移動後の第二のメッシュの表面と交わる位置に移動させる。例えば、移動後の節点の座標で、
図13に示した第二節点情報管理表の移動させた節点と対応づけられた座標を更新する。
【0284】
そして、解析部104は、上記で取得した境界セルの体積の変化量や、移動させた境界セルの節点の座標等を用いて解析等を行う。例えば、予め用意されているメッシュの節点等に対応づけられたパラメータ等を用いて重合格子の解析を行う。そして、出力部105は、解析結果を、例えばモニタ等に表示する。なお、更に、上記のような第二のメッシュ200の移動等の処理を、繰り返すようにしてもよい。
【0285】
なお、上記の処理において、移動前の第二のメッシュ200の表面の移動方向側に接しているセルの中に、移動後において新たにマスクされたセルが存在しなかったとする。また、移動前の第二のメッシュ200の表面の移動方向側に接しているセルの中に、移動後において新たにマスクされなくなったセルが存在しなかったとする。
【0286】
この場合、取得部103は、
図16に示した境界セル管理表を用いて、移動前の第二のメッシュ200の表面の移動方向側に接しているセルの中に、境界セルがあるか否かを判断する。ここで、仮に、移動前の第二のメッシュ200の表面の移動方向側に接しているセルの全てが境界セルであったとすると、これらの全ての境界セルの体積を、これらの全ての境界セルの、第二のメッシュ200の表面と交わる位置よりも、第二のメッシュ200側でない領域の体積の合計から減算し、減算した値を、各境界セルの、第二のメッシュ200の表面と交わる位置よりも、第二のメッシュ200側でない領域の体積の比で分割することで、各境界セルの体積の変化量を取得すればよい。
【0287】
(具体例2)
以下、本実施の形態の第二の具体例について説明する。この具体例は、本実施の形態の情報解析装置1を用いて、第一のメッシュをシリンダ内の領域、第二のメッシュをピストンの領域として、第二のメッシュを、第一のメッシュに対して往復運動させて、解析を行った解析結果を示すものである。
【0288】
図17は、この具体例において用いられた解析対象となるシリンダ内の領域を示す第一のメッシュ300と、解析対象となるピストンを示す第二のメッシュ400とを示す図(
図17(a))、及び第二のメッシュ400の、時間とz軸方向(上方向)の位置との関係を示すグラフ(
図17(b))である。第二のメッシュ400は、ピストンの固体要素を示す領域400aと、ピストン表面の流体要素を示す領域400bとで構成されている。
【0289】
図18は、
図17(a)に示した第二のメッシュ400を、
図17(b)に示すグラフが示すように第一のメッシュ300に対して、一定の時間間隔毎に移動させた場合の、シリンダ内の平均圧力の変化を示すグラフ(
図18(a)、シリンダ内の平均温度の変化を示すグラフ(
図18(b))、及びシリンダ内の平均密度の変化を示すグラフ(
図18(c))である。各グラフにおいて、実線は理論値、丸は、情報解析装置1による解析結果、三角は、上述したような従来の重合格子法により得られた解析結果を示している。各丸及び三角は、1回の移動により得られた解析結果を示している。理論値は、断熱圧縮の式(PV
γ=const.,TV
γ−1=const.)及び質量一定(ρV=const.)より算出した値である。なお、γは、比熱比を示す。
【0290】
ここでは、空気の温度が20℃の時の物性値(粘性係数や比熱)を使用し、シリンダ内の初期温度を0℃、シリンダ内の初期圧力を1atmとして、ピストンを
図17(b)に示すように移動させた場合の、計算を進行させる際の時間間隔が1.0×10
−4秒毎の解析結果を示している。
【0291】
これらの
図18(a)−
図18(c)からわかるように、本実施の形態の情報解析装置1を用いることで、理論値に近い正確な解析結果を得ることができる。
【0292】
以上、本実施の形態によれば、重なり状態が変化した領域の体積に応じて、境界セルの体積の変化量を取得し、この変化量を用いて解析を行うようにしたことにより、重ねた格子を用いて行われる解析を精度よく行うことができる。
【0293】
なお、上記実施の形態においては、メッシュ及びセルが三次元形状を示している場合について説明したが、本発明は、三次元形状を示すメッシュ及びセルの代わりに、二次元形状を示すメッシュ及びセルを用いた場合にも適用可能なものである。この場合、例えば、セルのコントロールボリュームを、セルの体積の代わりに、セルの面積とし、セルのコントロールボリュームの変化量として、体積の変化量を取得する代わりに、情報解析装置は、セルの面積の変化量を取得するようにすればよい。同様に、上記実施の形態において説明した体積は、例えば、適宜、面積と考えるようにすればよい。また、上記実施の形態において説明した領域の大きさは、面積と考えるようにすればよい。また、二次元形状を示すメッシュ及びセルを用いた場合、メッシュの境界は、例えば、メッシュの外周や輪郭や、あるいはこれらを示す線の、少なくとも一部と考えてよい。なお、二次元形状を示すメッシュ及びセルは、例えば、三次元形状のメッシュ及びセルの一の次元の値、例えば高さの値等を、省略したものと考えてもよい。
【0294】
なお、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0295】
また、上記実施の形態では、情報解析装置がスタンドアロンである場合について説明したが、情報解析装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
【0296】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
【0297】
なお、上記実施の形態における情報解析装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、複数のセルで構成される第一のメッシュの情報である第一メッシュ情報と、複数のセルで構成される第二のメッシュの情報である第二メッシュ情報とが格納されるメッシュ情報格納部にアクセス可能なコンピュータに、重合格子を用いた解析を行わせるプログラムであって、コンピュータを、第二のメッシュを、第一のメッシュに対して相対的に移動させるメッシュ移動部と、メッシュ移動部による移動によって第二のメッシュとの重なり状態が変化する第一のメッシュの領域の大きさに応じて、第一のメッシュを構成するセルのうちの、第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得部と、取得部が取得したセルのコントロールボリュームの変化量を用いて、第一のメッシュ及び第二のメッシュの少なくとも一方に関する解析を行う解析部と、解析部の解析結果を出力する出力部として機能させるためのプログラムである。
【0298】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
【0299】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0300】
図19は、上記プログラムを実行して、上記実施の形態による情報解析装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【0301】
図19において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
【0302】
図20は、コンピュータシステム900の内部構成を示す図である。
図20において、コンピュータ901は、CD−ROMドライブ905に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
【0303】
コンピュータシステム900に、上記実施の形態による情報解析装置等の機能を実行させるプログラムは、CD−ROM921に記憶されて、CD−ROMドライブ905に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921、またはネットワークから直接、ロードされてもよい。
【0304】
プログラムは、コンピュータ901に、上記実施の形態による情報解析装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
【0305】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域に応じて、前記第二のメッシュを移動させる前の状態において移動後の前記第二のメッシュの境界と交わる位置にあった前記第一のメッシュ内のセルである境界セルのコントロールボリュームの変化量を取得する請求項1記載の情報解析装置。
前記取得部は、1以上の前記境界セルを有する前記第一のメッシュの連続している1以上のセルであって、前記第二のメッシュの移動により当該第二のメッシュとの重なり状態が変化するセルの、重なり状態が変化する領域の大きさに応じて、当該連続している1以上のセルが有する前記境界セルのコントロールボリュームの変化量を取得する請求項2記載の情報解析装置。
前記取得部は、前記1以上の境界セルの移動後の第二のメッシュと重ならない部分の大きさと、移動前の前記第二のメッシュの境界に当該第二のメッシュの移動方向側で接する1以上のセルから前記1以上の境界セルまでのセルの大きさとの差に応じて、前記重なり状態が変化する領域の大きさを取得し、当該取得した大きさに応じて、前記1以上の境界セルのコントロールボリュームの変化量を取得する請求項3記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記1以上の境界セルに分割して、前記境界セルのコントロールボリュームの変化量を取得する請求項3または請求項4記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記1以上の境界セルのそれぞれに対して、当該境界セルのそれぞれの移動後の第二のメッシュと重ならない部分の大きさに応じて分割して、前記1以上の境界セルのそれぞれのコントロールボリュームの変化量を取得する請求項5記載の情報解析装置。
前記取得部は、一の前記境界セルのコントロールボリュームの変化量を、前記第二のメッシュの移動方向において連続している当該一の境界セルを含む1以上のセルの、前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化した領域の大きさに応じて取得する請求項3記載の情報解析装置。
前記取得部は、前記一の境界セルの移動後の第二のメッシュと重ならない部分の大きさと、移動前の前記第二のメッシュの境界に当該第二のメッシュの移動方向側で接する一のセルから前記一の境界セルまでのセルの大きさとの差に応じて、前記一の境界セルのコントロールボリュームの変化量を取得する請求項7記載の情報解析装置。
前記メッシュ移動部は、前記第二のメッシュを移動させる際に、前記1以上の境界セルの、当該第二のメッシュと重なる節点に対応する節点を、当該第二のメッシュの移動方向において、移動後の第二のメッシュと重ならなくなる位置に配置する請求項2から請求項8いずれか一項記載の情報解析装置。
前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域は、前記メッシュ移動部による移動によって前記第二のメッシュと新たに重なる第一のメッシュの領域である請求項1から請求項9いずれか一項記載の情報解析装置。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュと重ならなくなった第一のメッシュの領域の大きさに応じて、当該重ならなくなった領域を有するセルの1以上についてコントロールボリュームの変化量を取得する請求項1記載の情報解析装置。
前記取得部は、前記メッシュ移動部による移動によって前記第二のメッシュと重ならなくなった前記第一のメッシュの領域の大きさを、前記第一のメッシュの当該重ならなくなった領域を有する1以上のセルで分割して、当該セルについてのコントロールボリュームの変化量を取得する請求項11記載の情報解析装置。
前記取得部は、前記重なり状態が変化する領域の大きさを、前記重ならなくなった1以上のセルのそれぞれの、移動後に前記第二のメッシュと重ならなくなった部分の大きさに応じて分割して、前記重ならなくなった1以上のセルのそれぞれのコントロールボリュームの変化量を取得する請求項12記載の情報解析装置。
複数のセルで構成される第一のメッシュの情報である第一メッシュ情報と、複数のセルで構成される第二のメッシュの情報である第二メッシュ情報とが格納されるメッシュ情報格納部と、メッシュ移動部と、取得部と、解析部と、出力部とを備えた情報解析装置を用いて、重合格子を用いた解析を行う情報解析方法であって、
前記メッシュ移動部が、前記第二のメッシュを、前記第一のメッシュに対して相対的に移動させるメッシュ移動ステップと、
前記取得部が、前記メッシュ移動ステップによる移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域の大きさに応じて、前記第一のメッシュを構成するセルのうちの、前記第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得ステップと、
前記解析部が、前記取得ステップで取得した前記セルのコントロールボリュームの変化量を用いて、前記第一のメッシュ及び前記第二のメッシュの少なくとも一方に関する解析を行う解析ステップと、
前記出力部が、前記解析ステップによる解析結果を出力する出力ステップとを備えた情報解析方法。
複数のセルで構成される第一のメッシュの情報である第一メッシュ情報と、複数のセルで構成される第二のメッシュの情報である第二メッシュ情報とが格納されるメッシュ情報格納部にアクセス可能なコンピュータに、重合格子を用いた解析を行わせるプログラムであって、
コンピュータを、
前記第二のメッシュを、前記第一のメッシュに対して相対的に移動させるメッシュ移動部と、
前記メッシュ移動部による移動によって前記第二のメッシュとの重なり状態が変化する第一のメッシュの領域の大きさに応じて、前記第一のメッシュを構成するセルのうちの、前記第二のメッシュとの重なり状態が変化した領域を有するセルの1以上について、セルの大きさを示すコントロールボリュームの変化量を取得する取得部と、
前記取得部が取得した前記セルのコントロールボリュームの変化量を用いて、前記第一のメッシュ及び前記第二のメッシュの少なくとも一方に関する解析を行う解析部と、
前記解析部の解析結果を出力する出力部として機能させるためのプログラム。