11 #ifndef DIAG_DIFFUSION_PROFILES_HPP
12 #define DIAG_DIFFUSION_PROFILES_HPP
128 #endif // DIAG_DIFFUSION_PROFILES_HPP
int output_rate
Rate (time steps) at which the collected data is written out.
Definition: diag_diffusion_profiles.hpp:31
bool is_on
Flag to indicate if this diagnostic is active.
Definition: diag_diffusion_profiles.hpp:40
View< double *, CLayout, HostType > time_buffer
Time (in s) of each sample.
Definition: diag_diffusion_profiles.hpp:45
View< double ***, CLayout, HostType > profiles_buffer_u
Definition: diag_diffusion_profiles.hpp:42
void collect_sample(const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, Plasma &plasma, const Moments &f0_moments, const DomainDecomposition< DeviceType > &pol_decomp)
Collect a sample of diffusion profile data.
Definition: diag_diffusion_profiles.cpp:102
int n_species
Definition: diag_diffusion_profiles.hpp:34
int n_samples
Definition: diag_diffusion_profiles.hpp:36
void write()
Write the buffered diffusion profile data to disk.
Definition: diag_diffusion_profiles.cpp:181
View< double ***, CLayout, HostType > profiles_buffer_T
Definition: diag_diffusion_profiles.hpp:43
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
Definition: NamelistReader.hpp:193
DiffusionProfilesDiag()
Definition: diag_diffusion_profiles.hpp:49
Definition: moments.hpp:9
int sampling_rate
Rate (multiples of sml_f_source_period) at which the profile data is sampled.
Definition: diag_diffusion_profiles.hpp:32
void reset_buffer()
Reset the profile data buffer.
Definition: diag_diffusion_profiles.hpp:118
View< double ***, CLayout, HostType > profiles_buffer_n
Definition: diag_diffusion_profiles.hpp:41
int sample_count
Definition: diag_diffusion_profiles.hpp:37
int get_n_species() const
Return whether the diffusion diagnostic is on.
Definition: diag_diffusion_profiles.hpp:72
int n_surf
Definition: diag_diffusion_profiles.hpp:35
bool is_triggered(int step) const
Definition: step_trigger.hpp:25
int get_n_samples() const
Get the number of samples taken.
Definition: diag_diffusion_profiles.hpp:84
View< int *, CLayout, HostType > step_buffer
Time step index of each sample.
Definition: diag_diffusion_profiles.hpp:46
int get_n_surf() const
Get the number of flux-surfaces sampled.
Definition: diag_diffusion_profiles.hpp:78
void init(NLReader::NamelistReader &nlr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const Plasma &plasma, int f_source_period)
Initialize the DiffusionProfilesDiag diagnostic.
Definition: diag_diffusion_profiles.cpp:33
Diagnostic for writing diffusion profile data using ADIOS2.
Definition: diag_diffusion_profiles.hpp:29
View< double *, CLayout, HostType > psi_grid
Poloidal flux grid of the sampled profile data.
Definition: diag_diffusion_profiles.hpp:44
StepTrigger step_trigger_output
Trigger for writing the diagnostic output. (The default trigger is used for the data sampling step...
Definition: diag_diffusion_profiles.hpp:33
Definition: plasma.hpp:13
Definition: diagnostic.hpp:10
Definition: step_trigger.hpp:4
bool is_triggered_output(int step)
Returns whether the buffer should be written out on this step.
Definition: diag_diffusion_profiles.hpp:91