1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1912 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
motionSolverLibs (rigidBodyMeshMotion);
dynamicFvMesh dynamicOversetFvMesh;
motionSolver rigidBodyMotion;
// rigidBodyMotionCoeffs - not needed any more
// {
report on;
solver
{
type Newmark;
//gamma 0.1; // Velocity integration coefficient
//beta 0.1; // Position integration coefficient
}
accelerationRelaxation 0.4;
// prescribedRotation requires some sub-iterations to converge faster
// to desired value of omega.
nIter 3;
bodies
{
hull
{
type rigidBody;
parent root;
// To get Tensor of Inertia (symmetrical) use surfaceInertia
// here hull is empty shell
mass 0.552;
inertia (0.0033 0 0 0.01 0 0.0095);
centreOfMass (0.2857 -0.07 0); // relative to the centreOfMass
// of parent body
// (here root = global coord system)
// Transformation tensor and centre of rotation (CoR)
transform (1 0 0 0 1 0 0 0 1) (0.2857 -0.07 0);
joint
{
// These constrains are applied only to body hull,
// other bodies need to have their own set
// Constraints used for faster run
type composite;
joints
(
{
type Px; // Allow translation in X -
}
{
type Ry; // Allow rotation along Y axis
// (local - body CS)
}
);
}
patches (hullWall);
innerDistance 100; // With overset we want to avoid the mesh
// deformation so have large innerDistance
outerDistance 200;
}
propeller
{
type rigidBody;
parent hull;
centreOfMass (-0.2847 0.03 0); // Relative to parent CoM
mass 0.0288;
inertia (7.6e-6 0 0 4.2e-6 0 4.2e-6);
// transform and CoR - relative to parent CoR
transform (1 0 0 0 1 0 0 0 1) (-0.2757 0.03 0);
patches (propellerWall);
innerDistance 100;
outerDistance 200;
joint
{
type Rx;
}
}
rudder
{
type rigidBody;
parent hull;
centreOfMass (-0.3602 -0.0055 0);
mass 0.0746;
inertia (3.3e-5 0 0 4.7e-6 0 3.4e-5);
// transform and CoR - relative to parent CoR
transform (1 0 0 0 1 0 0 0 1) (-0.3487 -0.04 0);
patches (rudderWall);
innerDistance 100;
outerDistance 200;
joint
{
type Ry;
}
}
}
restraints
{
rudderRotation
{
type prescribedRotation;
body rudder;
referenceOrientation (1 0 0 0 1 0 0 0 1);
axis (0 1 0); // Axis of rotation
omega sine; // Function1 entry
omegaCoeffs
{
frequency 4;
amplitude 0.2;
scale (0 1 0);
level (0 1 0);
}
}
propellerRotation
{
type prescribedRotation;
body propeller;
referenceOrientation (1 0 0 0 1 0 0 0 1);
axis (1 0 0);
omega table
(
(0 (0 0 0))
(1 (16 0 0))
);
}
}
// } // end of rigidBodyMotionCoeffs
// ************************************************************************* //
|