jaxrts.models.BornMermin_Fit
- class jaxrts.models.BornMermin_Fit(no_of_freq: int | None = None, RPA_rewrite: bool = True, KKT: bool = False, E_cutoff_min: ~pint.registry.Quantity = <Quantity(-1.0, 'electron_volt')>, E_cutoff_max: ~pint.registry.Quantity = <Quantity(-1.0, 'electron_volt')>)[source]
Model for the free-free scattering, based on the Born Mermin Approximation ([Mermin, 1970]). Identical to
BornMermin, but uses the Dandrea fit ([Dandrea et al., 1986]), rather than numerically calculating the un-damped RPA. However, the damped RPA is still evaluated using the adequate integral.The number of frequencies for the Chapman interpolation defaults to 20 if
KKTisFalse, and to 100 otherwise. To change it, just change the attribute of this model after initializing it. i.e.>>> state["free-free scattering"] = jaxrts.models.BornMermin_Fit() >>> state["free-free scattering"].no_of_freq = 10
The boundaries for the interpolation can be given as arguments
E_cutoff_minandE_cutoff_max. They should be set to sane defaults for most use cases; however, it is recommended to revisit this setting carefully. As a minimal good practice, the defaults should be adjusted to the setup used. This can be done with the/set_guessed_E_cutoffs()method:>>> state["free-free scattering"].set_guessed_E_cutoffs(state, setup)
Has the optional argument
RPA_rewrite, which defaults toTrue. IfTrue, we solve the RPA integral as formulated by [Chapman, 2015] Otherwise, use the formulas that are found, e.g., in [Schörner et al., 2023]. The former implementation yields more stable results, most of the time.The model has the optional attribute
KKT, defaulting toFalse, usingjaxrts.free_free.KramersKronigTransform(), for the imaginary part of the collision frequency, rather than solving the integral for the imaginary part, as well. We found for edge cases this behavior was beneficial to avoid numerical spikes.Requires a ‘chemical potential’ model (defaults to
IchimaruChemPotential). Requires a ‘BM V_eiS’ model (defaults toFiniteWavelength_BM_V).See also
jaxrts.free_free.S0_ee_BMA_chapman_interpFitFunction used to calculate the dynamic structure factor
Methods
__init__([no_of_freq, RPA_rewrite, KKT, ...])check(plasma_state)Test if the model is applicable to the PlasmaState.
citation([style, comment])Return bibliographic information for the Model used.
evaluate(plasma_state, setup, *args, **kwargs)If
sample_pointsis notNone, generate a low-resulution :py:class`~.setup.Setup`.evaluate_raw(plasma_state, setup, *args, ...)guess_E_cutoffs(plasma_state[, setup, E_max])Guess and set cutoff energies for the collision frequency interpolation, based on the plasma_state and setup evaluated.
prepare(plasma_state, key)Modify the plasma_state in place.
sample_grid(setup)Define the sample-grid if
sample_pointsis notNone.set_guessed_E_cutoffs(plasma_state[, setup, ...])Guess and set cutoff energies for the collision frequency interpolation, based on the plasma_state and setup evaluated.
susceptibility(plasma_state, setup, E, ...)Attributes
A list of keywords where this model is adequate for
Built-in mutable sequence.
The number of points for re-sampeling the model.
Examples using
jaxrts.models.BornMermin_Fit