WarpX
|
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... | |
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.
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.
dt | time step |
dx | cell spacing |
do_subcycling | bool, whether to use subcycling |
do_fdtd_nci_corr | bool, whether to use Godfrey NCI corrector |
grid_type | integer, whether the grid is collocated or staggered |
do_moving_window | bool, whether to use moving window |
moving_window_dir | direction of moving window |
nox | order of current deposition |
nox_fft | order of PSATD in x direction |
noy_fft | order of PSATD in y direction |
noz_fft | order of PSATD in z direction |
nci_corr_stencil | stencil of NCI corrector |
electromagnetic_solver_id | Integer corresponding to the type of Maxwell solver |
max_level | max level of the simulation |
v_galilean | Velocity used in the Galilean PSATD scheme |
v_comoving | Velocity used in the comoving PSATD scheme |
safe_guard_cells | Run in safe mode, exchanging more guard cells, and more often in the PIC loop (for debugging). |
do_multi_J | Whether to use the multi-J PSATD scheme |
fft_do_time_averaging | Whether to average the E and B field in time (with PSATD) before interpolating them onto the macro-particles |
do_pml | whether pml is turned on (only used by RZ PSATD) |
do_pml_in_domain | whether pml is done in the domain (only used by RZ PSATD) |
pml_ncell | number of cells on the pml layer (only used by RZ PSATD) |
ref_ratios | mesh refinement ratios between mesh-refinement levels |
use_filter | whether filtering will be done |
bilinear_filter_stencil_length | the size of the stencil for filtering |
amrex::IntVect guardCellManager::ng_afterPushPSATD = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_alloc_EB = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_alloc_F = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_alloc_G = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_alloc_J = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_alloc_Rho = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_depos_J = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_depos_rho = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_FieldGather = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_FieldSolver = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_FieldSolverF = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_FieldSolverG = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_MovingWindow = amrex::IntVect::TheZeroVector() |
amrex::IntVect guardCellManager::ng_UpdateAux = amrex::IntVect::TheZeroVector() |