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/)
-   -   Mesh deformation problems with sixDoFRigidBodyMotion (https://www.cfd-online.com/Forums/openfoam-solving/141606-mesh-deformation-problems-sixdofrigidbodymotion.html)

MichaelD September 11, 2014 11:51

Mesh deformation problems with sixDoFRigidBodyMotion
 
4 Attachment(s)
Hello everyone,

I've been playing around with using sixDoFRigidBodyMotion for a prescribed motion, the appeal over e.g. velocityComponentLaplacian being the innerDistance/outerDistance functionality.
I've tried modifying the wingMotion tutorial so it moves in a prescribed pattern. However, while the the wing is moving correctly, only the first mesh layer on the wing is being deformed, rather than the area defined by innerDistance and outerDistance. As a result, the simulation crashes as the first element thickness collapses to 0 (see images).


Here's a link to a tarball of the case: https://drive.google.com/file/d/0ByI...it?usp=sharing

And below are the modified 0/pointMotion and dynamicMeshDict.

Any help is appreciated.

Code:

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

dimensions      [0 1 0 0 0 0 0];

internalField  uniform (0 0 0);

boundaryField
{
    wing
    {
      type              uniformFixedValue; //calculated;
      uniformValue table
      (
        (0    (0 0.0 0))
        (0.5  (0 0.1 0))
      );
     
      outOfBounds clamp;
    }

    front
    {
        type            empty;
    }

    back
    {
        type            empty;
    }

    ".*"
    {
        type            fixedValue;
        value          uniform (0 0 0);
    }
}


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

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.0                                |
|  \\  /    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        (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);
    rhoName        rhoInf;
    rhoInf          1;
    report          on;

    constraints
    {
        yLine
        {
            sixDoFRigidBodyMotionConstraint line;
            direction      (0 1 0);
        }

          zAxis
        {
          sixDoFRigidBodyMotionConstraint orientation; //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;
            }
      */
    }
}


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



All times are GMT -4. The time now is 08:31.