XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
cpp_push.hpp File Reference
#include "cpp_sml.hpp"
#include "cpp_magnetic_field.hpp"
#include "cpp_grid.hpp"
#include "cpp_electric_field.hpp"
#include "cpp_species.hpp"
#include "cpp_perturbed_B_field.hpp"
#include "cpp_gen_perm.hpp"
#include "cpp_pushe_diagnostics.hpp"
#include "cpp_sheath.hpp"
#include "cpp_neutrals.hpp"
#include "cpp_charge.hpp"
#include "cpp_f0profile.hpp"
#include "cpp_domain_decomposition.hpp"
Include dependency graph for cpp_push.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<KinType KT>
void templated_push (const int ipc, const bool diag_on, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const TmpSpecies< DeviceType > &tmp_species, const ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const F0Profile< DeviceType > &f0profile, const Sheath< DeviceType > &sheath, const SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const GeneratePermutation< DeviceType > &gen_perm, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag)
 
void push (int ipc, int istep, int isp, bool diag_on, FortranPtr psn_fptr, FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, TmpSpecies< DeviceType > &tmp_species, ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const F0Profile< DeviceType > &f0profile, const Sheath< DeviceType > &sheath, SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const GeneratePermutation< DeviceType > &gen_perm, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag, const GeneratePermutation< DeviceType > &pid_gen_perm, const DomainDecomposition< DeviceType > &pol_decomp)
 
void copy_push_requisites_to_device (const Simulation< DeviceType > &sml, const PerturbedBField< DeviceType > &perturbed_B_field, const Sheath< DeviceType > &sheath, SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag)
 
void copy_push_updates_from_device (FortranPtr psn_fptr, const Simulation< DeviceType > &sml, const Species< DeviceType > &species, const TmpSpecies< DeviceType > &tmp_species, ElectricField< DeviceType > &electric_field, const Sheath< DeviceType > &sheath, const SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag)
 
void setup_sheath_mode_2 (SheathParticles< DeviceType > &sheath_particles, int n_tmp)
 
void copy_grid_fields_to_device (FortranPtr psn_fptr, ElectricField< DeviceType > &electric_field, int isp, bool electron_on)
 

Function Documentation

void copy_grid_fields_to_device ( FortranPtr  psn_fptr,
ElectricField< DeviceType > &  electric_field,
int  isp,
bool  electron_on 
)

Allocates the electric field on device (if XGC1; the XGCa arrays are smaller so never deallocated), then copies the field data from fortran arrays to the device views. Acts on the phi grids or the rho grids for electrons and ions respectively

Parameters
[in]psn_fptris the pointer to the Fortran psn object
[in,out]electric_fieldis the object containing the device fields
[in]ispis the species index
[in]electron_onis whether the electrons are kinetic; if not, then XGCa version copies the field when they are first needed (i.e. when the first ion is being pushed)
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

void copy_push_requisites_to_device ( const Simulation< DeviceType > &  sml,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Sheath< DeviceType > &  sheath,
SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void copy_push_updates_from_device ( FortranPtr  psn_fptr,
const Simulation< DeviceType > &  sml,
const Species< DeviceType > &  species,
const TmpSpecies< DeviceType > &  tmp_species,
ElectricField< DeviceType > &  electric_field,
const Sheath< DeviceType > &  sheath,
const SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void push ( int  ipc,
int  istep,
int  isp,
bool  diag_on,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
Species< DeviceType > &  species,
TmpSpecies< DeviceType > &  tmp_species,
ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const F0Profile< DeviceType > &  f0profile,
const Sheath< DeviceType > &  sheath,
SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const GeneratePermutation< DeviceType > &  gen_perm,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag,
const GeneratePermutation< DeviceType > &  pid_gen_perm,
const DomainDecomposition< DeviceType > &  pol_decomp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void setup_sheath_mode_2 ( SheathParticles< DeviceType > &  sheath_particles,
int  n_tmp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<KinType KT>
void templated_push ( const int  ipc,
const bool  diag_on,
const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const Species< DeviceType > &  species,
const TmpSpecies< DeviceType > &  tmp_species,
const ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const F0Profile< DeviceType > &  f0profile,
const Sheath< DeviceType > &  sheath,
const SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const GeneratePermutation< DeviceType > &  gen_perm,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the call graph for this function: