~/OpenFOAM-2.2.x/src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion/rotatingMotion.C(.H)を参考にライブラリを作ってみた。
オリジナルは、時刻tとdynamicMeshDictから読み込んだ角速度、回転中心を用いて、
// Rotation around axis
vector eulerAngles = omega_->integrate(0, t)*axis_;
となっており、これを以下のように変更して、eulerAngleを外部で計算させるようにして、ioDictに出力し、そこから直接読み込むこととした。めんどうなので、dynamicMeshDictも使わないように、CofGも一緒に読み込むこととする。
//read ioDict and sample I/O
IOdictionary ioDict(
IOobject(
"ioDict",
time_.constant(),
time_,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
vector eulerAngles = ioDict.lookup("eulerAngles"); // rad
Info << "eulerAngles : " << eulerAngles << endl;
point CofG = ioDict.lookup("CofG");
Info << "CofG :" << CofG << endl;