Changes between Version 76 and Version 77 of FluxLimitedDiffusion
- Timestamp:
- 03/27/13 14:59:01 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FluxLimitedDiffusion
v76 v77 277 277 == Physical Boundary Conditions == 278 278 279 === Open boundaries ===279 === Open (Free streaming) boundaries === 280 280 We would like the radiation to leave at the free streaming limit. So 281 281 [[latex(\frac{c \lambda}{\kappa_{0R}} \nabla E = \mathbf{F} = cE\mathbf{n} = \frac{c \lambda_g}{\kappa_g}\frac{ \left ( E-E_g \right ) }{\Delta x})]] 282 282 283 284 283 Clearly if we set [[latex(E_g = 0)]] and [[latex(\lambda_g =\kappa_g \Delta x)]] we should get the correct flux. 285 284 … … 289 288 So we would just modify [[latex(\alpha)]] and zero out the matrix coefficient to the ghost zone 290 289 291 === Thermally emitting boundary ===292 293 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.294 295 [[latex(E_g = \frac{4 \pi}{c} B(T_g))]] 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.296 297 === ZeroSlope Boundary ===298 Here we want the radiation energy in the ghost zone to match the radiation energy in the internal cell. [[latex(E^{n+1}_g=E^{n+1}_i \mbox{ and } E^n_g=E^n_i)]]299 This is identical to reflecting below300 301 290 === Constant Slope Boundary === 302 291 Here we want the flux to be constant so energy does not pile up near the boundary. So we want [[latex(\alpha_g = \alpha_i) \mbox { and } E_g=2*E_i-E_j)]] This will effectively cancel all terms related to alpha. However, we want to maintain this boundary during the implicit solve, so we also need to modify the matrix connections and subtract [[latex(\alpha_g \mbox{ from } \alpha_i)]] but this will effectively zero out the matrix connections to the interior as well. This can also be done by setting [[latex(\alpha_g = \alpha_i = 0)]] 303 292 304 === Reflecting Boundary === 293 === Periodic Boundary === 294 This is the same as internal zones - it just maps the neighbor cell to be across the domain. Hypre has built in functionality for this under for the Struct Interface 295 296 === User defined radiation field/Coarse Fine boundary === 297 298 This will be the boundary at internal coarse-fine boundaries, but could also be used at the physical boundary if the radiation energy were specified. 299 300 === Reflecting/ZeroSlope Boundary === 305 301 Reflecting boundary should be fairly straightforward. This an be achieved by setting [[latex(\alpha_g = 0)]] which zeros out any flux - and has the same effect as setting [[latex(E^{*}_g=E^{*}_i)]] or [[latex(E^{n+1}_g=E^{n+1}_i \mbox{ and } E^{n}_g=E^{n}_i)]] 306 302 307 308 309 303 === Constant radiative flux === 310 To have a constant radiative flux we must have 311 [[latex(\alpha_g \left ( E^{*}_i-E^{*}_g \right ) = F_0 \frac{\Delta t}{\Delta x})]] 312 313 Which we can solve for 314 [[latex(E^{*}_g = E^{*}_i - \frac{F_0 \Delta t}{\alpha_g \Delta x})]] 315 316 but when we plug this into the coefficient matrix the terms with [[latex(\alpha_g)]] cancel and we just get [[latex(F_0 \frac{\Delta t}{\Delta x})]] in the source vector 304 To have a constant radiative flux we must zero out terms involving the gradient and just add [[latex(F_0 \frac{\Delta t}{\Delta x})]] in the source vector 317 305 318 306 === Summary ===