Plot See0 using the RPA approximation

This script reprocudes [Gregori et al., 2003], Fig. 1c. showing the calculation of \(S_\text{ee}^{0, \text{RPA}}\).

plot See0 RPA
import jax.numpy as jnp
import matplotlib.pyplot as plt
import numpy as onp

import jaxrts
import jaxrts.free_free as free_free

ureg = jaxrts.units.ureg

plt.style.use("science")

lambda_0 = 0.26 * ureg.nanometer
theta = 60
n_e = 1e23 / ureg.centimeter**3

E = jnp.linspace(-100, 100, 500) * ureg.electron_volts

k = (4 * jnp.pi / lambda_0) * jnp.sin(jnp.deg2rad(theta) / 2.0)

for count, T in enumerate(
    [
        0.8 * ureg.electron_volts,
        3.0 * ureg.electron_volts,
        13.0 * ureg.electron_volts,
    ]
):
    mu = jaxrts.plasma_physics.chem_pot_interpolationIchimaru(
        T / (1 * ureg.boltzmann_constant), n_e
    )

    vals = free_free.S0_ee_RPA_no_damping(
        k,
        T_e=T / (1 * ureg.boltzmann_constant),
        n_e=n_e,
        E=E,
        chem_pot=mu,
    ).m_as(ureg.second)

    if count == 0:
        norm = onp.max(vals)

    plt.plot(
        E.m_as(ureg.electron_volt),
        (vals / norm),
        label="T = " + str(T.m_as(ureg.electron_volt)) + " eV",
        color=f"C{count}",
    )

plt.xlabel(r"$\omega$ [eV]")
plt.ylabel(r"$S^0_{\text{ee}}$ [arb. units]")

plt.legend()
plt.tight_layout()
plt.show()

Total running time of the script: (0 minutes 2.706 seconds)

Gallery generated by Sphinx-Gallery