|
[Sponsors] |
rhoSimplecFoam: error in Forces output (correct pressure field) |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
December 7, 2015, 11:23 |
rhoSimplecFoam: error in Forces output (correct pressure field)
|
#1 |
Member
Join Date: Dec 2015
Posts: 74
Rep Power: 10 |
Hi to everybody.
I'm running some simulation on an airplane using both Fluent and OpenFoam 2.3.0 in order to do a comparison. I'm using the compressible solver rhoSimplecFoam and I have found a resolution strategy for OF in order to obtain a convergence: - 100 iterations with energy equation deactivated (through fvOptions) - first order schema until the residual are 1e-4 - second-like order schema This strategy grants me a good accordance in the global pressure and velocity fields. The pressure field on the airplane surfaces also seems to be correct. However the force coefficients, the drag and lift forces are very different in OpenFoam and I don't understand the reason. I attached an image of the force report for Fluent and OpenFoam analysis(I converted the OF results in fluent format using foamMeshToFluent and foamDataToFluent commands). I report the setting used in controlDict, fvSolution and fvSchemes. The boundary I'm using are: p - inlet: totalPressure - outlet: fixedValue U - inlet_ pressureInletVelocity - outlet: pressureInletOutletVelocity T - inlet: totalTemperature - outlet: inletOutletTotalTemperature Turbulence model - the k-omega SST. Has someone some advice in order to fit the forces output? Thanks in advance, [WhiteW ControlDict Code:
application rhoSimpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 6000; deltaT 1; writeControl timeStep; writeInterval 200; purgeWrite 0; writeFormat ascii; writePrecision 9; writeCompression off; timeFormat general; timePrecision 9; graphFormat raw; runTimeModifiable true; libs ( "libforces.so" ); functions { forces { type forces; functionObjectLibs ( "libforces.so" ); outputControl timeStep; outputInterval 1; patches ( wall_fuselage wall_nose wall_sponson wall_junction wall_tail wall_wing_nacelle wall_nacelle wall_pianetto_orizzontale1 wall_raccordo_pianetti wall_pianetto_verticale ); pName p; UName U; rhoName rhoInf; log true; rhoInf 1.16; CofR (0.98460 0 0.35195); pitchAxis (0 -1 0); } } Code:
source1 { type temperatureLimitsConstraint; selectionMode all; active true; temperatureLimitsConstraintCoeffs { Tmin 294.18; Tmax 294.19; } } Code:
ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(U) Gauss linear; grad(p) Gauss linear; } divSchemes { default bounded Gauss upwind; div(phi,U) bounded Gauss upwind; div((muEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } fvSchemes 1st-2nd order Code:
ddtSchemes { default steadyState; } gradSchemes { default cellLimited Gauss linear 1; grad(U) cellMDLimited Gauss linear 1; } divSchemes { default bounded Gauss linearUpwind cellLimited Gauss linear 1; div(phi,U) bounded Gauss linearUpwindV cellMDLimited Gauss linear 1; div((muEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } Code:
solvers { p { solver GAMG; tolerance 1e-09; relTol 0.1; smoother GaussSeidel; cacheAgglomeration off; nCellsInCoarsestLevel 800; agglomerator faceAreaPair; mergeLevels 1; maxIter 40; } rho { solver GAMG; tolerance 1e-09; relTol 0.1; smoother GaussSeidel; cacheAgglomeration false; nCellsInCoarsestLevel 800; agglomerator faceAreaPair; mergeLevels 1; maxIter 20; } U { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-09; relTol 0.1; maxIter 40; } h { solver PBiCG; preconditioner DILU; tolerance 1e-09; relTol 0.1; maxIter 20; } k { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-09; relTol 0.1; maxIter 20; } omega { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-09; relTol 0.1; maxIter 20; } e { solver GAMG; tolerance 1e-08; relTol 0.1; smoother GaussSeidel; nPreSweeps 0; nPostSweeps 2; nFinestSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 800; agglomerator faceAreaPair; mergeLevels 1; } } SIMPLE { nNonOrthogonalCorrectors 4; pMin pMin [1 -1 -2 0 0 0 0] 90000; pMax pMax [1 -1 -2 0 0 0 0] 105000; rhoMin rhoMin [1 -3 0 0 0 0 0] 1.12; //then changed to 1.08 rhoMax rhoMax [1 -3 0 0 0 0 0] 1.20; //then changed to 1.24 residualControl //tutorial { p 1e-4; U 1e-4; e 1e-4; "(k|epsilon|omega)" 1e-3; } } relaxationFactors { p 0.3; rho 0.1; e 0.7; U 0.7; h 0.7; k 0.7; omega 0.7; } |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to get the velocity field from the pressure field | Hermano | Main CFD Forum | 2 | November 29, 2011 08:32 |
Calculate forces without hydrostatic pressure | geir_oye | FLUENT | 4 | November 12, 2009 09:12 |
Does star cd takes reference pressure? | monica | Siemens | 1 | April 19, 2007 11:26 |
Neumann pressure BC and velocity field | Antech | Main CFD Forum | 0 | April 25, 2006 02:15 |
what the result is negatif pressure at inlet | chong chee nan | FLUENT | 0 | December 29, 2001 05:13 |