Input File (RelML, JGML)

To use CellCompiler to generate simulation program, or use Jacobian Generator to generate program to calculate Jacobian Matrix, input file RelML or JGML have to be prepared.

RelML is a file which describes the relation between the model file described by CellML format, and the numerical solution scheme file described by TecML format.

JGML is a file which describes the property of variables defined in the model file described by CellML format.

〇JGMLの記法
1.jgmlタグ
JGMLファイルであることを表すタグ。<jgml>~</jgml>内にJGMLファイルに必要な要素を記述する。
2.cellmlタグ
JGMLファイルに対応するCellMLファイルを指定するタグ。
・name要素…CellML名。1命名と1CellMLファイルが紐づいている。
・filename要素…対応するCellMLファイル名とパス。相対パスでも絶対パスでもよい。
3.variableタグ
変数の属性を決めるタグ。
・name要素…変数名
・file要素…変数の属するファイル名。cellmlタグのname要素と紐づいている。
・component要素…変数の属するコンポーネント名。
・type要素…変数の属性。denomvar,numervar,constvarの3つが存在する。
・denomvar…ヤコビ行列を生成する際に、微分する変数
・numervar…ヤコビ行列を生成する際に、微分される変数
・constvar…ヤコビ行列を生成する際に、微分で定数として扱われる変数
・denomvar,numervar,constvarのいずれにも属さない変数をはJGMLに記述しない。
denomvarとnumervarの属性値を持つ変数の記述順は保存される。
例:
<variable name=”x” type=”denomvar” component=”Main” file=”cellml0″/>
<variable name=”y” type=”denomvar” component=”Main” file=”cellml0″/>
<variable name=”dxdt” type=”numervar” component=”Main” file=”cellml0″/>
<variable name=”dydt” type=”numervar” component=”Main” file=”cellml0″/>
例の順で記入すると出力されるプログラムコードのヤコビ行列は以下のようになる。
J(0,0)=d(dxdt)/dx    J(0,1)=d(dydt)/dy
J(1,0)=d(dydt)/dx    J(1,1)=d(dydt)/dy
変数”x”と”y”の記入順を入れ替える。
<variable name=”y” type=”denomvar” component=”Main” file=”cellml0″/>
<variable name=”x” type=”denomvar” component=”Main” file=”cellml0″/>
<variable name=”dxdt” type=”numervar” component=”Main” file=”cellml0″/>
<variable name=”dydt” type=”numervar” component=”Main” file=”cellml0″/>
変数の記述順を入れ替えると、出力されるヤコビ行列の列も入れ替われる。
J(0,0)=d(dxdt)/dy    J(0,1)=d(dxdt)/dx
J(1,0)=d(dydt)/dy    J(1,1)=d(dydt)/dx

Comments are closed.