(更新中,占坑。。。)

可以参考:OpenFOAMwiki中的DynamicMeshDict(基于OpenFOAM 2.2_engysEdition-beta)

以OpenFOAM - 7为例

dynamicFvMesh可以选择:

  • staticFvMesh (默认选项,为静态网格)
  • solidBodyMotionFvMesh
  • multiSolidBodyMitionFvMesh
  • dynamicMotionSolverFvMesh
  • dynamicInkJetFvMesh
  • dynamicRefineFvMesh

dynamicMotionSolverFvMesh

rigidBodyMotion - from tutorial DTCHullMoving(dynamicMeshDict)

刚体以指定规律运动(网格变形使用弹簧网格法)

dynamicFvMesh   dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so")

motionSolver    rigidBodyMotion;

report          on; 

solver
{
    type Newmark;
}

accelerationRelaxation 0.4;

bodies
{
    hull
    {   
        type            rigidBody;
        parent          root;

        centreOfMass    (0 0 0);
        mass            412.73;
        inertia         (40 0 0 921 0 921);
        transform       (1 0 0 0 1 0 0 0 1) (2.929541 0 0.2);

        joint
        {
            type    composite;
            joints
            (
                {
                    type Pz;
                }
                {
                    type Ry;
                }
            );
        }

        patches         (hull);
        innerDistance   0.3;
        outerDistance   1;
    }
}

restraints
{
    translationDamper
    {
        type linearDamper;
        body hull;
        coeff 8596;
    }

    rotationDamper
    {
        type sphericalAngularDamper;
        body hull;
        coeff 11586;
    }
}

sixDoFRigidBodyMotion - - from tutorial DTCHullMoving(dynamicMeshDict.sixDoF)

刚体在流体作用下,做6自由度运动(可能有部分自由度受限,网格变形使用弹簧网格法)

dynamicFvMesh   dynamicMotionSolverFvMesh;

motionSolverLibs    ("libsixDoFRigidBodyMotion.so");

motionSolver    sixDoFRigidBodyMotion;

patches         (hull);
innerDistance   0.3;
outerDistance   1;

centreOfMass    (2.929541 0 0.2);
mass            412.73;
momentOfInertia (40 921 921);
rhoInf          1;
report          on;

value           uniform (0 0 0);

accelerationRelaxation 0.4;

solver
{
    type Newmark;
}

constraints
{
    zAxis
    {
        sixDoFRigidBodyMotionConstraint line;
        direction     (0 0 1);
    }
    yPlane
    {
        sixDoFRigidBodyMotionConstraint axis;
        axis          (0 1 0);
    }
}

restraints
{
    translationDamper
    {
        sixDoFRigidBodyMotionRestraint linearDamper;
        coeff         8596;
    }
    rotationDamper
    {
        sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
        coeff         11586;
    }
}

solidBodyMotion - from tutorial sloshingTank3D

区域整体以指定规律运动(网格整体运动,不发生变形)

dynamicFvMesh   dynamicMotionSolverFvMesh;

motionSolver    solidBody;

solidBodyMotionFunction SDA;

CofG            (0 0 0); 
lamda           50; 
rollAmax        0.22654;
rollAmin        0.10472;
heaveA          3.79;
swayA           2.34;
Q               2;  
Tp              13.93;
Tpn             11.93;
dTi             0.059;
dTp             -0.001;