1

Previous: Internal motion Up: Internal motion Next: Dynamic mesh refinement

This is an automatically generated documentation by LaTeX2HTML utility. In case of any issue, please, contact us at info@cfdsupport.com.

Test case: wingMotion

  • This dynamic mesh method deals with internal mesh organization

     

  • Copy tutorial test case wingMotion:
    # run
    # cp -r $FOAM_TUTORIALS/incompressible/pimpleFoam/RAS/wingMotion ./

     

  • Test case is already set up

     

  • Test case is two-dimensional

     

  • Simple incompressible flow around the airfoil. The profile moves due to the fluid flow forces
wingMotion

Figure: wingMotion geometry

  • Solver for this tutorial test case is pimpleFoam

     

 

  • The case is split into three directories:
    wingMotion2D_pimpleFoam
    wingMotion2D_simpleFoam
    wingMotion_snappyHexMesh
  • Dynamic motion properties are set in dictionary:
    wingMotion2D_pimpleFoam/constant/dynamicMeshDict :

     

 

dynamicFvMesh      dynamicMotionSolverFvMesh;

motionSolverLibs ("libsixDoFRigidBodyMotion.so");

solver            sixDoFRigidBodyMotion;

 

  • Parameter dynamicFvMesh specifies what kind of dynamic motions is used, for this test case it is dynamicMotionSolverFvMesh

     

  • Parameter motionSolverLibs referes to the library to be used

     

  • Parameter solver sets the solver for mesh reordering, for this test case it is sixDoFRigidBodyMotion

     

  • Section sixDoFRigidBodyMotionCoeffs sets displacement properties of wing

     

 

sixDoFRigidBodyMotionCoeffs
{
    patches         (wing);
    innerDistance   0.3;
    outerDistance   1;

    mass            22.9;
    centreOfMass    (0.4974612746 -0.01671895744 0.125);
    momentOfInertia (1.958864357 3.920839234 2.057121362);
    orientation
    (
        0.9953705935 0.09611129781 0
        -0.09611129781 0.9953705935 0
        0 0 1
    );
    angularMomentum (0 0 -2);
    g               (0 -9.81 0);
    rho             rhoInf;
    rhoInf          1;
    report          on;

    solver
    {
        type symplectic;
    }

    constraints
    {
        yLine
        {
            sixDoFRigidBodyMotionConstraint line;
            centreOfRotation    (0.25 0.007 0.125);
            direction           (0 1 0);
        }

        zAxis
        {
            sixDoFRigidBodyMotionConstraint axis;
            axis                (0 0 1);
        }
    }

    restraints
    {
        verticalSpring
        {
            sixDoFRigidBodyMotionRestraint linearSpring;

            anchor          (0.25 0.007 0.125);
            refAttachmentPt (0.25 0.007 0.125);
            stiffness       4000;
            damping         2;
            restLength      0;
        }

        axialSpring
        {
            sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;

            axis            (0 0 1);
            stiffness       700;
            damping         0.5;
            referenceOrientation $orientation;
        }
    }
}

 

  • The test case is precomputed by steady-state solver simpleFoam, results are used as initial conditions for following pimpleFoam computation

     

  • Run the test case:9.1
    # ./Allrun
    # cd wingMotion2D_pimpleFoam
    # paraFoam
wing1
wing2
wing3

Figure: Different times of dynamic motion