WarpX
|
#include <PML.H>
Public Member Functions | |
PML (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, bool do_similar_dm_pml, const amrex::Geometry *geom, const amrex::Geometry *cgeom, int ncell, int delta, amrex::IntVect ref_ratio, amrex::Real dt, int nox_fft, int noy_fft, int noz_fft, short grid_type, int do_moving_window, int pml_has_particles, int do_pml_in_domain, int psatd_solution_type, int J_in_time, int rho_in_time, bool do_pml_dive_cleaning, bool do_pml_divb_cleaning, const amrex::IntVect &fill_guards_fields, const amrex::IntVect &fill_guards_current, int max_guard_EB, amrex::Real v_sigma_sb, amrex::IntVect do_pml_Lo=amrex::IntVect::TheUnitVector(), amrex::IntVect do_pml_Hi=amrex::IntVect::TheUnitVector()) | |
void | ComputePMLFactors (amrex::Real dt) |
std::array< amrex::MultiFab *, 3 > | GetE_fp () |
std::array< amrex::MultiFab *, 3 > | GetB_fp () |
std::array< amrex::MultiFab *, 3 > | Getj_fp () |
std::array< amrex::MultiFab *, 3 > | GetE_cp () |
std::array< amrex::MultiFab *, 3 > | GetB_cp () |
std::array< amrex::MultiFab *, 3 > | Getj_cp () |
std::array< amrex::MultiFab *, 3 > | Get_edge_lengths () |
std::array< amrex::MultiFab *, 3 > | Get_face_areas () |
amrex::MultiFab * | GetF_fp () |
amrex::MultiFab * | GetF_cp () |
amrex::MultiFab * | GetG_fp () |
amrex::MultiFab * | GetG_cp () |
const MultiSigmaBox & | GetMultiSigmaBox_fp () const |
const MultiSigmaBox & | GetMultiSigmaBox_cp () const |
void | PushPSATD (int lev) |
void | CopyJtoPMLs (const std::array< amrex::MultiFab *, 3 > &j_fp, const std::array< amrex::MultiFab *, 3 > &j_cp) |
void | Exchange (const std::array< amrex::MultiFab *, 3 > &mf_pml, const std::array< amrex::MultiFab *, 3 > &mf, const PatchType &patch_type, int do_pml_in_domain) |
void | CopyJtoPMLs (PatchType patch_type, const std::array< amrex::MultiFab *, 3 > &jp) |
void | ExchangeF (amrex::MultiFab *F_fp, amrex::MultiFab *F_cp, int do_pml_in_domain) |
void | ExchangeF (PatchType patch_type, amrex::MultiFab *Fp, int do_pml_in_domain) |
void | ExchangeG (amrex::MultiFab *G_fp, amrex::MultiFab *G_cp, int do_pml_in_domain) |
void | ExchangeG (PatchType patch_type, amrex::MultiFab *Gp, int do_pml_in_domain) |
void | FillBoundaryE (PatchType patch_type, std::optional< bool > nodal_sync=std::nullopt) |
void | FillBoundaryB (PatchType patch_type, std::optional< bool > nodal_sync=std::nullopt) |
void | FillBoundaryF (PatchType patch_type, std::optional< bool > nodal_sync=std::nullopt) |
void | FillBoundaryG (PatchType patch_type, std::optional< bool > nodal_sync=std::nullopt) |
bool | ok () const |
void | CheckPoint (const std::string &dir) const |
void | Restart (const std::string &dir) |
Static Public Member Functions | |
static void | Exchange (amrex::MultiFab &pml, amrex::MultiFab ®, const amrex::Geometry &geom, int do_pml_in_domain) |
Private Member Functions | |
amrex::FabFactory< amrex::FArrayBox > const & | fieldFactory () const noexcept |
Static Private Member Functions | |
static amrex::BoxArray | MakeBoxArray (bool single_box_domain, const amrex::Box ®ular_domain, const amrex::Geometry &geom, const amrex::BoxArray &grid_ba, const amrex::IntVect &ncell, int do_pml_in_domain, const amrex::IntVect &do_pml_Lo, const amrex::IntVect &do_pml_Hi) |
static amrex::BoxArray | MakeBoxArray_single (const amrex::Box ®ular_domain, const amrex::BoxArray &grid_ba, const amrex::IntVect &ncell, const amrex::IntVect &do_pml_Lo, const amrex::IntVect &do_pml_Hi) |
static amrex::BoxArray | MakeBoxArray_multiple (const amrex::Geometry &geom, const amrex::BoxArray &grid_ba, const amrex::IntVect &ncell, int do_pml_in_domain, const amrex::IntVect &do_pml_Lo, const amrex::IntVect &do_pml_Hi) |
static void | CopyToPML (amrex::MultiFab &pml, amrex::MultiFab ®, const amrex::Geometry &geom) |
PML::PML | ( | int | lev, |
const amrex::BoxArray & | ba, | ||
const amrex::DistributionMapping & | dm, | ||
bool | do_similar_dm_pml, | ||
const amrex::Geometry * | geom, | ||
const amrex::Geometry * | cgeom, | ||
int | ncell, | ||
int | delta, | ||
amrex::IntVect | ref_ratio, | ||
amrex::Real | dt, | ||
int | nox_fft, | ||
int | noy_fft, | ||
int | noz_fft, | ||
short | grid_type, | ||
int | do_moving_window, | ||
int | pml_has_particles, | ||
int | do_pml_in_domain, | ||
int | psatd_solution_type, | ||
int | J_in_time, | ||
int | rho_in_time, | ||
bool | do_pml_dive_cleaning, | ||
bool | do_pml_divb_cleaning, | ||
const amrex::IntVect & | fill_guards_fields, | ||
const amrex::IntVect & | fill_guards_current, | ||
int | max_guard_EB, | ||
amrex::Real | v_sigma_sb, | ||
amrex::IntVect | do_pml_Lo = amrex::IntVect::TheUnitVector() , |
||
amrex::IntVect | do_pml_Hi = amrex::IntVect::TheUnitVector() |
||
) |
void PML::CheckPoint | ( | const std::string & | dir | ) | const |
void PML::ComputePMLFactors | ( | amrex::Real | dt | ) |
void PML::CopyJtoPMLs | ( | const std::array< amrex::MultiFab *, 3 > & | j_fp, |
const std::array< amrex::MultiFab *, 3 > & | j_cp | ||
) |
void PML::CopyJtoPMLs | ( | PatchType | patch_type, |
const std::array< amrex::MultiFab *, 3 > & | jp | ||
) |
|
staticprivate |
|
static |
void PML::Exchange | ( | const std::array< amrex::MultiFab *, 3 > & | mf_pml, |
const std::array< amrex::MultiFab *, 3 > & | mf, | ||
const PatchType & | patch_type, | ||
int | do_pml_in_domain | ||
) |
void PML::ExchangeF | ( | amrex::MultiFab * | F_fp, |
amrex::MultiFab * | F_cp, | ||
int | do_pml_in_domain | ||
) |
void PML::ExchangeF | ( | PatchType | patch_type, |
amrex::MultiFab * | Fp, | ||
int | do_pml_in_domain | ||
) |
void PML::ExchangeG | ( | amrex::MultiFab * | G_fp, |
amrex::MultiFab * | G_cp, | ||
int | do_pml_in_domain | ||
) |
void PML::ExchangeG | ( | PatchType | patch_type, |
amrex::MultiFab * | Gp, | ||
int | do_pml_in_domain | ||
) |
|
inlineprivatenoexcept |
void PML::FillBoundaryB | ( | PatchType | patch_type, |
std::optional< bool > | nodal_sync = std::nullopt |
||
) |
void PML::FillBoundaryE | ( | PatchType | patch_type, |
std::optional< bool > | nodal_sync = std::nullopt |
||
) |
void PML::FillBoundaryF | ( | PatchType | patch_type, |
std::optional< bool > | nodal_sync = std::nullopt |
||
) |
void PML::FillBoundaryG | ( | PatchType | patch_type, |
std::optional< bool > | nodal_sync = std::nullopt |
||
) |
std::array< MultiFab *, 3 > PML::Get_edge_lengths | ( | ) |
std::array<amrex::MultiFab*,3> PML::Get_face_areas | ( | ) |
std::array< MultiFab *, 3 > PML::GetB_cp | ( | ) |
std::array< MultiFab *, 3 > PML::GetB_fp | ( | ) |
std::array< MultiFab *, 3 > PML::GetE_cp | ( | ) |
std::array< MultiFab *, 3 > PML::GetE_fp | ( | ) |
MultiFab * PML::GetF_cp | ( | ) |
MultiFab * PML::GetF_fp | ( | ) |
MultiFab * PML::GetG_cp | ( | ) |
MultiFab * PML::GetG_fp | ( | ) |
std::array< MultiFab *, 3 > PML::Getj_cp | ( | ) |
std::array< MultiFab *, 3 > PML::Getj_fp | ( | ) |
|
inline |
|
inline |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
inline |
void PML::PushPSATD | ( | int | lev | ) |
void PML::Restart | ( | const std::string & | dir | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |