|
[Sponsors] |
February 22, 2020, 03:54 |
rhoCentralFoam no converge at energy "e"
|
#1 |
Member
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 10 |
Hi Guys,
I am currently simulating a helium gas tank with 660 bar at the beginning in openfoam 1712. This helium then enters a helium environment at 1 bar. So I have extremely large gradients, in the neighboring cells between 660 and 1 bar. However, the simulation does not converge with the settings in fvSolution, fvScheme and controlDict. And shows the following Error: Error: Code:
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUz, Initial residual = 0, Final residual = 0, No Iterations 0 smoothSolver: Solving for Ux, Initial residual = 4.156134313229688e-09, Final residual = 4.265079601544407e-17, No Iterations 2 smoothSolver: Solving for Uy, Initial residual = 5.497349689819279e-09, Final residual = 5.684861557058189e-17, No Iterations 2 smoothSolver: Solving for Uz, Initial residual = 3.997193648837395e-11, Final residual = 3.997193648837395e-11, No Iterations 0 diagonal: Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0 smoothSolver: Solving for e, Initial residual = 4.275064316920496e-11, Final residual = 6.817779925127806e-14, No Iterations 2 smoothSolver: Solving for omega, Initial residual = 5.299771101182694e-10, Final residual = 5.299771101182694e-10, No Iterations 0 smoothSolver: Solving for k, Initial residual = 1.21586269016541e-07, Final residual = 2.371396085560514e-14, No Iterations 2 ExecutionTime = 317.15 s ClockTime = 321 s Mean and max Courant Numbers = 2.81431486062863e-05 0.4500049628815927 deltaT = 5.271744881150556e-10 Time = 1.356697112636851857e-06 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUx, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUy, Initial residual = 0, Final residual = 0, No Iterations 0 diagonal: Solving for rhoUz, Initial residual = 0, Final residual = 0, No Iterations 0 smoothSolver: Solving for Ux, Initial residual = 4.155135259471846e-09, Final residual = 4.308414013746852e-17, No Iterations 2 smoothSolver: Solving for Uy, Initial residual = 5.493142623382779e-09, Final residual = 5.76015490406129e-17, No Iterations 2 smoothSolver: Solving for Uz, Initial residual = 3.996263192897822e-11, Final residual = 3.996263192897822e-11, No Iterations 0 diagonal: Solving for rhoE, Initial residual = 0, Final residual = 0, No Iterations 0 [245] #0 [246] #0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&) at ??:? at ??:? [246] #1 [245] #1 Foam::sigFpe::sigHandler(int)Foam::sigFpe::sigHandler(int) at ??:? [246] #2 ? at ??:? [245] #2 ? in "/lib64/libc.so.6" [246] #3 Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::sutherlandTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::calculate(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, bool) in "/lib64/libc.so.6" [245] #3 Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::sutherlandTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::calculate(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, bool) at ??:? [246] #4 Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::sutherlandTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::correct() at ??:? [245] #4 Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::sutherlandTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::correct() at ??:? [246] #5 at ??:? [245] #5 ?? at ??:? [246] #6 __libc_start_main at ??:? [245] #6 __libc_start_main in "/lib64/libc.so.6" [246] #7 in "/lib64/libc.so.6" [245] #7 ?? at ??:? at ??:? Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application rhoCentralFoam; startFrom startTime;//latestTime; startTime 0; stopAt endTime; endTime 2e-3; deltaT 1e-10; writeControl adjustableRunTime; writeInterval 1e-10; purgeWrite 0; writeFormat ascii; writePrecision 16; writeCompression off; timeFormat general; timePrecision 19; runTimeModifiable true; adjustTimeStep yes; maxCo 0.45; //maxAlphaCo 0.45; maxDeltaT 1; functions { #includeFunc probes #includeFunc residuals #includeFunc surfaces MachNumber { type MachNo; libs ("libfieldFunctionObjects.so"); executeControl timeStep; writeControl writeTime; } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { "(rho|rhoU|rhoE)" { solver diagonal; //inviscid part always solved explicit in rhoCentralFoam!! } "(U|k|epsilon|omega|e)" { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-09; relTol 0.01; } } |
|
February 22, 2020, 03:56 |
|
#2 |
Member
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 10 |
fvSchemes:
Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // fluxScheme Kurganov; ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(tauMC) Gauss linear; div(phi,omega) Gauss upwind; div(phi,k) Gauss upwind; div(phi,epsilon) Gauss upwind; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; reconstruct(rho) vanLeer; reconstruct(U) vanLeerV; reconstruct(T) vanLeer; } snGradSchemes { default corrected; } wallDist { method meshWave; } |
|
February 22, 2020, 04:02 |
|
#3 |
Member
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 10 |
So far I have found:
Using vanLeer for "reconstruct (rho / U / T)" causes the simulation to end after a few time steps with the error shown above. A change in the interpolation scheme from "reconstruct (rho)" to upwind makes the simulation work longer until it crashes with the error from above. And a change from "reconstruct (rho / U / T)" to upwind allows the simulation to converge without an error. However, since this is hypersonic flow, an upwind scheme is not accurate enough. Therefore I would like to use a TVD scheme (e.g. vanLeer, limitedLinear, MUSCL, limitedCubic) if possible, since the developers of rhoCentralFoam also recommend using vanLeer or vanLeerV. Maybe you have other ideas. |
|
Tags |
density based solver, hypersonic flow, openfoam 1712, rhocentralfoam, vanleer |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Energy equation in rhoCentralFoam (revisited) | usv001 | OpenFOAM Programming & Development | 4 | September 6, 2024 08:51 |
Energy equation - where is the turbulent kinetic energy? | usv001 | OpenFOAM Programming & Development | 1 | January 25, 2022 16:04 |
Energy balance in conjugative/ porous simulation; Domain Energy is greater than Input | Vishnu_bharathi | CFX | 2 | June 27, 2018 11:08 |
Overall energy conservation in rhoCentralFoam | dvoosten | OpenFOAM Running, Solving & CFD | 1 | November 22, 2017 04:24 |
Why FVM for high-Re flows? | Zhong Lei | Main CFD Forum | 23 | May 14, 1999 14:22 |