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/)
-   -   Laval nozzle simulation fails (https://www.cfd-online.com/Forums/openfoam-solving/135887-laval-nozzle-simulation-fails.html)

der-hüther May 19, 2014 12:39

Laval nozzle simulation fails
 
Hello everybody,

although there exist already a lot of threads concerning this subject, I decided to start a new one.

Since some weeks I try hard to simulate a Laval Micro-Nozzle (CD-Nozzle) with a throat to outlet ratio of 1:3 (outlet diameter: 7 mm) using the following boundary conditions:
The initial pressure at the inlet should be 50 bar, the initial pressure at the outlet should be below 1 mbar. The gas used is Argon, the initial temperature at the outlet is 300 K.

The program crashes in most cases after a few time-steps or does not even start computing.
The higher I choose the pressure gradient between inlet and outlet, the earlier the program crashes.

I draw my geometry with Autodesk Inventor and imported it to Salome.
The Salome Mesh is generated with the NETGEN 1D-2D-3D algorithm and is as fine as possible.

After saving it as .unv and converting it to a OpenFOAM file I started simulations with various different boundary conditions.
The mesh check gives "Mesk OK". The solver I used is rhoCentralFoam, but I also tried sonicFoam.
For both solvers the Courant Numbers were far below 0.1.
The most reasonable BCs are:

for 0/p:
Code:

internalField  uniform 0;

boundaryField
{
   
    inlet
    {
    type            totalPressure;
    p0                uniform 5e6;
    gamma            1.66;
    }
    wall
    {
    type              slip;
     
    }
    outlet
    {
    type        waveTransmissive;
    gamma        1.66;
    field        p;
    phi            phi;
    rho            rho;
    fieldInf    0;
    lInf        0.1;
    }
}

for 0/T:
Code:

internalField  uniform 300;

boundaryField
{   
    inlet
    {
    type        fixedValue;
    value        uniform 300;
    }
    wall
    {
    type          slip;
    }
    outlet
    {
    type            zeroGradient;
    }   
}

for 0/U:
Code:

internalField  uniform (0 0 0);

boundaryField

    inlet
    {
    type            pressureInletOutletVelocity;
    inletPressure    uniform 5e6;
    value        uniform (0 0 0);
    }
    wall
    {
    type                slip;
    }
    outlet
    {
    type        zeroGradient;
    }
 
}

for constant/thermophysicalProperties:
Code:

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

mixture
{
    specie
    {
        nMoles          1;
        molWeight      4.0;
    }
    thermodynamics
    {
        Cp              5.193e3;
        Hf              5.23e3;
    }
    transport
    {
        mu              1.86e-5;
        Pr              0.66;
    }
}

for constant/turbulenceProperties:
Code:

simulationType  laminar;
for system/fvSchemes:
Code:

fluxScheme      Kurganov;

ddtSchemes
{
    default        Euler;
}

gradSchemes
{
    default        Gauss linear;
}

divSchemes
{
    default        none;
    div(tauMC)      Gauss linear;
}

laplacianSchemes
{
    default        Gauss linear corrected;
}

interpolationSchemes
{
    default        linear;
    reconstruct(rho) vanLeer;
    reconstruct(U)  vanLeerV;
    reconstruct(T)  vanLeer;
}

snGradSchemes
{
    default        corrected;
}

for system/fvSolution:
Code:

solvers
{
    "(rho|rhoU|rhoE)"
    {
    solver          diagonal;
    }

    U
    {
    solver          smoothSolver;
    smoother        GaussSeidel;
    nSweeps        2;
    tolerance      1e-09;
    relTol          0.01;
    }

    e
    {
    $U;
    relTol          0.1;
    }
}

for system/controlDict:

Code:

application    rhoCentralFoam;

startFrom          startTime;

startTime          0;

stopAt              endTime;

endTime            1;

deltaT              0.0000001;

writeControl        adjustableRunTime;

writeInterval      0.000001;

purgeWrite          0;

writeFormat        ascii;

writePrecision      6;

writeCompression    off;

timeFormat          general;

timePrecision      6;

graphFormat        raw;

runTimeModifiable    true;

adjustTimeStep      yes;

maxCo              0.2;

maxDeltaT          1;

I always get the error

Code:

#0  Foam::error::printStack(Foam::Ostream&) at ??:?
#1  Foam::sigFpe::sigHandler(int) at ??:?
#2  in "/lib64/libc.so.6"
#3  Foam::heThermo<Foam::psiThermo, Foam::pureMixture<Foam::constTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > >::heThermo(Foam::fvMesh const&, Foam::word const&) at ??:?
#4  Foam::psiThermo::addfvMeshConstructorToTable<Foam::hePsiThermo<Foam::psiThermo, Foam::pureMixture<Foam::constTransport<Foam::species::thermo<Foam::hConstThermo<Foam::perfectGas<Foam::specie> >, Foam::sensibleInternalEnergy> > > > >::New(Foam::fvMesh const&, Foam::word const&) at ??:?
#5  Foam::autoPtr<Foam::psiThermo> Foam::basicThermo::New<Foam::psiThermo>(Foam::fvMesh const&, Foam::word const&) at ??:?
#6  Foam::psiThermo::New(Foam::fvMesh const&, Foam::word const&) at ??:?
#7 
 at ??:?
#8  __libc_start_main in "/lib64/libc.so.6"
#9 
 at ??:?
Gleitkomma-Ausnahme (Speicherabzug geschrieben)

Has anybody an idea what I'm doing wrong? It would be great if someone could help me!!!

Thanks a lot

der-hüther

geronimo_750 September 3, 2014 05:57

Hi Der-Huther,

I am trying to solve a quite similar problem and I am getting the same error you got.
Did you find a way to fix it?

Regards,

Marco


All times are GMT -4. The time now is 19:05.