XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
push.hpp
Go to the documentation of this file.
1 #ifndef PUSH_HPP
2 #define PUSH_HPP
3 
4 #include "sml.hpp"
5 #include "magnetic_field.hpp"
6 #include "grid.hpp"
7 #include "electric_field.hpp"
8 #include "plasma.hpp"
9 #include "perturbed_B_field.hpp"
10 #include "sort.hpp"
11 #include "push_diagnostic.hpp"
12 #include "diag_1d.hpp"
13 #include "sheath.hpp"
14 #include "neutrals.hpp"
15 #include "domain_decomposition.hpp"
16 
17 
18 template<KinType KT, PhiInterpType PIT>
19 void templated_push(const int ipc,const bool diag_on, const Simulation<DeviceType> &sml, const Grid<DeviceType> &grid,
21  const GridFieldPack<DeviceType, PIT> &gfpack, const PerturbedBField<DeviceType> &perturbed_B_field,
22  const Sheath<DeviceType> &sheath,
23  const Neutrals<DeviceType> &neutrals, SortViews<DeviceType> &sort_views, const PushDiagnostic<DeviceType> &diag,
24  const HeatDiagnostics<DeviceType> &heat_diag, const DomainDecomposition<DeviceType> &pol_decomp,
25  const GridFieldPack<DeviceType, PIT> &gfpack_near, const ParticleStream &particle_stream );
26 
27 template<PhiInterpType PIT>
28 void push(int ipc, int istep, int isp, bool diag_on, const Simulation<DeviceType> &sml, const Grid<DeviceType> &grid,
30  GridFieldPack<DeviceType, PIT> &gfpack, const PerturbedBField<DeviceType> &perturbed_B_field,
31  Sheath<DeviceType> &sheath,
32  const Neutrals<DeviceType> &neutrals, SortViews<DeviceType> &sort_views, const PushDiagnostic<DeviceType> &diag,
33  const HeatDiagnostics<DeviceType> &heat_diag,
34  const DomainDecomposition<DeviceType> &pol_decomp,
35  GridFieldPack<DeviceType, PIT> &gfpack_near,
36  const ParticleStream &particle_stream );
37 
38 void push_all_species(int ipc, int istep, bool diag_on, const Simulation<DeviceType> &sml, const Grid<DeviceType> &grid,
40  ElectricField<DeviceType> &electric_field, const PerturbedBField<DeviceType> &perturbed_B_field,
41  Sheath<DeviceType> &sheath,
42  const Neutrals<DeviceType> &neutrals, const PushDiagnostic<DeviceType> &diag,
43  const HeatDiagnostics<DeviceType> &heat_diag, const Diag1D& diag_1d,
44  const DomainDecomposition<DeviceType> &pol_decomp,
45  Smoothing& smoothing,
46  const ParticleStream &particle_stream );
47 
49  const PerturbedBField<DeviceType> &perturbed_B_field, const Sheath<DeviceType> &sheath,
50  const Neutrals<DeviceType> &neutrals, const PushDiagnostic<DeviceType> &diag,
51  const HeatDiagnostics<DeviceType> &heat_diag);
52 
54  const Neutrals<DeviceType> &neutrals, const PushDiagnostic<DeviceType> &diag,
55  const HeatDiagnostics<DeviceType> &heat_diag, const Diag1D& diag_1d);
56 
57 void setup_sheath_mode_2(int n_tmp);
58 
59 #endif
Definition: perturbed_B_field.hpp:12
Definition: sml.hpp:8
void copy_push_updates_from_device(const Simulation< DeviceType > &sml, const Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, const PushDiagnostic< DeviceType > &diag, const HeatDiagnostics< DeviceType > &heat_diag, const Diag1D &diag_1d)
Definition: push.cpp:220
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1224
void templated_push(const int ipc, const bool diag_on, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, const GridFieldPack< DeviceType, PIT > &grid_field_pack, const PerturbedBField< DeviceType > &perturbed_B_field, const Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, SortViews< DeviceType > &sort_views, const PushDiagnostic< DeviceType > &diag, const HeatDiagnostics< DeviceType > &heat_diag, const DomainDecomposition< DeviceType > &pol_decomp, const GridFieldPack< DeviceType, PIT > &grid_field_pack_near, const ParticleStream &particle_stream)
Definition: push.cpp:12
void setup_sheath_mode_2(int n_tmp)
Definition: magnetic_field.hpp:14
Definition: electric_field.hpp:40
Definition: grid_field_pack.hpp:21
void copy_push_requisites_to_device(const Simulation< DeviceType > &sml, const PerturbedBField< DeviceType > &perturbed_B_field, const Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, const PushDiagnostic< DeviceType > &diag, const HeatDiagnostics< DeviceType > &heat_diag)
Definition: push.cpp:185
Definition: diag_1d.hpp:9
void push(int ipc, int istep, int isp, bool diag_on, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, GridFieldPack< DeviceType, PIT > &grid_field_pack, const PerturbedBField< DeviceType > &perturbed_B_field, Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, SortViews< DeviceType > &sort_views, const PushDiagnostic< DeviceType > &diag, const HeatDiagnostics< DeviceType > &heat_diag, const DomainDecomposition< DeviceType > &pol_decomp, GridFieldPack< DeviceType, PIT > &grid_field_pack_near, const ParticleStream &particle_stream)
Definition: push.cpp:118
Definition: neutrals.hpp:9
Definition: smoothing.hpp:8
Definition: sort.hpp:9
Definition: magnetic_field.F90:1
void push_all_species(int ipc, int istep, bool diag_on, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Plasma &plasma, ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, const PushDiagnostic< DeviceType > &diag, const HeatDiagnostics< DeviceType > &heat_diag, const Diag1D &diag_1d, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, const ParticleStream &particle_stream)
Definition: push.cpp:240
Definition: plasma.hpp:13
Definition: particle_stream.hpp:6
Definition: sheath.hpp:49
Definition: species.hpp:75