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

Go to the source code of this file.

Modules

module  mod_eos_lte
 LTE (Saha-table) EoS kernels and finalise for the eos% family.
 

Functions/Subroutines

subroutine, public mod_eos_lte::eos_init_lte ()
 update_eos_LTE, get_Te_LTE, get_temperature_from_eint_LTE and Rfactor_from_LTE are PRIVATE: all bound to eos% pointers inside eos_finalise_LTE, so no external module names them. get_temperature_from_eint_fast_LTE stays public – the seam binds it to tc_flget_temperature_from_eint (fast TC path).
 
subroutine, public mod_eos_lte::eos_finalise_lte ()
 LTE arm of eos_finalise: wire the LTE runtime pointer targets, then dispatch on eos_method to the per-method finaliser, each owned by its method module (analytic->mod_eos_LTE_saha, entropy->mod_eos_LTE_entropy, tables->mod_eos_LTE_tables).
 
subroutine, public mod_eos_lte::get_temperature_from_eint_fast_lte (w, x, ixil, ixol, res)
 
double precision function, public mod_eos_lte::y_from_nh_eint (nh, eint_nh)
 Ionization fraction from (log10 nH, log10 eint/nH) in code units. Dispatches: analytic -> Saha quadratic, tables -> PCHIP interpolation.
 
double precision function, public mod_eos_lte::t_from_nh_eint (nh, eint_nh)
 Temperature from (log10 nH, log10 eint/nH) in code units. Dispatches: analytic -> Saha bisection/Newton, tables -> PCHIP interpolation.
 
double precision function, public mod_eos_lte::p2eint_from_nh_p (nh, ponh)
 Pressure-to-eint ratio from (log10 nH, log10 p/nH) in code units. Dispatches: analytic -> Saha solve for eint/p, tables -> PCHIP interpolation.
 
double precision function, public mod_eos_lte::gamma1_from_nh_p (log_nh, log_p_nh)
 Gamma_1 from pressure-indexed table: (log10 nH, log10 p/nH) -> Gamma_1. For 'entropy' the conversion p -> eint -> Gamma_1 via formula is intended to keep Maxwell consistency with the forward at runtime. The p->eint inverse is one bisection per cell – non-trivial cost; this function is in the hot path via hd_get_csound2_LTE.
 
double precision function, public mod_eos_lte::p_nh_from_eint (log_nh, log_eint_nh)
 p/nH from (log10 nH, log10 eint/nH) in code units. Returns (1+He+y)*T directly – single lookup replaces T + y lookups.
 
double precision function, public mod_eos_lte::eint_nh_from_t (log_nh, log_t)
 Internal energy per nH from (log10 nH, log10 T) in code units. Uses the bisection-built inverse table (H+He, machine precision). Fallback: H-only Saha if table not built.
 
pure double precision function pchip_1d (p0, p1, p2, p3, t)
 
subroutine, public mod_eos_lte::eint_from_p_bisect (log_nh_val, log_p_val, log_eint_nh_out)
 Given log10(nH) and log10(p), find log10(eint/nH) by table-guessed bisection on the forward pressure table. Wraps the bracketing logic and log_p_bisect_cached into a single call for use by both HD and MHD from_conserved routines.
 
subroutine, public mod_eos_lte::eos_get_eintt_grid (n_nh, lg_nh_min, lg_nh_max)
 log_nH grid metadata of the (log_nH, log_T) inverse table (eint from T), choosing the container by method ('tables'->eint_from_T, 'entropy'->eintT). n_nH=0 if no such table (analytic/FI). Lets cooling's build_Y_mod_table get its grid without reaching into EoS table internals.
 

Function/Subroutine Documentation

◆ pchip_1d()

pure double precision function log_p_bisect_cached::pchip_1d ( double precision, intent(in)  p0,
double precision, intent(in)  p1,
double precision, intent(in)  p2,
double precision, intent(in)  p3,
double precision, intent(in)  t 
)

Definition at line 702 of file mod_eos_LTE.t.

Here is the call graph for this function: