solidMechanics gear contact in rotation
Hi,
I'm trying to study a gear contact with the solid solver of Foam-extended 3.0
Ok the solver elasticSolidFoam work perfectly for contact but dos not allow rotation.
elasticNonLinTLSolidFoam and elasticNonLinULSolidFoam work for rotation but I cant seam to make them work for contact.
In the case of elasticNonLinTLSolidFoam I get the error
Code:
Starting time loop
Time: 1
Slave contact patch pinionTeeth grabbing normalContactModel pointer from master
Slave contact patch pinionTeeth grabbing frictionContactModel pointer from master
--> FOAM FATAL ERROR:
request for volVectorField U_0 from objectRegistry region0 failed
available objects of type volVectorField are
3
(
div((magSf*((((((-(interpolate(mu)+interpolate(lambda))*(snGrad(U)&((1)-((S|magSf)*(S|magSf)))))+((interpolate(lambda)*tr(((((1)-((S|magSf)*(S|magSf)))&interpolate(grad(U)))&((1)-((S|magSf)*(S|magSf))))))*(S|magSf)))+(interpolate(mu)*((((1)-((S|magSf)*(S|magSf)))&interpolate(grad(U)))&(S|magSf))))+(interpolate(mu)*((S|magSf)&interpolate((grad(U)&grad(U).T())))))+((0.5*interpolate(lambda))*((S|magSf)*tr(interpolate((grad(U)&grad(U).T()))))))+((S|magSf)&interpolate((sigma&grad(U)))))))
U
UPrevIter
)
From function objectRegistry::lookupObject<Type>(const word&) const
in file /home/Foam/foam-extend-3.0/src/foam/lnInclude/objectRegistryTemplates.C at line 139.
And in the case of elasticNonLinULSolidFoam it crash
Code:
Starting time loop
Time = 1
Slave contact patch pinionTeeth grabbing normalContactModel pointer from master
Slave contact patch pinionTeeth grabbing frictionContactModel pointer from master
Time 1, Corrector 0, Solving for DU using DICPCG, res = 1, rel res = 1, inner iters 3
Time 1, Corrector 1, Solving for DU using DICPCG, res = 0.0745107, rel res = 1, inner iters 12
Time 1, Corrector 2, Solving for DU using DICPCG, res = 0.0670055, rel res = 0.204413, inner iters 10
Time 1, Corrector 3, Solving for DU using DICPCG, res = 0.0300142, rel res = 0.0550744, inner iters 7
Time 1, Corrector 4, Solving for DU using DICPCG, res = 0.0139227, rel res = 0.0486533, inner iters 7
Time 1, Corrector 5, Solving for DU using DICPCG, res = 0.00770099, rel res = 0.0133588, inner iters 8
Time 1, Corrector 6, Solving for DU using DICPCG, res = 0.00474556, rel res = 0.0197897, inner iters 6
Time 1, Corrector 7, Solving for DU using DICPCG, res = 0.00321626, rel res = 0.00619995, inner iters 7
Time 1, Corrector 8, Solving for DU using DICPCG, res = 0.00237219, rel res = 0.0093214, inner iters 6
Time 1, Corrector 9, Solving for DU using DICPCG, res = 0.001763, rel res = 0.00428953, inner iters 7
Time 1, Corrector 10, Solving for DU using DICPCG, res = 0.00214489, rel res = 0.0123793, inner iters 13
Time 1, Corrector 11, Solving for DU using DICPCG, res = 0.00176585, rel res = 0.01188, inner iters 9
Time 1, Corrector 12, Solving for DU using DICPCG, res = 0.00101126, rel res = 0.00232465, inner iters 8
Time 1, Corrector 13, Solving for DU using DICPCG, res = 0.000605676, rel res = 0.00126276, inner iters 5
Time 1, Corrector 14, Solving for DU using DICPCG, res = 0.00035762, rel res = 0.000939143, inner iters 21
Time 1, Corrector 15, Solving for DU using DICPCG, res = 0.000258029, rel res = 0.000650839, inner iters 6
Time 1, Corrector 16, Solving for DU using DICPCG, res = 0.000173268, rel res = 0.000342203, inner iters 10
Time 1, Corrector 17, Solving for DU using DICPCG, res = 0.000120151, rel res = 0.000454567, inner iters 21
Time 1, Corrector 18, Solving for DU using DICPCG, res = 8.35921e-05, rel res = 0.000200285, inner iters 10
Time 1, Corrector 19, Solving for DU using DICPCG, res = 5.68496e-05, rel res = 0.000201291, inner iters 25
Time 1, Corrector 20, Solving for DU using DICPCG, res = 0.0543611, rel res = 0.946589, inner iters 40
Time 1, Corrector 21, Solving for DU using DICPCG, res = 0.0150151, rel res = 2.09456, inner iters 33
Time 1, Corrector 22, Solving for DU using DICPCG, res = 0.0449331, rel res = 1.1662, inner iters 30
Time 1, Corrector 23, Solving for DU using DICPCG, res = 0.0221391, rel res = 1.3073, inner iters 31
Time 1, Corrector 24, Solving for DU using DICPCG, res = 0.0148178, rel res = 0.532443, inner iters 30
Time 1, Corrector 25, Solving for DU using DICPCG, res = 0.0235522, rel res = 0.183507, inner iters 31
Time 1, Corrector 26, Solving for DU using DICPCG, res = 0.0199556, rel res = 0.220766, inner iters 17
Time 1, Corrector 27, Solving for DU using DICPCG, res = 0.0147405, rel res = 0.117636, inner iters 29
Time 1, Corrector 28, Solving for DU using DICPCG, res = 0.0104383, rel res = 0.103261, inner iters 26
Time 1, Corrector 29, Solving for DU using DICPCG, res = 0.00777503, rel res = 0.0755759, inner iters 26
Time 1, Corrector 30, Solving for DU using DICPCG, res = 0.0454017, rel res = 1, inner iters 39
Time 1, Corrector 31, Solving for DU using DICPCG, res = 0.0849541, rel res = 1.85395, inner iters 37
Time 1, Corrector 32, Solving for DU using DICPCG, res = 0.15859, rel res = 126.43, inner iters 32
Time 1, Corrector 33, Solving for DU using DICPCG, res = 0.999821, rel res = 28.6856, inner iters 5
Time 1, Corrector 34, Solving for DU using DICPCG, res = 1, rel res = 4.67685, inner iters 5
Time 1, Corrector 35, Solving for DU using DICPCG, res = 1, rel res = 1, inner iters 4
Exception en point flottant
My boundary condition for U in the case of are elasticNonLinTLSolidFoam. For elasticNonLinULSolidFoam I use a DU field with the same BC
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
pinionDisplacement
{
/*
type timeVaryingFixedDisplacement;
outOfBounds clamp;
fileName "$FOAM_CASE/constant/timeVsTopDisp";
value uniform (0 0 0);
*/
type timeVaryingFixedRotation;
rotationAxis (0 0 -1);
rotationOrigin (0 0 0);
fileName "$FOAM_CASE/constant/timeVsPignonAngle";
outOfBounds clamp;
value uniform ( 0 0 0 );
}
gearDisplacement
{
type fixedDisplacement;
value uniform ( 0 0 0 );
/*
type timeVaryingFixedRotation;
rotationAxis (0 0 1);
rotationOrigin (-2 0 0);
fileName "$FOAM_CASE/constant/timeVsPignonAngle";
outOfBounds clamp;
value uniform ( 0 0 0 );
*/
}
gearTeeth
{
type solidContact;
master yes;
contactActive yes;
rigidMaster no;
shadowPatch pinionTeeth;
interpolationMethod ggi;
//interpolationMethod patchToPatch;
projectionAlgo visible;
projectionDir contactSphere;
//projectionDir vector;
correctionFrequency 10;
normalContactModel standardPenalty;
standardPenaltyNormalModelDict
{
relaxationFactor 0.1;
penaltyScale 1;
returnScale 1.5;
contactGapTol 1e-7;
limitPenetration no;
penetrationLimit -0.03;
limitPressure no;
pressureLimit 1e12;
correctMissedVertices yes;
distanceMethod point;
//distanceMethod face;
oscillationCorrection yes;
smoothingSteps 1;
infoFrequency 10;
}
//frictionContactModel frictionless;
frictionContactModel standardPenalty;
standardPenaltyFrictionModelDict
{
relaxationFactor 0.1;
penaltyScale 1;
oscillationCorrection yes;
smoothingSteps 1;
infoFrequency 10;
frictionLaw coulomb;
frictionLawDict
{
frictionCoeff 0.1;
}
}
value uniform (0 0 0);
}
pinionTeeth
{
type solidContact;
shadowPatch gearTeeth;
master no;
contactActive yes;
value uniform (0 0 0);
}
empty
{
type empty;
}
I can get the gear in rotation with no error if I remove the contact boundary condition.
Thank you for your help
|