WarpX
Loading...
Searching...
No Matches
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, const amrex::Real *dx, bool do_subcycling, bool do_fdtd_nci_corr, ablastr::utils::enums::GridType grid_type, bool do_moving_window, int moving_window_dir, int particle_max_grid_crossings, int nox, int nox_fft, int noy_fft, int noz_fft, int nci_corr_stencil, ElectromagneticSolverAlgo electromagnetic_solver_id, EvolveScheme evolve_scheme, int max_level, const amrex::Vector< amrex::Real > &v_galilean, const amrex::Vector< amrex::Real > &v_comoving, bool safe_guard_cells, int do_psatd_JRhom, 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.
 

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,
const amrex::Real * dx,
bool do_subcycling,
bool do_fdtd_nci_corr,
ablastr::utils::enums::GridType grid_type,
bool do_moving_window,
int moving_window_dir,
int particle_max_grid_crossings,
int nox,
int nox_fft,
int noy_fft,
int noz_fft,
int nci_corr_stencil,
ElectromagneticSolverAlgo electromagnetic_solver_id,
EvolveScheme evolve_scheme,
int max_level,
const amrex::Vector< amrex::Real > & v_galilean,
const amrex::Vector< amrex::Real > & v_comoving,
bool safe_guard_cells,
int do_psatd_JRhom,
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
particle_max_grid_crossingsmaximum number of grid crossings for particles
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
evolve_schemeThe evolve scheme, whether it's explicit or implicit
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_psatd_JRhomWhether to use the PSATD-JRhom 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: