CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

rhoCentralFoam Runge Kutta

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

Like Tree8Likes
  • 1 Post By Henning86
  • 7 Post By Henning86

Reply
 
LinkBack Thread Tools Display Modes
Old   October 23, 2013, 04:04
Default rhoCentralFoam Runge Kutta
  #1
Member
 
Join Date: Nov 2012
Posts: 50
Rep Power: 3
Henning86 is on a distinguished road
Hi,


i have worked quite a lot with rhoCentralFoam and did some modification i wanted to share.



i have implemented Runge Kutta in rhoCentralFoam. It is stable for the forwardStep case until a CFL No of 1.5 and about 30% faster than the normal solver.

i also implemented local time stepping for the Runge Kutta Method (more Information about LTS can be found in the Forum) . This Solver is a lot faster than the Euler LTS. If tested with a CFL No of 1.2, which would be a speed up of more than 100% to the Euler Method. (But i havent looked at the results in detail but the first impression was good).

the Runge Kutta Method should work with different values (but not tested) (now it is Runge Kutta 4 ). Just change the values in the createFields.H.

If you find some mistakes, let me now!

it is written in vers 2.1.1

Best Regards

Henning
Attached Files
File Type: zip rhoLTSCentralFoamRK4.zip (55.7 KB, 40 views)
File Type: zip rhoCentralFoamRK4.zip (55.7 KB, 52 views)
mm.abdollahzadeh likes this.

Last edited by Henning86; October 23, 2013 at 09:55.
Henning86 is offline   Reply With Quote

Old   October 24, 2013, 03:13
Default rhoCentralFoam Runge Kutta 4
  #2
Member
 
Join Date: Nov 2012
Posts: 50
Rep Power: 3
Henning86 is on a distinguished road
the solver for the version 2.2
Attached Files
File Type: zip rhoCentralFoamRK4v222.zip (55.6 KB, 81 views)
File Type: zip rhoLTSCentralFoamRK4v222.zip (55.7 KB, 59 views)
Henning86 is offline   Reply With Quote

Old   October 29, 2013, 05:33
Default
  #3
Senior Member
 
Join Date: Dec 2010
Posts: 135
Rep Power: 5
eRzBeNgEl is on a distinguished road
I have a problem compiling the solver with v221, my relevant output is in the following: Any suggestions?

Quote:
rhoCentralFoamRK4$ ./Allwmake
+ wmake libso BCs
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file
...
...
...
I/opt/openfoam221/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/fixedRhoFvPatchScalarField.o
/usr/bin/ld: cannot find -lbasicThermophysicalModels
collect2: ld returned 1 exit status
make: *** [/opt/openfoam221/platforms/linux64GccDPOpt/lib/librhoCentralFoam.so] Error 1
+ wmake


Making dependency list for source file rhoCentralFoamRK4.C
could not open file basicPsiThermo.H for source file rhoCentralFoamRK4.C
SOURCE=rhoCentralFoamRK4.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -IBCs/lnInclude -I/opt/openfoam221/src/finiteVolume/lnInclude -I/opt/openfoam221/src/thermophysicalModels/basic/lnInclude -I/opt/openfoam221/src/thermophysicalModels/specie/lnInclude -I/opt/openfoam221/src/turbulenceModels/compressible/turbulenceModel -I/opt/openfoam221/src/dynamicMesh/lnInclude -I/opt/openfoam221/src/meshTools/lnInclude -IlnInclude -I. -I/opt/openfoam221/src/OpenFOAM/lnInclude -I/opt/openfoam221/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/rhoCentralFoamRK4.o


rhoCentralFoamRK4.C:34:28: fatal error: basicPsiThermo.H: No such file or directory


compilation terminated.
make: *** [Make/linux64GccDPOpt/rhoCentralFoamRK4.o] Error 1
+ wmake rhoCentralDyMFoam
Making dependency list for source file rhoCentralDyMFoam.C
could not open file basicPsiThermo.H for source file rhoCentralDyMFoam.C
SOURCE=rhoCentralDyMFoam.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -I.. -I../BCs/lnInclude -I/opt/openfoam221/src/finiteVolume/lnInclude -I/opt/openfoam221/src/thermophysicalModels/basic/lnInclude -I/opt/openfoam221/src/thermophysicalModels/specie/lnInclude -I/opt/openfoam221/src/turbulenceModels/compressible/turbulenceModel -I/opt/openfoam221/src/dynamicMesh/lnInclude -I/opt/openfoam221/src/meshTools/lnInclude -IlnInclude -I. -I/opt/openfoam221/src/OpenFOAM/lnInclude -I/opt/openfoam221/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/rhoCentralDyMFoam.o


rhoCentralDyMFoam.C:34:28: fatal error: basicPsiThermo.H: No such file or directory


eRzBeNgEl is offline   Reply With Quote

Old   October 29, 2013, 06:52
Default
  #4
Member
 
Join Date: Nov 2012
Posts: 50
Rep Power: 3
Henning86 is on a distinguished road
you probably download the solver for the version 2.1.1.

the class basicPsithermo doesn't exist anymore. in 2.2.x there was a huge change in the thermodynamic libary.


try the solver for version 2.2.2

Last edited by Henning86; October 29, 2013 at 20:25.
Henning86 is offline   Reply With Quote

Old   October 30, 2013, 13:01
Default
  #5
New Member
 
Konrad Makowka
Join Date: Apr 2012
Location: München, Germany
Posts: 6
Rep Power: 4
konneym is on a distinguished road
Hi,

first of all, thanks for you code contribution.

I have implemented something equivalent a while ago, whereas there is the following issue (which is still on my todo list):

In order to be consistent, you would also need to perform the RK integration on the turbulence equations. You need to be able *write* the (let's say) k and omega of your turbulence model, because:
You also need to perform the weighted RK summation of your turbulence fields that you solve for.

This is basically only a programming issue, however, I am experiencing a strange bug related to that, see Virtual inheritance problem while adding public member function to LES SGS Model.

Cheers,

Konrad

Last edited by konneym; October 31, 2013 at 04:28.
konneym is offline   Reply With Quote

Old   October 31, 2013, 16:30
Default
  #6
Member
 
Join Date: Jun 2012
Posts: 37
Rep Power: 4
maHein is on a distinguished road
Hello Henning86,

I implemented a low-storage Runge-Kutta scheme in rhoCentralFoam as well some time ago.

I rewrote a ddt-class to account for the coefficients. So, the code in the main file was much more compact. Maybe you could try something yourself.

As a guideline, you could check out Oliver Borms density based solver, which also utilizes a low-storage Runge-Kutta scheme.

Regards,

maHein
maHein is offline   Reply With Quote

Old   November 16, 2013, 15:53
Default
  #7
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
Hey Henning86,

Sounds really good and I will test both of them and will try to post some results as well; at some point.

A quick comment though - I am not sure if it can be done but if possible please change the name of the thread in order to incorporate words like LTS and or faster rhoCentralFoam. I think it will bring in more people here.

Thanks very much.
cfd.with.openfoam is offline   Reply With Quote

Old   November 17, 2013, 01:10
Default
  #8
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
Hey Henning86,

Quickly wanted to mention that the 2.2.2 versions that you uploaded are not working with 2.2.2 - I got this error while compiling -

/opt/OpenFOAM-2.2.0/src/OpenFOAM/lnInclude/Field.C: In member function ‘void Foam::Field<Type>:perator=(const Foam::VectorSpace<Form, Cmpt, nCmpt>&)’:
/opt/OpenFOAM-2.2.0/src/OpenFOAM/lnInclude/Field.C:680:42: warning: typedef ‘VSType’ locally defined but not used [-Wunused-local-typedefs]
typedef VectorSpace<Form,Cmpt,nCmpt> VSType;
^
/usr/bin/ld: cannot find -lbasicThermophysicalModels
collect2: error: ld returned 1 exit status
make: *** [/opt/OpenFOAM-2.2.0/platforms/linux64GccDPOpt/lib/librhoCentralFoam.so] Error 1


We can see the basicThermoPhysicalModels issue here. Did you check your 2.2.2 versions - looks like it needs a couple of more changes to get going on 2.2.2

It's quite late here and I'll try to see if can get around this issue tomorrow or next week but any comments will be helpful.

Thanks very much
cfd.with.openfoam is offline   Reply With Quote

Old   November 17, 2013, 06:15
Default
  #9
Member
 
Join Date: Nov 2012
Posts: 50
Rep Power: 3
Henning86 is on a distinguished road
I'm pretty sure you compiled the solver with Allwmake.


i havent changed the rhoCentralDymFoam so you get this error.
Henning86 is offline   Reply With Quote

Old   November 17, 2013, 12:32
Default
  #10
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
Hey Henning86,

Thanks for your quick response.

Yes I saw rhoCentralDyMFoam in the Allwmake file but what I didn't pay attention to was the BCs which are also from OpenFOAM 2.1.0, I think.

So, I simply copied both BCs and the rhoCentralDyMFoam folders from the OF-2.2.0 sources and used Allwmake. It seems to have worked.

On the other hand - Did you ever use Michael Borm's densityBasedTurbo solver? If yes, then, any comments on how it performs when compared to rhoCentralFoam

Thanks
cfd.with.openfoam is offline   Reply With Quote

Old   November 17, 2013, 14:01
Default
  #11
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
Hey Henning86,

I just attempted to start a run with the rhoLTS... solver and I got this error -

Unknown ddt Scheme - Valid ddtschemes are -

9 (CoEuler, CrankNicolson, Euler, SLTS, backward, bounded, boundedBackward, localEuler, steadyState)

I was thinking that I could just use [rk4 (or maybe RK4) rDeltaT] option for the ddtSchemes in the fvSchemes file and it will run with rk4 local time stepping.

Am I missing something here? Please let me know.

Thanks very much
cfd.with.openfoam is offline   Reply With Quote

Old   November 17, 2013, 17:09
Default
  #12
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
Hey Henning86,

Even if I use Euler it somehow works as RK4 but it diverges/stops/crashes pretty quickly in my case even with a MaxCo of 0.2. Maybe I am doing something wrong.

As a side note - I was trying to get densityBasedTurbo going with OpenFOAM 2.2.0 but it gives me an error related to the thermophysical models, which is not at all surprising since it has been developed based on OF-1.6-ext (link below)

http://www.extend-project.de/user-fo...dturbo-solvers

The error looks like this -

/opt/OpenFOAM-2.2.0/src/OpenFOAM/lnInclude/Field.C: In member function ‘void Foam::Field<Type>:perator=(const Foam::VectorSpace<Form, Cmpt, nCmpt>&)’:
/opt/OpenFOAM-2.2.0/src/OpenFOAM/lnInclude/Field.C:680:42: warning: typedef ‘VSType’ locally defined but not used [-Wunused-local-typedefs]
typedef VectorSpace<Form,Cmpt,nCmpt> VSType;
^
localTimeStep/localTimeStep.C: In member function ‘void Foam::localTimeStep::update(Foam::scalar, Foam::Switch)’:
localTimeStep/localTimeStep.C:153:57: error: ‘const class Foam::basicThermo’ has no member named ‘psi’
(thermophysicalModel_.Cv()*thermophysicalModel_.ps i());
^
make: *** [Make/linux64GccDPOpt/localTimeStep.o] Error 1


Since you seem to be be quite comfortable with OpenFOAM, can you give me a couple of pointers in order to handle this problem.

I think you might also find the densityBasedTurbo as a useful alternative to rhoCentralFoam for steady state cases.


Also another thing that I don't understand is that even if we use Local Time Stepping with OpenFOAM it is still not like e.g FLUENT which can give us a 2D steady state solution within minutes. What is the difference between the LTS in OpenFOAM and that in e.g FLUENT. Is it something entirely else.

To me it seems that densityBasedTurbo will be something like FLUENT and will give real quick steady state 2D solutions.

Thanks very much
cfd.with.openfoam is offline   Reply With Quote

Old   November 19, 2013, 04:13
Default
  #13
Member
 
Join Date: Nov 2012
Posts: 50
Rep Power: 3
Henning86 is on a distinguished road
hi

the Runge kutta 4 loop is in the solver. You need to use Euler or localEuler rDeltaT (for local timestepping)


i dont think it is possible to adapt turbfoam to v 2.2.x without great affort.

most crashes of solvers in cfd are caused by the initialisation or the boundary conditions

best regards

henning
Henning86 is offline   Reply With Quote

Reply

Thread Tools
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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Main advantage of using Runge Kutta of higher order? jakubstary Main CFD Forum 11 May 17, 2013 18:32
1D Burgers euqation with 4th Runge Kutta dokeun Main CFD Forum 3 August 8, 2011 06:34
Runge Kutta Discontinuous Galerkin procedure? Ameya J Main CFD Forum 6 July 29, 2011 05:56
Runge Kutta Optimization vasanth Main CFD Forum 6 December 2, 2005 13:07
Diagonally Dominate Runge Kutta Method Anthony Iannetti Main CFD Forum 0 January 23, 2001 21:27


All times are GMT -4. The time now is 14:10.