CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   [rhoCentralFoam] simulating compressible inviscid flow (https://www.cfd-online.com/Forums/openfoam-solving/141346-rhocentralfoam-simulating-compressible-inviscid-flow.html)

Yuval September 5, 2014 10:24

[rhoCentralFoam] simulating compressible inviscid flow
 
Hi,

I'm trying to simulate a compressible inviscid flow through a de-laval nozzle into vacuum.
Later I will want to add viscosity to the simulation but for now I want to get inviscid results.
For that purpose I tried setting the thermophysicalProperties dictionary with a janaf model to have Cp changed with temperature and since janaf model has to to go with sutherland's model for transport, and since I want an invscid flow, I set As=Ts=0 to have zero viscosity. Here is my file:

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.0                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

thermoType
{
    type            hePsiThermo;
    mixture        pureMixture;
    transport      sutherland;    /*const;*/
    thermo          janaf;                /*hConst;*/
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
//H2O
{
    specie
    {
        nMoles          1;
        molWeight      18.0153;
    }
    thermodynamics //from http://www2.galcit.caltech.edu/EDL/public/thermo/nasadat
    {
        Tlow            200;
        Thigh          6000;
        Tcommon        1000;
        highCpCoeffs    (2.67703787 2.97318329E-03 -7.73769690E-07 9.44336689E-11 -4.26900959E-15 -2.98858938E+04 6.88255571);
        lowCpCoeffs    (4.19864056 -2.03643410E-03 6.52040211E-06 -5.48797062E-09 1.77197817E-12 -3.02937267E+04 -8.49032208E-01);
                //Cp                                2609; // for T=1500K                from http://www.engineeringtoolbox.com/water-vapor-d_979.html
                //Hf                                0; //3.34e5;
    }
    transport //from http://labspace.open.ac.uk/file.php/6999/t236_1_b2_unit03.pdf pg. 14 (constants applicable for temprature range 0-523 K
    {
        As              0;        //1.383e-06;
        Ts              0;        //405.5;
        //mu                0;
              //Pr            1;
    }
}


// ************************************************************************* //

I saw that in the rhoCentralFoam tutorial for inviscid flows (e.g forwardStep) the flow was simulated as inviscid by setting mu=0 in the transport part of the dictionary, although there they used Const model for the transport. So I figured it should work similarly for the Sutherland model by setting the As, Ts coefficients to 0.

But the simulation crashes after sometime with the following error:

Code:

Mean and max Courant Numbers = 714.712961755555 7526243.04395094
deltaT = 1.29974885066034e-150
--> FOAM Warning :
From function Time::operator++()
in file db/Time/Time.C at line 1055
Increased the timePrecision from 1883 to 1884 to distinguish between timeNames at time 0.0409300097404806
Time = 0.040930009740480610691548690738272853195667266845703125

[1] #0  Foam::error::printStack(Foam::Ostream&)[0] #0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #1  Foam::sigFpe::sigHandler(int) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #2  in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #1  Foam::sigFpe::sigHandler(int) in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #3  Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #2  in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #4  in "/lib/x86_64-linux-gnu/libc.so.6"
[1] #3  Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&)void Foam::multiply<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #4  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[0] #5
void Foam::multiply<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&)[0]  at rhoCentralFoam.C:0
[0] #6  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[1] #5

[0]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[0] #7  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #8  [1]  at rhoCentralFoam.C:0
[1] #6
[0]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[LRT:20892] *** Process received signal ***
[LRT:20892] Signal: Floating point exception (8)
[LRT:20892] Signal code:  (-6)
[LRT:20892] Failing at address: 0x3e80000519c
[LRT:20892] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x36150) [0x7f637fa55150]
[LRT:20892] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f637fa550d5]
[LRT:20892] [ 2] /lib/x86_64-linux-gnu/libc.so.6(+0x36150) [0x7f637fa55150]
[LRT:20892] [ 3] /opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam8multiplyERNS_5FieldIdEERKNS_5UListIdEES6_+0xe6) [0x7f6380ce92a6]
[LRT:20892] [ 4] rhoCentralFoam(_ZN4Foam8multiplyINS_13fvsPatchFieldENS_11surfaceMeshEEEvRNS_14GeometricFieldIdT_T0_EERKS6_S9_+0x3e) [0x44b4ae]
[LRT:20892] [ 5] rhoCentralFoam() [0x432b8f]
[LRT:20892] [ 6] rhoCentralFoam() [0x42406c]
[LRT:20892] [ 7] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f637fa4076d]
[LRT:20892] [ 8] rhoCentralFoam() [0x42ba3d]
[LRT:20892] *** End of error message ***

[1]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[1] #7  __libc_start_main--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 20892 on node LRT exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------
Killing PID 20885
Getting LinuxMem: [Errno 2] No such file or directory: '/proc/20885/status'

When I set the values of the As, Ts coefficients to other values (commented out in my code snippet) the simulation runs, although I get obviously wrong results...

I'm a bit confused. My turbulenceProperties is obviously also set to laminar.

Could someone please help me?

Thanks a lot in advance!

Yuval.

P.S. If more information is needed pls let me know...:)

lx882211 January 27, 2016 15:46

Quote:

Originally Posted by Yuval (Post 509221)
Hi,

I'm trying to simulate a compressible inviscid flow through a de-laval nozzle into vacuum.
Later I will want to add viscosity to the simulation but for now I want to get inviscid results.
For that purpose I tried setting the thermophysicalProperties dictionary with a janaf model to have Cp changed with temperature and since janaf model has to to go with sutherland's model for transport, and since I want an invscid flow, I set As=Ts=0 to have zero viscosity. Here is my file:

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  2.3.0                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

thermoType
{
    type            hePsiThermo;
    mixture        pureMixture;
    transport      sutherland;    /*const;*/
    thermo          janaf;                /*hConst;*/
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
//H2O
{
    specie
    {
        nMoles          1;
        molWeight      18.0153;
    }
    thermodynamics //from http://www2.galcit.caltech.edu/EDL/public/thermo/nasadat
    {
        Tlow            200;
        Thigh          6000;
        Tcommon        1000;
        highCpCoeffs    (2.67703787 2.97318329E-03 -7.73769690E-07 9.44336689E-11 -4.26900959E-15 -2.98858938E+04 6.88255571);
        lowCpCoeffs    (4.19864056 -2.03643410E-03 6.52040211E-06 -5.48797062E-09 1.77197817E-12 -3.02937267E+04 -8.49032208E-01);
                //Cp                                2609; // for T=1500K                from http://www.engineeringtoolbox.com/water-vapor-d_979.html
                //Hf                                0; //3.34e5;
    }
    transport //from http://labspace.open.ac.uk/file.php/6999/t236_1_b2_unit03.pdf pg. 14 (constants applicable for temprature range 0-523 K
    {
        As              0;        //1.383e-06;
        Ts              0;        //405.5;
        //mu                0;
              //Pr            1;
    }
}


// ************************************************************************* //

I saw that in the rhoCentralFoam tutorial for inviscid flows (e.g forwardStep) the flow was simulated as inviscid by setting mu=0 in the transport part of the dictionary, although there they used Const model for the transport. So I figured it should work similarly for the Sutherland model by setting the As, Ts coefficients to 0.

But the simulation crashes after sometime with the following error:

Code:

Mean and max Courant Numbers = 714.712961755555 7526243.04395094
deltaT = 1.29974885066034e-150
--> FOAM Warning :
From function Time::operator++()
in file db/Time/Time.C at line 1055
Increased the timePrecision from 1883 to 1884 to distinguish between timeNames at time 0.0409300097404806
Time = 0.040930009740480610691548690738272853195667266845703125

[1] #0  Foam::error::printStack(Foam::Ostream&)[0] #0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #1  Foam::sigFpe::sigHandler(int) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #2  in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #1  Foam::sigFpe::sigHandler(int) in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #3  Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #2  in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[0] #4  in "/lib/x86_64-linux-gnu/libc.so.6"
[1] #3  Foam::multiply(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&)void Foam::multiply<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[1] #4  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[0] #5
void Foam::multiply<Foam::fvsPatchField, Foam::surfaceMesh>(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&)[0]  at rhoCentralFoam.C:0
[0] #6  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[1] #5

[0]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[0] #7  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[0] #8  [1]  at rhoCentralFoam.C:0
[1] #6
[0]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[LRT:20892] *** Process received signal ***
[LRT:20892] Signal: Floating point exception (8)
[LRT:20892] Signal code:  (-6)
[LRT:20892] Failing at address: 0x3e80000519c
[LRT:20892] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x36150) [0x7f637fa55150]
[LRT:20892] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f637fa550d5]
[LRT:20892] [ 2] /lib/x86_64-linux-gnu/libc.so.6(+0x36150) [0x7f637fa55150]
[LRT:20892] [ 3] /opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(_ZN4Foam8multiplyERNS_5FieldIdEERKNS_5UListIdEES6_+0xe6) [0x7f6380ce92a6]
[LRT:20892] [ 4] rhoCentralFoam(_ZN4Foam8multiplyINS_13fvsPatchFieldENS_11surfaceMeshEEEvRNS_14GeometricFieldIdT_T0_EERKS6_S9_+0x3e) [0x44b4ae]
[LRT:20892] [ 5] rhoCentralFoam() [0x432b8f]
[LRT:20892] [ 6] rhoCentralFoam() [0x42406c]
[LRT:20892] [ 7] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f637fa4076d]
[LRT:20892] [ 8] rhoCentralFoam() [0x42ba3d]
[LRT:20892] *** End of error message ***

[1]  in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/rhoCentralFoam"
[1] #7  __libc_start_main--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 20892 on node LRT exited on signal 8 (Floating point exception).
--------------------------------------------------------------------------
Killing PID 20885
Getting LinuxMem: [Errno 2] No such file or directory: '/proc/20885/status'

When I set the values of the As, Ts coefficients to other values (commented out in my code snippet) the simulation runs, although I get obviously wrong results...

I'm a bit confused. My turbulenceProperties is obviously also set to laminar.

Could someone please help me?

Thanks a lot in advance!

Yuval.

P.S. If more information is needed pls let me know...:)

Have you solved your problem? i also want to get inviscid results using rhocentralFoam.

opedrofunk January 27, 2016 21:33

Hi,
There is a pretty simple answer to this, and as with most issues in OpenFOAM, just having a quick look at the source code will usually resolve things.

So, if you want inviscid, you need to have mu set less than or equal to 0. From createFields.H in the rhoCentralFoam solver directory:

Code:

bool inviscid(true);
if (max(mu.internalField()) > 0.0)
{
    inviscid = false;
}

Hope this helps!
Peter


All times are GMT -4. The time now is 17:56.