XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
push.cpp File Reference
#include "timer_macro.hpp"
#include "globals.hpp"
#include "particles.hpp"
#include "sort.hpp"
#include "push_algorithm.hpp"
#include "send_particles.hpp"
#include "send_grid_fields.hpp"
#include "push.hpp"
Include dependency graph for push.cpp:

Functions

void get_diag_heat_pv (double **heat_pv, double **heat_pv_psi)
 
void get_diag_heat_pv_psi2 (double **heat_pv_psi2)
 
void get_sheath_pot (double **pot_in)
 
void get_sheath_en_max (double **sheath_en_max_in, int *grid_nwall_in, int *sheath_nphi_in, int *n_threads)
 
void get_ptb_3db_arrays (PertVec **ptb_3db_bfield_re, PertVec **ptb_3db_bfield_im, PertVec **ptb_3db_bfield_re_vac, PertVec **ptb_3db_bfield_im_vac)
 
void get_diag_1d_f_pv1 (double **diag_1d_f_pv1_in)
 
void get_diag_1d_df_pv1 (double **diag_1d_df_pv1_in)
 
void copy_sheath_from_device (double *lost_out, double *ilost_out)
 
void copy_neutrals_from_device (double *weight_sum_lost_out, double *weight_wall_lost_out)
 
void copy_heat_diagnostics1_from_device (double *heat_pv_out, double *heat_pv_psi_out)
 
void copy_heat_diagnostics2_from_device (double *heat_pv_psi2_out)
 
void copy_sheath_mode2_from_device (SheathVec *ptl_ph_back, SheathVec *ptl_ph_out, int n_electrons)
 
void get_sheath_mode2 (int **sheath_ptl_widx_in, int **sheath_ptl_iphi_in, double **sheath_ptl_en_para_in, double **sheath_ptl_en_perp_in, double **sheath_en_max_in)
 
void copy_diag_1d_f_pv1_from_device (double *d1d_f_pv1_out)
 
void copy_diag_1d_df_pv1_from_device (double *d1d_df_pv1_out)
 
void copy_adj_eden_rad_flux_from_device (int *psn_fptr, double *adj_eden_rad_flux_out, int kernel_nthreads, int npsi)
 
void copy_adj_eden_wall_loss_from_device (int *psn_fptr, double *adj_eden_wall_loss_out, int kernel_nthreads, int npsi)
 
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 Sheath< DeviceType > &sheath, const SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const SortViews< DeviceType > &sort_views, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag)
 
template void templated_push< DriftKin > (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 Sheath< DeviceType > &sheath, const SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const SortViews< DeviceType > &sort_views, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag)
 
template void templated_push< GyroKin > (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 Sheath< DeviceType > &sheath, const SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const SortViews< DeviceType > &sort_views, 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 Sheath< DeviceType > &sheath, SheathParticles< DeviceType > &sheath_particles, const Neutrals< DeviceType > &neutrals, const SortViews< DeviceType > &sort_views, const Diagnostics< DeviceType > &diag, const Charge< DeviceType > &charge, const HeatDiagnostics< DeviceType > &heat_diag, const DomainDecomposition< DeviceType > &pol_decomp)
 
void setup_sheath_mode_2 (SheathParticles< DeviceType > &sheath_particles, int n_tmp)
 
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_grid_fields_to_device (FortranPtr psn_fptr, ElectricField< DeviceType > &electric_field, int isp, bool electron_on)
 
void copy_push_updates_from_device (FortranPtr psn_fptr, const Simulation< DeviceType > &sml, 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 push_all_species (int ipc, int istep, bool diag_on, FortranPtr psn_fptr, FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Plasma &plasma, ElectricField< DeviceType > &electric_field, 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, const DomainDecomposition< DeviceType > &pol_decomp)
 

Function Documentation

void copy_adj_eden_rad_flux_from_device ( int *  psn_fptr,
double *  adj_eden_rad_flux_out,
int  kernel_nthreads,
int  npsi 
)

Here is the caller graph for this function:

void copy_adj_eden_wall_loss_from_device ( int *  psn_fptr,
double *  adj_eden_wall_loss_out,
int  kernel_nthreads,
int  npsi 
)

Here is the caller graph for this function:

void copy_diag_1d_df_pv1_from_device ( double *  d1d_df_pv1_out)

Here is the caller graph for this function:

void copy_diag_1d_f_pv1_from_device ( double *  d1d_f_pv1_out)

Here is the caller graph for this function:

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_heat_diagnostics1_from_device ( double *  heat_pv_out,
double *  heat_pv_psi_out 
)

Here is the caller graph for this function:

void copy_heat_diagnostics2_from_device ( double *  heat_pv_psi2_out)

Here is the caller graph for this function:

void copy_neutrals_from_device ( double *  weight_sum_lost_out,
double *  weight_wall_lost_out 
)

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 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 copy_sheath_from_device ( double *  lost_out,
double *  ilost_out 
)

Here is the caller graph for this function:

void copy_sheath_mode2_from_device ( SheathVec ptl_ph_back,
SheathVec ptl_ph_out,
int  n_electrons 
)

Here is the caller graph for this function:

void get_diag_1d_df_pv1 ( double **  diag_1d_df_pv1_in)
void get_diag_1d_f_pv1 ( double **  diag_1d_f_pv1_in)
void get_diag_heat_pv ( double **  heat_pv,
double **  heat_pv_psi 
)

Here is the caller graph for this function:

void get_diag_heat_pv_psi2 ( double **  heat_pv_psi2)

Here is the caller graph for this function:

void get_ptb_3db_arrays ( PertVec **  ptb_3db_bfield_re,
PertVec **  ptb_3db_bfield_im,
PertVec **  ptb_3db_bfield_re_vac,
PertVec **  ptb_3db_bfield_im_vac 
)

Here is the caller graph for this function:

void get_sheath_en_max ( double **  sheath_en_max_in,
int *  grid_nwall_in,
int *  sheath_nphi_in,
int *  n_threads 
)

Here is the caller graph for this function:

void get_sheath_mode2 ( int **  sheath_ptl_widx_in,
int **  sheath_ptl_iphi_in,
double **  sheath_ptl_en_para_in,
double **  sheath_ptl_en_perp_in,
double **  sheath_en_max_in 
)

Here is the caller graph for this function:

void get_sheath_pot ( double **  pot_in)
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 Sheath< DeviceType > &  sheath,
SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const SortViews< DeviceType > &  sort_views,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag,
const DomainDecomposition< DeviceType > &  pol_decomp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void push_all_species ( int  ipc,
int  istep,
bool  diag_on,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
Plasma plasma,
ElectricField< DeviceType > &  electric_field,
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,
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 Sheath< DeviceType > &  sheath,
const SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const SortViews< DeviceType > &  sort_views,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the call graph for this function:

template void templated_push< DriftKin > ( 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 Sheath< DeviceType > &  sheath,
const SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const SortViews< DeviceType > &  sort_views,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the caller graph for this function:

template void templated_push< GyroKin > ( 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 Sheath< DeviceType > &  sheath,
const SheathParticles< DeviceType > &  sheath_particles,
const Neutrals< DeviceType > &  neutrals,
const SortViews< DeviceType > &  sort_views,
const Diagnostics< DeviceType > &  diag,
const Charge< DeviceType > &  charge,
const HeatDiagnostics< DeviceType > &  heat_diag 
)

Here is the caller graph for this function: