CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM Running, Solving & CFD

How to add Radiation to existing buoyantBoussinesqSimpleFoam solver

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

Like Tree1Likes
  • 1 Post By hanness

LinkBack Thread Tools Display Modes
Old   September 13, 2013, 10:30
Default How to add Radiation to existing buoyantBoussinesqSimpleFoam solver
New Member
Masoud Ami
Join Date: Sep 2013
Posts: 15
Rep Power: 5
MasAmi is on a distinguished road
Hello All
Hope you are fine and happy.
I have made a case based on buoyantBoussinesqSimpleFoam solver (which as you know is an incompressible one) and now I want to add Radiation to this case. For this purpose, I used buoyantSimpleRadiationFoam solver in order to make a new solver again based on buoyantBoussinesqSimpleFoam. I tried to add any part of buoyantSimpleRadiationFoam that doesn't exist in my new solver. These are as follows (red lines):

mybuoyantBoussinesqRadiationSimpleFoam.C file:

#include "fvCFD.H"
#include "singlePhaseTransportModel.H"
#include "basicPsiThermo.H" //I know that it's for compressible analysis.
#include "RASModel.H"
#include "simpleControl.H"
#include "radiationModel.H"
#include "fixedGradientFvPatchFields.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

int main(int argc, char *argv[])
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createRadiationModel.H"
#include "initContinuityErrs.H"
Info<< "\nStarting time loop\n" << endl;

while (simple.loop())
Info<< "Time = " << runTime.timeName() << nl << endl;

// Pressure-velocity SIMPLE corrector
#include "UEqn.H"
#include "TEqn.H"
#include "pEqn.H"
#include "hEqn.H"



Make/files :

EXE = $(FOAM_USER_APPBIN)/mybuoyantBoussinesqRadiationSimpleFoam

Make/options :
-I../buoyantBoussinesqSimpleFoam \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \

-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/finiteVolume/cfdTools \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/incompressible/RAS/lnInclude \
-I$(LIB_SRC)/transportModels \

-lbasicThermophysicalModels \
-lspecie \
-lradiationModels \

-lfiniteVolume \
-lmeshTools \
-lincompressibleTurbulenceModel \
-lincompressibleRASModels \

fvScalarMatrix hEqn
fvm::div(phi, h)
- fvm::Sp(fvc::div(phi), h)
- fvm::laplacian(turbulence->alphaEff(), h)
- fvc::div(phi, 0.5*magSqr(U), "div(phi,K)")
+ radiation->Sh(thermo)





After I compiled my new solver I encountered these errors:

P { margin-bottom: 0.08in; } In file included from mybuoyantBoussinesqRadiationSimpleFoam.C:66:0:
/opt/openfoam211/src/thermophysicalModels/radiationModels/lnInclude/createRadiationModel.H: In function ‘int main(int, char**)’:
/opt/openfoam211/src/thermophysicalModels/radiationModels/lnInclude/createRadiationModel.H:3:40: error: ‘thermo’ was not declared in this scope
In file included from mybuoyantBoussinesqRadiationSimpleFoam.C:85:0:
hEqn.H:4:23: error: ‘h’ was not declared in this scope
hEqn.H:4:23: note: suggested alternative:
/opt/openfoam211/src/OpenFOAM/lnInclude/fundamentalConstants.H:52:36: note: ‘Foam::constant::universal::h’
hEqn.H:6:36: error: ‘class Foam::incompressible::RASModel’ has no member named ‘alphaEff’
make: *** [Make/linuxGccDPOpt/mybuoyantBoussinesqRadiationSimpleFoam.o] Error 1

My questions are :
1. What are these errors? I couldn't understand them.
2. I have used a compressible based solver for updating an incompressible solver in order to make a new solver. What are the things I have to change? Where and how can I omit the compressibilty related parts without making a problem?
3. Generaly what is the best way for adding Radiation to my new solver?
4. What paremeters should I bring to my case after comiling my solver succesfully?

I have actually followed a thread here started by Fabian and also I have read the Chalmers university "Radiation Heat Transfer in OpenFOAM" note but I couldn't find any solutions.
I would be grateful if you please tell me the steps I should follow.
Thank you all very much,
Best Regards,
MasAmi is offline   Reply With Quote

Old   September 19, 2013, 04:01
Senior Member
Join Date: Aug 2013
Posts: 191
Rep Power: 5
Antimony is on a distinguished road

I am just curious why you would want to do it that way? I suspect you will run into a whole lot of errors as you have. Most of it, if I am not mistaken, deal with the thermodynamic relationship that the solver has to use for the energy equation.

Have you considered factoring radiation as a heat flux instead (define a heat flux in T file)? That is generally considered an easier way to deal with radiation than using the full radiation solver.

If you really need the radiation model and solver, my suggestion would be to go compressible all the way and use the buoyantSimpleRadiationFoam solver.

Hope this helps.
Antimony is offline   Reply With Quote

Old   September 20, 2013, 08:07
Join Date: Mar 2013
Posts: 42
Rep Power: 5
hanness is on a distinguished road
Hi Masoud,

As far as I understand the simples approach would be to update to OF 2.2.1 where the radiation is included in all buoyancy-solvers. There is no differentiation between the solvers (buoyantSimpleRadiationFoam does not any longer exist). You just have to specify in constant/radiationProperties whether you want to use it or not.

hanness is offline   Reply With Quote

Old   September 25, 2013, 02:43
Join Date: Mar 2013
Posts: 42
Rep Power: 5
hanness is on a distinguished road
Hi Masoud,

my previous post was probably a little bit too fast, I've been using the buoyantSimpleFoam, buoyantPimpleFoam and buoyantBoussinesqPimpleFoam solvers of the current release and radiation is included in all of them (but it was not in the 2.1 release). Thus, I think it is actually a missing feature which should be included in future releases (see also a post which I started with exactly this question However, concerning your approach to include radiation yourself I would suggest the following (although I'm not an expert on this):
In the Boussinesq-solver family the energy equation is solved in TEqn, so there is no need for an hEqn (compare to buoyantBoussinesqPimpleFoam). In this file the reference to the radiation is missing. So you should include it here, it should look like this:
    fvScalarMatrix TEqn
        fvm::div(phi, T)
      - fvm::laplacian(alphaEff, T)
        radiation->ST(rhoCoRef, T)
      + fvOptions(T)
I think the #include radiationModel.h in your myBuoyantBoussinesqSimpleFoam.C is correct however, you should check with the respective Pimple-solver to see whether anything else is missing.

Hope this reply is a little bit more helpful then the previous.

MasAmi likes this.
hanness is offline   Reply With Quote

Old   January 16, 2014, 07:17
Default related radiation question in another thread
Join Date: Nov 2011
Location: Berlin
Posts: 31
Rep Power: 6
dzi is on a distinguished road
fyi i put a related radiation question to another thread
thanks dirk
dzi is offline   Reply With Quote


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
Simple radiation validation problem Logan Page OpenFOAM Running, Solving & CFD 15 August 11, 2016 03:21
How to add a wall momentum source to a solver boeleman OpenFOAM Programming & Development 1 February 6, 2013 20:32
Modeling both radiation and convection on surfaces - Ansys Transient Thermal R13 s.mishra ANSYS 0 March 31, 2012 04:12
Getting too many iterations by velocity solving (aborting). Changing U - Solver? suitup OpenFOAM Running, Solving & CFD 0 January 20, 2010 08:45
Add user define monitor in CFX Solver Zaidun CFX 0 April 17, 2006 14:57

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