CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Pre-Processing

sixDoFRigidBodyMotion with AMI in rotating system

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 24, 2017, 07:30
Default sixDoFRigidBodyMotion with AMI in rotating system
  #1
New Member
 
Dae-young(Dan)
Join Date: Jan 2017
Location: South Korea
Posts: 6
Rep Power: 9
fhjkfhjk is on a distinguished road
Dear foamers,

I am trying to simulate a flow over a cylinder which is rotating with z-axis.

In this case, I set up the dynamicMeshDict and blockMesh as following.

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

dynamicFvMesh   dynamicMotionSolverFvMesh;

motionSolverLibs ( 
            "libfvMotionSolvers.so" 
            "libsixDoFRigidBodyMotion.so"
         );

//solver displacementLaplacian;
solver            sixDoFRigidBodyMotion;

/*
displacementLaplacianCoeffs
{

diffusivity uniform (cylinder);

}

*/


sixDoFRigidBodyMotionCoeffs
{
        patches         (cylinder);
        innerDistance   1;
        outerDistance   4;

        centreOfMass    (0 0 0);
    momentOfInertia    (0.3333 0.3333 0.3333);
    mass            2;
    orientation
    (
      1 0 0
      0 1 0
      0 0 1
      );
    
    veloicity    (0 0 0);
    acceleration    (0 0 0);
    angularMomentum    (0 0 0);
    torque        (0 0 0);
    gravity        (0 0 0);
    rho             rhoInf;
    rhoInf          1;
    report        on;

    solver
    {
        type CrankNicolson;
    }

    constraints
    {
        
     yLine
     {
       sixDoFRigidBodyMotionConstraint point;
       centreOfRotation    (0 0 0);
    //   direction        (0 0 1);
     }
     
       angular
         {
           sixDoFRigidBodyMotionConstraint axis;
           axis                 (0 0 1);
           //centreOfRotation   (0 0 0);
           //direction          (0 1 0);
         }
         
         
    }

    restraints
    {
      /*
     S1
     {
       sixDoFRigidBodyMotionRestraint linearSpring;
          anchor        (0 0 0);
          refAttachmentPt    (0 0 0);
          stiffness        35.0919;
          damping        0;
          restLength    0;
                 
     }
    */ 
     S3
     {
      sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
          coeff 0;
     }
    }
}






/*

solver            sixDoFRigidBodyMotion;

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;
        }
    }
}



*/
/*
sixDoFRigidBodyMotionCoeffs
{

centreOfMass    (0 0 0);
momentOfInertia    (0.2917 0.2917 0.25);
    mass         2;

patches    (cylinder);
innerDistance    0;
outerDistance    4;
    orientation
    (
      1 0 0
      0 1 0
      0 0 1
      );
    
    veloicity    (0 0 0);
    acceleration    (0 0 0);
    angularMomentum    (0 0 0);
    torque        (0 0 0);
    gravity        (0 0 0);
    rhoName        rhoInf;
    rhoInf        1;
    report        on;
diffusivity inverseDistance (cylinder);

}
*/
// ************************************************************************* //
and this is a boundary file

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  4.1                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

11
(
    outlet
    {
        type            patch;
        nFaces          240;
        startFace       210120;
    }
    sym1
    {
        type            patch;
        nFaces          360;
        startFace       210360;
    }
    sym2
    {
        type            patch;
        nFaces          360;
        startFace       210720;
    }
    inlet
    {
        type            patch;
        nFaces          240;
        startFace       211080;
    }
    cylinder
    {
        type            wall;
        inGroups        1(wall);
        nFaces          320;
        startFace       211320;
    }
    back
    {
        type            empty;
        inGroups        1(empty);
        nFaces          80000;
        startFace       211640;
    }
    back-calulated
    {
        type            empty;
        inGroups        1(empty);
        nFaces          25600;
        startFace       291640;
    }
    front
    {
        type            empty;
        inGroups        1(empty);
        nFaces          80000;
        startFace       317240;
    }
    front-calculated
    {
        type            empty;
        inGroups        1(empty);
        nFaces          25600;
        startFace       397240;
    }
    AMI_master
    {
        type            cyclicAMI;
        inGroups        1(cyclicAMI);
        nFaces          320;
        startFace       422840;
        matchTolerance  0.0001;
        transform       noOrdering;
        neighbourPatch  AMI_slave;
    }
    AMI_slave
    {
        type            cyclicAMI;
        inGroups        1(cyclicAMI);
        nFaces          320;
        startFace       423160;
        matchTolerance  0.0001;
        transform       noOrdering;
        neighbourPatch  AMI_master;
    }
)

// ************************************************************************* //
The body is rotated by a force induced by vortex sheds.

and I know I can rotate the mesh by applying omega in dynamicMesh, but in my case, I cannot use omega and it is calculated by the moment of inertia.

In this case, the mesh around body is morphed badly. As attached

I want to change it to rotate as a rigid body motion.

any suggestion for this problem I would be happy.

Thank you in advance.
Attached Images
File Type: jpg Morphed_mesh.jpg (189.3 KB, 113 views)
fhjkfhjk is offline   Reply With Quote

Old   March 13, 2018, 15:20
Default
  #2
New Member
 
David Balam
Join Date: Sep 2016
Posts: 1
Rep Power: 0
dbalamt is on a distinguished road
Maybe the wingMotion Tutorial can help you
dbalamt is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Free Fall Rotating Solid Object (layeradditionremoval + sixDoFRigidBodyMotion + AMI) chujeh2020 OpenFOAM 2 June 14, 2015 20:08
[snappyHexMesh] 2D AMI Moving Mesh with sHM; How hard can this be? ADGlassby OpenFOAM Meshing & Mesh Conversion 18 June 18, 2013 06:07
planetary hollow cylinder rotating system antonio FLUENT 1 March 9, 2007 13:35
Need ideas-fuel discharge system Jan FLUENT 1 October 10, 2006 23:05
Code with reliable free surface capability in a rotating system Subhasish Roy Choudhury Main CFD Forum 1 September 4, 1998 18:47


All times are GMT -4. The time now is 05:22.