Difference between revisions of "Parameter Definitions - dynamicMotionSolverFvMesh"

From OpenFOAMWiki
(Created page with "This starts to get into the realm of fluid structure interaction (FSI). This solver morphs the mesh around a specified set of boundaries. The meshing motion is calculated ba...")
 
Line 9: Line 9:
 
= Example Dictionary File =  
 
= Example Dictionary File =  
  
<nowiki>
+
  dynamicFvMesh  dynamicMotionSolverFvMesh;
dynamicFvMesh  dynamicMotionSolverFvMesh;
+
 
 +
  motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );
 +
 
 +
  solver          sixDoFRigidBodyMotion;
 +
 
 +
  diffusivity    quadratic inverseDistance 1 ( Body );
 +
 
 +
  sixDoFRigidBodyMotionCoeffs
 +
  {
 +
      patches        ( Body );
 +
      innerDistance  25;
 +
      outerDistance  275;
 +
      centreOfMass    ( 16.81 -1087.4 -1063.3 );
 +
      mass            4.1453e+06;
 +
      g              ( 0 0 -9.8065 );
 +
      momentOfInertia ( 2.7874e+08 5.8901e+08 6.6762e+08 );
 +
      velocity        ( 0 -0.5 -0.25 );
 +
      rhoName        rhoInf;
 +
      rhoInf          1024.81;
 +
      accelerationRelaxation 0.9;
 +
      accelerationDamping 0.95;
 +
      report          on;
 +
      reportToFile    on;
 +
      solver
 +
      {
 +
          type            CrankNicolson;
 +
      }
 +
      constraints
 +
      {
 +
      }
 +
      restraints
 +
      {
 +
          Bouyancy
 +
          {
 +
              sixDoFRigidBodyMotionRestraint constantForce;
 +
              refAttachmentPt ( 16.8 -1087.4 -1062 );
 +
              constantForce  ( 0 0 4.0994e+07 );
 +
          }
 +
      }
 +
  }
  
motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );
+
= Main Controls =
 +
There are two main entries to specify outside of the coefficients subdictionary.  These are required entries.  You specify the motion solver and import the library for the motion solver.  This must be included in any code definition for the dynamicMotionSolverFvMesh dictionary.
  
solver          sixDoFRigidBodyMotion;
+
  motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );
 +
 
 +
  solver          sixDoFRigidBodyMotion;
  
diffusivity    quadratic inverseDistance 1 ( Body );
+
= sixDoFRigidBodyMotionCoeffs =
  
sixDoFRigidBodyMotionCoeffs
 
{
 
    patches        ( Body );
 
    innerDistance  25;
 
    outerDistance  275;
 
    centreOfMass    ( 16.81 -1087.4 -1063.3 );
 
    mass            4.1453e+06;
 
    g              ( 0 0 -9.8065 );
 
    momentOfInertia ( 2.7874e+08 5.8901e+08 6.6762e+08 );
 
    velocity        ( 0 -0.5 -0.25 );
 
    rhoName        rhoInf;
 
    rhoInf          1024.81;
 
    accelerationRelaxation 0.9;
 
    accelerationDamping 0.95;
 
    report          on;
 
    reportToFile    on;
 
    solver
 
    {
 
        type            CrankNicolson;
 
    }
 
    constraints
 
    {
 
    }
 
    restraints
 
    {
 
        Bouyancy
 
        {
 
            sixDoFRigidBodyMotionRestraint constantForce;
 
            refAttachmentPt ( 16.8 -1087.4 -1062 );
 
            constantForce  ( 0 0 4.0994e+07 );
 
        }
 
    }
 
}
 
</nowiki>
 
  
  
 +
= Parameters - Morphing Control =
  
  
  
 +
= Parameters - 6DoF Solver Control =
  
  
 +
 +
= Parameters - Body Definition =
 +
 +
 +
 +
= Parameters - Force Definitions =
  
  

Revision as of 13:17, 29 July 2016

This starts to get into the realm of fluid structure interaction (FSI). This solver morphs the mesh around a specified set of boundaries. The meshing motion is calculated based on the pressures on those boundaries. In turn, the dynamicMotionSolverFvMesh provides feedback to the fluid simulation. It alters the velocity boundary conditions (U field) on the included boundaries to specify the local velocity of the defined body. This local velocity includes coupled translation and rotational motions, if permitted. This mesh control is almost exclusively used to solve problems involving rigid body motion. There are many options and controls built into this one dictions. This section of the dynamicMeshDict is where you define the following items.

  1. Mesh morphing control
  2. Physical parameters of the rigid body
  3. Parameters to control how the 6DoF solver will actually solve the body motions
  4. Forces and motion constraints on the body, in addition to fluid forces.


1 Example Dictionary File

 dynamicFvMesh   dynamicMotionSolverFvMesh;
 
 motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );
 
 solver          sixDoFRigidBodyMotion;
 
 diffusivity     quadratic inverseDistance 1 ( Body );
 
 sixDoFRigidBodyMotionCoeffs
 {
     patches         ( Body );
     innerDistance   25;
     outerDistance   275;
     centreOfMass    ( 16.81 -1087.4 -1063.3 );
     mass            4.1453e+06;
     g               ( 0 0 -9.8065 );
     momentOfInertia ( 2.7874e+08 5.8901e+08 6.6762e+08 );
     velocity        ( 0 -0.5 -0.25 );
     rhoName         rhoInf;
     rhoInf          1024.81;
     accelerationRelaxation 0.9;
     accelerationDamping 0.95;
     report          on;
     reportToFile    on;
     solver
     {
         type            CrankNicolson;
     }
     constraints
     {
     }
     restraints
     {
         Bouyancy
         {
             sixDoFRigidBodyMotionRestraint constantForce;
             refAttachmentPt ( 16.8 -1087.4 -1062 );
             constantForce   ( 0 0 4.0994e+07 );
         }
     }
 }

2 Main Controls

There are two main entries to specify outside of the coefficients subdictionary. These are required entries. You specify the motion solver and import the library for the motion solver. This must be included in any code definition for the dynamicMotionSolverFvMesh dictionary.

 motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );
 
 solver          sixDoFRigidBodyMotion;

3 sixDoFRigidBodyMotionCoeffs

4 Parameters - Morphing Control

5 Parameters - 6DoF Solver Control

6 Parameters - Body Definition

7 Parameters - Force Definitions

8 User Notes

If you are using the sixDoFRigidBodyMotion, you must import the additional motion solver library.

motionSolverLibs ( "libsixDoFRigidBodyMotionDev.so" );

The solver also allows you to specify an innerDistance and outerDistance parameter. These control how the sixDof solver morphs the mesh.

  1. Anything within the innerDistance directly moves the mesh nodes as a rigid body.
  2. Between the innerDistance and outerDistance, the mesh nodes are morphed.
  3. Outside the outerDistance, no morphing occurs.

But be careful. The outerDistance parameter must always be larger than the innerDistance parameter. If you try to specify outerDistance as smaller than innerDistance, the solver will override your inputs with default values.