wiki:FluxLimitedDiffusion

Version 16 (modified by Jonathan, 12 years ago) ( diff )

Physics of Radiation Transfer

streaming limit
static diffusion limit
dynamic diffusion limit

Equations of Radiation Hydrodynamics

where

and

Simplifying assumptions

  • If the flux spectrum of the radiation is direction-independent then we can write the radiation four-force density in terms of the moments of the radiation field

where

comoving-frame Planck function weighted opacity
comoving-frame radiation energy weighted opacity
comoving-frame radiation flux weighted opacity
  • If the radiation has a blackbody spectrum then
  • If the radiation is optically thick, then

which implies that
  • In the optically thin regime, so we would have however assuming a blackbody temperature in the optically thin limit may be any more accurate than assuming that

Flux limited diffusion

The flux limited diffusion approximation drops the radiation momentum equation in favor of

where is the flux-limiter

which corresponds to a pressure tensor

If we Lorentz boost the comoving terms into the lab frame and keep terms necessary to maintain accuracy we get:

which if we plug back into the gas equations and keep terms necessary to maintain accuracy we get:

For static diffusion, the terms in blue with v2/c can be dropped and the system can be split into the usual hydro update (black), radiative source terms (green) using time centered radiation energy, and a coupled implicit solve (red) for the radiation energy density and thermal energy density (ie temperature). If the opacity is independent of temperature and radiation energy density, then the implicit solve only involves the radiation energy density. Otherwise some sort of sub-cycling would be required.

Operator splitting

Krumholz et al. perform Implicit Radiative, Explicit Hydro, Explicit Radiative In AstroBEAR this would look like:

  • Initialization
    • Prolongate, d, p, e, E, Edot
  • Step 1
    • Overlap d, p, e, E and do physical BC's
    • Do IR which updates e0, and E0 using d1, e1, E1
    • Update E1 using Edot1
    • Update Edot0 using pre IR and post IR E0
    • Ghost e2*mbc, Embc+1, Edotmbc+1
    • Do first EHmbc
    • Do ERmbc —- Terms with grad E can be done without ghosting since EH did not change E. The del dot vE term needs time centered face centered velocities which can be stored during the hydro update.
    • Store Edot in child arrays to be prolongated
  • Step 2
    • Overlap d, p, e, E, and do physical BCs
    • Do IR which updates e0, and E0 using d1, e1, E1
    • Update Edot0 using pre IR and post IR E0
    • Update E1 using Edot1
    • Ghost embc, E1, Edot1
    • Do second EH0
    • Do ER0 —- Terms with grad E can be done without ghosting since EH did not change E. The del dot vE term needs time centered face centered velocities which can be stored during the hydro update.

For now we will assume that and are constant over the implicit update. In this case we can solve the radiation energy equation:

where

Which we can discretize for (1D) as

where

and

represents the number of absorption/emissions during the time step

and the diffusion coefficient is given by

where

This gives matrix coefficients

and for 2D the matrix coefficients would be

and the source term would be unchanged from 1D

Coarse-Fine Boundaries

  • At coarse fine boundaries, the simplest approach is to use time interpolated energy fields and opacities in the ghost zones.
  • Or we could use time interpolated - or averaged fluxes. Then we don't need fluid variables to get opacities and boundary fields… We just need the normal fluxes
    • Unfortunately during the implicit solve, there is no way to back out the radiative fluxes directly. So we would have to approximate them - and we need the energy and opacity for the explicit updates anyways…

Hydro before implicit

  • First hydro update using extended ghost zones
    • Just need to update ghost opacities internally and in first row of ghost zones
    • Do implicit solve
    • Ghost
  • Second hydro update
    • Need to update opacities internally and in first row of ghost zones and then communicate ghost opacities.
    • Need to update radiation field in ghost zones
  • Need to update and communicate ghost opacities at internal boundaries

Physical Boundary Conditions

Open boundaries

We would like the radiation to leave at the free streaming limit. So

Clearly if we set and we should get the correct flux.

This corresponds to an

So we would just modify and zero out the matrix coefficient to the ghost zone

Thermally emitting boundary

Another possible boundary condition would be to have the edge of the grid be adjacent to some thermal emitter. This corresponds to setting the radiation energy density in the ghost zones to the Planck function.

however, we still need an opacity which could be defined from the fluid properties of the ghost region… This would essentially be a thermally emitting boundary with the temperature, density, opacity, etc… derived from the hydro boundary type. If the boundary type was extrapolating, and the density and temperature uniform, one could have a constant thermal energy spectrum… However we would need to either specify the opacity and temperature of the ghost zone - or the various fluid properties needed to reconstruct the opacity and temperature of the ghost zone - or make an extra call to set physicalBC - since this may happen in between a hydro step and a physical boundary update.

Reflecting Boundary

Reflecting boundary should be fairly straightforward. This an be achieved by setting which zeros out any flux - and has the same effect as setting

Constant radiative flux

To have a constant radiative flux we must have

Which we can solve for

but when we plug this into the coefficient matrix the terms with cancel and we just get in the source vector

So in summary

Boundary
Open 0
User-Defined opacity and Temperature
Reflecting
User-Defined Flux

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.