CFD Online Logo CFD Online URL
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

Converting implicit solver to explicit one

Register Blogs Members List Search Today's Posts Mark Forums Read

LinkBack Thread Tools Search this Thread Display Modes
Old   August 13, 2009, 08:28
Default Converting implicit solver to explicit one
Florian Ettner
Join Date: Mar 2009
Location: Munich, Germany
Posts: 41
Rep Power: 17
dohnie is on a distinguished road
I'd like to simulate detonation instabilities. The reactingFoam solver is a good basis for this, however I removed the diffusive terms and now need an explicit formulation of the solver. So, my first approach was to use the fvc:: formulation instead of fvm:: wherever possible:

fvm::ddt(rho) + fvc::div(phi)
fvm::ddt(rho, U) + fvm::div(phi, U) == rho*g - fvc::grad(p)
fvm::ddt(rho, h) + mvConvection->fvmDiv(phi, h) == DpDt
fvm::ddt(rho, Yi) + mvConvection->fvmDiv(phi, Yi) == chemistry.RR(i)
fvm::ddt(rho) + fvc::div(phi)
fvm::ddt(rho, U) + fvc::div(phi, U) == rho*g - fvc::grad(p)
fvm::ddt(rho, h) + mvConvection->fvcDiv(phi, h) == DpDt
fvm::ddt(rho, Yi) + mvConvection->fvcDiv(phi, Yi) == chemistry.RR(i)

Is this really all? Do I now have an explicit solver?
So far, everything works. Now I have to handle the pressure-velocity coupling in the PISO loop. Initially it looks like this:

fvm::ddt(psi, p) + fvm::div(phid, p) - fvm::laplacian(rho*rUA, p)

Here, the solver crashes if I replace the fvm::'s in the respective terms. Can anybody explain the problem, please?

The error message:
lowerPtr_ or upperPtr_ unallocated#0 Foam::error::printStack(Foam::Ostream&) in "/nfs/opt/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/"
#1 Foam::error::abort() in "/nfs/opt/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/"
#2 Foam::Ostream& Foam::operator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) in "/nfs/home/ettner/OpenFOAM/ettner-1.5/applications/bin/linux64GccDPOpt/expReacEulerFoam"
#3 Foam::lduMatrix::lower() const in "/nfs/opt/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/"
#4 Foam::tmp<Foam::Field<double> > Foam::lduMatrix::faceH<double>(Foam::Field<double> const&) const in "/nfs/home/ettner/OpenFOAM/ettner-1.5/applications/bin/linux64GccDPOpt/expReacEulerFoam"
#5 Foam::fvMatrix<double>::flux() const in "/nfs/home/ettner/OpenFOAM/ettner-1.5/applications/bin/linux64GccDPOpt/expReacEulerFoam"
#6 main in "/nfs/home/ettner/OpenFOAM/ettner-1.5/applications/bin/linux64GccDPOpt/expReacEulerFoam"
#7 __libc_start_main in "/lib64/"
#8 _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:116

From function lduMatrix::lower() const
in file matrices/lduMatrix/lduMatrix/lduMatrix.C at line 206.

FOAM aborting
dohnie is offline   Reply With Quote

Old   October 1, 2009, 17:46
New Member
Giovanni Ricci
Join Date: May 2009
Posts: 12
Rep Power: 17
gricci is on a distinguished road
Send a message via Skype™ to gricci
Same error here trying to convert pisoFoam to explicit.
Any clue?
gricci is offline   Reply With Quote


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Implicit versus Explicit Deepak Main CFD Forum 17 November 7, 2015 13:14
Working directory via command line Luiz CFX 4 March 6, 2011 20:02
Euler (explicit or implicit) anybody Main CFD Forum 2 May 8, 2006 02:12
implicit vs explicit pXYZ Main CFD Forum 2 April 21, 2006 09:48
Convergence with coupled implicit solver Henrik Ström FLUENT 1 October 29, 2005 03:57

All times are GMT -4. The time now is 02:22.