剛体移動計算2015年2月6日 | |
はじめに6 自由度 (6-DOF) 剛体移動計算の簡単なテスト。 使用バージョンOpenFOAM 2.3.1 ファイル剛体移動計算6 自由度 (6-DOF) 剛体移動計算は移動メッシュ機能の 1 つであり、移動メッシュが使えるソルバーで使うことができる。設定は constant/dynamicMeshDict で行う。 constant/dynamicMeshDict
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object motionProperties;
}
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ("libsixDoFRigidBodyMotion.so");
solver sixDoFRigidBodyMotion;
sixDoFRigidBodyMotionCoeffs
{
patches (move);
innerDistance 0;
outerDistance 0.4;
centreOfMass (0.5 0.5 0.25);
Lx 0.2;
Ly 0.2;
Lz 0.1;
rho 500;
mass #calc "$rho*$Lx*$Ly*$Lz";
momentOfInertia #codeStream
{
codeInclude
#{
#include "diagTensor.H"
#};
code
#{
scalar sqrLx = sqr($Lx);
scalar sqrLy = sqr($Ly);
scalar sqrLz = sqr($Lz);
os <<
$mass
*diagTensor(sqrLy + sqrLz, sqrLx + sqrLz, sqrLx + sqrLy)/12.0;
#};
};
report on;
accelerationRelaxation 0.5;
constraints
{
}
restraints
{
}
}
motionSolverLibs に "libsixDoFRigidBodyMotion.so" を指定すると、solver で剛体移動計算である sixDoFRigidBodyMotion を選ぶことができる。主な設定は以下の通りである。
0/U
move
{
type movingWallVelocity;
value uniform (0 0 0);
}
0/pointDisplacement
move
{
type calculated;
value uniform (0 0 0);
}
テストモデル ![]() ソルバー: initDyMFoam 計算結果 ![]() ![]() ここでは用いていないが、拘束条件を設定することができる。constraint で拘束条件、reconstraint でバネ、ダンパーを設定できる。 $FOAM_TUTORIALS/multiphase/interDyMFoam/ras/DTCHull/constant/dynamicMeshDict
constraints
{
zAxis
{
sixDoFRigidBodyMotionConstraint line;
direction (0 0 1);
}
yPlane
{
sixDoFRigidBodyMotionConstraint axis;
axis (0 1 0);
}
}
restraints
{
translationDamper
{
sixDoFRigidBodyMotionRestraint linearDamper;
coeff 8596;
}
rotationDamper
{
sixDoFRigidBodyMotionRestraint sphericalAngularDamper;
coeff 11586;
}
sixDoFRigidBodyMotionConstraint では以下のものを指定できる。
sixDoFRigidBodyMotionRestraint では以下のものを指定できる。
| |
| PENGUINITIS | |