アットウィキロゴ
 

セルcellの中心座標および体積を取得する方法



たいていの標準ソルバを基に新ソルバを作っている場合、すでにmeshというfvMeshというクラスの変数(オブジェクト)として宣言されています。

その場合、次のようにするとセルcellの中心座標を格納したvolVectorFieldと、セルcellの体積の値を格納したvolScalarFieldの参照が得られます。

const volVectorField& hogeCellCentre = mesh.C();
const volScalarField& hogeCellVolume = mesh.V();

座標は、vectorクラス(typedefされているpointでもよいですが)として格納されているので、すべての内部セルに対してはいつも通り下記のようにアクセスできます。

const volVectorField& hogeCellCentre = mesh.C();
const volScalarField& hogeCellVolume = mesh.V();

forAll(hogeCellCentre.internalField(), celli) {
vector cellCentre = hogeCellCentre.internalField()[celli];
scalar cellVolume = hogeCellVolume.internalField()[celli];
Info << "(x, y, z)(vol) = (" << cellCentre.x() << ", " << cellCentre.y() << ", " << cellCentre.z() << ")(" << cellVolume << endl;
}



<2014/09/12fri>
[EOF] -
最終更新:2014年09月13日 16:25