MPI-AMRVAC 3.1
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
 Nicolas Moens Module for including flux limited diffusion (FLD)-approximation in Radiation-hydrodynamics simulations using mod_rhd Based on Turner and stone 2001. See [1]Moens, N., Sundqvist, J. O., El Mellah, I., Poniatowski, L., Teunissen, J., and Keppens, R., “Radiation-hydrodynamics with MPI-AMRVAC . Flux-limited diffusion”, Astronomy and Astrophysics, vol. 657, 2022. doi:10.1051/0004-6361/202141023. For more information.
 

Functions/Subroutines

subroutine mod_fld::fld_params_read (files)
 public methods these are called in mod_rhd_phys
 
subroutine, public mod_fld::fld_init (he_abundance, radiation_diffusion, energy_interact, r_gamma)
 Initialising FLD-module: Read opacities Initialise Multigrid adimensionalise kappa Add extra variables to w-array, flux, kappa, eddington Tensor Lambda and R ...
 
subroutine, public mod_fld::get_fld_rad_force (qdt, ixil, ixol, wct, w, x, energy, 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
 
subroutine, public mod_fld::fld_radforce_get_dt (w, ixil, ixol, dtnew, dxd, x)
 
subroutine, public mod_fld::fld_get_opacity (w, x, ixil, ixol, fld_kappa)
 Sets the opacity in the w-array by calling mod_opal_opacity.
 
subroutine, public mod_fld::fld_get_fluxlimiter (w, x, ixil, ixol, fld_lambda, fld_r, nth)
 Calculate fld flux limiter This subroutine calculates flux limiter lambda using the prescription stored in fld_fluxlimiter. It also calculates the ratio of radiation scaleheight and mean free path.
 
subroutine, public mod_fld::fld_get_radflux (w, x, ixil, ixol, rad_flux, nth)
 Calculate Radiation Flux stores radiation flux in w-array.
 
subroutine mod_fld::fld_get_eddington (w, x, ixil, ixol, eddington_tensor, nth)
 Calculate Eddington-tensor Stores Eddington-tensor in w-array.
 
subroutine, public mod_fld::fld_get_radpress (w, x, ixil, ixol, rad_pressure, nth)
 Calculate Radiation Pressure Returns Radiation Pressure as tensor.
 
subroutine mod_fld::fld_implicit_update (dtfactor, qdt, qtc, psa, psb)
 
subroutine mod_fld::energy_interaction (w, x, ixil, ixol, dtfactor, qdt)
 Energy interaction and photon tiring.
 
subroutine mod_fld::diffuse_e_rad_mg (dtfactor, qdt, qtc, psa, psb)
 Calling all subroutines to perform the multigrid method Communicates rad_e and diff_coeff to multigrid library.
 
subroutine mod_fld::evaluate_e_rad_mg (qtc, psa)
 inplace update of psa==>F_im(psa)
 
subroutine mod_fld::put_diffterm_onegrid (ixil, ixol, w)
 inplace update of psa==>F_im(psa)
 
subroutine mod_fld::fld_get_diffcoef_central (w, wct, x, ixil, ixol)
 Calculates cell-centered diffusion coefficient to be used in multigrid.
 
subroutine mod_fld::update_diffcoeff (psa)
 
subroutine mod_fld::fld_smooth_diffcoef (w, ixil, ixol)
 Use running average on Diffusion coefficient.
 
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-Ralphson 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_eint_split = .false.
 source split for energy interact and radforce:
 
logical mod_fld::fld_radforce_split = .false.
 
double precision, public mod_fld::fld_kappa0 = 0.34d0
 Opacity per unit of unit_density.
 
double precision, public mod_fld::fld_mu = 0.6d0
 mean particle mass
 
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 adi method for radiative Energy diffusion.
 
double precision, public mod_fld::diff_crit
 Number for splitting the diffusion module.
 
character(len=8) mod_fld::fld_opacity_law = 'const'
 Use constant Opacity?
 
character(len=50) mod_fld::fld_opal_table = 'Y09800'
 
character(len=16) mod_fld::fld_fluxlimiter = 'Pomraning'
 Diffusion limit lambda = 0.33.
 
integer mod_fld::i_diff_mg
 diffusion coefficient for multigrid method
 
character(len=8) mod_fld::fld_diff_scheme = 'mg'
 Which method to solve diffusion part.
 
character(len=8) mod_fld::fld_interaction_method = 'Halley'
 Which method to find the root for the energy interaction polynomial.
 
logical mod_fld::diff_coef_filter = .false.
 Take running average for Diffusion coefficient.
 
integer mod_fld::size_d_filter = 1
 
logical mod_fld::flux_lim_filter = .false.
 Take a running average over the fluxlimiter.
 
integer mod_fld::size_l_filter = 1
 
logical mod_fld::lineforce_opacities = .false.
 Use or dont use lineforce opacities.
 
logical mod_fld::diffcrash_resume = .true.
 Resume run when multigrid returns error.
 
integer, dimension(:), allocatable, public mod_fld::i_opf
 Index for Flux weighted opacities.
 
double precision mod_fld::dt_diff = 0.d0
 running timestep for diffusion solver, initialised as zero