XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | List of all members
Simulation< Device > Class Template Reference

#include <sml.hpp>

Public Member Functions

 Simulation (NLReader::NamelistReader &nlr)
 

Public Attributes

const bool is_XGCa = true
 Equivalent to the preprocessor flag for now. More...
 
const bool reduced_deltaf = false
 Equivalent to the preprocessor flag for now. More...
 
const bool explicit_electromagnetic = false
 Equivalent to the preprocessor flag for now. More...
 
int bounce
 Bounce routine switch 0 for off, 1 for inner boundary, 2 for both boundaries. More...
 
int bounce_zero_weight
 If ==1 and bounce>0, set particle weights to zero after bouncing from the outer boundary. More...
 
double bounce_buffer
 Buffer width between sml_outpsi and where the particle actually bounces (must be >=0) More...
 
double dt
 Time step. More...
 
int ncycle_half
 Half the number of subcycles. More...
 
int sheath_mode
 Type of sheath (0 is none) More...
 
bool sheath_adjust
 Whether to adjust the sheath. More...
 
bool ptb_3db_on
 Toggle for ptb_3db. More...
 
bool drift_on
 Toggle for using drift. More...
 
bool neutrals
 Toggle for using neutrals. More...
 
bool diag_heat_on
 Use heat diagnostics in sheath. More...
 
bool deltaf
 Whether some species is deltaf. More...
 
bool xz_00_up
 Use upper region of xz when obtaining 00 mode. More...
 
int mstep
 Max number of time steps. More...
 
int nrk
 Order of Runge-Kutta time integration of particles + fields. More...
 
bool electron_on
 Use kinetic electrons. More...
 
bool f0_grid
 Whether to use f0 grid. More...
 
bool limit_marker_den
 Whether to limit marker density. More...
 
int special
 Special run (eg single particle, poincare) More...
 
int nthreads
 Number of OMP threads on the host. More...
 
int restart_write_period
 How many steps between restart writes. More...
 
bool field_solver_on =true
 If false, charge deposition and field solve is skipped. More...
 
bool split_weight_scheme
 Whether to use the split-weight scheme. More...
 
bool dwdt_fix_bg
 
bool dwdt_exb_only
 
int deltaf_f0_mode
 
double f0_1_Ln
 
double f0_1_Lt_e
 
bool em_mixed_variable
 Switch for use of mixed-variable formulation. More...
 
bool em_control_variate
 Switch for use of control variate method. More...
 
int em_pullback_mode
 
bool em_control_variate_final_cv
 
bool em_control_variate_flag
 
int em_control_variate_niter
 Number of iterations for Ampere solve with control-variate method. More...
 
bool em_b_para_eff
 Effective dB_|| via a modified grad-B drift (Joiner et al., PoP, 2010) More...
 
bool em_es_step
 
bool exclude_private
 Whether to exclude private region in ion charge deposition. More...
 
bool grad_psitheta
 
bool initial_flow
 Initial flow. More...
 
bool update_poisson_solver
 Whether poisson solver is updated. More...
 
double dpot_te_limit
 Max absolute value of dpot/temp in getf0. More...
 
bool no_fp_in_f
 
double f0_grid_alpha
 
int f0_grid_alpha_start
 
bool f0_update_analytic
 
bool diff_on
 
bool resamp_on
 Do resampling. More...
 
bool resamp_for_final_restart_write
 Perform resampling before dumping the final restart file. More...
 
bool resamp_restart_read
 Whether to read a restart file written from a simulation with different grid. More...
 
bool field_aligned_initial
 
bool flat_marker
 
double marker_temp_factor
 
double marker_temp_factor2
 
double marker_temp_factor3
 
double flat_marker_decay_start1
 
double flat_marker_decay_start2
 
double flat_marker_cutoff1
 
double flat_marker_cutoff2
 
double flat_marker_width1
 
double flat_marker_width2
 
double initial_deltaf_noise
 
double marker_min_temp
 
double low_mu_fill_population
 
double time
 Current simulation time. More...
 
int gstep
 Current time step. More...
 
bool multirate_timestepping
 Use multirate timestepping. More...
 
int mr_factor [5]
 
double mr_psi_max [5]
 maximum normalized psi value of each multirate region More...
 
int mstep_rmp_es
 
int mstep_rmp_em
 
int rmp_es_to_em_dt_ratio
 Ratio of EM to ES time step size in RMP penetration calculation. More...
 
bool cce_coupling_on
 Core-edge coupling flag. More...
 
bool use_unfused_electron_push_kernel
 

Constructor & Destructor Documentation

template<class Device >
Simulation< Device >::Simulation ( NLReader::NamelistReader nlr)

Constructor for simulation

Here is the call graph for this function:

Member Data Documentation

template<class Device>
int Simulation< Device >::bounce

Bounce routine switch 0 for off, 1 for inner boundary, 2 for both boundaries.

template<class Device>
double Simulation< Device >::bounce_buffer

Buffer width between sml_outpsi and where the particle actually bounces (must be >=0)

template<class Device>
int Simulation< Device >::bounce_zero_weight

If ==1 and bounce>0, set particle weights to zero after bouncing from the outer boundary.

template<class Device>
bool Simulation< Device >::cce_coupling_on

Core-edge coupling flag.

template<class Device>
bool Simulation< Device >::deltaf

Whether some species is deltaf.

template<class Device>
int Simulation< Device >::deltaf_f0_mode
template<class Device>
bool Simulation< Device >::diag_heat_on

Use heat diagnostics in sheath.

template<class Device>
bool Simulation< Device >::diff_on
template<class Device>
double Simulation< Device >::dpot_te_limit

Max absolute value of dpot/temp in getf0.

template<class Device>
bool Simulation< Device >::drift_on

Toggle for using drift.

template<class Device>
double Simulation< Device >::dt

Time step.

template<class Device>
bool Simulation< Device >::dwdt_exb_only
template<class Device>
bool Simulation< Device >::dwdt_fix_bg
template<class Device>
bool Simulation< Device >::electron_on

Use kinetic electrons.

template<class Device>
bool Simulation< Device >::em_b_para_eff

Effective dB_|| via a modified grad-B drift (Joiner et al., PoP, 2010)

template<class Device>
bool Simulation< Device >::em_control_variate

Switch for use of control variate method.

template<class Device>
bool Simulation< Device >::em_control_variate_final_cv
template<class Device>
bool Simulation< Device >::em_control_variate_flag
template<class Device>
int Simulation< Device >::em_control_variate_niter

Number of iterations for Ampere solve with control-variate method.

template<class Device>
bool Simulation< Device >::em_es_step

If true, the ES algorithm will be used within the EM code (details in XGC_core/module.F90)

template<class Device>
bool Simulation< Device >::em_mixed_variable

Switch for use of mixed-variable formulation.

template<class Device>
int Simulation< Device >::em_pullback_mode

(0) ??? (1) ??? (2) ??? (3) mixed-variable pullback with dA_s/dt=0, (4) pullback using Ohm's law dA_s/dt + b.grad(phi) = 0 (5) pullback using dA_s/dt + b.grad(phi) = -eta*j

template<class Device>
bool Simulation< Device >::exclude_private

Whether to exclude private region in ion charge deposition.

template<class Device>
const bool Simulation< Device >::explicit_electromagnetic = false

Equivalent to the preprocessor flag for now.

template<class Device>
double Simulation< Device >::f0_1_Ln
template<class Device>
double Simulation< Device >::f0_1_Lt_e
template<class Device>
bool Simulation< Device >::f0_grid

Whether to use f0 grid.

template<class Device>
double Simulation< Device >::f0_grid_alpha

Fraction of the particle weight that is transferred to the background distribution function (particle noise control) every sml_f_source_period time steps. As a rule of thumb, sml_f0_grid_alpha=sml_dt*sml_f_source_period can be used.

template<class Device>
int Simulation< Device >::f0_grid_alpha_start

For delayed onset of total-f particle noise control. (must be >=1) Values >1 cause a linear ramp-up of sml_f0_grid_alpha from 0 to its input value from time step 1 to sml_f0_grid_alpha_start.

template<class Device>
bool Simulation< Device >::f0_update_analytic
template<class Device>
bool Simulation< Device >::field_aligned_initial
template<class Device>
bool Simulation< Device >::field_solver_on =true

If false, charge deposition and field solve is skipped.

