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
|