CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Rotating Mesh as reaction to flow (https://www.cfd-online.com/Forums/openfoam-solving/161214-rotating-mesh-reaction-flow.html)

arture October 20, 2015 07:42

Rotating Mesh as reaction to flow
 
Hello there,

I am trying to do a simulation of a horizontal axis marine current turbine. Now I am trying to find out which approach to use.

I read about AMI. For example using pimpleDyMFoam. Using this solver you define a rotational speed in the dynamicMeshDict. This means the Rotor has a constant rotational speed no matter how big the inflow velocity is.

I would prefer to define my rotor as moveable around one axis and then let the flow do its part on moving it.

Is there any possibility to do so?

Thank you very much for your help!

Cheers

Arthur

tomf October 21, 2015 05:59

Hi,

You could do this using sixDoFRigidBodyMotion motion solver for dynamic mesh cases. Below is an example that works with version 2.3, probably also works with 2.4, but I have not tested it. The example is set-up such that only rotation about the z-axis is possible. The point (0,0,0) is fixed so no translation possible. For all the possibilities I would encourage you to read through the source code in $FOAM_SRC/sixDoFRigidBodyMotion/

Regards,
Tom

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.x                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh      dynamicMotionSolverFvMesh;

motionSolverLibs ("libsixDoFRigidBodyMotion.so");

solver            sixDoFRigidBodyMotion;

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

    mass            0.25;
    centreOfMass    (0 0 0);
    momentOfInertia (0.002 0.002 0.005);
    orientation
    (
        1 0 0
        0 1 0
        0 0 1
    );
    angularMomentum (0 0 0);
    g              (0 0 -9.81);
    rhoName        rhoInf;
    rhoInf          1.225;
    report          on;

    constraints
    {
        fixed_origin
        {
            sixDoFRigidBodyMotionConstraint point;
            centreOfRotation    (0 0 0);
        }

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

    restraints
    {
     
    }
}


// ************************************************************************* //


arture October 26, 2015 08:21

Thank you very much! I'm gonna check it out.

Cheers

Arthur


All times are GMT -4. The time now is 03:51.