ARTEMIS
Public Member Functions | Public Attributes | List of all members
guardCellManager Class Reference

This class computes and stores the number of guard cells needed for the allocation of the MultiFabs and required for each part of the PIC loop. More...

#include <GuardCellManager.H>

Public Member Functions

void Init (const amrex::Real dt, const amrex::RealVect dx, const bool do_subcycling, const bool do_fdtd_nci_corr, const short grid_type, const bool do_moving_window, const int moving_window_dir, const int nox, const int nox_fft, const int noy_fft, const int noz_fft, const int nci_corr_stencil, const int electromagnetic_solver_id, const int max_level, const amrex::Vector< amrex::Real > v_galilean, const amrex::Vector< amrex::Real > v_comoving, const bool safe_guard_cells, const int do_multi_J, const bool fft_do_time_averaging, const bool do_pml, const int do_pml_in_domain, const int pml_ncell, const amrex::Vector< amrex::IntVect > &ref_ratios, const bool use_filter, const amrex::IntVect &bilinear_filter_stencil_length)
 Initialize number of guard cells depending on the options used. More...
 

Public Attributes

amrex::IntVect ng_alloc_EB = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_alloc_J = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_alloc_Rho = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_alloc_F = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_alloc_G = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_FieldSolver = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_FieldSolverF = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_FieldSolverG = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_FieldGather = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_UpdateAux = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_MovingWindow = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_afterPushPSATD = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_depos_J = amrex::IntVect::TheZeroVector()
 
amrex::IntVect ng_depos_rho = amrex::IntVect::TheZeroVector()
 

Detailed Description

This class computes and stores the number of guard cells needed for the allocation of the MultiFabs and required for each part of the PIC loop.

Member Function Documentation

◆ Init()

void guardCellManager::Init ( const amrex::Real  dt,
const amrex::RealVect  dx,
const bool  do_subcycling,
const bool  do_fdtd_nci_corr,
const short  grid_type,
const bool  do_moving_window,
const int  moving_window_dir,
const int  nox,
const int  nox_fft,
const int  noy_fft,
const int  noz_fft,
const int  nci_corr_stencil,
const int  electromagnetic_solver_id,
const int  max_level,
const amrex::Vector< amrex::Real >  v_galilean,
const amrex::Vector< amrex::Real >  v_comoving,
const bool  safe_guard_cells,
const int  do_multi_J,
const bool  fft_do_time_averaging,
const bool  do_pml,
const int  do_pml_in_domain,
const int  pml_ncell,
const amrex::Vector< amrex::IntVect > &  ref_ratios,
const bool  use_filter,
const amrex::IntVect bilinear_filter_stencil_length 
)

Initialize number of guard cells depending on the options used.

Parameters
dttime step
dxcell spacing
do_subcyclingbool, whether to use subcycling
do_fdtd_nci_corrbool, whether to use Godfrey NCI corrector
grid_typeinteger, whether the grid is collocated or staggered
do_moving_windowbool, whether to use moving window
moving_window_dirdirection of moving window
noxorder of current deposition
nox_fftorder of PSATD in x direction
noy_fftorder of PSATD in y direction
noz_fftorder of PSATD in z direction
nci_corr_stencilstencil of NCI corrector
electromagnetic_solver_idInteger corresponding to the type of Maxwell solver
max_levelmax level of the simulation
v_galileanVelocity used in the Galilean PSATD scheme
v_comovingVelocity used in the comoving PSATD scheme
safe_guard_cellsRun in safe mode, exchanging more guard cells, and more often in the PIC loop (for debugging).
do_multi_JWhether to use the multi-J PSATD scheme
fft_do_time_averagingWhether to average the E and B field in time (with PSATD) before interpolating them onto the macro-particles
do_pmlwhether pml is turned on (only used by RZ PSATD)
do_pml_in_domainwhether pml is done in the domain (only used by RZ PSATD)
pml_ncellnumber of cells on the pml layer (only used by RZ PSATD)
ref_ratiosmesh refinement ratios between mesh-refinement levels
use_filterwhether filtering will be done
bilinear_filter_stencil_lengththe size of the stencil for filtering

Member Data Documentation

◆ ng_afterPushPSATD

amrex::IntVect guardCellManager::ng_afterPushPSATD = amrex::IntVect::TheZeroVector()

◆ ng_alloc_EB

amrex::IntVect guardCellManager::ng_alloc_EB = amrex::IntVect::TheZeroVector()

◆ ng_alloc_F

amrex::IntVect guardCellManager::ng_alloc_F = amrex::IntVect::TheZeroVector()

◆ ng_alloc_G

amrex::IntVect guardCellManager::ng_alloc_G = amrex::IntVect::TheZeroVector()

◆ ng_alloc_J

amrex::IntVect guardCellManager::ng_alloc_J = amrex::IntVect::TheZeroVector()

◆ ng_alloc_Rho

amrex::IntVect guardCellManager::ng_alloc_Rho = amrex::IntVect::TheZeroVector()

◆ ng_depos_J

amrex::IntVect guardCellManager::ng_depos_J = amrex::IntVect::TheZeroVector()

◆ ng_depos_rho

amrex::IntVect guardCellManager::ng_depos_rho = amrex::IntVect::TheZeroVector()

◆ ng_FieldGather

amrex::IntVect guardCellManager::ng_FieldGather = amrex::IntVect::TheZeroVector()

◆ ng_FieldSolver

amrex::IntVect guardCellManager::ng_FieldSolver = amrex::IntVect::TheZeroVector()

◆ ng_FieldSolverF

amrex::IntVect guardCellManager::ng_FieldSolverF = amrex::IntVect::TheZeroVector()

◆ ng_FieldSolverG

amrex::IntVect guardCellManager::ng_FieldSolverG = amrex::IntVect::TheZeroVector()

◆ ng_MovingWindow

amrex::IntVect guardCellManager::ng_MovingWindow = amrex::IntVect::TheZeroVector()

◆ ng_UpdateAux

amrex::IntVect guardCellManager::ng_UpdateAux = amrex::IntVect::TheZeroVector()

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