XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
push_physics.hpp
Go to the documentation of this file.
1 #ifndef PUSH_PHYSICS_HPP
2 #define PUSH_PHYSICS_HPP
3 #include "push_controls.hpp"
4 #include "electric_field.hpp"
5 #include "perturbed_B_field.hpp"
7 #include "push_diagnostic.hpp"
9 
10 // Overload derivs_single_with_e_elec with and without diagnostics
11 template<class Device, KinType KT, PhiInterpType PIT, PushDiagToggle PDT>
12 KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec_w_diag(const Grid<Device> &grid, const PushControls &push_controls,
14  const PerturbedBField<Device> &perturbed_B_field, SimdParticles &part,SimdPhase &dy,
15  SimdGridWeights<Order::One, PIT>& grid_wts, const FieldAlignedLocalFields<KT, PIT>& E_mag, double time, VFDiag<PDT>& vf_diag);
16 
17 template<class Device, KinType KT, PhiInterpType PIT>
18 KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec(const Grid<Device> &grid, const PushControls &push_controls,
20  const PerturbedBField<Device> &perturbed_B_field, SimdParticles &part,SimdPhase &dy,
21  SimdGridWeights<Order::One, PIT>& grid_wts, const FieldAlignedLocalFields<KT, PIT>& E_mag, double time);
22 
23 #if defined(EXPLICIT_EM) || defined(DELTAF_CONV)
24 #include "em_push_physics.hpp"
25 #else
26 template<class Device, PushDiagToggle PDT>
27 KOKKOS_INLINE_FUNCTION void derivs_elec(const PushControls &push_controls, const Species<Device> &species,
28  const SimdParticles &part, const Simd<double>& inv_r_vec, const SimdVector &bfield, const Simd<double>& B_mag, const SimdVector (&jacb)[3],
29  const Simd<double>& psi, const SimdVector2D &gradpsi, const SimdVector &tdb, const LocalFields& fld, const LocalEquilProfiles<MT_GLOBAL>& local_eq_profiles,
30  SimdPhase &yprime, VFDiag<PDT>& vf_diag);
31 #endif
32 
33 #include "push_physics.tpp"
34 #endif
Definition: simd.hpp:149
Definition: perturbed_B_field.hpp:11
Definition: grid_weights.hpp:73
KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec(const Grid< Device > &grid, const PushControls &push_controls, const Species< Device > &species, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT > &gfpack, const PerturbedBField< Device > &perturbed_B_field, SimdParticles &part, SimdPhase &dy, SimdGridWeights< Order::One, PIT > &grid_wts, const FieldAlignedLocalFields< KT, PIT > &E_mag, double time)
Definition: push_physics.tpp:92
Definition: push_diagnostic.hpp:17
Definition: push_controls.hpp:9
Definition: magnetic_field.hpp:12
Definition: grid.hpp:60
Definition: grid_field_pack.hpp:21
Definition: local_fields.hpp:7
Definition: local_equil_profiles.hpp:8
KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec_w_diag(const Grid< Device > &grid, const PushControls &push_controls, const Species< Device > &species, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT > &gfpack, const PerturbedBField< Device > &perturbed_B_field, SimdParticles &part, SimdPhase &dy, SimdGridWeights< Order::One, PIT > &grid_wts, const FieldAlignedLocalFields< KT, PIT > &E_mag, double time, VFDiag< PDT > &vf_diag)
Definition: push_physics.tpp:19
Definition: particles.hpp:58
Definition: field_aligned_local_fields.hpp:21
Definition: magnetic_field.F90:1
Definition: particles.hpp:17
Definition: simd.hpp:139
Definition: species.hpp:75
KOKKOS_INLINE_FUNCTION void derivs_elec(const PushControls &push_controls, const Species< Device > &species, const SimdParticles &part, const Simd< double > &inv_r_vec, const SimdVector &bfield, const Simd< double > &B_mag, const SimdVector(&jacb)[3], const Simd< double > &psi, const SimdVector2D &gradpsi, const SimdVector &tdb, const LocalFields &fld, const LocalEquilProfiles< MT_GLOBAL > &local_equil_profiles, SimdPhase &yprime, VFDiag< PDT > &vf_diag)
Definition: em_push_physics.tpp:250