|
[Sponsors] |
interFoam: Courant number explodes and no convergence |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
December 13, 2016, 20:22 |
interFoam: Courant number explodes and no convergence
|
#1 |
New Member
-
Join Date: Oct 2016
Posts: 15
Rep Power: 9 |
hello everybody
I have a problem with the solver interFoam. No convergence can be found and the following error is shown: [1] #0 Foam::error:rintStack(Foam::Ostream&) at ??:? [1] #1 Foam::sigFpe::sigHandler(int) at ??:? [1] #2 ? in "/lib/x86_64-linux-gnu/libpthread.so.0" [1] #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 ??:? [1] #4 Foam::symGaussSeidelSmoother::smooth(Foam::Field<d ouble>&, Foam::Field<double> const&, unsigned char, int) const at ??:? [1] #5 Foam::smoothSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [1] #6 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) at ??:? [1] #7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) at ??:? [1] #8 Foam::fvMatrix<double>::solve() at ??:? [1] #9 Foam::SolverPerformance<double> Foam::solve<double>(Foam::tmp<Foam::fvMatrix<doubl e> > const&) at ??:? [1] #10 Foam::RASModels::kEpsilon<Foam::IncompressibleTurb ulenceModel<Foam::transportModel> >::correct() at ??:? I can be seen, that the Courant number gets huge, which I know does not work. Therefore, I adjusted the time step (10^-6), but the same error occured. Has anybody a suggestion, what I can adjust? I appreciate any help!!!!! Thank you in advance |
|
December 15, 2016, 09:22 |
|
#2 |
New Member
Dennis
Join Date: Oct 2016
Posts: 11
Rep Power: 9 |
Hi,
Maybe you could also post your fvScheme and fvSolver files. This would make it easier to locate a potential problem... If your Courant number is too high you might want to decrease change your timestep or add an adjustable timestep in the controlDict. But since your timestep is already small, the problem might be somewhere else but you'll have to give more information. Also, do you have some mesh details? |
|
December 16, 2016, 00:01 |
|
#3 |
New Member
-
Join Date: Oct 2016
Posts: 15
Rep Power: 9 |
Thank you for your answer
This is the fvSolution file: solvers { "alpha.water.*" { nAlphaCorr 2; nAlphaSubCycles 4; cAlpha 1; MULESCorr yes; nLimiterIter 3; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-8; relTol 0; } pcorr { solver PCG; preconditioner DIC; tolerance 1e-5; relTol 0; } p_rgh { solver PCG; preconditioner DIC; tolerance 1e-05; relTol 0.05; } p_rghFinal { $p_rgh; relTol 0; } "(U|k|epsilon).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-06; relTol 0; minIter 1; } } PIMPLE { momentumPredictor no; nOuterCorrectors 1; nCorrectors 3; nNonOrthogonalCorrectors 0; } relaxationFactors { equations { ".*" 1; } } and the fvSchemes file: ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { div(rhoPhi,U) Gauss linearUpwind grad(U); div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss linear; div(phi,k) Gauss linear; div(phi,epsilon) Gauss linear; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } The time step is already adjustable and is set to 10-6. Should I decrease it more? |
|
December 16, 2016, 02:33 |
|
#4 |
New Member
Dennis
Join Date: Oct 2016
Posts: 11
Rep Power: 9 |
Hi,
While I haven't done a multi-phase simulation, you might try the following: - Lower your relaxation factor. You might even lower them to 0.1 to start with and could increase until still converged behavior. You may want to split them, since p and U are showing more of a converging behavior? - I don't know the orthogonality of the mesh, but you can increase the nNonOrthogonalCorrectors (you can start with 1). - If there still are problems, consider setting the gradient scheme to cellLimited (just put it in front of 'Gauss'). - If this all doesn't help, try using some upwind schemes as divergence schemes. Upwind is less accurate, but has a more converging behavior. You can sort of check what lowering your time step does. Set in your controlDict adjustableTimestep as yes and set a maxCo of 2 or 5 for example. You might experience the time step really decreasing in step, but that's most likely not what you'd want. Hope this helps! Dennis |
|
December 19, 2016, 19:14 |
|
#5 |
New Member
-
Join Date: Oct 2016
Posts: 15
Rep Power: 9 |
Hello.
Thank you very much for your help!!! and sorry for my late answer! Unfortunately it did not work out Still this error is shown: [0] #0 Foam::error:rintStack(Foam::Ostream&) at ??:? [0] #1 Foam::sigFpe::sigHandler(int) at ??:? [0] #2 ? in "/lib/x86_64-linux-gnu/libpthread.so.0" [0] #3 Foam:ICPreconditioner::calcReciprocalD(Foam::Fie ld<double>&, Foam::lduMatrix const&) at ??:? [0] #4 Foam:ICPreconditioner:ICPreconditioner(Foam::l duMatrix::solver const&, Foam::dictionary const&) at ??:? [0] #5 Foam::lduMatrix:reconditioner::addsymMatrixConst ructorToTable<Foam:ICPreconditioner>::New(Foam:: lduMatrix::solver const&, Foam::dictionary const&) at ??:? [0] #6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) at ??:? [0] #7 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? [0] #8 Foam::fvMatrix<double>::solveSegregated(Foam::dict ionary const&) at ??:? [0] #9 Foam::fvMatrix<double>::solve(Foam::dictionary const&) at ??:? [0] #10 ? at ??:? [0] #11 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" [0] #12 ? at ??:? I have some problems with reading this error.. can anyone detect where the problem lays? Thank you a lot! |
|
|
|