在使用overPimpleDyMFoam计算旋转机械 时,出现了如下报错:
Create time Create mesh for time = 0 Selecting dynamicFvMesh dynamicOversetFvMesh Selecting motion solver: rigidBodyMotion Selecting rigidBodySolver Newmark PIMPLE: Operating solver in PISO mode Reading field p Reading field U Reading/calculating face flux field phi Creating cellMask field to block out hole cells inverseDistance : detected 2 mesh regions zone:0 nCells:29272 voxels:(193 193 1) bb:(-300.001077033 -200.001077033 1.99892296657) (700.001077033 200.001077033 3.00107703343) zone:1 nCells:8145 voxels:(193 193 1) bb:(-50.0001414007 -49.9939730307 1.99985859933) (50.0001414007 49.9720506607 3.00014140067) --> FOAM Warning : From function bool Foam::oversetPolyPatch::master() const in file oversetPolyPatch/oversetPolyPatch.C at line 149 The master overset patch is not the first patch. Generally the first patch should be an overset patch to guarantee consistent operation. Overset analysis : nCells : 37417 calculated : 37186 interpolated : 204 (interpolated from local:204 mixed local/remote:0 remote:0) hole : 27 Creating interpolatedCells field Selecting incompressible transport model Newtonian Selecting turbulence model type RAS Selecting RAS turbulence model kOmegaSST Selecting patchDistMethod meshWave RAS { RASModel kOmegaSST; turbulence on; printCoeffs on; alphaK1 0.85; alphaK2 1; alphaOmega1 0.5; alphaOmega2 0.856; gamma1 0.555555555556; gamma2 0.44; beta1 0.075; beta2 0.0828; betaStar 0.09; a1 0.31; b1 1; c1 10; F3 false; decayControl false; kInf 0; omegaInf 0; } Reading/calculating face velocity Uf No MRF models present No finite volume options present Courant Number mean: 0.0195783147649 max: 21.9831544632 Starting time loop Courant Number mean: 0.0195783147649 max: 21.9831544632 Time = 0.005 forces forces: Not including porosity effects --> FOAM FATAL ERROR: Could not find rho:rho From function void Foam::functionObjects::forces::initialise() in file forces/forces.C at line 204. FOAM exiting使用的动网格文件如下:
motionSolverLibs ("librigidBodyMeshMotion.so"); 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 1.0; //- prescribedRotation requires some sub-iterations to converge faster // to desired value. nIter 3; bodies { rotor { type rigidBody; parent root; centreOfMass (-0.265 0 0); mass 1; rho 1; inertia (0.001 0 0 0.001 0 0.001); transform (1 0 0 0 1 0 0 0 1) (-0.265 0 0); patches (BLADE1); innerDistance 1000; outerDistance 2000; joint { type Rz; } } } restraints { rotorRotation { type prescribedRotation; body rudder; referenceOrientation (1 0 0 0 1 0 0 0 1); axis (0 0 1); // Axis of rotation omega sine; // Function1 entry omegaCoeffs { frequency 4; amplitude 0.2; scale (0 1 0); level (0 1 0); } } }但是如果把动网格文件改为:
dynamicFvMesh dynamicOversetFvMesh; dynamicOversetFvMeshCoeffs { // layerRelax 0.3; } solver multiSolidBodyMotionSolver; multiSolidBodyMotionSolverCoeffs { rotor { solidBodyMotionFunction rotatingMotion; rotatingMotionCoeffs { origin (0 0 0); axis (0 0 1); omega 1.08; } } }就可以正常计算了。请问这是哪里出现错误了,跪求各位大神解答。