XGC1
Functions
update_analytic_f0.cpp File Reference
#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"
#include "view_arithmetic.hpp"
Include dependency graph for update_analytic_f0.cpp:

Functions

void get_total_density (const DomainDecomposition< DeviceType > &pol_decomp, 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 DomainDecomposition< DeviceType > &pol_decomp, 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, DeviceTypecompute_damped_delta (const DomainDecomposition< DeviceType > &pol_decomp, 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 (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, View< double **, CLayout, DeviceType > &damped_delta)
 
void bound_moments (const DomainDecomposition< DeviceType > &pol_decomp, 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 DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, 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, DeviceTypeget_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 (const DomainDecomposition< DeviceType > &pol_decomp, 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, Smoothing &smoothing, Plasma &plasma)
 

Function Documentation

◆ all_species_f0_update_analytic_f0()

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,
Smoothing smoothing,
Plasma plasma 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ bound_moments()

void bound_moments ( const DomainDecomposition< DeviceType > &  pol_decomp,
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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_delta_moments()

void calculate_delta_moments ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
Smoothing smoothing,
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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_damped_delta()

View<double**, CLayout, DeviceType> compute_damped_delta ( const DomainDecomposition< DeviceType > &  pol_decomp,
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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correct_for_quasineutrality()

void correct_for_quasineutrality ( Plasma plasma,
const View< double **, CLayout, DeviceType > &  total_density,
View< double **, CLayout, DeviceType > &  density_adjustment 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correct_for_quasineutrality_method1()

void correct_for_quasineutrality_method1 ( Plasma plasma,
View< double **, CLayout, DeviceType > &  density_adjustment 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correct_for_quasineutrality_method2()

void correct_for_quasineutrality_method2 ( Plasma plasma,
const View< double **, CLayout, DeviceType > &  total_density,
View< double **, CLayout, DeviceType > &  density_adjustment 
)
Here is the call graph for this function:

◆ flux_surface_average_moments()

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 
)
Here is the caller graph for this function:

◆ get_density_f0g_rho()

View<double**, CLayout, DeviceType> get_density_f0g_rho ( const Grid< DeviceType > &  grid,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Species< DeviceType > &  species 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_moments()

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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_toroidally_averaged_moments()

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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_total_density()

void get_total_density ( const DomainDecomposition< DeviceType > &  pol_decomp,
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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize_and_remove_adiabatic_term()

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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize_by_volume()

void normalize_by_volume ( const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove_adiabatic_response()

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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ smooth_and_filter()

void smooth_and_filter ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
Smoothing smoothing,
View< double **, CLayout, DeviceType > &  damped_delta 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_species_f0_deltas()

void update_species_f0_deltas ( const DomainDecomposition< DeviceType > &  pol_decomp,
Species< DeviceType > &  species,
const View< double *, CLayout, DeviceType > &  density_adjustment,
const View< double *, CLayout, DeviceType > &  flow_adjustment,
const View< double *, CLayout, DeviceType > &  energy_adjustment 
)
Here is the call graph for this function: