sixDoFRigidBodyMotion: Update code and tutorial cases to use new explicit motion

simpleHarmonicMotion case removed temporarily pending the introduction of a suitable motion solver
This commit is contained in:
Henry
2014-01-23 11:24:50 +00:00
parent 7e7e47942f
commit 36f3e513ea
19 changed files with 92 additions and 642 deletions

View File

@ -23,79 +23,7 @@ boundaryField
{
wing
{
type sixDoFRigidBodyDisplacement;
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
);
velocity (0 0 0);
acceleration (0 0 0);
angularMomentum (0 0 -2.0);
torque (0 0 0);
rhoName rhoInf;
rhoInf 1;
g (0 -9.81 0);
report on;
constraints
{
maxIterations 500;
yLine
{
sixDoFRigidBodyMotionConstraint line;
lineCoeffs
{
refPoint (0.25 0.007 0.125);
direction (0 1 0);
}
tolerance 1e-9;
relaxationFactor 0.7;
}
zAxis
{
sixDoFRigidBodyMotionConstraint axis;
axisCoeffs
{
axis (0 0 1);
}
tolerance 1e-06;
relaxationFactor 0.7;
}
}
restraints
{
verticalSpring
{
sixDoFRigidBodyMotionRestraint linearSpring;
linearSpringCoeffs
{
anchor (0.25 0.007 0.125);
refAttachmentPt (0.25 0.007 0.125);
stiffness 4000;
damping 2;
restLength 0;
}
}
axialSpring
{
sixDoFRigidBodyMotionRestraint linearAxialAngularSpring;
linearAxialAngularSpringCoeffs
{
axis (0 0 1);
stiffness 700;
damping 0.5;
referenceOrientation $orientation;
}
}
}
type calculated;
value uniform (0 0 0);
}

View File

@ -10,19 +10,75 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object motionProperties;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ("libfvMotionSolvers.so" "libsixDoFRigidBodyMotion.so");
motionSolverLibs ("libsixDoFRigidBodyMotion.so");
solver displacementLaplacian;
solver sixDoFRigidBodyMotion;
displacementLaplacianCoeffs
sixDoFRigidBodyMotionCoeffs
{
diffusivity inverseDistance (wing);
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 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;
}
}
}

View File

@ -21,40 +21,40 @@ FoamFile
{
type patch;
nFaces 72;
startFace 22911;
startFace 25179;
}
inlet
{
type patch;
nFaces 40;
startFace 22983;
startFace 25251;
}
outlet
{
type patch;
nFaces 62;
startFace 23023;
startFace 25291;
}
front
{
type empty;
inGroups 1(empty);
nFaces 11431;
startFace 23085;
nFaces 12565;
startFace 25353;
}
back
{
type empty;
inGroups 1(empty);
nFaces 11431;
startFace 34516;
nFaces 12565;
startFace 37918;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 45947;
startFace 50483;
}
)

View File

@ -17,7 +17,7 @@ FoamFile
application pimpleDyMFoam;
startFrom latestTime;
startFrom startTime;
startTime 0;
@ -49,28 +49,4 @@ adjustTimeStep yes;
maxCo 0.9;
libs
(
"libOpenFOAM.so"
"libforces.so"
);
functions
{
forces
{
type forces;
functionObjectLibs ("libforces.so");
outputControl timeStep;
outputInterval 10;
patches (wing);
pName p;
UName U;
rhoName rhoInf;
log true;
rhoInf 1;
CofR (0.25 0.007 0.125);
}
}
// ************************************************************************* //

View File

@ -21,40 +21,40 @@ FoamFile
{
type patch;
nFaces 72;
startFace 22911;
startFace 25179;
}
inlet
{
type patch;
nFaces 40;
startFace 22983;
startFace 25251;
}
outlet
{
type patch;
nFaces 62;
startFace 23023;
startFace 25291;
}
front
{
type empty;
inGroups 1(empty);
nFaces 11431;
startFace 23085;
nFaces 12565;
startFace 25353;
}
back
{
type empty;
inGroups 1(empty);
nFaces 11431;
startFace 34516;
nFaces 12565;
startFace 37918;
}
wing
{
type wall;
inGroups 1(wall);
nFaces 378;
startFace 45947;
startFace 50483;
}
)