XGCa
diag_3d.hpp
Go to the documentation of this file.
1 #ifndef DIAG_3D_HPP
2 #define DIAG_3D_HPP
3 
4 #include "diagnostic.hpp"
5 #include "grid.hpp"
6 #include "plasma.hpp"
7 #include "charge.hpp"
8 #include "electric_field.hpp"
9 #include "sheath.hpp"
10 #include "perturbed_B_field.hpp"
11 
12 class Diag3D : public Diagnostic{
13 
14  View<double**,CLayout,HostType> E_saved;
15 
16  View<double***,CLayout,HostType> diag_3d_add;
17 
18  View<double**,CLayout,HostType> marker_den;
19  View<double**,CLayout,HostType> weight_mean;
20  View<double**,CLayout,HostType> weight_variance;
21 
22  public:
23 
27 
28  Diag3D() : Diagnostic() {}
29 
30  void init(NLReader::NamelistReader& nlr, const Grid<DeviceType>& grid, const Plasma& plasma, int default_period);
31 
32  void write(const Grid<DeviceType>& grid, const Simulation<DeviceType>& sml, const Sheath<DeviceType>& sheath,
33  const PerturbedBField<DeviceType>& perturbed_B_field, const DomainDecomposition<DeviceType>& pol_decomp,
34  Plasma& plasma, const Charges& charges, const ElectricField<DeviceType>& electric_field,
35  double time, int gstep);
36 
38 
39  void diag_marker_den(const DomainDecomposition<DeviceType>& pol_decomp, const Grid<DeviceType>& grid, const MagneticField<DeviceType>& magnetic_field, Plasma& plasma, bool is_XGCa) const;
40 
41  void calculate_E_out(const Grid<DeviceType>& grid, const ElectricField<DeviceType>& electric_field, const View<double**,CLayout,HostType>& E_grid,
42  View<double**,CLayout,HostType>& E_out, View<double**,CLayout,HostType>& dEdt_out, double dt);
43 
44  void store_E_field(const ElectricField<DeviceType>& electric_field);
45 
46  View<double**,CLayout,HostType> calculate_B_out_base(const Grid<DeviceType>& grid, const View<double**,CLayout,HostType>& B_grid);
47 
48  void add_B_out_ptb_3db(const Grid<DeviceType>& grid, const PerturbedBField<DeviceType>& perturbed_B_field, const View<double**,CLayout,HostType>& B_out, double phi);
49 
50  View<double**,CLayout,HostType> calculate_B_out(const Simulation<DeviceType>& sml, const Grid<DeviceType>& grid, const DomainDecomposition<DeviceType>& pol_decomp, const PerturbedBField<DeviceType>& perturbed_B_field, const View<double**,CLayout,HostType>& B_grid);
51 };
52 
53 #endif
Definition: diag_3d.hpp:12
View< double **, CLayout, HostType > calculate_B_out(const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const PerturbedBField< DeviceType > &perturbed_B_field, const View< double **, CLayout, HostType > &B_grid)
Definition: diag_3d.cpp:328
View< double **, CLayout, HostType > weight_mean
Definition: diag_3d.hpp:19
View< double ***, CLayout, HostType > diag_3d_add
Definition: diag_3d.hpp:16
void diag_marker_den(const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Plasma &plasma, bool is_XGCa) const
Definition: diag_marker_den.cpp:5
void store_E_field(const ElectricField< DeviceType > &electric_field)
Definition: diag_3d.cpp:124
bool additional_moments
Definition: diag_3d.hpp:26
View< double **, CLayout, HostType > weight_variance
Definition: diag_3d.hpp:20
View< double **, CLayout, HostType > calculate_B_out_base(const Grid< DeviceType > &grid, const View< double **, CLayout, HostType > &B_grid)
Definition: diag_3d.cpp:235
void write(const Grid< DeviceType > &grid, const Simulation< DeviceType > &sml, const Sheath< DeviceType > &sheath, const PerturbedBField< DeviceType > &perturbed_B_field, const DomainDecomposition< DeviceType > &pol_decomp, Plasma &plasma, const Charges &charges, const ElectricField< DeviceType > &electric_field, double time, int gstep)
Definition: diag_3d.cpp:345
View< double **, CLayout, HostType > marker_den
Definition: diag_3d.hpp:18
View< double **, CLayout, HostType > E_saved
Definition: diag_3d.hpp:14
void additional(const DomainDecomposition< DeviceType > &pol_decomp, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Plasma &plasma) const
Definition: diag_3d_additional.cpp:81
bool weight_stats
Definition: diag_3d.hpp:25
Diag3D()
Definition: diag_3d.hpp:28
void add_B_out_ptb_3db(const Grid< DeviceType > &grid, const PerturbedBField< DeviceType > &perturbed_B_field, const View< double **, CLayout, HostType > &B_out, double phi)
Definition: diag_3d.cpp:283
bool adios_stage
Definition: diag_3d.hpp:24
void calculate_E_out(const Grid< DeviceType > &grid, const ElectricField< DeviceType > &electric_field, const View< double **, CLayout, HostType > &E_grid, View< double **, CLayout, HostType > &E_out, View< double **, CLayout, HostType > &dEdt_out, double dt)
Definition: diag_3d.cpp:136
void init(NLReader::NamelistReader &nlr, const Grid< DeviceType > &grid, const Plasma &plasma, int default_period)
Definition: diag_3d.cpp:98
Definition: diagnostic.hpp:10
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:193
Definition: perturbed_B_field.hpp:12
Definition: plasma.hpp:13
Definition: sheath.hpp:49
Definition: sml.hpp:9
real(8), parameter phi
Definition: load_balance_constraint_mod.F90:18
Definition: magnetic_field.F90:1
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out, ignore_vacuum)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1548
Definition: charge.hpp:66
Definition: electric_field.hpp:76