WarpX
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 (amrex::Real dt, amrex::RealVect dx, bool do_subcycling, bool do_fdtd_nci_corr, short grid_type, bool do_moving_window, int moving_window_dir, int nox, int nox_fft, int noy_fft, int noz_fft, int nci_corr_stencil, int electromagnetic_solver_id, int max_level, const amrex::Vector< amrex::Real > &v_galilean, const amrex::Vector< amrex::Real > &v_comoving, bool safe_guard_cells, int do_multi_J, bool fft_do_time_averaging, bool do_pml, int do_pml_in_domain, int pml_ncell, const amrex::Vector< amrex::IntVect > &ref_ratios, 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 ( amrex::Real  dt,
amrex::RealVect  dx,
bool  do_subcycling,
bool  do_fdtd_nci_corr,
short  grid_type,
bool  do_moving_window,
int  moving_window_dir,
int  nox,
int  nox_fft,
int  noy_fft,
int  noz_fft,
int  nci_corr_stencil,
int  electromagnetic_solver_id,
int  max_level,
const amrex::Vector< amrex::Real > &  v_galilean,
const amrex::Vector< amrex::Real > &  v_comoving,
bool  safe_guard_cells,
int  do_multi_J,
bool  fft_do_time_averaging,
bool  do_pml,
int  do_pml_in_domain,
int  pml_ncell,
const amrex::Vector< amrex::IntVect > &  ref_ratios,
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: