|
ARTEMIS
|
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... | |
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 | ( | 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.
| 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() |