|
subroutine | mod_afld::afld_params_read (files) |
| public methods these are called in mod_rhd_phys
|
|
subroutine, public | mod_afld::afld_init (he_abundance, rhd_radiation_diffusion, afld_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_afld::get_afld_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_afld::afld_radforce_get_dt (w, ixil, ixol, dtnew, dxd, x) |
|
subroutine, public | mod_afld::get_afld_energy_interact (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 energy exchange between gas and radiation
|
|
subroutine, public | mod_afld::afld_get_opacity (w, x, ixil, ixol, fld_kappa) |
| Sets the opacity in the w-array by calling mod_opal_opacity.
|
|
subroutine, public | mod_afld::afld_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_afld::afld_get_radflux (w, x, ixil, ixol, rad_flux, nth) |
| Calculate Radiation Flux Calculate the Flux using the fld closure relation F = -c*lambda/(kappa*rho) *grad E.
|
|
subroutine | mod_afld::afld_get_eddington (w, x, ixil, ixol, eddington_tensor, nth) |
| Calculate Eddington-tensor Stores Eddington-tensor in w-array.
|
|
subroutine, public | mod_afld::afld_get_radpress (w, x, ixil, ixol, rad_pressure, nth) |
| Calculate Radiation Pressure Returns Radiation Pressure as tensor.
|
|
subroutine | mod_afld::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_afld::evaluate_e_rad_mg (qtc, psa) |
| inplace update of psa==>F_im(psa)
|
|
subroutine | mod_afld::put_diffterm_onegrid (ixil, ixol, w) |
| inplace update of psa==>F_im(psa)
|
|
subroutine | mod_afld::afld_get_diffcoef_central (w, wct, x, ixil, ixol) |
| Calculates cell-centered diffusion coefficient to be used in multigrid.
|
|
subroutine | mod_afld::update_diffcoeff (psa) |
|
subroutine | mod_afld::afld_smooth_diffcoef (w, ixil, ixol, idir) |
| Use running average on Diffusion coefficient.
|
|
subroutine | mod_afld::energy_interaction (w, wct, x, ixil, ixol) |
| This subroutine calculates the radiation heating, radiation cooling and photon tiring using an implicit scheme. These sourceterms are applied using the root-finding of a 4th order polynomial This routine loops over every cell in the domain and computes the coefficients of the polynomials in every cell.
|
|
subroutine | mod_afld::bisection_method (e_gas, e_rad, c0, c1) |
| Find the root of the 4th degree polynomial using the bisection method.
|
|
subroutine | mod_afld::newton_method (e_gas, e_rad, c0, c1) |
| Find the root of the 4th degree polynomial using the Newton-Ralphson method.
|
|
subroutine | mod_afld::halley_method (e_gas, e_rad, c0, c1) |
| Find the root of the 4th degree polynomial using the Halley method.
|
|
double precision function | mod_afld::polynomial_bisection (e_gas, c0, c1) |
| Evaluate polynomial at argument e_gas.
|
|
double precision function | mod_afld::dpolynomial_bisection (e_gas, c0, c1) |
| Evaluate first derivative of polynomial at argument e_gas.
|
|
double precision function | mod_afld::ddpolynomial_bisection (e_gas, c0, c1) |
| Evaluate second derivative of polynomial at argument e_gas.
|
|
|
logical | mod_afld::fld_eint_split = .false. |
| source split for energy interact and radforce:
|
|
logical | mod_afld::fld_radforce_split = .false. |
|
double precision, public | mod_afld::fld_kappa0 = 0.34d0 |
| Opacity per unit of unit_density.
|
|
double precision, public | mod_afld::afld_mu = 0.6d0 |
| mean particle mass
|
|
double precision, public | mod_afld::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_afld::fld_diff_tol = 1.d-4 |
| Tolerance for adi method for radiative Energy diffusion.
|
|
double precision, public | mod_afld::diff_crit |
| Number for splitting the diffusion module.
|
|
character(len=8), dimension(:), allocatable | mod_afld::fld_opacity_law |
| Use constant Opacity?
|
|
character(len=50) | mod_afld::fld_opal_table = 'Y09800' |
|
character(len=16) | mod_afld::fld_fluxlimiter = 'Pomraning' |
| Diffusion limit lambda = 0.33.
|
|
integer, dimension(:), allocatable | mod_afld::i_diff_mg |
|
character(len=8) | mod_afld::afld_diff_scheme = 'mg' |
| Which method to solve diffusion part.
|
|
character(len=8) | mod_afld::fld_interaction_method = 'Halley' |
| Which method to find the root for the energy interaction polynomial.
|
|
logical | mod_afld::fld_diff_testcase = .false. |
| Set Diffusion coefficient to unity.
|
|
logical | mod_afld::diff_coef_filter = .false. |
| Take running average for Diffusion coefficient.
|
|
integer | mod_afld::size_d_filter = 1 |
|
logical | mod_afld::flux_lim_filter = .false. |
| Take a running average over the fluxlimiter.
|
|
integer | mod_afld::size_l_filter = 1 |
|
logical | mod_afld::lineforce_opacities = .false. |
| Use or dont use lineforce opacities.
|
|
logical | mod_afld::diffcrash_resume = .true. |
| Resume run when multigrid returns error.
|
|
double precision | mod_afld::dt_diff = 0.d0 |
| running timestep for diffusion solver, initialised as zero
|
|