XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
diag_1d.hpp
Go to the documentation of this file.
1 #ifndef DIAG_1D_HPP
2 #define DIAG_1D_HPP
3 
4 #include "diagnostic.hpp"
5 #include "grid.hpp"
6 #include "plasma.hpp"
7 #include "charge.hpp"
8 #include "perturbed_B_field.hpp"
9 
10 class Diag1D : public Diagnostic{
11 
12  enum VarNames{
33  };
34 
35  std::vector<std::string> var_names;
36 
38  bool f0_diag_on;
39 
40  View<double***,CLayout,HostType> d1d_f_pv1_h;
41  View<double***,CLayout,HostType> d1d_df_pv1_h;
42 
43  View<double*,CLayout,HostType> diag_1d_vol_h;
44 
45  // Precalculated values
46  View<double*, CLayout, DeviceType> v_curv_rad_fsa;
47  View<double*, CLayout, DeviceType> v_grad_B_rad_fsa;
48 
49  public:
50 
51  Diag1D() : Diagnostic() {}
52 
53  void write_volume(const VolumesAndAreas& volumes_and_areas);
54 
55  void init(NLReader::NamelistReader& nlr, const DomainDecomposition<DeviceType>& pol_decomp, const Grid<DeviceType>& grid, const MagneticField<DeviceType>& magnetic_field, const Plasma& plasma, bool allocate_df_diagnostic);
56 
57  View<double***,CLayout,HostType> diag_1d_f0(const Grid<DeviceType>& grid, const MagneticField<DeviceType>& magnetic_field, const DomainDecomposition<DeviceType>& pol_decomp, const VelocityGrid& vgrid, Plasma& plasma, PerturbedBField<DeviceType> &perturbed_B_field, const ElectricField<DeviceType>& electric_field, const Simulation<DeviceType>& sml);
58 
59  void write(const Grid<DeviceType>& grid, const MagneticField<DeviceType>& magnetic_field, const DomainDecomposition<DeviceType>& pol_decomp, const VelocityGrid& vgrid, Plasma& plasma, const Charges& charges, const ElectricField<DeviceType>& electric_field, PerturbedBField<DeviceType> &perturbed_B_field, const Simulation<DeviceType>& sml, double time, int gstep);
60 
61  void reduce_and_copy_to_host(const View<double****,CLayout,DeviceType>& d1d_f_pv1, const View<double****,CLayout,DeviceType>& d1d_df_pv1) const;
62 
63  void clear();
64 };
65 
66 #endif
Definition: diag_1d.hpp:29
Definition: diag_1d.hpp:31
Definition: charge.hpp:66
View< double *, CLayout, DeviceType > v_grad_B_rad_fsa
Definition: diag_1d.hpp:47
Definition: perturbed_B_field.hpp:12
Diag1D()
Definition: diag_1d.hpp:51
Definition: diag_1d.hpp:20
Definition: diag_1d.hpp:23
Definition: velocity_grid.hpp:8
Definition: sml.hpp:8
VarNames
Definition: diag_1d.hpp:12
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:1248
void write_volume(const VolumesAndAreas &volumes_and_areas)
Definition: diag_1d.cpp:313
Definition: diag_1d.hpp:19
Definition: NamelistReader.hpp:193
Definition: magnetic_field.hpp:12
Definition: electric_field.hpp:35
Definition: diag_1d.hpp:32
Definition: diag_1d.hpp:22
bool f0_diag_on
Definition: diag_1d.hpp:38
void reduce_and_copy_to_host(const View< double ****, CLayout, DeviceType > &d1d_f_pv1, const View< double ****, CLayout, DeviceType > &d1d_df_pv1) const
Definition: diag_1d.cpp:539
Definition: diag_1d.hpp:30
void write(const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, const VelocityGrid &vgrid, Plasma &plasma, const Charges &charges, const ElectricField< DeviceType > &electric_field, PerturbedBField< DeviceType > &perturbed_B_field, const Simulation< DeviceType > &sml, double time, int gstep)
Definition: diag_1d.cpp:383
View< double ***, CLayout, HostType > d1d_f_pv1_h
Definition: diag_1d.hpp:40
Definition: volumes_and_areas.hpp:8
Definition: diag_1d.hpp:27
Definition: diag_1d.hpp:14
Definition: diag_1d.hpp:10
void init(NLReader::NamelistReader &nlr, const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Plasma &plasma, bool allocate_df_diagnostic)
Definition: diag_1d.cpp:327
View< double *, CLayout, HostType > diag_1d_vol_h
Definition: diag_1d.hpp:43
Definition: diag_1d.hpp:16
std::vector< std::string > var_names
Definition: diag_1d.hpp:35
Definition: diag_1d.hpp:26
View< double *, CLayout, DeviceType > v_curv_rad_fsa
Definition: diag_1d.hpp:46
Definition: diag_1d.hpp:21
Definition: diag_1d.hpp:13
View< double ***, CLayout, HostType > d1d_df_pv1_h
Definition: diag_1d.hpp:41
Definition: diag_1d.hpp:15
View< double ***, CLayout, HostType > diag_1d_f0(const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, const VelocityGrid &vgrid, Plasma &plasma, PerturbedBField< DeviceType > &perturbed_B_field, const ElectricField< DeviceType > &electric_field, const Simulation< DeviceType > &sml)
Definition: diag_1d.cpp:7
Definition: diag_1d.hpp:18
Definition: magnetic_field.F90:1
Definition: diag_1d.hpp:25
Definition: plasma.hpp:13
Definition: diag_1d.hpp:28
Definition: diagnostic.hpp:10
void clear()
Definition: diag_1d.cpp:548
Definition: diag_1d.hpp:24
Definition: diag_1d.hpp:17
bool deltaf_diag_on
Definition: diag_1d.hpp:37