MichaelD |
September 11, 2014 11:51 |
Mesh deformation problems with sixDoFRigidBodyMotion
4 Attachment(s)
Hello everyone,
I've been playing around with using sixDoFRigidBodyMotion for a prescribed motion, the appeal over e.g. velocityComponentLaplacian being the innerDistance/outerDistance functionality.
I've tried modifying the wingMotion tutorial so it moves in a prescribed pattern. However, while the the wing is moving correctly, only the first mesh layer on the wing is being deformed, rather than the area defined by innerDistance and outerDistance. As a result, the simulation crashes as the first element thickness collapses to 0 (see images).
Here's a link to a tarball of the case: https://drive.google.com/file/d/0ByI...it?usp=sharing
And below are the modified 0/pointMotion and dynamicMeshDict.
Any help is appreciated.
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class pointVectorField;
location "0.01";
object pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
wing
{
type uniformFixedValue; //calculated;
uniformValue table
(
(0 (0 0.0 0))
(0.5 (0 0.1 0))
);
outOfBounds clamp;
}
front
{
type empty;
}
back
{
type empty;
}
".*"
{
type fixedValue;
value uniform (0 0 0);
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ("libsixDoFRigidBodyMotion.so");
solver sixDoFRigidBodyMotion;
sixDoFRigidBodyMotionCoeffs
{
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 orientation; //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;
}
*/
}
}
// ************************************************************************* //
|