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^^ |
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. |