いわて駐在研究日誌

OpenCAE、電子工作、R/C等、徒然なるままに

OpenFOAMライブラリ開発2

~/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;