|
[Sponsors] |
April 7, 2009, 10:25 |
stedystate twoPhaseEulerFoam ?
|
#1 |
New Member
Alessio Alexiadis
Join Date: Mar 2009
Location: Birmingham, UK
Posts: 16
Rep Power: 17 |
Hi everybody,
I'm new to OpenFoam and I need some information concerning twoPhaseEulerFoam solver. Can be used for steady state solutions? I'm simulating a electrolytic cell. Basically, it is a channel where hydrogen bubbles are generated at one of the walls. I run the transient simulation without problems, but when I changed in the file fvSchemes: ddtSchemes { default Euler; } to ddtSchemes { default steadyState; } the code gives the following error #0 Foam::error:rintStack(Foam::Ostream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::sigFpe::sigFpeHandler(int) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #2 Uninterpreted: [0xb7f3b400] #3 Foam:ILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #4 Foam:ILUPreconditioner:ILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::Istream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #5 Foam::lduMatrix:reconditioner::addasymMatrixCons tructorToTable<Foam:ILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::Istream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::Istream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #8 Foam::fvMatrix<double>::solve(Foam::Istream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libfiniteVolume.so" #9 Foam::fvMatrix<double>::solve() in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #10 main in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #11 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6" #12 Foam::regIOobject::readIfModified() in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" Floating point exception I do not understand if it depends on the fact that the solver cannot be used for steady state simulations or if I have to modify something else somewhere (I did not change anything in the controlDict for instance). Thanks for the help Alessio |
|
April 8, 2009, 06:34 |
|
#2 |
Senior Member
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23 |
You probably have to relax the equations. Add a subdictionary to fvSolution. As an example:
relaxationFactors { p 0.3 ...etc } Be sure that your solution will reach a steady state though.
__________________
Laurence R. McGlashan :: Website Last edited by l_r_mcglashan; April 8, 2009 at 07:45. |
|
April 8, 2009, 14:42 |
|
#3 |
New Member
Alessio Alexiadis
Join Date: Mar 2009
Location: Birmingham, UK
Posts: 16
Rep Power: 17 |
Dear Laurence,
thanks for your reply. I modified the fvSolution file. Now it looks like this // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p PCG { preconditioner none; tolerance 1e-05; relTol 0; }; Ua PBiCG { preconditioner none; tolerance 1e-05; relTol 0; }; Ub PBiCG { preconditioner none; tolerance 1e-05; relTol 0; }; alpha PBiCG { preconditioner none; tolerance 1e-10; relTol 0; }; beta PBiCG { preconditioner none; tolerance 1e-10; relTol 0; }; Theta PBiCG { preconditioner none; tolerance 1e-05; relTol 0; }; k PBiCG { preconditioner none; tolerance 1e-05; relTol 0; }; epsilon PBiCG { preconditioner none; tolerance 1e-05; relTol 0; }; } SIMPLE { nNonOrthogonalCorrectors 0; } PISO { nCorrectors 2; nNonOrthogonalCorrectors 0; nAlphaCorr 2; correctAlpha no; pRefCell 0; pRefValue 0; } relaxationFactors { p 0.3; Ua 0.3; Ub 0.3; alpha 0.3; } // ************************************************** *********************** // Turbulence and granular models are off and so beta, k, epsilon and theta are not important. I have two questions I hope you can answer. 1) Shouldn't be SIMPLE instead of PISO the algorithm for stady-state? This is what I thought, but if I remove PISO OpenFoam complains that "keyword PISO is undefined in dictionary..." 2) I still missing something because if I run the case with the new fvSolution I got the following error "previous iteration field IOobject: volScalarField p "/home/sersunzo/OpenFOAM/sersunzo-1.5/run/MELPRIN/channel_wedin_type/h5/i=200/steady_state/0" not stored. Use field.storePrevIter() at start of iteration.#0 Foam::error:rintStack(Foam::Ostream&) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::error::abort() in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so" #2 Foam::Ostream& Foam:perator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #3 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>:revIter() const in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #4 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::relax(double) in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #5 main in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" #6 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6" #7 Foam::regIOobject::readIfModified() in "/home/sersunzo/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/twoPhaseEulerFoam" From function GeometricField<Type, PatchField, GeoMesh>:revIter() const in file /home/dm2/henry/OpenFOAM/OpenFOAM-1.5/src/OpenFOAM/lnInclude/GeometricField.C at line 814. FOAM aborting" Do you have any idea what is wrong? Thanks in advance. Alessio |
|
April 8, 2009, 19:09 |
|
#4 |
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36 |
The two-fluid solver is unsteady, so you should actually run an unsteady simulation, until the steady state, if it exists, is reached.
If you are sure a steady state exists, you can under-relax and use bigger time steps. The simulation won't be time accurate, but the final condition will be OK. If you want time accuracy, you should not under-relax because the code does not perform sub-iterations to ensure the solution is completely evolved during each time step when under-relaxation is applied. OT question: Alessio, did you do your Ph.D. in Torino? :-) Best regards,
__________________
Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541) OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. |
|
April 8, 2009, 21:27 |
|
#5 |
New Member
Alessio Alexiadis
Join Date: Mar 2009
Location: Birmingham, UK
Posts: 16
Rep Power: 17 |
Thanks Alberto,
last question. When I tried to underelax (transient case) I simply added something like this relaxationFactors { p 0.3; Ua 0.3; Ub 0.3; alpha 0.3; } to the fvSolutions file. But I think I am missing something else I got an error of this type. "IOobject: volScalarField p "/home/sersunzo/OpenFOAM/sersunzo-1.5/run/MELPRIN/channel_wedin_type/h5/i=200/steady_state/0" not stored. Use field.storePrevIter() at start of iteration" It looks like the code does not save the previous time step for the relaxation... Do you know how this can be fixed? PS. Si' Alberto sono di Torino, ci conosciamo? |
|
April 8, 2009, 21:52 |
|
#6 |
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36 |
Hi,
remove the pressure under-relaxation coefficient. In twoPhaseEulerFoam you can under-relax the following variables: Ua, Ub, alpha, beta, Theta, k, epsilon. Ciao, ci conosciamo di nome e di vista. Ero un dottorando del prof. Baldi. Trovi la mia mail nel profilo del forum. Best regards,
__________________
Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541) OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using. |
|
January 8, 2010, 13:01 |
Steady-State solver
|
#7 |
Member
Sylvain Martel
Join Date: Apr 2009
Location: University of Sherbrooke/Quebec/Canada
Posts: 51
Rep Power: 17 |
Hi all,
I am working on two-phase flow in convergent-divergent nozzle with bubble flow at the entrance. The pressure difference encountered a phase change and heat transfer. To solve this problem, I have to include phase chance and heat transfer in twoPhaseEulerFoam and to add compressibility. In addition, I would like a steady-state solver so I have to modify this aspect too. Is it possible? Thank you and have a nice day, Sylvain |
|
May 5, 2018, 15:29 |
Did you find a solution
|
#8 |
Member
Bill Lasher
Join Date: Jun 2009
Posts: 36
Rep Power: 17 |
Hi Alessio:
I wondered if you found either a way to run twoPhaseEulerFoam as a steady-state solver or with a much larger Courant no. I've tried to adjust the PIMPLE parameters but with no success. Thanks, Bill |
|
May 8, 2018, 04:46 |
|
#9 |
Senior Member
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 14 |
I'm not to sure about running twophaseeulerfoam as a steady state solver but i tested it with higher Co numbers than 1 and it can be stable.
|
|
May 8, 2018, 11:19 |
|
#10 |
Member
Bill Lasher
Join Date: Jun 2009
Posts: 36
Rep Power: 17 |
Hi:
Did you change the PIMPLE settings or just run it at a higher C0? Do you remember how high you were able to go? Thanks, Bill |
|
May 9, 2018, 03:30 |
|
#11 | |
Senior Member
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 14 |
Quote:
Maybe you can post the fvsolution file. For which Co is your case crashing? |
||
May 9, 2018, 18:11 |
|
#12 |
Member
Bill Lasher
Join Date: Jun 2009
Posts: 36
Rep Power: 17 |
I had played around with the PIMPLE settings and could never get it to run continuously with a Courant number > 1. Once it got above 1 it would slowly increase and eventually blow up.
Here is the fvSolution file. It is directly from the bubbleColumn tutorial. Thanks for taking a look! FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { alpha.air { nAlphaCorr 1; nAlphaSubCycles 2; } p_rgh { solver GAMG; smoother DIC; tolerance 1e-8; relTol 0; } p_rghFinal { $p_rgh; relTol 0; } "U.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } "e.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } "(k|epsilon|Theta).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-7; relTol 0; minIter 1; } } PIMPLE { nOuterCorrectors 3; nCorrectors 1; nNonOrthogonalCorrectors 1; } relaxationFactors { equations { ".*" 1; } } |
|
June 17, 2021, 12:14 |
|
#13 |
New Member
David
Join Date: Jan 2021
Posts: 13
Rep Power: 5 |
Did anyone make any progress on this?
|
|
Tags |
stedystate, twophaseeulerfoam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Coalescence and breakup in twoPhaseEulerFoam | m9819348 | OpenFOAM Running, Solving & CFD | 11 | March 4, 2022 13:15 |
WordstripInvalid in twoPhaseEulerFoam | alberto | OpenFOAM Running, Solving & CFD | 6 | December 20, 2011 12:02 |
twoPhaseEulerFoam Problems | Dale | OpenFOAM Running, Solving & CFD | 19 | April 21, 2009 10:02 |
TwoPhaseEulerFoam and InletOutlet boundary condition | hemph | OpenFOAM Running, Solving & CFD | 10 | January 29, 2007 10:47 |
TwoPhaseEulerFOAM application | hemph | OpenFOAM Bugs | 0 | November 16, 2006 08:27 |