CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

rhoCentralFoam no converge at energy "e"

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By dennis722

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 22, 2020, 02:54
Post rhoCentralFoam no converge at energy "e"
  #1
Member
 
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 9
dennis722 is on a distinguished road
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 ??:?
controlDict:
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;
    }
}

// ************************************************************************* //
fvSolution:
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;
    }
 }
dennis722 is offline   Reply With Quote

Old   February 22, 2020, 02:56
Default
  #2
Member
 
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 9
dennis722 is on a distinguished road
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;
}
dennis722 is offline   Reply With Quote

Old   February 22, 2020, 03:02
Default
  #3
Member
 
Dennis
Join Date: Jul 2016
Location: Germany
Posts: 39
Rep Power: 9
dennis722 is on a distinguished road
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.
hogsonik likes this.
dennis722 is offline   Reply With Quote

Reply

Tags
density based solver, hypersonic flow, openfoam 1712, rhocentralfoam, vanleer


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Energy equation - where is the turbulent kinetic energy? usv001 OpenFOAM Programming & Development 1 January 25, 2022 15:04
Energy equation in rhoCentralFoam (revisited) usv001 OpenFOAM Programming & Development 3 July 5, 2018 05:52
Energy balance in conjugative/ porous simulation; Domain Energy is greater than Input Vishnu_bharathi CFX 2 June 27, 2018 10:08
Overall energy conservation in rhoCentralFoam dvoosten OpenFOAM Running, Solving & CFD 1 November 22, 2017 03:24
Why FVM for high-Re flows? Zhong Lei Main CFD Forum 23 May 14, 1999 13:22


All times are GMT -4. The time now is 13:37.