XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
push_physics.hpp
Go to the documentation of this file.
1 #ifndef PUSH_PHYSICS_HPP
2 #define PUSH_PHYSICS_HPP
3 #include "electric_field.hpp"
4 #include "perturbed_B_field.hpp"
6 
7 template<class Device, KinType KT>
8 KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec(const Grid<Device> &grid, const Simulation<Device> &sml,
9  const Species<Device> &species, const MagneticField<Device> &magnetic_field, const ElectricField<Device> &electric_field,
10  const PerturbedBField<Device> &perturbed_B_field, SimdParticles &part,SimdPhase &dy,
11  Simd<int>& itr, const FieldAlignedLocalFields<KT>& E_mag, double time, Simd<double> *vf_diag=nullptr );
12 
13 #if defined(EXPLICIT_EM) || defined(DELTAF_CONV)
14 #include "em_push_physics.hpp"
15 #else
16 template<class Device>
17 KOKKOS_INLINE_FUNCTION void derivs_elec(const Simulation<Device> &sml, const Species<Device> &species,
18  const SimdParticles &part, const SimdVector &bfield, const SimdVector (&jacb)[3],
19  const Simd<double>& psi, const SimdVector2D &gradpsi, const SimdVector &tdb, const SimdVector &efield,
20 #ifdef DELTAF_CONV
21  const SimdVector &efield00, const Simd<double>& ddpotdt,
22  const Simd<double>& f0den, const Simd<double>& f0dden,
23  const Simd<double>& f0tev, const Simd<double>& f0dtev,
24 #endif
25 #ifdef EXPLICIT_EM
26  const SimdVector &dAh, const Simd<double>& Ah, const SimdVector &dAs, const Simd<double>& As, const Simd<double>& Ah_cv,
27 #endif
28  SimdPhase &yprime, Simd<double> *vf_diag );
29 #endif
30 
31 #include "push_physics.tpp"
32 #endif
Definition: globals.hpp:59
Definition: perturbed_B_field.hpp:12
Definition: sml.hpp:8
Definition: magnetic_field.hpp:9
Definition: electric_field.hpp:35
Definition: grid.hpp:10
Definition: particles.hpp:31
Definition: field_aligned_local_fields.hpp:21
Definition: magnetic_field.F90:1
Definition: particles.hpp:14
Definition: simd.hpp:18
Definition: globals.hpp:54
Definition: species.hpp:13
KOKKOS_INLINE_FUNCTION void derivs_elec(const Simulation< Device > &sml, const Species< Device > &species, const SimdParticles &part, const SimdVector &bfield, const SimdVector(&jacb)[3], const Simd< double > &psi, const SimdVector2D &gradpsi, const SimdVector &tdb, const SimdVector &efield, SimdPhase &yprime, Simd< double > *vf_diag)
Definition: em_push_physics.tpp:337
KOKKOS_INLINE_FUNCTION void derivs_single_with_e_elec(const Grid< Device > &grid, const Simulation< Device > &sml, const Species< Device > &species, const MagneticField< Device > &magnetic_field, const ElectricField< Device > &electric_field, const PerturbedBField< Device > &perturbed_B_field, SimdParticles &part, SimdPhase &dy, Simd< int > &itr, const FieldAlignedLocalFields< KT > &E_mag, double time, Simd< double > *vf_diag=nullptr)
Definition: push_physics.tpp:19