Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 395
    • Issues 395
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Issues
  • #2483

Closed
Open
Created May 24, 2022 by Ivan Spisso@ivanspisso

Problem in internal energy calculation, rhoCentralFoam version > 2006

Summary

As told to @mark, we encountered in a problem related to calculation of internal energy e (and residual) for rhoCentralFoam in version > 2006

Steps to reproduce

Run one of the tutorials of rhoCentralFoam, for instance, forwardStep and display the residuals (which are zero) and the internal energy (that starts with negative values).

Example case

Load OpenFOAM V2112;

[spissoi@dvlogin02 forwardStep]$ module load openfoam/v2112/GccOpt
[spissoi@dvlogin02 forwardStep]$ module li
Currently Loaded Modulefiles:
 1) lapack/gcc/64/3.9.0   2) blas/gcc/64/3.8.0   3) fftw3/openmpi/gcc/64/3.3.8   4) openmpi/mlnx/gcc/64/4.0.4rc3   5) gcc/10.2.0   6) boost/1.66.0/gnu/10.2   7) openfoam/v2112/GccOpt
cp -r solvers/compressible/rhoCentralFoam/rhoCentralFoam/ $FOAM_USER_APPBIN

Now modify the rhoCentralFoam.C file in myrhoCentralFoam.C to add a line to monitor initial value of e at line 83

vi myrhoCentralFoam.C

 82
 83     Info<< "e\n" << e << endl;
 84
 85     Info<< "\nStarting time loop\n" << endl;

Adjust the relevant path in myrhoCentralFoam/ dir, renaming rhoCentralFoam.C in myrhoCentralFoam.C, and recompile:

./Allclean
./Allwmake 

Now copy one of the tutorials, in that case forwardStep

cp $FOAM_TUTORIALS/compressible/rhoCentralFoam/forwardStep/ $FOAM_RUN

create the mesh with

blockMesh

And set only one-time step in system/controlDict

application     rhoCentralFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         0.002;

deltaT          0.002;

What is the current bug behaviour?

By running the instrumented solver

myrhoCentralFoam > log &

Once the simulation is done is it possible to find, in the log file, the info about the internal energy which is negative with a value of -743.589

If the standard set-up is run with standard rhoCentralFoam solver:

myrhoCentralFoam > log &

the residual remains set to zero

[spissoi@dvlogin02 forwardStep]$ vim rho.log
    type            hePsiThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

Reading field U

Creating turbulence model

Selecting turbulence model type laminar
Selecting laminar stress model Stokes
fluxScheme: Kurganov

Starting time loop

deltaT = 0.00238095
Mean and max Courant Numbers = 0.66643 0.666666
Time = 0.00238095

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 rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
ExecutionTime = 0.11 s  ClockTime = 0 s

deltaT = 0.000712548
Mean and max Courant Numbers = 0.199446 0.200515
Time = 0.0030935

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 rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
ExecutionTime = 0.12 s  ClockTime = 0 s

deltaT = 0.000712548
Mean and max Courant Numbers = 0.199447 0.201005
Time = 0.00380605

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 rhoE, Initial residual = 0, Final residual = 0, No Iterations 0
ExecutionTime = 0.13 s  ClockTime = 0 s

Even if, by displaying the fields, it seems that the solution advance and produces the expected shock waves, see attached figure.

What is the expected correct behavior?

If openfoam v2006 is run, normal behavior is reproduced. By reproducing the same step as before, once the simulation is done it is possible to find, in the log file, the info about the internal energy which is positive with a value of 1.78572. And a normal residual behaviuor

Relevant logs and/or images

U field version openfoam v2112

field_U_v2112

Pressure field version openfoam v2112filed_p_v2112

Environment information

Providing details of your set-up can help us identify any issues, e.g. OpenFOAM version : v2112|v2006| Operating system : ubuntu laptop|centos HPC etc Hardware info : local installation on laptop and HPC installation Compiler : gcc

Possible fixes

Maybe it is due a non correct initialization of energy in the

constant/thermophysicalProperties

or in the creation of the initial field in

createFields.H

Thanks in advance

Ivan

Edited May 24, 2022 by Ivan Spisso
Assignee
Assign to
Time tracking