Difference between revisions of "DynamicMeshDict"
Nickninevah (Talk | contribs) |
Nickninevah (Talk | contribs) (→Command Template: 6DOF Motion Solver =) |
||
Line 114: | Line 114: | ||
</nowiki> | </nowiki> | ||
− | === Command Template: 6DOF Motion Solver === | + | === Command Template: 6DOF Motion Solver === |
<nowiki> | <nowiki> | ||
dynamicFvMesh dynamicMotionSolverFvMesh; | dynamicFvMesh dynamicMotionSolverFvMesh; | ||
Line 124: | Line 124: | ||
} | } | ||
</nowiki> | </nowiki> | ||
− | |||
== Parameter Definitions - staticFvMesh == | == Parameter Definitions - staticFvMesh == |
Revision as of 17:35, 20 June 2016
Contents
1 Description
This controls deformation and morphing of the mesh during a simulation. This dictionary is only necessary on solvers that invoke mesh motion. Generally, all these solvers will have the term DyM included in the base solver name. For example, a standard base solver might be pimpleFoam. With mesh motion, the solver will be pimpleDyMFoam and require a dynamicMeshDict.
Also note that the exact behavior of dynamicMeshDict is one of the less standardized features of OpenFOAM. The exact details and solver capabilities may vary depending on your specific version of OpenFOAM. This guide was created using OpenFOAM version 2.2 from Engys.
2 Example Dictionary File (6DOF Body Motion)
/*--------------------------------*- C++ -*----------------------------------*\ | o | | | o o | OpenFOAM (Engys Edition): | | o O o | Version: 2.2_engysEdition-beta | | o o | Web: http://www.engys.com | | o | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format binary; class dictionary; location "../constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh dynamicMotionSolverFvMesh; staticFvMeshCoeffs { } 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 ); } } } // ************************************************************************* //
3 Command List
4 Motion Types
The dictionary allows specification of four types of mesh motion.
- staticFvMesh: provides no mesh motion. The mesh is static. Useful for debugging a simulation that involves mesh motion.
- solidBodyMotionFvMesh: Prescribed mesh motion. No topology change in mesh.
- dynamicRefineFvMesh: refines the simulation mesh and provides topology changes based on simulation fields.
- dynamicMotionSolverFvMesh: Mesh motion based on solved mesh motion for rigid body motion.
The following code blocks show the template of commands required for each motion type. Additional parameters are also required to specify the details of each motion type.
4.1 Command Template: No Mesh Motion
dynamicFvMesh staticFvMesh; staticFvMeshCoeffs { }
4.2 Command Template: Prescribed Rigid Body Motion
dynamicFvMesh solidBodyMotionFvMesh; solidBodyMotionFvMeshCoeffs { //Parameter definitions }
4.3 Command Template: Dynamic Mesh Refinement Template
dynamicFvMesh dynamicRefineFvMesh; dynamicRefineFvMeshCoeffs { //Parameter definitions }
4.4 Command Template: 6DOF Motion Solver
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ("libsixDoFRigidBodyMotion.so"); solver sixDoFRigidBodyMotion; sixDoFRigidBodyMotionCoeffs { //Parameter definitions }