CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   radiation modeling in vacuum (

mirko September 9, 2011 10:22

radiation modeling in vacuum
As famously said, in space no-one can hear your scream. But seriously ...

The short question is:

how are field values on patches updated? For example, in laplacianFoam, it is obvious when the fields are calculated. But it is not clear when the patch boundary conditions are applied.

I need to apply patch boundary conditions without calculating the fields.

The long of the story follows:

I need to do a simulation of radiative heat transfer between solids in vacuum.

I have hacked the existing chtMultiRegion solver to create a much simpler solver that involves radiation and conduction only. However, just as vacuum does not carry sound, it does not conduct heat.

I can set the head conductivity to a very low number, but the solver will still solve for the temperature field. And for very large meshes, the CPU cost will add up. I would like to avoid that.

So, I need to model a region with radiation only.

I looked at regionProperties.H/C, and it seems straightforward to extend that code to include a region property of type vacuum.

The next item on the agenda is to introduce boundary conditions, steady state for now: solidToVacuum and vacuumToSolid. I think I can manage that.

My main question is the calculation of radiation flux in the vacuum region. From studying existing solvers (see, the procedure is to
  1. calculate the temperature field in the fluid region.
  2. That updates the temperature on the patches (this happens behind the scenes)
  3. The patch temperature is then used as a boundary condition on the radiation flux.

For the vacuum solver, I would need to skip step 1. I need to update the patch temperature and solve for radiation.

But I don't know how to trigger the calls to the boundary condition updates.



marupio September 9, 2011 12:41

I'm not entirely sure what exactly would suit your needs... so here's what comes to mind:

fvPatchField::evaluate() looks like it updates the boundary field values.
fvPatchField::initEvaluate() looks related, but I think it has to do with parallel.
fvPatchField::updateCoeffs() looks like it updates matrix coefficients, intended to be used after evaluate(). Do you use an fvMatrix in your solution?

If you are using evaluate(), I'm not clear on how it will work... boundary values typically depend on the neighbouring cell in the internal field. Not sure how that works with your vacuum... but I don't deal with vacuums, so I defer to you.

If you are using an fvMatrix, and need the matrix coefficients to "absorb" the boundary conditions, that's a little more complicated. Boundary conditions affecting the diagonal of the matrix are updated with addBoundaryDiag - see fvMatrixSolve.C. Boundary conditions that require out-of-core multiplication, such as cyclic or processor, these require different treatment by different matrix solvers, and therefore, rather than trying to generically absorb them into the matrix, we have to build a set of boundary and internal coeffs, one for each boundary cell... and then let the solver handle them. Again, see fvMatrixSolve.C.

Hope that helps.


Follow me on Twitter @DavidGaden

mirko September 12, 2011 17:34


I'll look into it


ssdmmaje November 16, 2011 09:32

laplacianFoam with radiation ?
I need something similar, a simple laplacian solver (I added extra heat deposition) with radiation capabilities.
I am simultaneously working on chtMultiRegionFoam (it is one week since I am trying to understand how it works - is there any manual on this example ?), and I do not know what will be simpler, to get to understand chtMultiRegionFoam and add extra heat deposition or to somehow include radiation in laplacianFoam (including extraheat was really easy, but radiation is quite a problem). Any recommendations ?

Thank you,

coccone July 2, 2015 10:20

Did you succeed in modifying chtMultiRegion?

I have a similar problem and am very interested in the subject, but I am not so skilled to get hands in the solver.

Any suggestions?

ssdmmaje July 2, 2015 11:21

No, I implemented radiation into laplacianFoam.
Would this help you ?

coccone July 3, 2015 05:42


Originally Posted by ssdmmaje (Post 553027)
No, I implemented radiation into laplacianFoam.
Would this help you ?

Unfortunately not, I am bound to cht for different region properties... but thank you though

aeroMatze May 20, 2016 08:31


Originally Posted by ssdmmaje (Post 553027)
No, I implemented radiation into laplacianFoam.
Would this help you ?

Dear Mitja,
sorry for popping up that post after so much time, but it sounds like you have done exactly what I need. I'm looking for a way to simulate the heating of a solid including the energy loss resulting from thermal radiation. Could you please let me know what you have done to solve your problem?

Best regards,

All times are GMT -4. The time now is 09:48.