CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Incompressible Euler Equations with SIMPLE method (https://www.cfd-online.com/Forums/openfoam-programming-development/177832-incompressible-euler-equations-simple-method.html)

yfjok22 September 22, 2016 04:36

Incompressible Euler Equations with SIMPLE method
 
Hello, Foamers

I'm now working on a test case which will refer to the solving of Euler Equations. During several days' work, I got one question

I'm planning to SIMPLE method to solve a 3D steady incompressible Euler Equation, so I just changed a bit on UEqn of the official simpleFoam, like this

MRF.correctBoundaryVelocity(U);

tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(U)
//+ turbulence->divDevReff(U)
==
fvOptions(U)
);
fvVectorMatrix& UEqn = tUEqn.ref();

UEqn.relax();

fvOptions.constrain(UEqn);

if (simple.momentumPredictor())
{
solve(UEqn == -fvc::grad(p));

fvOptions.correct(U);
}

Acutally, just wiped out the turbulence term on the momentum equation

However, when I try to test this new solver, simpleEulerFoam, on the offical case, pitzDaily, it comes a error

Create time

Create mesh for time = 0


SIMPLE: convergence criteria
field p tolerance 0.01
field U tolerance 0.001
field "(k|epsilon|omega|f|v2)" tolerance 0.001

Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting turbulence model type RAS
Selecting RAS turbulence model kEpsilon
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 -0.33;
sigmak 1;
sigmaEps 1.3;
}

No MRF models present

No finite volume options present


Starting time loop

streamLine streamlines:
automatic track length specified through number of sub cycles : 5

Time = 0.001

#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigFpe::sigHandler(int) at ??:?
#2 ? in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::symGaussSeidelSmoother::smooth(Foam::word const&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::Field<double> const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, unsigned char, int) at ??:?
#4 Foam::symGaussSeidelSmoother::smooth(Foam::Field<d ouble>&, Foam::Field<double> const&, unsigned char, int) const at ??:?
#5 Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
#6 ? at ??:?
#7 ? at ??:?
#8 ? at ??:?
#9 ? at ??:?
#10 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#11 ? at ??:?
Floating point exception (core dumped)

Even decrease the time interval, it doesn't change. So, guys, do you get any idea on this reslut
It should be the reason that I modify simpleFoam to a Euler Equation solver in a wrong way, or it's because Euler Equation can't be solved by SIMPLE method, or some artificial viscosity would be needed.
Please give some idea and suggestion
thx^^

A_Pete September 22, 2016 08:11

I am not sure, about the origin of your error, but I know that the form of the coefficient matrix changes if you modify an equation. It is possible that your symGaussSeidel solver is not suited for your knew equation. Maybe try another solver, but it is just a guess, since I found this behaviour when changing transport equations.


All times are GMT -4. The time now is 09:33.