1 #ifndef BASIC_PHYSICS_HPP
2 #define BASIC_PHYSICS_HPP
13 KOKKOS_INLINE_FUNCTION
double maxwellian_dist(
double den,
double temp,
double energy){
14 const double EXP_LIM = 64.0;
15 return den/(temp*sqrt(temp))*exp(-min(EXP_LIM,energy/temp));
19 KOKKOS_INLINE_FUNCTION
double gyro_radius(
double B,
double mu,
double c2_2m){
20 return sqrt(mu/(B*c2_2m));
24 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){
25 en = mu*B + c2_2m*(rho*rho*B*B);
26 double v_para = c_m*rho*B;
27 double v_perp2 = 2.0*mu*B/mass;
28 pitch=v_para/sqrt(v_para*v_para + v_perp2);
32 KOKKOS_INLINE_FUNCTION
void en_pitch_to_rho_mu(
double B,
double c2_2m,
double en,
double pitch,
double& rho,
double& mu){
33 rho = pitch*sqrt(en/c2_2m)/B;
34 mu = max(0.0,(1.0-pitch*pitch)*en/B);
KOKKOS_INLINE_FUNCTION double maxwellian_dist(double den, double temp, double energy)
Definition: basic_physics.hpp:13
KOKKOS_INLINE_FUNCTION double kinetic_energy(double mass, double v)
Definition: basic_physics.hpp:7
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:24
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:32