|
[Sponsors] |
Turbulent flow around a cylinder with pimpleFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 18, 2020, 08:34 |
Turbulent flow around a cylinder with pimpleFoam
|
#1 |
New Member
nazim
Join Date: Nov 2018
Location: France
Posts: 4
Rep Power: 8 |
Hello everyone,
I have a problem of stability when trying to simulate the flow around a cylinder of about Re=20000. I tried to introduce relaxation in U,k and omega but it only delays the crash of my simulation. I thought about introducing upwind schemes but I'm not sure to which extent exactly and if it's strictly necessary Here are my files controlDict Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application pimpleFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 300; deltaT 4.5e-03; //writeControl adjustable; writeControl timeStep; //writeInterval 0.1; writeInterval 100; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable yes; // permet de changer le controlDict en temps reel adjustTimeStep yes; maxCo 0.9; //stopAt writeNow; // permet de stopper la simulation // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinearV 1; div(phi,k) Gauss limitedLinear 1; div(phi,epsilon) Gauss limitedLinear 1; div(phi,omega) Gauss limitedLinear 1; // ajouté en debug div(phi,R) Gauss limitedLinear 1; div(R) Gauss linear; div(phi,nuTilda) Gauss limitedLinear 1; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected; // for older versions laplacian(rAUf,p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DomegaEff,omega) Gauss linear corrected; // ajouté en debug laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } wallDist { method meshWave; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-06; relTol 0.01; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } pFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } "(U|k|epsilon|omega)" // j'ai ajoute omega dedans { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0.1; } "(U|k|epsilon|omega)Final" // j'ai ajoute omega dedans { $U; tolerance 1e-05; relTol 0; } omegaFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } } PIMPLE { nOuterCorrectors 5; nCorrectors 2; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; } relaxationFactors { fields { } equations { "U.*" 0.8; //intialement 0.9 "k.*" 0.8; // initalement 1 "epsilon.*" 0.8; // initialement 1 } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // transportModel Newtonian; nu 1e-02; // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object turbulenceProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // simulationType RAS; RAS { RASModel kOmegaSST; // c'etait Launder and sharma avant ca turbulence on; printCoeffs on; } // ************************************************************************* // U Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (10 0 0); boundaryField { defaultFaces { type noSlip; } upperWall { type noSlip; } close { type empty; } deep { type empty; } inlet { type fixedValue; value uniform (10 0 0); } lowerWall { type noSlip; } cylinder { type noSlip; } outlet { type zeroGradient; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { defaultFaces { type zeroGradient; } upperWall { type zeroGradient; } close { type empty; } deep { type empty; } inlet { type zeroGradient; } lowerWall { type zeroGradient; } cylinder { type zeroGradient; } outlet { type fixedValue; value uniform 0; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object omega; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 -1 0 0 0 0]; internalField uniform 15.97; boundaryField { defaultFaces { type omegaWallFunction; value nonuniform 0(); } upperWall { type omegaWallFunction; value uniform 15.97; } close { type empty; } deep { type empty; } inlet { type fixedValue; value uniform 15.97; } lowerWall { type omegaWallFunction; value uniform 15.97; } cylinder { type omegaWallFunction; value uniform 15.97; } outlet { type zeroGradient; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { defaultFaces { type nutkWallFunction; value nonuniform 0(); } upperWall { type nutkWallFunction; value uniform 0; } close { type empty; } deep { type empty; } inlet { type calculated; value uniform 0; } lowerWall { type nutkWallFunction; value uniform 0; } cylinder { type nutkWallFunction; value uniform 0; } outlet { type calculated; value uniform 0; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.00015; boundaryField { defaultFaces { type kqRWallFunction; value nonuniform 0(); } upperWall { type kqRWallFunction; value uniform 0.00015; } close { type empty; } deep { type empty; } inlet { type fixedValue; value uniform 0.00015; } lowerWall { type kqRWallFunction; value uniform 0.00015; } cylinder { type kqRWallFunction; value uniform 0.00015; } outlet { type zeroGradient; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object epsilon; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -3 0 0 0 0]; internalField uniform 0.001; boundaryField { defaultFaces { type epsilonWallFunction; value nonuniform 0(); } upperWall { type epsilonWallFunction; value uniform 0.001; } close { type empty; } deep { type empty; } inlet { type fixedValue; value uniform 0.001; } lowerWall { type epsilonWallFunction; value uniform 0.001; } cylinder { type epsilonWallFunction; value uniform 0.001; } outlet { type zeroGradient; } } // ************************************************************************* // I have to tell you however that checkMesh tells me of an aspect ratio about 2000 which I don't have at all on my mesh. every other mesh parameters are ok. I have read that checkMesh sometimes give wrong conclusions. Thanks in advance for you help |
|
May 18, 2020, 17:56 |
|
#2 |
Senior Member
Herpes Free Engineer
Join Date: Sep 2019
Location: The Home Under The Ground with the Lost Boys
Posts: 931
Rep Power: 13 |
Hi,
- Could you please share the output of `checkMesh -allGeometry -allTopology`? - Could you please attach a log file or some sort of info to provide insight for the numerical instabilities you concern? Thanks
__________________
The OpenFOAM community is the biggest contributor to OpenFOAM: User guide/Wiki-1/Wiki-2/Code guide/Code Wiki/Journal Nilsson/Guerrero/Holzinger/Holzmann/Nagy/Santos/Nozaki/Jasak/Primer Governance Bugs/Features: OpenFOAM (ESI-OpenCFD-Trademark) Bugs/Features: FOAM-Extend (Wikki-FSB) Bugs: OpenFOAM.org How to create a MWE New: Forkable OpenFOAM mirror |
|
May 19, 2020, 07:58 |
|
#3 |
New Member
nazim
Join Date: Nov 2018
Location: France
Posts: 4
Rep Power: 8 |
thanks for the quick reply, in fact I have solved the problem now (but I will keep this the post) by setting the relaxation to a higher value in U and introducing it for k and omega as well as setting a CrankNicolson scheme for the time discretization and I set the nonorthogonal correctors to 3, because my cells are not orthogonal everywhere. I think that's all I have changed.
But there is another thing I have done, that is to run a simulation with simpleFoam first and then to inject the steady solution (I didn't verify if it was very well converged though) to my 0 folder as initial conditions, I has probably lowered the sharpness of the gradient comparing to my previous case (all velocities set as zero if I remember well). I will however try to run again the failed simulation to see what was inside the log file but as I remember I simply have seen all the quantities exploding. You will find attached the images of the "failed" simulation (the new one I have done is working correctly) as well as the mesh in the critical zone, it may already give you an insight of why it diverged. The "checkMesh -allGeometry -allTopology" gives the following results. command line : checkMesh -allGeometry -allTopology Code:
/*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1912 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : _f3950763fe-20191219 OPENFOAM=1912 Arch : "LSB;label=32;scalar=64" Exec : checkMesh -allGeometry -allTopology Date : May 19 2020 Time : 23:36:02 Host : Jmx-MSI PID : 4610 I/O : uncollated Case : /mnt/d/Openfoam_mysim/Steady nProcs : 1 trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Enabling all (cell, face, edge, point) topology checks. Enabling all geometry checks. Time = 0 Mesh stats points: 301648 internal points: 0 edges: 752316 internal edges: 149020 internal edges using one boundary point: 0 internal edges using two boundary points: 149020 faces: 600590 internal faces: 298942 cells: 149922 faces per cell: 6 boundary patches: 8 point zones: 0 face zones: 0 cell zones: 0 Overall number of cells of each type: hexahedra: 149922 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Topological cell zip-up check OK. Face-face connectivity OK. <<Writing 4 cells with two non-boundary faces to set twoInternalFacesCells Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology Bounding box defaultFaces 0 0 ok (empty) close 149922 150824 ok (non-closed singly connected) (-143 0 -10) (300 45 -10) deep 149922 150824 ok (non-closed singly connected) (-143 0 -30) (300 45 -30) outlet 217 436 ok (non-closed singly connected) (300 0 -30) (300 45 -10) lowerWall 552 1106 ok (non-closed singly connected) (-143 0 -30) (300 0 -10) cylinder 326 652 ok (non-closed singly connected) (-9.99901 12.5001 -30) (9.99968 32.4999 -10) upperWall 552 1106 ok (non-closed singly connected) (-143 45 -30) (300 45 -10) inlet 157 316 ok (non-closed singly connected) (-143 0 -30) (-143 45 -10) Checking faceZone topology for multiply connected surfaces... No faceZones found. Checking basic cellZone addressing... No cellZones found. Checking geometry... Overall domain bounding box (-143 0 -30) (300 45 -10) Mesh has 2 geometric (non-empty/wedge) directions (1 1 0) Mesh has 2 solution (non-empty) directions (1 1 0) All edges aligned with or perpendicular to non-empty directions. Boundary openness (9.70778e-18 1.23123e-17 3.32786e-16) OK. Max cell openness = 4.22476e-15 OK. Max aspect ratio = 235.434 OK. Minimum face area = 0.000347332. Maximum face area = 52.0974. Face area magnitudes OK. Min volume = 0.00694665. Max volume = 26.1673. Total volume = 392417. Cell volumes OK. Mesh non-orthogonality Max: 44.0317 average: 11.3073 Non-orthogonality check OK. Face pyramids OK. Max skewness = 0.604515 OK. Coupled point location match (average 0) OK. Face tets OK. Min/max edge length = 0.00263115 20 OK. All angles in faces OK. Face flatness (1 = flat, 0 = butterfly) : min = 1 average = 1 All face flatness OK. Cell determinant (wellposedness) : minimum: 7.22331e-05 average: 0.194798 ***Cells with small determinant (< 0.001) found, number of cells: 1103 <<Writing 1103 under-determined cells to set underdeterminedCells Concave cell check OK. Face interpolation weight : minimum: 0.33587 average: 0.492874 Face interpolation weight check OK. Face volume ratio : minimum: 0.501818 average: 0.972636 Face volume ratio check OK. Failed 1 mesh checks. End Here are the new fvSchemes and fvSolutions that allowed me to get correct results fvSchemes Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default CrankNicolson 0.5; // initially Euler; ddt(phi) CrankNicolson 0.5; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinearV 1; div(phi,k) Gauss limitedLinear 1; div(phi,epsilon) Gauss limitedLinear 1; div(phi,omega) Gauss limitedLinear 1; // ajouté en debug div(phi,R) Gauss limitedLinear 1; div(R) Gauss linear; div(phi,nuTilda) Gauss limitedLinear 1; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected; // for older versions laplacian(rAUf,p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DomegaEff,omega) Gauss linear corrected; // ajouté en debug laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } wallDist { method meshWave; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-06; relTol 0.01; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } pFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } "(U|k|epsilon|omega)" // j'ai ajouté omega dedans { solver PBiCG; preconditioner DILU; tolerance 1e-05; relTol 0.1; } "(U|k|epsilon|omega)Final" // j'ai ajoute omega dedans { $U; tolerance 1e-05; relTol 0; } omegaFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } } PIMPLE { nOuterCorrectors 5; nCorrectors 2; nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; } relaxationFactors { fields { } equations { "U.*" 0.7; //intialement 0.9 "k.*" 0.7; // initalement 1 "epsilon.*" 0.7; // initialement 1 } } // ************************************************************************* // Last edited by Nazim; May 19, 2020 at 19:43. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Issues on the simulation of high-speed compressible flow within turbomachinery | dowlee | OpenFOAM Running, Solving & CFD | 11 | August 6, 2021 07:40 |
Turbulent flow around a square cylinder | paulzhang | SU2 | 2 | August 14, 2017 00:55 |
k-omega SST simulation of turbulent flow around a circular cylinder | DanM | OpenFOAM Running, Solving & CFD | 17 | October 13, 2016 14:29 |
Compare the pressure of potential flow and a turbulent case of cylinder | ooo | OpenFOAM Running, Solving & CFD | 0 | August 2, 2013 08:25 |
Turbulent steady flow around a circular cylinder | Mirek Kabacinski | FLUENT | 0 | July 23, 2003 19:40 |