XGC1
|
#include <Kokkos_Atomic.hpp>
#include "timer_macro.hpp"
#include "space_settings.hpp"
#include "basic_physics.hpp"
#include "linear_weights.hpp"
#include "update_analytic_f0.hpp"
#include "toroidal_average.hpp"
#include "task_group.hpp"
#include "charge_f0.hpp"
#include "loadable_buffer.hpp"
Functions | |
void | smooth_pol_wrap (double *input_array, double *output_array) |
void | fourier_filter_update_analytic (double *alpha) |
void | write_f0_analytic_to_file () |
void | get_total_density (const Grid< DeviceType > &grid, const Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density_f0g, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &total_density) |
void | normalize_by_volume (const Grid< DeviceType > &grid, const Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &total_density, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy) |
void | remove_adiabatic_response (const DomainDecomposition< DeviceType > &pol_decomp, const ElectricField< DeviceType > &electric_field, const Species< DeviceType > &species, double dpot_te_limit, const View< double *, CLayout, DeviceType > &energy, const View< double *, CLayout, DeviceType > &density) |
View< double **, CLayout, DeviceType > | compute_damped_delta (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy, double damping_width, double base_alpha) |
void | smooth_and_filter (View< double **, CLayout, DeviceType > &damped_delta) |
void | bound_moments (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const View< double **, CLayout, DeviceType > &damped_delta, const View< double *, CLayout, DeviceType > &density_adjustment, const View< double *, CLayout, DeviceType > &flow_adjustment, const View< double *, CLayout, DeviceType > &energy_adjustment) |
void | flux_surface_average_moments (const Grid< DeviceType > &grid, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy) |
void | calculate_delta_moments (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy, const View< double *, CLayout, DeviceType > &density_adjustment, const View< double *, CLayout, DeviceType > &flow_adjustment, const View< double *, CLayout, DeviceType > &energy_adjustment) |
View< double **, CLayout, DeviceType > | get_density_f0g_rho (const Grid< DeviceType > &grid, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, const Species< DeviceType > &species) |
void | normalize_and_remove_adiabatic_term (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const ElectricField< DeviceType > &electric_field, Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy, const View< double *, CLayout, DeviceType > &total_density) |
void | update_species_f0_deltas (Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density_adjustment, const View< double *, CLayout, DeviceType > &flow_adjustment, const View< double *, CLayout, DeviceType > &energy_adjustment) |
void | get_moments (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > &density, Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > &flow, Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > &energy) |
void | get_toroidally_averaged_moments (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, const View< double *, CLayout, DeviceType > &density, const View< double *, CLayout, DeviceType > &flow, const View< double *, CLayout, DeviceType > &energy, const View< double *, CLayout, DeviceType > &total_density, int ROOT_RANK) |
void | correct_for_quasineutrality_method1 (Plasma &plasma, View< double **, CLayout, DeviceType > &density_adjustment) |
void | correct_for_quasineutrality_method2 (Plasma &plasma, const View< double **, CLayout, DeviceType > &total_density, View< double **, CLayout, DeviceType > &density_adjustment) |
void | correct_for_quasineutrality (Plasma &plasma, const View< double **, CLayout, DeviceType > &total_density, View< double **, CLayout, DeviceType > &density_adjustment) |
void | all_species_f0_update_analytic_f0 (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const ElectricField< DeviceType > &electric_field, Plasma &plasma) |
void all_species_f0_update_analytic_f0 | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
const VelocityGrid & | vgrid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const ElectricField< DeviceType > & | electric_field, | ||
Plasma & | plasma | ||
) |
void bound_moments | ( | const Grid< DeviceType > & | grid, |
const MagneticField< DeviceType > & | magnetic_field, | ||
const Species< DeviceType > & | species, | ||
const View< double **, CLayout, DeviceType > & | damped_delta, | ||
const View< double *, CLayout, DeviceType > & | density_adjustment, | ||
const View< double *, CLayout, DeviceType > & | flow_adjustment, | ||
const View< double *, CLayout, DeviceType > & | energy_adjustment | ||
) |
void calculate_delta_moments | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy, | ||
const View< double *, CLayout, DeviceType > & | density_adjustment, | ||
const View< double *, CLayout, DeviceType > & | flow_adjustment, | ||
const View< double *, CLayout, DeviceType > & | energy_adjustment | ||
) |
View<double**, CLayout, DeviceType> compute_damped_delta | ( | const Grid< DeviceType > & | grid, |
const MagneticField< DeviceType > & | magnetic_field, | ||
const Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy, | ||
double | damping_width, | ||
double | base_alpha | ||
) |
void correct_for_quasineutrality | ( | Plasma & | plasma, |
const View< double **, CLayout, DeviceType > & | total_density, | ||
View< double **, CLayout, DeviceType > & | density_adjustment | ||
) |
void correct_for_quasineutrality_method1 | ( | Plasma & | plasma, |
View< double **, CLayout, DeviceType > & | density_adjustment | ||
) |
void correct_for_quasineutrality_method2 | ( | Plasma & | plasma, |
const View< double **, CLayout, DeviceType > & | total_density, | ||
View< double **, CLayout, DeviceType > & | density_adjustment | ||
) |
void flux_surface_average_moments | ( | const Grid< DeviceType > & | grid, |
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy | ||
) |
void fourier_filter_update_analytic | ( | double * | alpha | ) |
View<double**, CLayout, DeviceType> get_density_f0g_rho | ( | const Grid< DeviceType > & | grid, |
const VelocityGrid & | vgrid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const Species< DeviceType > & | species | ||
) |
void get_moments | ( | const Grid< DeviceType > & | grid, |
const MagneticField< DeviceType > & | magnetic_field, | ||
Species< DeviceType > & | species, | ||
Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > & | density, | ||
Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > & | flow, | ||
Kokkos::View< double **, Kokkos::LayoutRight, DeviceType > & | energy | ||
) |
void get_toroidally_averaged_moments | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
const VelocityGrid & | vgrid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy, | ||
const View< double *, CLayout, DeviceType > & | total_density, | ||
int | ROOT_RANK | ||
) |
void get_total_density | ( | const Grid< DeviceType > & | grid, |
const Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | density_f0g, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | total_density | ||
) |
void normalize_and_remove_adiabatic_term | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const ElectricField< DeviceType > & | electric_field, | ||
Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy, | ||
const View< double *, CLayout, DeviceType > & | total_density | ||
) |
void normalize_by_volume | ( | const Grid< DeviceType > & | grid, |
const Species< DeviceType > & | species, | ||
const View< double *, CLayout, DeviceType > & | total_density, | ||
const View< double *, CLayout, DeviceType > & | density, | ||
const View< double *, CLayout, DeviceType > & | flow, | ||
const View< double *, CLayout, DeviceType > & | energy | ||
) |
void remove_adiabatic_response | ( | const DomainDecomposition< DeviceType > & | pol_decomp, |
const ElectricField< DeviceType > & | electric_field, | ||
const Species< DeviceType > & | species, | ||
double | dpot_te_limit, | ||
const View< double *, CLayout, DeviceType > & | energy, | ||
const View< double *, CLayout, DeviceType > & | density | ||
) |
void smooth_and_filter | ( | View< double **, CLayout, DeviceType > & | damped_delta | ) |
void smooth_pol_wrap | ( | double * | input_array, |
double * | output_array | ||
) |
void update_species_f0_deltas | ( | Species< DeviceType > & | species, |
const View< double *, CLayout, DeviceType > & | density_adjustment, | ||
const View< double *, CLayout, DeviceType > & | flow_adjustment, | ||
const View< double *, CLayout, DeviceType > & | energy_adjustment | ||
) |
void write_f0_analytic_to_file | ( | ) |