CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Programming & Development

Converting implicit solver to explicit one

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 13, 2009, 09:28
Default Converting implicit solver to explicit one
  #1
Member
 
Florian Ettner
Join Date: Mar 2009
Location: Munich, Germany
Posts: 41
Rep Power: 17
dohnie is on a distinguished road
Hello,
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)
becomes
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:
Quote:
lowerPtr_ or upperPtr_ unallocated#0 Foam::error::printStack(Foam::Ostream&) in "/nfs/opt/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::error::abort() in "/nfs/opt/OpenFOAM/OpenFOAM-1.5/lib/linux64GccDPOpt/libOpenFOAM.so"
#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/libOpenFOAM.so"
#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/libc.so.6"
#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, 18:46
Default
  #2
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

Reply


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 14:14
Working directory via command line Luiz CFX 4 March 6, 2011 21:02
Euler (explicit or implicit) anybody Main CFD Forum 2 May 8, 2006 03:12
implicit vs explicit pXYZ Main CFD Forum 2 April 21, 2006 10:48
Convergence with coupled implicit solver Henrik Ström FLUENT 1 October 29, 2005 04:57


All times are GMT -4. The time now is 23:55.