|September 9, 2011, 10:22||
radiation modeling in vacuum
Join Date: Mar 2009
Posts: 159Rep Power: 7
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 http://foam.sourceforge.net/docs/cpp/a02314_source.html), the procedure is to
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.
|September 9, 2011, 12:41||
Join Date: Apr 2009
Location: Winnipeg, Canada
Posts: 378Rep Power: 9
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
|November 16, 2011, 08:32||
laplacianFoam with radiation ?
Join Date: Nov 2011
Posts: 1Rep Power: 0
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 ?
|Thread||Thread Starter||Forum||Replies||Last Post|
|vacuum for radiation purpose||tianchen||FLUENT||0||May 24, 2011 16:56|
|Radiation modeling||cloudnqh||FLUENT||6||February 15, 2010 09:06|
|Radiation in vacuum||nitin||CFX||0||July 6, 2009 01:49|
|Modeling Thermal Radiation||Kaushik Saha||FLUENT||0||September 17, 2008 19:12|
|Question about Radiation Modeling||Zhengcai Ye||FLUENT||0||October 12, 2004 18:44|