template<class Device>
bool Simulation< Device >::flat_marker
template<class Device>
double Simulation< Device >::flat_marker_cutoff1
template<class Device>
double Simulation< Device >::flat_marker_cutoff2
template<class Device>
double Simulation< Device >::flat_marker_decay_start1
template<class Device>
double Simulation< Device >::flat_marker_decay_start2
template<class Device>
double Simulation< Device >::flat_marker_width1
template<class Device>
double Simulation< Device >::flat_marker_width2
template<class Device>
bool Simulation< Device >::grad_psitheta

If true, gradiant operator is calculated as \((\hat{\boldsymbol{\psi}}\cdot\nabla,\hat{\boldsymbol{\theta}}^\ast)\cdot\nabla\) instead of \((R,Z)\) coordinates.

template<class Device>
int Simulation< Device >::gstep

Current time step.

template<class Device>
double Simulation< Device >::initial_deltaf_noise
template<class Device>
bool Simulation< Device >::initial_flow

Initial flow.

template<class Device>
const bool Simulation< Device >::is_XGCa = true

Equivalent to the preprocessor flag for now.

template<class Device>
bool Simulation< Device >::limit_marker_den

Whether to limit marker density.

template<class Device>
double Simulation< Device >::low_mu_fill_population
template<class Device>
double Simulation< Device >::marker_min_temp
template<class Device>
double Simulation< Device >::marker_temp_factor
template<class Device>
double Simulation< Device >::marker_temp_factor2
template<class Device>
double Simulation< Device >::marker_temp_factor3
template<class Device>
int Simulation< Device >::mr_factor[5]

multirate timestepping for core region ions; mr_ratio (> 1) is the factor used to accelerate the core region physics.

template<class Device>
double Simulation< Device >::mr_psi_max[5]

maximum normalized psi value of each multirate region

template<class Device>
int Simulation< Device >::mstep

Max number of time steps.

template<class Device>
int Simulation< Device >::mstep_rmp_em

Number of electromagnetic time steps for RMP penetration calculation with damped Newton iteration

template<class Device>
int Simulation< Device >::mstep_rmp_es

Number of electrostatic time steps for RMP penetration calculation with damped Newton iteration

template<class Device>
bool Simulation< Device >::multirate_timestepping

Use multirate timestepping.

template<class Device>
int Simulation< Device >::ncycle_half

Half the number of subcycles.

template<class Device>
bool Simulation< Device >::neutrals

Toggle for using neutrals.

template<class Device>
bool Simulation< Device >::no_fp_in_f

If .true. the distribution function used for the source routines will not include particle information (only for testing)

template<class Device>
int Simulation< Device >::nrk

Order of Runge-Kutta time integration of particles + fields.

template<class Device>
int Simulation< Device >::nthreads

Number of OMP threads on the host.

template<class Device>
bool Simulation< Device >::ptb_3db_on

Toggle for ptb_3db.

template<class Device>
const bool Simulation< Device >::reduced_deltaf = false

Equivalent to the preprocessor flag for now.

template<class Device>
bool Simulation< Device >::resamp_for_final_restart_write

Perform resampling before dumping the final restart file.

template<class Device>
bool Simulation< Device >::resamp_on

Do resampling.

template<class Device>
bool Simulation< Device >::resamp_restart_read

Whether to read a restart file written from a simulation with different grid.

template<class Device>
int Simulation< Device >::restart_write_period

How many steps between restart writes.

template<class Device>
int Simulation< Device >::rmp_es_to_em_dt_ratio

Ratio of EM to ES time step size in RMP penetration calculation.

template<class Device>
bool Simulation< Device >::sheath_adjust

Whether to adjust the sheath.

template<class Device>
int Simulation< Device >::sheath_mode

Type of sheath (0 is none)

template<class Device>
int Simulation< Device >::special

Special run (eg single particle, poincare)

template<class Device>
bool Simulation< Device >::split_weight_scheme

Whether to use the split-weight scheme.

template<class Device>
double Simulation< Device >::time

Current simulation time.

template<class Device>
bool Simulation< Device >::update_poisson_solver

Whether poisson solver is updated.

template<class Device>
bool Simulation< Device >::use_unfused_electron_push_kernel
template<class Device>
bool Simulation< Device >::xz_00_up

Use upper region of xz when obtaining 00 mode.


The documentation for this class was generated from the following files: