【文献】
H.J.Kim et al.,"Patient-Specific Modeling of Blood Flow and Pressure in Human Coronary Arteries",Annuals of Biomedical Engineering,2010年10月,Vol.38, No.10,pp.3195-3209
(58)【調査した分野】(Int.Cl.,DB名)
前記第2の血管ネットワークモデルは、毛細血管、および毛細血管と前記第1の血管ネットワークモデルに定義された血管ネットワークとを接続する中間層の血管で構成され、該中間層の血管ネットワークは、毛細血管を挟んで、動脈側と静脈側とが対称となるように定義されていることを特徴とする請求項1記載のシミュレーション方法。
前記器官の解剖学的特徴として、節点の位置の血管密度が高いほど、該節点に接続される第2の血管ネットワークモデルの数を多くすることを特徴とする請求項1または2に記載のシミュレーション方法。
節点に接続された第2の血管ネットワークモデルの血液の状態の解析では、前記第1の血管ネットワークモデルの血管内の血液の状態の解析で得られた、該節点における圧力に関する情報を用いて解析を行うことを特徴とする請求項1乃至3のいずれかに記載のシミュレーション方法。
複数の節点間を接続して得られる複数の要素により器官の形状を定義した形状モデルと、前記器官内の閾値以上の径の血管による血管ネットワークを定義した第1の血管ネットワークモデルとに基づいて、前記器官の動きに応じた前記第1の血管ネットワークモデルの血管内の血液の状態を解析する第1の解析部と、
前記器官内の前記閾値未満の径の血管による血管ネットワークを定義した第2の血管ネットワークモデルが、前記複数の節点それぞれに、1つまたは複数接続されており、前記第1の血管ネットワークモデルの血管内の血液の状態の解析で得られた、前記複数の節点それぞれにおける血液の状態を示す情報を用いて、前記複数の節点それぞれに接続された第2の血管ネットワークモデルそれぞれの血液の状態を、解析する第2の解析部を有することを特徴とするシミュレーション装置。
【発明を実施するための形態】
【0014】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。第1の実施の形態は、心臓などの器官の解剖学的特徴を活かすことにより、マルチスケール解析の分散処理手法を適用し、従来の手法よりも高速に計算することを可能としたものである。例えば心臓には、微小循環系どうしは直接接続しておらず、その上流側或いは下流側の分岐を通じてのみ互いに繋がっているという解剖学的特徴がある。この解剖学的特徴を活かすことで、シミュレーションの高速化が可能となる。さらに第1の実施の形態では、微小循環と太い血管の中間スケールの血管に対しては対称性を仮定する。これにより、計算量を大幅に削減することができる。
【0015】
図1は、第1の実施の形態に係る並列計算システムの機能構成の一例を示す図である。シミュレーション装置Xは、記憶手段1と複数の演算装置2,3,4,5,・・・とを有している。
図1に示したシミュレーション装置Xは、複数の演算装置2,3,4,5,・・・による並列計算を行えば、並列計算システムとして機能する。
【0016】
記憶手段1は、形状モデル1a、第1の血管ネットワークモデル1b、および第2の血管ネットワークモデル1cを記憶する。形状モデル1aは、複数の節点間を接続して得られる複数の要素により器官の形状を定義した情報である。第1の血管ネットワークモデル1bは、器官内の閾値以上の径を有する血管による血管ネットワークを定義した情報である。第2の血管ネットワークモデル1cは、器官内の閾値未満の径を有する血管による血管ネットワークを定義した情報である。なおシミュレーション対象の器官が心臓であれば、第1の血管ネットワークモデル1bと第2の血管ネットワークモデル1cとで示される血管ネットワークは、心臓の冠循環ネットワークを示していることとなる。
【0017】
複数の演算装置2,3,4,5,・・・のうちの1つの演算装置2は、第1の解析部2aを有する。第1の解析部2aは、形状モデル1aと第1の血管ネットワークモデル1bとに基づいて、器官の動きに応じた第1の血管ネットワークモデル1bの血管内の血液の状態を解析する。これにより、形状モデル1aの複数の節点における、圧力などの血液の状態を示す情報が得られる。なお器官が心臓であれば、器官の動きは、心筋の収縮・弛緩による動きである。なお、器官の動き(例えば心臓の収縮・弛緩)の影響を直接的に受けるのは、第2の血管ネットワークモデル1cである。第1の解析部2aは、例えば、第1の血管ネットワークモデル1bの血流の解析と、器官の動きの解析を合わせて、複数の節点における圧力などの物理量の状態を解析する。
【0018】
第1の解析部2aを有する演算装置2以外の演算装置3,4,5,・・・は、それぞれ第2の解析部3a,4a,5a,・・・を有する。第2の解析部3a,4a,5a,・・・は、節点における血液の状態を示す情報を用いて、その節点に接続された第2の血管ネットワークモデル1cの血液の状態を解析する。例えば、形状モデル1aの複数の節点のそれぞれに、第2の血管ネットワークモデル1cが1つまたは複数接続されている。節点に接続された第2の血管ネットワークモデル1cは、第2の解析部3a,4a,5a,・・・それぞれに、解析対象として割り当てられる。そして第2の解析部3a,4a,5a,・・・は、割り当てられた第2の血管ネットワークモデル1cが接続された節点の圧力の情報を用いて、その第2の血管ネットワークモデル1cの血液の状態を解析する。すなわち複数の演算装置3,4,5,・・・が、複数のミクロモデルの血液の状態を、並列処理で解析する。
【0019】
なお、演算装置2,3,4,5,・・・は、シミュレーション装置Xが有する演算処理装置としてのCPU(Central Processing Unit)、またはマルチコアCPU内の個々のコアである。また、記憶手段1は、シミュレーション装置Xが有するRAM(Random Access Memory)またはハードディスクドライブ(HDD:Hard Disk Drive)などの記録媒体である。
【0020】
また、
図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
以下、第1の実施の形態に係るシミュレーション装置Xで心臓の冠循環シミュレーションを行う場合を例にとり、血行動態シミュレーションについて詳細に説明する。なお、以下の説明では、第1の血管ネットワークモデル1bをマクロモデル、第1の血管ネットワークモデル1cをミクロモデルと呼ぶこととする。また第2の解析部3a,4a,5a,・・・は、節点における圧力に関する情報を用いて、ミクロモデルの血液の状態を解析するものとする。そこで以下の説明では、ミクロモデルが接続される節点を、圧力節点と呼ぶ。さらに、説明で使用する用語を、以下のように定義する。
【0021】
<用語の定義>
−太い冠動脈・静脈:直径約100μm以上の血管(
図2参照)
−中間スケールの血管:直径約20μm−100μmの血管(
図4参照)
−細動脈・細静脈:直径約10μm−20μmの血管(
図3参照)
−毛細血管:直径約5−7μmの血管で、実際に心筋細胞との酸素・栄養素の交換が行われる場(
図3参照)
−微小循環系:細動脈、毛細血管、細静脈より構成される心筋細胞との酸素・栄養素のやりとりを行う循環系(
図3参照)
<マルチスケールでの血管ネットワークモデル作成>
第1の実施の形態では、太い冠動脈・静脈から毛細血管までを含むすべてのスケールの血管ネットワークを考える。すべてのスケールの血管を含む血管ネットワークは、大動脈から発する太い冠動脈から分岐を繰り返して小動脈、細静脈、最終的に毛細血管にいたる。さらに血管ネットワークは、毛細血管は細静脈で集合し、集合を繰り返しながら最終的に太い冠静脈となり右心房に達する。なお、血管が分岐しているとき、その分岐点から太い方の血管を、上位の血管、細い方の血管を下位の血管と呼ぶこととする。
【0022】
このような血管ネットワークをモデリングするとき、まず、太い冠動脈の血管ネットワークと太い冠静脈の血管ネットワークモデルとを別々に作成する。
図2は、太い冠動脈・静脈の血管ネットワークモデルの一例を示す図である。
図2中、左側が太い冠動脈のネットワークモデル11であり、右側が太い冠静脈のネットワークモデル12である。太い冠動脈のネットワークモデル11と太い冠静脈のネットワークモデル12とを合わせた血管ネットワークモデルが、マクロモデル10である。
【0023】
次に、細動脈・細静脈と毛細血管とで構成される微小循環系を、解剖学的データに基づいた微小循環モデルで表現する。
図3は、微小循環モデルの一例を示す図である。
図3の例では、微小循環モデル20の左側の血管ネットワークが細動脈21であり、右側の血管ネットワークが細静脈22である。そして、細動脈21と細静脈22とを接続する血管ネットワークが、毛細血管23である。
【0024】
さらに微小循環モデル20とマクロモデル10との間のスケールに属する中間の血管ネットワークモデルを作成する。第1の実施の形態では、中間の血管ネットワークは、動脈系と静脈系との間で対称性を有するものと仮定する。以下、動脈系と静脈系との間で対称性を有するものと仮定することで得られる、マクロモデルと微小循環モデルとの間の血管ネットワークモデルを、対称性モデルと呼ぶ。
【0025】
図4は、対称性モデルの一例を示す図である。対称性モデル30には、動脈系中間モデル31と静脈系中間モデル32とが含まれる。動脈系中間モデル31と静脈系中間モデル32とは、毛細血管を挟んで対称となるように作られている。そのため動脈系中間モデル31と静脈系中間モデル32とでは、上位の血管から分岐する2つの下位の血管の血管径、長さ、その後の分岐形態が同様である。このように対称性を仮定することにより、血管ネットワークの本質的な特性を失うことなく、計算量を大幅に削減することが可能となる。
【0026】
作成された対称性モデル30の上端はマクロモデル10に接続される。また対称性モデル30の末端は、微小循環モデル20に接続される。微小循環モデルと対称モデルを包含する血管ネットワークモデルが、ミクロモデルである。
【0027】
図5は、ミクロモデルの一例を示す図である。ミクロモデル40は、動脈系中間モデル31、静脈系中間モデル32、および複数の微小循環モデル20a,・・・,20nを含んでいる。
【0028】
次に、マクロモデル10とミクロモデル40とを接続する。マクロモデル10とミクロモデル40との接続点は、仮想的に心筋の圧力節点kと同じ位置にあると考える。圧力節点kは、心臓の有限要素モデルを構成する各多面体要素の頂点である。そして、ミクロモデル40が圧力節点kにおいて心筋から受ける外圧を、心筋節点圧P
kとする。
【0029】
圧力節点kへのミクロモデル40の接続数は、圧力節点ごとの心筋節点集中体積V
kmuscleより決定する。各圧力節点の心筋節点集中体積V
kmuscleは、要素の体積を示す値をその要素を構成する圧力節点に分配し、圧力節点ごとに、その圧力節点に分配された値を合計した値である。例えば4面体の要素の場合、その要素の体積の1/4の値を、その要素を構成する4つの圧力節点それぞれの心筋節点集中体積V
kmuscleに分配する。圧力節点kが、m個(mは1以上の整数)の要素で共有されている場合、その圧力節点kの心筋節点集中体積V
kmuscleは、m個の要素から分配された値の合計となる。
【0030】
なお心臓の解剖学的特徴として、外側より内側の方が、血管密度が高いことが分かっている。そこで、圧力節点kへのミクロモデル40の接続数の決定に際し、貫壁性(心臓の外壁からの深さ)に応じた、心筋容積に対する細血管の密度の違いを反映させる。例えば圧力節点の心筋節点集中体積V
kmuscleに、貫壁性に応じた血管密度比を乗算する。血管密度比は、心臓の内部に近い圧力節点ほどを高い値とする。
【0031】
次に、心臓容積に対するミクロモデル血管の総容積の割合より、圧力節点に単位体積当たりに含まれるミクロモデル血管容積ρ
kを得る。ミクロモデル1個の血管総容積をV
microとすると、マクロモデルの末端の圧力節点kに接続されるミクロモデルの数n
kは次式で決定できる。
【0033】
圧力節点に接続されるミクロモデルの数n
kが確定すると、マクロモデルとミクロモデルの動脈側、静脈側接続部において次式の流量保存則が成立する。Qγ
macroは、マクロモデルから、ミクロモデルに送出される血液の流量を示す。Qγ
microは、ミクロモデルから、マクロモデルへ送出される血液の流量を示す。γは動脈と静脈とを区別する符号である。
【0035】
図6は、圧力節点におけるマクロモデルとミクロモデルとの接続法を示す図である。有限要素モデルの要素51は、複数の圧力節点間を線分で接続して得られる多面体である。要素51の圧力節点k付近を通過するマクロモデル10の血管に対して、要素51の圧力節点kを介して、n
k個のミクロモデル40が接続されている。なお、
図6に示されているマクロモデル10の血管ネットワークは、動脈系のネットワークであるものとする。
【0036】
すると、マクロモデルから、圧力節点を介してミクロモデルに送出される血液の流量Qγ
macroは、n
k個のミクロモデル40に分配される。また、ミクロモデル40から、圧力節点を介してマクロモデルへ送出される血液の流量Qγ
microは、n
k個分が合成され、マクロモデル10に流入する。なお、例えばミクロモデル40において、マクロモデル10から血流が流入している場合、流量Qγ
microは負の値となる。そのため、流量Qγ
macroと流量Qγ
microのn
k倍との加算値は、式(2)に示したように0になる。
【0037】
<計算手法>
次に、心臓の冠循環シミュレーションの計算手法について説明する。なお、以下の説明は、Newton-Raphson法による非線形解析を行う場合の例である。
【0038】
第1の実施の形態では、マルチスケール解析の考え方を用いて並列計算により解く。全体のマトリクス(行列)は式(3)で与えられる。
【0040】
A
Micは血管ミクロモデルより作成される係数マトリクスである。B
Macは血管マクロモデルにより作成される係数マトリクスである。Cはミクロ部とマクロ部の接続を表すマトリクスである。C
Tは、Cの転置マトリクスである。Δμ
Micは、非線形解析におけるミクロモデルの圧力の増分である。Δμ
Macは、非線形解析におけるマクロモデルの圧力の増分である。r
Micは、ミクロモデルの非線形解析で生じる残差である。r
Macは、マクロモデルの非線形解析で生じる残差である。
【0041】
式(3)の係数マトリクスは、以下のように分解できる。
【0043】
式(4)上式に基づき以下の3ステップでミクロ、マクロの圧力の増分を計算する。
【0047】
式(5)に示す第1のステップでは、ミクロモデルの計算式を、マクロの圧力の増分を除いた形式に置き換えている。これにより、ミクロモデルにおける圧力の仮の増分Δμ
Mic(μはチルダ付き)が得られる。式(6)に示す第2のステップでは、ミクロモデルで得られた圧力の仮の増分を用いて、マクロモデルの圧力の増分を計算している。式(7)に示す第3のステップでは、マクロモデルの圧力の増分を用いて、ミクロモデルの本来の圧力の増分値を計算している。
【0048】
以上のように、マクロモデルのマトリクスに入り込むミクロモデルの自由度を消去することで、マクロモデルとミクロモデルを分けて計算することが可能となる。さらにミクロモデル同士は完全に独立しているため、並列計算においてはミクロモデルを各演算装置が独立して求解することが可能である。その結果、効率的な計算が実現できる。
【0049】
<対称性を考慮することによる計算量の削減>
既に述べたように、第1の実施の形態では、毛細血管とマクロモデルとの中間層にあたる中間スケールの血管は、対称性を仮定した対称性モデル30を用いて表現している。このような対称性モデル30を用いることで、計算量の削減が可能である。以下、最も簡単な2分岐の血管(3 要素、4節点)を例に、対称性の考え方を説明する。
【0050】
図7は、2分岐血管モデルの一例を示す図である。
図7に示す2分岐血管モデル41は、動脈系の血管に関するモデルである。2分岐血管モデル41には、上位の血管が2つの下位の血管に分岐している。各血管の端部の数字は、節点番号である。ここで、上位の血管には、流量Q
1の血流が流れ込むものとする。また2つの下位の血管からは、それぞれ流量Q
2、Q
3の血流が流れ出すものとする。
【0051】
ここで、各血管のコンダクタンスを定義する。コンダクタンスは、血液の流れやすさを示す値であり、抵抗の反対の概念である。コンダクタンスが大きい血管ほど、血液が流れやすい。以下、i番目(1は1以上の整数)の節点と、j番目(jは1以上の整数)との間の血管のコンダクタンスを、「k
ij」と表記する。例えば、節点番号「1」の節点と節点番号「2」の節点との間の血管のコンダクタンスは、k
12と表記される。
【0052】
簡単のために血管のコンダクタンスのみを考慮して、2分岐の血管の血流は、以下の式(8)で表される。
【0054】
この式(8)に基づき剛性マトリクスを作成すると式(9)のようになる。
【0056】
Q
iは節点iに流入する血液の流量である。F
iは節点iに接続する節点の集合である。μ
iは節点iの血圧である。Vは血管の容積である。
今、上位の血管から分岐している2本の下位の血管に対称性を仮定する。つまり下位の血管の血管径、長さ、その後の分岐形態がまったく同じであると考える。すると、
k
23=k
24
μ
3=μ
4
Q
3=Q
4
が成立する。そのため、 以下のようにマトリクスを縮退させることができる。
【0058】
これにより、計算量の削減が可能となる。
以上説明したように、第1の実施の形態では、血管ネットワークの解剖学的特徴を利用してマルチスケール解析を導入している。すなわち、微小循環系同士は、より太い血管を介してのみ接続されているという特徴に基づいて、微小循環系を含むミクロモデル40を定義している。そして形状モデルの節点それぞれに、マクロモデル10にミクロモデル40を接続している。これにより、毛細血管を含む微小循環モデル20が、統一したミクロモデル40で解析できるため、データ量が少なくなる。また、マクロモデル10に対するミクロモデル40の接続位置が、圧力節点に制限されていることで、第1の解析部2aが、複数の第2の解析部3a,4a,5a,・・・から渡される情報の位置に関する自由度が少なくなり、処理量も少なくなる。しかも多数の節点に接続されたミクロモデルは互いに独立して解析できるため、並列処理が可能である。
【0059】
このようにして、第1の実施の形態では、並列処理に適した計算アルゴリズムを導出し、シミュレーション計算時間の短縮が可能となっている。その結果、これまで実現されていなかった、血管の形態を毛細管レベルまで再現し、かつ心筋の拍動と連成したシミュレーションを可能となる。
【0060】
さらに、第1の実施の形態では、微小循環と太い血管の中間層の血管に対して対称性があるものと仮定することで計算量を削減している。その結果、シミュレーションのさらなる高速化が図られている。
【0061】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、マルチコアCPUを有する計算ノードを複数使用した並列計算システムで、心臓の冠循環シミュレーションを行うものである。
【0062】
図8は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、CAD(Computer Aided Design)システム100が設けられている。CADシステム100は、ユーザからの操作に基づき、心臓の立体構造や冠循環血管ネットワークをモデリングする。またCADシステム100は、ネットワーク61を介して管理ノード200に接続されている。CADシステム100は、心臓の立体構造や冠循環血管ネットワークのモデルを、管理ノード200に送信し、そのモデルに基づく冠循環シミュレーションの実行を指示する。
【0063】
管理ノード200はネットワーク62を介して、ストレージ装置300や、複数の計算ノード400,500,600,・・・に接続されている。管理ノード200は、CADシステム100から受信した心臓の立体構造や冠循環血管ネットワークのモデルを、ストレージ装置300に格納する。また管理ノード200は、CADシステム100から冠循環シミュレーションの実行指示を受信すると、冠循環シミュレーションを実行するためのジョブを、計算ノード400,500,600,・・・に投入する。ここでジョブの投入処理では、例えば管理ノード200から計算ノードへ、モデルデータの位置情報、ジョブを実行するためのプログラム、ジョブの実行に使用する各種パラメータなどが送信される。
【0064】
ストレージ装置300は、CADシステム100で作成されたモデルを記憶する。ストレージ装置300には、複数のハードディスク装置が実装されている。またストレージ装置300は、ハードディスク装置に代えて、SSD(Solid State Drive)を有していてもよい。さらにストレージ装置300には、RAID(Redundant Array of Independent Disks)技術を適用することもできる。
【0065】
計算ノード400,500,600,・・・は、管理ノード200からの指示に従って、心臓の冠循環シミュレーションを並列処理で実行する。計算ノード400,500,600,・・・は、マルチコアCPUを有しており、個々の計算ノード内部でも、処理を並列に実行することができる。
【0066】
図9は、CADシステムのハードウェア構造の一例を示す図である。CADシステム100は、CPU101によって装置全体が制御されている。CPU101には、バス109を介してRAM102と複数の周辺機器が接続されている。なおCADシステム100が有するCPU数は1つに限定されず、複数であってもよい。CADシステム100が複数のCPUを有する場合、複数のCPUが連係して動作し、装置全体を制御する。
【0067】
RAM102は、CADシステム100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0068】
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0069】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、CADシステム100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0070】
グラフィック処理装置104には、表示装置としてモニタ63が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ63の画面に表示させる。モニタ63としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0071】
入力インタフェース105には、入力装置としてキーボード64とマウス65とが接続されている。入力インタフェース105は、キーボード64やマウス65から送られてくる信号をCPU101に送信する。なお、マウス65は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0072】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク66に記録されたデータの読み取りを行う。光ディスク66は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク66には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0073】
機器接続インタフェース107は、CADシステム100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置67やメモリリーダライタ68を接続することができる。メモリ装置67は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ68は、メモリカード69へのデータの書き込み、またはメモリカード69からのデータの読み出しを行う装置である。メモリカード69は、カード型の記録媒体である。
【0074】
ネットワークインタフェース108は、ネットワーク61に接続されている。ネットワークインタフェース108は、ネットワーク61を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0075】
図10は、計算ノードのハードウェア構成の一例を示す図である。計算ノード400は、CPU410、メモリ420、およびインターコネクト回路430を有している。CPU410は、複数のコア411〜418を有する演算処理装置としてのマルチコアCPUである。複数のコア411〜418により、処理を並列に実行することができる。メモリ420は、CPU410に実行させるプログラムや、処理の実行に用いられるデータを記憶する。例えば、主記憶装置としてのメモリ420は、心臓の冠循環シミュレーションを実行するためのプログラムを記憶する。インターコネクト回路430は、光による高速通信を行う通信回路である。インターコネクト回路430は、ネットワーク62を介して、他の計算ノード400,500,600,・・・とデータの受け渡しを行う。またインターコネクト回路430は、ネットワーク62を介してストレージ装置300から心臓のモデルデータを読み出し、CPU410に転送する。
【0076】
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。
なおCADシステム100、管理ノード200、および計算ノード400,500,600,・・・は、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。CADシステム100、管理ノード200、および計算ノード400,500,600,・・・それぞれに実行させる処理内容を記述したプログラムは、さまざまな記録媒体に記録しておくことができる。例えば、CADシステム100、管理ノード200、および計算ノード400,500,600,・・・それぞれに実行させるプログラムをHDDなどに格納しておくことができる。各装置のCPUは、HDD内のプログラムの少なくとも一部をRAMにロードし、プログラムを実行する。またCADシステム100、管理ノード200、および計算ノード400,500,600,・・・それぞれに実行させるプログラムを、光ディスク66、メモリ装置67、メモリカード69などの可搬型記録媒体に記録しておくこともできる。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【0077】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスク66、メモリ装置67、メモリカード69などの可搬型記録媒体が販売される。また、プログラムをコンピュータの記憶装置に格納しておき、ネットワーク61を介して、他のサーバコンピュータからCADシステム100、管理ノード200、または計算ノード400,500,600,・・・にそのプログラムを転送することもできる。CADシステム100、管理ノード200、または計算ノード400,500,600,・・・は、ネットワークを介してプログラムを取得する場合、例えば取得したプログラムをRAMまたはHDDに格納する。
【0078】
なお、第1の実施の形態に示したシミュレーション装置Xも、
図8〜
図10に示したシステムと同様のハードウェア構成により実現することができる。
次に、第2の実施の形態のシステムにおける各装置の機能について説明する。
【0079】
図11は、第2の実施の形態の各装置の機能を示すブロック図である。CADシステム100は、有限要素モデル作成部110、冠循環モデル作成部120、およびシミュレーション条件決定部130を有する。有限要素モデル作成部110は、ユーザからの指示に従って、心臓の立体形状を示す有限要素モデルを作成する。有限要素モデルは、例えば複数の4面体のメッシュで構成される。4面体のメッシュは、第1の実施の形態における多面体の要素の一例である。冠循環モデル作成部120は、ユーザからの指示に従って、冠循環モデルを作成する。冠循環モデルは、心臓の血管ネットワークを表すモデルである。シミュレーション条件決定部130は、ユーザからの指示に従って、心臓の冠循環シミュレーションの実行条件を決定する。例えば、シミュレーション条件決定部130は、心筋の各圧力節点に、どれくらいの数のミクロモデルを接続させるかを決定する。
【0080】
管理ノード200は、実行指示部210を有する。実行指示部210は、CADシステム100で作成された有限要素モデルと冠循環モデルとを用いた心臓の冠循環シミュレーションの実行を、計算ノード400,500,600,・・・に指示する。例えば実行指示部210は、CADシステム100から、有限要素モデルと冠循環モデルとを取得し、ストレージ装置300に格納する。次に実行指示部210は、冠循環シミュレーションのジョブを投入する計算ノードを選択する。例えば実行指示部210は、ジョブを実行していないすべての計算ノードを、ジョブの投入先として選択することができる。また、予め冠循環シミュレーションの並列度が指定されている場合、実行指示部210は、指定された並列度応じた数の計算ノードを、ジョブの投入先として選択する。さらに実行指示部210は、選択した計算ノードの1つをマクロ解析用とし、他の計算ノードをミクロ解析用とする。そして実行指示部210は、マクロ解析用の計算ノード(
図11の例では計算ノード400)に、シミュレーション全体の制御とマクロ解析を行うジョブを投入する。また実行指示部210は、ミクロ解析用の計算ノード(
図11の例では計算ノード500,600,・・・)に、ミクロ解析を行うジョブを投入する。
【0081】
ストレージ装置300には、有限要素モデル310、マクロモデル320、およびミクロモデル330が格納される。有限要素モデル310は、
図1に示した第1の実施の形態の形状モデル1aの一例である。マクロモデル320は、
図1に示した第1の実施の形態の第1の血管ネットワークモデル1bの一例である。ミクロモデル330は、
図1に示した第1の実施の形態の第2の血管ネットワークモデル1cの一例である。なおマクロモデル320とミクロモデル330とを合わせたものが、冠循環モデルである。
【0082】
計算ノード400は、シミュレーション制御部440とマクロ解析部450とを有する。シミュレーション制御部440は、心臓の冠循環シミュレーション全体の進行を制御する。マクロ解析部450は、冠循環シミュレーションのマクロ部分の解析を行う。例えばマクロ解析部450は、心筋の収縮・弛緩による心臓の拍動の解析と、太い冠動脈・静脈の血流の解析とを行う。シミュレーション制御部440とマクロ解析部450とは、計算ノード400にマクロ解析用のジョブが投入されることにより実現される機能である。また、マクロ解析部450は、
図1に示した第1の実施の形態の第1の解析部2aの一例である。
【0083】
計算ノード500は、複数のミクロ解析部510,520,530,・・・を有する。ミクロ解析部510,520,530,・・・は、中間スケールの血管、細動脈・細静脈、および毛細血管の血流の解析を行う。複数のミクロ解析部510,520,530,・・・は、CPU内の個別のコアによって実行される。ミクロ解析部510,520,530,・・・は、計算ノード500にミクロ解析用のジョブが投入されることで実現される機能である。
【0084】
計算ノード600は、複数のミクロ解析部610,620,630,・・・を有する。ミクロ解析部610,620,630,・・・は、中間スケールの血管、細動脈・細静脈、および毛細血管の血流の解析を行う。複数のミクロ解析部610,620,630,・・・は、CPU内の個別のコアによって実行される。ミクロ解析部610,620,630,・・・は、計算ノード600にミクロ解析用のジョブが投入されることで実現される機能である。
【0085】
なお計算ノード500,600,・・・のミクロ解析部は、
図1に示した第1の実施の形態の第2の解析部3a,4a,5a,・・・の一例である。また
図11に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【0086】
次に、ストレージ装置300が記憶するモデルについて詳細に説明する。
図12は、有限要素モデルのデータ構造の一例を示す図である。有限要素モデル310には、節点情報テーブル311とメッシュ情報テーブル312とが含まれる。なおN
nodesは節点数であり、N
meshはメッシュ数である。
【0087】
節点情報テーブル311は、4面体のメッシュの頂点となる節点の位置が登録されたデータテーブルである節点情報テーブル311には、節点番号に対応付けて、節点の座標が登録されている。節点番号は、節点を一意に識別するための識別番号である。座標は、節点の仮想3次元空間上でのx軸、y軸、z軸の座標である。
【0088】
メッシュ情報テーブル312は、メッシュの形状を定義する情報が登録されたデータテーブルである。メッシュ情報テーブル312には、メッシュ番号に対応付けて、4面体のメッシュを構成する節点の節点番号が設定されている。メッシュ番号は、メッシュを一意に識別するための識別番号である。
【0089】
図13は、マクロモデルのデータ構造の一例を示す図である。マクロモデル320は、心臓の血管ネットワークのうち、太い冠動脈・静脈の構造を示す情報である。マクロモデル320には、節点情報テーブル321と血管要素情報テーブル322とが含まれる。節点情報テーブル321の構造は、
図12に示す有限要素モデル310の節点情報テーブル311と同様である。なおN
elemは血管の要素数である。
【0090】
血管要素情報テーブル322には、血管の要素の要素番号に対応付けて、節点、レベル、半径、およびコンダクタンスが設定されている。要素番号は、血管の要素を一意に識別するための識別番号である。節点は、血管の要素の両端の位置の節点の識別番号である。レベルは、血管のレベルである。レベルは、毛細血管を最も小さい値とし、太くなるほどに値が大きくなる。半径は、血管の半径である。コンダクタンスは、血管内の血液の流れやすさを示す数値である。コンダクタンスが大きいほど、血管内の抵抗か少なく、血液が流れやすいことを示す。
【0091】
図14は、ミクロモデルのデータ構造の一例を示す図である。ミクロモデル330は、心臓の血管ネットワークのうち、中間ネットワーク、細動脈・細静脈、および毛細血管の構造を示す情報である。ミクロモデル330には、節点情報テーブル331と血管要素情報テーブル332とが含まれる。節点情報テーブル331の構造は、
図12に示す有限要素モデル310の節点情報テーブル311と同様である。なおN
elemは血管の要素数である。
【0092】
血管要素情報テーブル332には、血管の要素の要素番号に対応付けて、節点、レベル、長さ、直径、血管壁弾性率、基準圧力差、本数が設定されている。節点は、血管の要素の両端の位置の節点の識別番号である。レベルは、血管のレベルである。長さは、血管の要素の長さである。直径は、血管の要素の直径である。血管壁弾性率は、血管の要素の壁の弾性率である。基準圧力差は、血管内の血圧と心筋内圧の圧力差の基準値を表す。この基準値とシミュレーションにおける各時刻での圧力差を基に血管径を計算する。本数は、対称性があると仮定したときの同じレベルの要素の本数である。
【0093】
図11に示した機能が連携して動作し、
図12〜
図14に示した情報を利用して、冠循環シミュレーションを実行する。
図15は、冠循環シミュレーションの手順を示すフローチャートの一例である。以下、
図15に示す処理をステップ番号に沿って説明する。
【0094】
[ステップS101]CADシステム100の有限要素モデル作成部110は、ユーザからのCADに対する入力に従って、有限要素モデル310を作成する。そしてCADシステム100は、作成した有限要素モデル310を管理ノード200に送信する。管理ノード200は、受信した有限要素モデル310をストレージ装置300に格納する。
【0095】
[ステップS102]CADシステム100の冠循環モデル作成部120は、ユーザからのCADに対する入力に従って、マクロモデル320を作成する。そしてCADシステム100は、作成したマクロモデル320を管理ノード200に送信する。管理ノード200は、受信したマクロモデル320をストレージ装置300に格納する。
【0096】
[ステップS103]CADシステム100の冠循環モデル作成部120は、ユーザからのCADに対する入力に従って、ミクロモデル330を作成する。そしてCADシステム100は、作成したミクロモデル330を管理ノード200に送信する。管理ノード200は、受信したミクロモデル330をストレージ装置300に格納する。
【0097】
[ステップS104]管理ノード200の実行指示部210は、複数の計算ノードに対して、冠循環シミュレーションを実行するジョブを投入し、ジョブを投入した計算ノードに対して冠循環シミュレーションを指示する。すると複数の計算ノードの複数のコアが、並列処理により冠循環シミュレーションを実行する。
【0098】
以下、
図15に示した手順に沿って、各ステップの処理を詳細に説明する。
<有限要素モデル作成>
例えばCADシステム100の有限要素モデル作成部110は、医療画像(Computed Tomography, Magnetic Resonance Image, Echocardiogramなど)から、心臓の形状を抽出する。そして有限要素モデル作成部110は、心臓の形状を示すデータを、有限要素法の実行に必要なメッシュ(例えば4面体または6面体)に分割する。
【0099】
<冠循環ネットワークモデル作成>
冠循環ネットワークモデルの作成は、マクロモデルの作成と、ミクロモデルの作成とに分かれる。マクロモデルとミクロモデルの分類には、例えば、Kassabが計測し、血管径に基づいてレベル付けしたデータを利用することができる(非特許文献1−3参照)。
・マクロモデルに含まれる動脈のレベルを11〜6、静脈のレベルを−6〜−12とする。
・ミクロモデルのうち、対称性を仮定する中間スケールの血管の動脈側のレベルを5〜3、静脈側のレベルを−3〜−5とし、微小循環のレベルを3以下、−3以上とする。
【0100】
ここで、血管径に基づいたレベル付けについて詳述する。
図16は、冠循環へのレベル付けの一例を示す図である。例えば冠循環モデル作成部120は、血管の分岐と分岐の間を1セグメントとする。そして冠循環モデル作成部120は、すべてのセグメントに、そのセグメントの径を基にしたレベル付けを行う。
図16の例では、同レベルのセグメントの連なりを1つのエレメントとしている。
【0101】
冠循環モデル作成部120は、毛細血管から順に、太い血管に向かって、各セグメントへのレベル付けを行う。例えば冠循環モデル作成部120は、径が8μm以下のセグメントは毛細血管として扱う。毛細血管のレベルは0とする。冠循環モデル作成部120は、毛細血管以外のセグメントのレベル付け、樹状構造の幹へと向かって行う。例えば冠循環モデル作成部120は、レベルN(Nは、0以上の整数)同士の血管が合流した場合、上流の血管のレベルは1大きくし、レベルN+1とする。また冠循環モデル作成部120は、異なるレベルのセグメントが合流した場合、合流位置から上流のセグメントのレベルは、合流した下流のセグメントのうちの大きい方のレベルに合わせる。例えば、レベルN+1のセグメントとレベルNのセグメントとが合流した場合、合流位置から上流のセグメントのレベルは、N+1となる。また冠循環モデル作成部120は、以上の規則を原則として、セグメントの径に応じて修正を加える。
【0102】
さらに冠循環モデル作成部120は、計測結果に基づいて、以下の項目についてレベルごとに平均と標準偏差を求める。
・血管径
・血管長
・segment-to-element ratio(SN)
・コネクティビティマトリクス(ER)
SNは同じレベルのセグメントが連続してつながる数を表す。コネクティビティマトリクスは行列の形で与えられ、ER(M、N)はレベルM(Mは、0以上の整数)の血管節点からレベルNの血管が分岐する頻度を表している。毛細血管にはレベル0が割り当てられているが、冠循環モデル作成部120は、毛細血管をさらにC0a、C00、C0v、Cccの4種に分類する。C0aは、動脈末端と接続している毛細血管である。C0vは、静脈末端と接続している毛細血管である。C00は、心筋と平行に走行している毛細血管である。Cccは、心筋の長軸方向に対して縦方向に走行している毛細血管である。
【0103】
<<マクロモデル作成>>
冠循環モデル作成部120は、血管の分類が完了すると、レベル11〜6の動脈と、レベル−6〜−12の静脈とに基づいて、マクロモデルを作成する。
【0104】
図17は、マクロモデル作成処理の手順の一例を示すフローチャートである。以下、
図17に示す処理をステップ番号に沿って説明する。
[ステップS111]冠循環モデル作成部120は、初期の心表面冠血管モデルを作成する。例えば冠循環モデル作成部120は、人間の心臓を撮影した断層写真を基にして、初期の心表面冠血管データを作成する。次に冠循環モデル作成部120は、心表面冠血管データを、心臓有限要素モデルの左心室外壁、右心室外壁に射影する。これにより、初期の心表面冠血管モデルが作成できる。
【0105】
[ステップS112]冠循環モデル作成部120は、初期の心表面冠血管モデルに対して、径、レベル、各節点での分岐の有無といった情報を付与する。冠循環モデル作成部120は、作成した心表面冠血管モデルを画面に表示できる。
【0106】
図18は、心表面冠血管モデルの表示例を示す図である。
図18の例では、心表面冠血管モデル表示画面70内の左側には、動脈・静脈別画像71が表示されている。動脈・静脈別画像71は、動脈と静脈とを色分けして表示したものである。心表面冠血管モデル表示画面70内の右側には、血管径別画像72が表示されている。血管径別画像72は、血管の径に応じて色分けして表示したものである。
【0107】
図17の説明に戻る。
[ステップS113]冠循環モデル作成部120は、心表面冠血管モデルに中隔枝を追加する。中隔枝とは、心臓の血管の一部に付けられた名称であり、顕微鏡写真などで観察可能である。
【0108】
図19は、中隔枝を付与した心表面冠循環モデルの一例を示す図である。
図19に示すように、顕微鏡写真や解剖図などには、動脈や静脈の中隔枝がどのように出ているのかが表されている。冠循環モデル作成部120は、このような解剖図などに基づいて、中隔枝を付与した心表面冠循環モデル73を生成する。
【0109】
図17の説明に戻る。
[ステップS114]冠循環モデル作成部120は、計算データと乱数とを用い、レベル6以上、−6以下の血管ネットワークを生成する。
【0110】
まず、冠循環モデル作成部120は、初期の心表面冠血管の分岐節点から派生する血管のレベルを決定する。例えば、冠循環モデル作成部120は、分岐元の血管レベルをNとしたときコネクティビティマトリクスER(N、x)と0から1の間の乱数とを用いて、派生する下位の血管のレベルを決定する。冠循環モデル作成部120は、分岐元の血管が末端部の場合は、2つの下位の血管のレベルを決定する。次に冠循環モデル作成部120は、各レベルのSNの分布が、計測結果の平均値と標準偏差が規定する正規分布に従うと仮定し、仮定に従った確率で乱数を生成する。そして冠循環モデル作成部120は、得られた乱数の値を、小数点以下を四捨五入することで下位の血管エレメントを構成するセグメント数を決定する。
【0111】
また冠循環モデル作成部120は、血管径と長さも、SN同様、レベルごとの分布が計測結果の平均値と標準偏差が規定する正規分布に従うと仮定する。そして冠循環モデル作成部120は、血管径について、1エレメント内では一定として、仮定に従った確率で生成した乱数を使って決定する。また冠循環モデル作成部120は、血管長について、セグメントごとにそれぞれ、仮定に従った確率で生成した乱数を使って求める。このようにして、血管ネットワークが生成される。
【0112】
[ステップS115]最後に冠循環モデル作成部120は、生成した血管ネットワークを、心臓有限要素メッシュへマッピングする。その結果、
図2に示したようなマクロモデル10が生成される。
【0113】
<<ミクロモデル作成>>
次に冠循環モデル作成部120は、ミクロモデルを作成する。
図20は、ミクロモデル作成処理の手順の一例を示すフローチャートである。以下、
図20に示す処理をステップ番号に沿って説明する。
【0114】
まず冠循環モデル作成部120は、ステップS121〜S124において、微小循環モデルの作成処理を行う。微小循環モデルは、動脈側のレベル3〜1の細血管、毛細血管(レベル0)、および静脈側のレベル−3〜−1の細血管を、合わせて表現したものである。太い冠血管を示すマクロモデルが2分岐を基本としたツリー状の分岐構造となっているのに対して、微小循環モデルはネットワーク構造となっていることが大きな特徴である。微小循環系は、例えば細動脈1本と細静脈2本の間に形成され、長軸方向はおおよそ500μm程度のサイズである。そこで冠循環モデル作成部120は、ツリー状の血管分岐作成方法に加え、 以下の3つの拘束条件の基に微小循環モデルのネットワークを作成する。これにより、実際の血管形態が再現される。
・条件1:1本の細動脈(レベル3)から派生した毛細血管はやがて2本の細静脈(レベル−3)へと合流していく。
・条件2:毛細血管の長軸方向の長さは500μm 程度である。
・条件3:毛細血管節点は横のつながりを持つ場合がある。
【0115】
冠循環モデル作成部120は、微小循環モデルを、マクロモデルの生成で述べた計測データと乱数を用いた方法により作成する。具体的には冠循環モデル作成部120は、ステップS121〜S123の3ステップで微小循環モデルを作成する。
【0116】
[ステップS121]冠循環モデル作成部120は、動脈側のレベル3と、静脈側のレベル−3との血管ネットワークを作成する。例えば冠循環モデル作成部120は、動脈側について、Kassabらの計測データに従い、1本のレベル3の細動脈からレベル1の末端の細動脈までツリー状の分岐モデルを作成する。また冠循環モデル作成部120は、動脈側について、動脈側同様、2本のレベル−3の細静脈からレベル−1までツリー状の分岐モデルを作成する。
【0117】
[ステップS122]冠循環モデル作成部120は、心筋と平行に走行する毛細血管を作成する。例えば冠循環モデル作成部120は、動脈側の末端と静脈側の末端の距離が約500μm程度になるまで動脈側の末端より毛細血管要素をつなげていく。なお冠循環モデル作成部120は、毛細血管要素の径、長さは、Kassabの計測データに乱数を与えることで要素ごとに決定する。また一般に動脈側の末端数と静脈側の末端数は等しくないため、冠循環モデル作成部120は、両者を接続するためには毛細血管節点において分岐を作成することで、末端数を合わせる。このような毛細血管レベルの分岐は、実際に観察結果に沿ったものである。なお冠循環モデル作成部120は、分岐の数については、動脈側の末端数と静脈側の末端数の差によって決定する。また冠循環モデル作成部120は、分岐を作成する毛細血管節点は、確率的に選択する。
【0118】
[ステップS123]冠循環モデル作成部120は、毛細血管節点に横のつながりを作成する。例えば冠循環モデル作成部120は、心筋細胞の長軸方向とおおよそ垂直に走行する、心筋節点同士を横方向につなげる血管要素を作成する。なお冠循環モデル作成部120は、このとき作成する血管要素の血管径、長さについて、心筋と平行に走行する血管の作成時と同様、乱数により決定する。また冠循環モデル作成部120は、横のつながりを作成する毛細血管節点については、確率的に選択する。
【0119】
このようして、微小循環モデルが生成される。
図21は、微小循環モデルの作成過程の一例を示す図である。まずステップS121で、レベル3の動脈側の血管ネットワーク81と、レベル−3の静脈側の血管ネットワーク82とが作成される。
【0120】
次にステップS122で、血管ネットワーク81と血管ネットワーク82との間に、500μm程度の、心筋と平行に走行する毛細血管が生成される。毛細血管は、毛細血管節点で分岐している。
【0121】
次にステップS123で、心筋細胞の長軸方向とおおよそ垂直に走行する、心筋節点同士を横方向につなげる血管要素が追加される。
図21に示しているように、心筋細胞は縦方向に約100μm、横方向に約10μmの縦長の形状をしている。このような心筋細胞の100μmの長さを有する方向が、長軸方向である。なお、毛細血管の径は、6μm前後である。
【0122】
このようにして、3次元構造の微小循環モデルが完成する。
図20に戻り、ステップS124以降の処理を説明する。
[ステップS124]冠循環モデル作成部120は、対称性モデルを作成する。例えば冠循環モデル作成部120は、マクロモデルの末端から7回分岐した後、微小循環モデルと接続するような対称性モデルを作成する。動脈側の分岐の内訳を示すと、レベル5(1本)→レベル5(2本)→レベル5(4本)→レベル4(8本)→レベル4(16本)→レベル4(32本)→レベル3(64本)→レベル3(128本)→レベル3(微小循環モデルの上端)となる。静脈側は、動脈側のレベルに負号をつけたものと同じである。
【0123】
[ステップS125]冠循環モデル作成部120は、微小循環モデルと対称性モデルとを接続する。ステップS124で作成した対称性モデルは、動脈側・静脈側、それぞれ128の末端を有している。つまりマクロモデルの末端に、対称性モデルを介して、微小循環モデルが128個並列に接続される。
【0124】
対称性モデルにおいて同じレベルの血管要素が3つ連続して連なっていること。そこでまた冠循環モデル作成部120は、血管径を補正する。例えばまた冠循環モデル作成部120は、各血管要素のレベルの平均値と標準偏差を用いて、各血管の血管径を、上流より平均値+σ、平均値、平均値−σとする。なお冠循環モデル作成部120は、血管要素の長さは平均値とする。
【0125】
図22は、対称性モデルの末端に微小循環モデルを128個並列接続したミクロモデルの一例を示す図である。
図22に示すように、ミクロモデル74の対称性モデルの部分は、動脈系・静脈系、それぞれ7回ずつ分岐している。そして対称性モデルの末端に、128個の微小循環モデルが接続されている。
図22の右側には、対称性モデルの血管のレベル、長さ、直径、および対称な血管の数を示している。なお長さと直径の単位は、μmである。
【0126】
以上のようにして、冠循環ネットワークモデルが作成される。
<シミュレーション実行>
次に、シミュレーションの実行方法について詳細に説明する。以下、まず心筋の圧力節点ごとのミクロモデルの数の設定方法、心筋と微小循環の連成手法を順に説明し、最後にマルチスケール解析の計算アルゴリズムを説明する。
【0127】
<<ミクロモデルの数の設定>>
シミュレーション条件決定部130は、心筋容積に対する細血管の密度の貫壁性による違いを考慮するため、心外膜側で1、心内膜側で2.2となる血管密度比を、心筋節点に与える。
【0128】
図23は、血管密度比の設定結果を表した図である。
図23は、心臓の断面を、血管密度比に応じて色分けして表示したものである。シミュレーション条件決定部130は、このような血管密度比を用いて、各圧力節点のミクロモデルの個数を決定する。
【0129】
例えば実行指示部210は、ミクロモデルの血管の総容積を心臓容積の8%とし、心筋節点に単位体積当たりに含まれるミクロモデル血管容積ρ
kを求める。そしてシミュレーション条件決定部130は、第1の実施の形態と同様に、式(1)を用いて、圧力節点kに接続されるミクロモデルの数n
kを計算する。
【0130】
さらに、シミュレーション条件決定部130は、ユーザからの指示に従い、シミュレーション時間の進行間隔、シミュレーションの終了条件Newton-Raphson法による解析の収束条件などを決定する。そしてCADシステム100から管理ノード200へ、マクロモデル、ミクロモデル、およびシミュレーション条件を送信する。すると管理ノード200から複数の計算ノードに冠循環シミュレーションのジョブが投入され、複数の計算ノードの並列処理により冠循環シミュレーションが実行される。
【0131】
<<ミクロモデルの血管に関する式>>
ミクロモデルの血管は心筋に、直接、酸素や栄養を供給する役割を担っている。そこで冠循環シミュレーションでは、血液の輸送に加え血管体積変化による血液の貯蓄や放出を考慮する。一般に血管要素の2端点で圧力値が異なり、要素内でも径が異なる。
【0132】
図24は、血管径の違いを示す図である。
図24に示すように、コンダクタンスk
ijの血管要素を、コンダクタンスk
i(t)の分割要素とコンダクタンスk
j(t)の分割要素との2つに分けて考える。分割要素の内圧はμ
i(t),μ
j(t)で一定と考えると、血管径D
i(t)は内圧(冠血圧)と外圧p
m(t)の差により式(11)のように決定される。なお、外圧とは心筋圧であり、心筋有限要素の圧力節点の値に相当する。αは血管の弾性を示し、*は基準状態を示す。
【0134】
分割要素のコンダクタンスkは便宜的にポアズイユ流れより得られる値で代用する。よって血管要素のコンダクタンスk
ij(t)は分割要素のコンダクタンスk
i(t),k
j(t)の調和平均として式(12)のように求められる。
【0136】
また、分割要素が溜め込む血液は体積の時間微分で表すことができ(式(13)第二項)、結局マクロモデルの血管節点iにおいては次式の流量保存則が成立する。
【0138】
<<心臓有限要素モデルと血液からなる混合体の基礎式>>
心筋と微小循環系に含まれる血液からなる混合体の運動方程式は、次の式(14)で与えられる。
【0140】
pは心筋内圧である。ρは混合体密度である。aは加速度である。σ
sはCauchy応力テンソルである。体積変化率Jを用いた混合体の体積保存則は、次の式(15)となる。
【0142】
式(15)の第二項がミクロモデルの体積変化であり、ミクロモデルに蓄えられる血液が増加した分だけ混合体の容積が増加することを表している。ΔV
Microはミクロモデル1個の初期状態からの容積増加量である。nは単位心筋体積当たりに含まれるミクロモデルの数である。
【0143】
結局、未知数は心筋の変位3成分、心筋圧力1成分、血管圧力1成分の計5種となり、以下の式(16)で表される。
【0145】
A
mic:ミクロモデルのマトリクス
B
mac:マクロモデルのマトリクス
C:ミクロモデルとマクロモデルの相互作用
D:心筋および流体節点の変位に関連するマトリクス
F::心筋および流体節点の圧力に関連するマトリクス
K:ミクロモデルと心筋節点の圧力の相互作用
H:マクロモデルと流体節点の圧力の相互作用
Δμ
mic:ミクロモデルの節点の圧力に関連するベクトル
Δμ
mac:マクロモデルの節点の圧力に関連するベクトル
Δu:心筋および流体節点の変位に関するベクトル
Δp:心筋および流体節点の圧力に関するベクトル
r:残差ベクトル
未知数は、以上の式(16)を解くことで求められる。
【0146】
<<シミュレーション手順>>
計算ノード400,500,600,・・・は、管理ノード200の実行指示部210の指示に応じ、心臓の冠循環シミュレーションを並列処理で実行する。例えば、MPI(Message-Passing Interface)を用いた並列処理が行われる。その際、実行指示部210は、マクロモデルの計算を担当するプロセス(macro procs)を、コアに割り当てる。マクロモデルの計算を担当するプロセスが割り当てられコアは、マクロ解析部450として機能する。
【0147】
また実行指示部210は、ミクロモデルの計算を担当するプロセス(micor procs)を、複数のコアに割り当てる。このときミクロモデルの計算を担当するプロセスを割り当てるコアには、例えば、そのコアで計算するミクロモデルの番号や、ミクロモデルが接続される圧力節点の位置が指定される。ミクロモデルの計算を担当するプロセスを割り当てられたコアは、ミクロ解析部510,・・・,として機能する。
【0148】
また実行指示部210は、シミュレーション全体を制御するプロセスを、コアに割り当てる。シミュレーション全体を制御するプロセスが割り当てられたコアは、シミュレーション制御部440として機能する。なお、シミュレーション制御部440は、例えばマクロプロセスが割り当てられたマクロ解析部450と同じコアで実行することもできる。
【0149】
図25は、心臓の冠循環シミュレーションの手順の一例を示すフローチャートである。
図25に示す処理のうち、ステップS131〜S135は、シミュレーション制御部440が実行する全体制御処理である。またステップS141〜S145は、ミクロ解析部510・・・が実行するミクロプロセスの処理である。ステップS151〜S155は、マクロ解析部450が実行するマクロプロセスの処理である。なお、マクロプロセスの処理には、心筋の収縮・弛緩、内腔血液の拍出の解析も含まれている。
【0150】
以下、全体制御、ミクロプロセス、マクロプロセスに分けて、
図25に示す処理をステップ番号に沿って説明する。まず、全体制御の処理について説明する。
[ステップS131]シミュレーション制御部440は、心臓の有限要素モデル310と冠循環モデル(マクロモデル320とミクロモデル330)とを、ストレージ装置300から各計算ノード400,500,600,・・・に読み込ませる。各計算ノード400,500,600,・・・では、読み込んだ情報を、メモリに記憶する。
【0151】
[ステップS132]シミュレーション制御部440は、シミュレーション上の時刻を示すタイムステップを、1ステップ分進める。
[ステップS133]シミュレーション制御部440は、Newton−Raphson法による非線形解析の反復処理を進める。例えばシミュレーション制御部440は、マクロ解析部450と複数のミクロ解析部510,・・・に、Newton−Raphson法による非線形解析の次の段階の処理の実行を指示する。これにより複数のミクロ解析部510,・・・それぞれにおいて、ステップS141〜S145の処理が並列で実行される。また、マクロ解析部450において、ステップS151〜S155の処理が実行される。
【0152】
[ステップS134]シミュレーション制御部440は、Newton−Raphson法による非線形解析の結果が収束したか否かを判断する。例えばシミュレーション制御部440は、前回の解析結果と今回の解析結果との差が所定の閾値以下であれば、結果が収束したと判断する。シミュレーション制御部440は、結果が収束した場合、処理をステップS135に進める。またシミュレーション制御部440は、結果が収束していなければ、処理をステップS133に進める。
【0153】
[ステップS134]シミュレーション制御部440は、シミュレーションを実行するすべてのタイムステップについて計算が完了したか否かを判断する。シミュレーション制御部440は、すべてタイムステップの計算が完了していれば、冠循環シミュレーションを終了する。またシミュレーション制御部440は、すべてタイムステップ計算が完了していなければ、処理をステップS132に進める。
【0154】
このようにして、冠循環シミュレーション全体が制御される。
次に、複数のミクロ解析部510,・・・それぞれが実行するミクロプロセスのステップS141〜S145について説明する。
【0155】
[ステップS141]複数のミクロ解析部510,・・・それぞれは、自身が解析するマクロモデルが接続されている圧力節点に応じた、ミクロモデルのマトリクスA
Micを組み立てる。
【0156】
[ステップS142]複数のミクロ解析部510,・・・それぞれは、ステップS141で組み立てたマトリクスA
Micに基づいて、数(5)に従ってΔμ
Mac(μはチルダ付き)を算出する。
【0157】
[ステップS143]複数のミクロ解析部510,・・・それぞれは、ステップS143で計算したΔμ
Mac(μはチルダ付き)を、マクロ解析部450に送信する。
[ステップS144]複数のミクロ解析部510,・・・それぞれは、マクロ解析部450から、自身が解析するミクロモデルが接続されている圧力節点についての圧力の増分Δμ
macを受信する。
【0158】
[ステップS145]複数のミクロ解析部510,・・・それぞれは、ステップS144で受信した値を用いて、式(7)の計算を行い、Δμ
Micを算出する。
このようにして、ミクロモデルごとの計算が、複数のミクロ解析部510による並列処理で実行される。
【0159】
次に、マクロ解析部450が実行するマクロプロセスのステップS151〜S155について説明する。
[ステップS151]マクロ解析部450は、ミクロモデルのマトリクスB
Micを組み立てる。
【0160】
[ステップS152]マクロ解析部450は、各ミクロ解析部510,・・・から、Δμ
Mac(μはチルダ付き)の値を受信する。
[ステップS153]マクロ解析部450は、式(4)に示したB
Mac(Bはチルダ付き)の定義式を組み立てる。
【0161】
[ステップS154]マクロ解析部450は、式(6)に基づいて、各圧力節点におけるΔμ
Macを算出する。
[ステップS155]マクロ解析部450は、複数のミクロ解析部510,・・・それぞれに、そのマクロ解析部が解析しているミクロモデルが接続された圧力節点のΔμ
Macを送信する。
【0162】
図25に示した処理を、概略的に説明すると、以下のようになる。
まずシミュレーション制御部440が、入力データとして心臓の有限要素モデルおよび冠循環モデルを読み込み、以降は、タイムステップごとに、マクロ解析部450とミクロ解析部510,・・・とが、Newton-Raphson法で非線形解析の反復計算を実行する。反復計算において、マクロ解析部450は、まずマトリクスB
Macを組み立てる。同時に、複数のミクロ解析部510,・・・は、マトリクスA
Micを組み立て、A
Micが構成する方程式を解く。次に、ミクロ解析部510,・・・が、マクロ解析部450へΔμ
Mac(μはチルダ付き)が送信する。マクロ解析部450は、B
Mac(Bはチルダ付き)を計算し、方程式を解く。マクロ解析部450はミクロ解析部510,・・・へΔμ
Maを送信する。最後にミクロ解析部510,・・・は、Δμ
Micを計算する。
【0163】
このように、第2の実施の形態では、ミクロ解析部510によるミクロプロセスを担当するCPUの各コアが独立してミクロモデルの計算をすることができる。またミクロプロセスとマクロプロセスとが、一部において同時に動作すること可能となり、並列計算システムの性能を効果的に利用することが可能となる。さらに、対称性モデルの導入により、導入前に比べてミクロモデルのデータサイズが、約128分の1に削減されている。
【0164】
そして、並列計算システムの性能を効率的に利用したことで、毛細血管の血流までを含んだ心臓の冠循環シミュレーションが可能となっている。毛細血管の血流までを含んだ心臓の冠循環シミュレーションが実現したことで、例えば、これまで微小循環の観察には限界があった、心臓の動作の把握が可能となる。また、化合物の輸送と毛細管・筋組織間のやりとりを追加することで、医薬品開発における薬剤等の効果・副作用予測に適用可能なシミュレーションを実現することも可能となる。
【0165】
〔第3の実施の形態〕
次に、第3の実施形態について説明する。第3の実施の形態は、第1または第2の実施形態に示した血流のシミュレーションに、心筋細胞の代謝機能を解析するシミュレーションを組み合わせたものである。代謝とは心筋細胞が毛細血管内の血流から得た酸素・栄養からアデノシン三リン酸を産生する一連の化学反応である。代謝機能の数理モデルについては非特許文献5などがある。血流のシミュレーションと心筋細胞の代謝機能を解析するシミュレーションとの組み合わせは、毛細管までの血流のシミュレートが可能となったことにより、よりはじめて可能となるものである。
【0166】
第3の実施の形態では、心筋細胞の代謝機能を解析するシミュレーションと組み合わせるために、第1または第2実施形態において求解する方程式に、以下の2つの式(17)、(18)を追加する。
【0168】
式(17)は、冠循環の血液で運ばれる酸素・栄養の濃度の方程式である。式(17)において、Cは、酵素・栄養素の濃度である。vは、血液の流速である。Dは、拡散係数である。
【0170】
式(18)は、血液と心筋細胞との間の酸素・栄養の濃度差に従った、酸素・栄養の移動の方程式である。式(18)において、Cは、酸素・栄養素の濃度である。Kは、拡散係数である。qは、心筋細胞の代謝による消費を示す値である。
【0171】
式(17)、(18)を含めて、第1または第2実施形態と同様の手法で解を求める。なお式(17)は、マクロモデル・ミクロモデルの双方の解析に適用される。式(18)は、ミクロモデルおよびそのミクロモデルが接続された心筋圧力節点を持つ心筋有限要素に適用される。
【0172】
このようにして、血流と心筋細胞の代謝機能とを合わせて解析するシミュレーションが可能となる。
〔第4の実施の形態〕
次に、第4の実施の形態について説明する。第4の実施形態は、第3の実施形態における計算量削減手法である。
【0173】
冠循環の血液流量の影響による代謝機能の変化は、心臓10拍動以上を経過してはじめて現れる。ところが、並列計算機の性能によっては10拍動分の計算時間が膨大になる可能性がある。そこで、第4の実施の形態では、少ない計算量でシミュレーションを行う。なお、第4の実施の形態のシステム構成は、第2の実施の形態と同様である。そこで、以下の説明では、
図8〜
図11に示した第2の実施の形態の各要素を用いて、第4の実施の形態の処理について説明する。
【0174】
図26は、第4の実施の形態におけるシミュレーション手順の一例を示すフローチャートである。以下、
図26に示す処理をステップ番号に沿って説明する。
[ステップS201]シミュレーション制御部440は、心臓の有限要素モデル310、冠循環モデル(マクロモデル320とミクロモデル330)、および心筋細胞の代謝機能の解析に必要なデータを、ストレージ装置300から各計算ノード400,500,600,・・・に読み込ませる。各計算ノード400,500,600,・・・では、読み込んだ情報を、メモリに記憶する。
【0175】
[ステップS202]シミュレーション制御部440は、シミュレーション上の時刻を示すタイムステップを、1ステップ分進める。
[ステップS203]マクロ解析部450と複数のミクロ解析部510,・・・とは、連携して、1拍動分の計算を行う。このステップS203では、心筋の運動、内腔血液の拍出、冠循環の流量、酸素・栄養の輸送、および代謝機能が計算される。そしてマクロ解析部450と複数のミクロ解析部510,・・・とは、冠循環流量のデータをメモリなどに保存する。
【0176】
[ステップS204]マクロ解析部450と複数のミクロ解析部510,・・・とは、連携して、10拍動分の計算を行う。このステップS204では、酸素・栄養の輸送と代謝機能とが計算される。
【0177】
[ステップS205]シミュレーション制御部440は、シミュレーションを実行するすべてのタイムステップについて計算が完了したか否かを判断する。シミュレーション制御部440は、すべてタイムステップの計算が完了していれば、冠循環シミュレーションを終了する。またシミュレーション制御部440は、すべてタイムステップ計算が完了していなければ、処理をステップS202に進める。
【0178】
このように第4の実施の形態では、1拍動分のシミュレーションをまず行い、心筋の運動、内腔血液の拍出、冠循環の流量、酸素・栄養の輸送、代謝機能を解析する。このとき1拍動における各時刻の冠循環の流量データは保存しておく。次に、保存した冠循環の流量データを用いて酸素・栄養素の輸送と代謝機能のみの計算を10拍動分行う。これにより代謝機能の変化を解析するのに必要な10拍動以上のシミュレーションの計算量を削減することができる。その結果、例えば、並列計算機の性能が制限された環境下でも、実用に耐え得る時間でシミュレーションを行うことができる。
【0179】
〔第5の実施の形態〕
次に、第5の実施の形態について説明する。第5の実施形態は、第1〜4の実施形態を基にした冠動脈狭窄時の心臓に対する影響を評価するものである。
【0180】
図27は、第5の実施の形態におけるシステム構成の一例を示す図である。
図27において、第2の実施の形態と同じ要素には同じ符号を付し、説明を省略する。第5の実施の形態では、
図8に示した第2の実施の形態のシステムに対して、ストレージ装置700、ネットワーク91、および端末装置800が追加されている。
【0181】
ストレージ装置700は、ネットワーク62に接続されている。そしてストレージ装置700は、計算ノード400,500,600,・・・により、解析結果保存用に使用される。端末装置800は、ネットワーク91を介してストレージ装置700に接続されている。端末装置800は、ストレージ装置700に格納された解析結果に基づいて冠動脈狭窄時の心臓に対する影響を評価する。
【0182】
例えばCADシステム100を用い、CT(Computed Tomography)/MRI(Magnetic Resonance Imaging)といった医療画像から得られる、狭窄した冠動脈を反映した冠循環モデルのデータを作成する。或いはCADシステム100を用い、ある患者の、将来狭窄が起きる可能性のある冠動脈の部位に対して、適切な狭窄を設定・反映した冠循環モデルのデータを作成する。このようなデータにより、計算ノード400,500,600,・・・が、第1〜4の実施形態で説明したシミュレーションを行い、結果保存用のストレージ装置700にシミュレーション結果を保存する。ユーザは、評価用の端末装置800により、解析結果を示すデータを取得する。そして、端末装置800が、心筋の運動、内腔血液の拍出、冠循環の流量、酸素・栄養の輸送、代謝機能について、冠動脈狭窄の影響を評価する。
【0183】
〔その他の実施の形態〕
上記の第1〜第5の実施の形態では、心臓の冠循環シミュレーションの例を用いているが、同様の血行動態シミュレーションを、別の器官に関して行うこともできる。
【0184】
また第2〜第5の実施の形態のシステムは、複数の装置で構成されているが、任意の2つ以上の装置を、1つの装置にまとめることもできる。例えば、CADシステム100と管理ノード200との機能を、1つのコンピュータにまとめることができる。
【0185】
さらに第2〜第5の実施の形態では、CPUのコアがプログラムを実行することによって処理を実現するものとしたが、プログラムで記述された処理の一部を、電子回路に置き換えることが可能である。例えば、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0186】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。