MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
Modules | Functions/Subroutines | Variables
mod_fld.t File Reference

Go to the source code of this file.

Modules

module  mod_fld
 Module for flux limited diffusion (FLD)-approximation in Radiation-(Magneto)hydrodynamics simulations.
 

Functions/Subroutines

subroutine mod_fld::fld_params_read (files)
 public methods these are called in mod_hd_phys or mod_mhd_phys
 
subroutine, public mod_fld::fld_init (he_abundance, r_gamma)
 Initialising FLD-module Read opacities Initialise Multigrid and adimensionalise kappa.
 
subroutine mod_fld::fld_set_mg_bounds
 Set the boundaries for the diffusion of E.
 
subroutine, public mod_fld::add_fld_rad_force (qdt, ixil, ixol, wct, wctprim, w, x, qsourcesplit, active)
 w[iw]=w[iw]+qdt*S[wCT,qtC,x] where S is the source based on wCT within ixO This subroutine handles the radiation force and its work added explicitly and the energy interaction term combined with photon tiring using an implicit update
 
subroutine, public mod_fld::fld_radforce_get_dt (w, ixil, ixol, dtnew, dxd, x)
 get dt limit for radiation force and FLD explicit source additions NOTE: w is primitive on entry
 
subroutine, public mod_fld::fld_get_opacity_prim (w, x, ixil, ixol, fld_kappa)
 Sets the opacity in the w-array by calling mod_opal_opacity NOTE: assumes primitives in w NOTE: assuming opacity is local, not ok with cak line force.
 
subroutine, public mod_fld::fld_get_radpress (w, x, ixil, ixol, rad_pressure)
 Returns Radiation Pressure as tensor NOTE: w is primitive on entry.
 
subroutine, public mod_fld::fld_get_fluxlimiter (w, x, ixil, ixol, fld_lambda, fld_r, nth)
 This subroutine calculates flux limiter lambda according to fld_fluxlimiter It also calculates fld_R which is ratio of radiation scaleheight and mean free path NOTE: nth and ixI and ixO not free to choose here: TODO.
 
subroutine, public mod_fld::fld_get_fluxlimiter_prim (w, x, ixil, ixol, fld_lambda, fld_r, nth)
 This subroutine calculates flux limiter lambda according to fld_fluxlimiter It also calculates fld_R which is ratio of radiation scaleheight and mean free path NOTE: this one operates on primitives NOTE: nth and ixI and ixO not free to choose.
 
subroutine, public mod_fld::fld_get_radflux (w, x, ixil, ixol, rad_flux)
 Calculate Radiation Flux (use of cgs units) NOTE: only for diagnostics purposes (w conservative on entry) This returns cell centered values for radiation flux.
 
subroutine mod_fld::fld_get_eddington (w, x, ixil, ixol, eddington_tensor, lambda, fld_r, nth)
 Calculate Eddington-tensor (where w is primitive) also feeds back the flux limiter lambda and R.
 
subroutine mod_fld::fld_implicit_update (dtfactor, qdt, qtc, psa, psb)
 Calling all subroutines to perform the multigrid method Communicates rad_e and diff_coeff to multigrid library Advance psa=psb+dtfactor*qdt*F_im(psa)
 
subroutine mod_fld::update_diffcoeff (psa)
 
subroutine mod_fld::fld_evaluate_implicit (qtc, psa)
 inplace update of psa==>F_im(psa)
 
subroutine mod_fld::evaluate_diffterm_onegrid (ixil, ixol, w)
 inplace update of psa==>F_im(psa)
 
subroutine, public mod_fld::fld_get_diffcoef_central (w, x, ixil, ixol)
 Calculates cell-centered diffusion coefficient to be used in multigrid.
 
subroutine mod_fld::bisection_method (e_gas, e_rad, c0, c1)
 Find the root of the 4th degree polynomial using the bisection method.
 
subroutine mod_fld::newton_method (e_gas, e_rad, c0, c1)
 Find the root of the 4th degree polynomial using the Newton method.
 
subroutine mod_fld::halley_method (e_gas, e_rad, c0, c1)
 Find the root of the 4th degree polynomial using the Halley method.
 
double precision function mod_fld::polynomial_bisection (e_gas, c0, c1)
 Evaluate polynomial at argument e_gas.
 
double precision function mod_fld::dpolynomial_bisection (e_gas, c0, c1)
 Evaluate first derivative of polynomial at argument e_gas.
 
double precision function mod_fld::ddpolynomial_bisection (e_gas, c0, c1)
 Evaluate second derivative of polynomial at argument e_gas.
 

Variables

logical mod_fld::fld_radforce_split = .false.
 source split for energy interact and radforce:
 
double precision, public mod_fld::fld_kappa0 = 0.34d0
 Opacity per unit of unit_density.
 
double precision, public mod_fld::fld_bisect_tol = 1.d-4
 Tolerance for bisection method for Energy sourceterms This is a percentage of the minimum of gas- and radiation energy.
 
double precision, public mod_fld::fld_diff_tol = 1.d-4
 Tolerance for radiative Energy diffusion.
 
logical mod_fld::fld_debug
 switches for local debug purposes
 
logical mod_fld::fld_no_mg
 
character(len=8) mod_fld::fld_opacity_law = 'const'
 switches for opacity
 
character(len=50) mod_fld::fld_opal_table = 'Y09800'
 
character(len=16) mod_fld::fld_fluxlimiter = 'Pomraning'
 flux limiter choice
 
integer mod_fld::i_diff_mg
 diffusion coefficient for multigrid method
 
integer mod_fld::nth_for_diff_mg
 diffusion coefficient stencil control
 
character(len=8) mod_fld::fld_interaction_method = 'Halley'
 Which method to find the root for the energy interaction polynomial.