1 #ifndef BASIC_PHYSICS_HPP
2 #define BASIC_PHYSICS_HPP
14 KOKKOS_INLINE_FUNCTION
double maxwellian_dist(
double den,
double temp,
double energy){
15 const double EXP_LIM = 64.0;
16 return den/(temp*sqrt(temp))*exp(-min(EXP_LIM,energy/temp));
20 KOKKOS_INLINE_FUNCTION
double gyro_radius(
double B,
double mu,
double c2_2m){
21 return sqrt(mu/(B*c2_2m));
30 return sqrt((temp_ev*
EV_2_J)/mass);
40 return v*sqrt(mass/(temp_ev*
EV_2_J));
51 KOKKOS_INLINE_FUNCTION
double normalized_v_para(
double c_m,
double mass,
double B,
double temp_ev,
double rho){
52 return c_m*rho*B*sqrt(mass/(temp_ev*
EV_2_J));
62 return sqrt(mu*2.0*B/(temp_ev*
EV_2_J));
66 KOKKOS_INLINE_FUNCTION
void rho_mu_to_en_pitch(
double B,
double c_m,
double c2_2m,
double mass,
double rho,
double mu,
double& en,
double& pitch){
67 en = mu*B + c2_2m*(rho*rho*B*B);
68 double v_para = c_m*rho*B;
69 double v_perp2 = 2.0*mu*B/mass;
70 pitch=v_para/sqrt(v_para*v_para + v_perp2);
74 KOKKOS_INLINE_FUNCTION
void en_pitch_to_rho_mu(
double B,
double c2_2m,
double en,
double pitch,
double& rho,
double& mu){
75 rho = pitch*sqrt(en/c2_2m)/B;
76 mu = max(0.0,(1.0-pitch*pitch)*en/B);
KOKKOS_INLINE_FUNCTION double normalized_v_para(double c_m, double mass, double B, double temp_ev, double rho)
Definition: basic_physics.hpp:51
constexpr double EV_2_J
Conversion rate ev to J.
Definition: constants.hpp:5
KOKKOS_INLINE_FUNCTION double thermal_velocity(double mass, double temp_ev)
Definition: basic_physics.hpp:29
KOKKOS_INLINE_FUNCTION double maxwellian_dist(double den, double temp, double energy)
Definition: basic_physics.hpp:14
KOKKOS_INLINE_FUNCTION double kinetic_energy(double mass, double v)
Definition: basic_physics.hpp:8
KOKKOS_INLINE_FUNCTION void rho_mu_to_en_pitch(double B, double c_m, double c2_2m, double mass, double rho, double mu, double &en, double &pitch)
Definition: basic_physics.hpp:66
KOKKOS_INLINE_FUNCTION double normalize_to_vth(double mass, double temp_ev, double v)
Definition: basic_physics.hpp:39
KOKKOS_INLINE_FUNCTION double normalized_sqrt_mu(double B, double temp_ev, double mu)
Definition: basic_physics.hpp:61
KOKKOS_INLINE_FUNCTION void en_pitch_to_rho_mu(double B, double c2_2m, double en, double pitch, double &rho, double &mu)
Definition: basic_physics.hpp:74