WarpX
Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
PML Class Reference

#include <PML.H>

Public Member Functions

 PML (const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, const amrex::Geometry *geom, const amrex::Geometry *cgeom, int ncell, int delta, int ref_ratio, amrex::Real dt, int nox_fft, int noy_fft, int noz_fft, bool do_nodal, int do_dive_cleaning, int do_moving_window, int pml_has_particles, int do_pml_in_domain, const amrex::IntVect do_pml_Lo=amrex::IntVect::TheUnitVector(), const 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 ()
 
amrex::MultiFab * GetF_fp ()
 
amrex::MultiFab * GetF_cp ()
 
const MultiSigmaBoxGetMultiSigmaBox_fp () const
 
const MultiSigmaBoxGetMultiSigmaBox_cp () const
 
void PushPSATD ()
 
void ExchangeB (const std::array< amrex::MultiFab *, 3 > &B_fp, const std::array< amrex::MultiFab *, 3 > &B_cp, int do_pml_in_domain)
 
void ExchangeE (const std::array< amrex::MultiFab *, 3 > &E_fp, const std::array< amrex::MultiFab *, 3 > &E_cp, int do_pml_in_domain)
 
void CopyJtoPMLs (const std::array< amrex::MultiFab *, 3 > &j_fp, const std::array< amrex::MultiFab *, 3 > &j_cp)
 
void ExchangeB (PatchType patch_type, const std::array< amrex::MultiFab *, 3 > &Bp, int do_pml_in_domain)
 
void ExchangeE (PatchType patch_type, const std::array< amrex::MultiFab *, 3 > &Ep, 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 FillBoundary ()
 
void FillBoundaryE ()
 
void FillBoundaryB ()
 
void FillBoundaryF ()
 
void FillBoundaryE (PatchType patch_type)
 
void FillBoundaryB (PatchType patch_type)
 
void FillBoundaryF (PatchType patch_type)
 
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 &reg, const amrex::Geometry &geom, int do_pml_in_domain)
 

Static Private Member Functions

static amrex::BoxArray MakeBoxArray (const amrex::Geometry &geom, const amrex::BoxArray &grid_ba, int ncell, int do_pml_in_domain, const amrex::IntVect do_pml_Lo=amrex::IntVect::TheUnitVector(), const amrex::IntVect do_pml_Hi=amrex::IntVect::TheUnitVector())
 
static void CopyToPML (amrex::MultiFab &pml, amrex::MultiFab &reg, const amrex::Geometry &geom)
 

Private Attributes

bool m_ok
 
const amrex::Geometry * m_geom
 
const amrex::Geometry * m_cgeom
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_E_fp
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_B_fp
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_j_fp
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_E_cp
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_B_cp
 
std::array< std::unique_ptr< amrex::MultiFab >, 3 > pml_j_cp
 
std::unique_ptr< amrex::MultiFab > pml_F_fp
 
std::unique_ptr< amrex::MultiFab > pml_F_cp
 
std::unique_ptr< MultiSigmaBoxsigba_fp
 
std::unique_ptr< MultiSigmaBoxsigba_cp
 
std::unique_ptr< SpectralSolverspectral_solver_fp
 
std::unique_ptr< SpectralSolverspectral_solver_cp
 

Constructor & Destructor Documentation

◆ PML()

PML::PML ( const amrex::BoxArray &  ba,
const amrex::DistributionMapping &  dm,
const amrex::Geometry *  geom,
const amrex::Geometry *  cgeom,
int  ncell,
int  delta,
int  ref_ratio,
amrex::Real  dt,
int  nox_fft,
int  noy_fft,
int  noz_fft,
bool  do_nodal,
int  do_dive_cleaning,
int  do_moving_window,
int  pml_has_particles,
int  do_pml_in_domain,
const amrex::IntVect  do_pml_Lo = amrex::IntVect::TheUnitVector(),
const amrex::IntVect  do_pml_Hi = amrex::IntVect::TheUnitVector() 
)

Member Function Documentation

◆ CheckPoint()

void PML::CheckPoint ( const std::string &  dir) const

◆ ComputePMLFactors()

void PML::ComputePMLFactors ( amrex::Real  dt)

◆ CopyJtoPMLs() [1/2]

void PML::CopyJtoPMLs ( const std::array< amrex::MultiFab *, 3 > &  j_fp,
const std::array< amrex::MultiFab *, 3 > &  j_cp 
)

◆ CopyJtoPMLs() [2/2]

void PML::CopyJtoPMLs ( PatchType  patch_type,
const std::array< amrex::MultiFab *, 3 > &  jp 
)

◆ CopyToPML()

void PML::CopyToPML ( amrex::MultiFab &  pml,
amrex::MultiFab &  reg,
const amrex::Geometry &  geom 
)
staticprivate

◆ Exchange()

void PML::Exchange ( amrex::MultiFab &  pml,
amrex::MultiFab &  reg,
const amrex::Geometry &  geom,
int  do_pml_in_domain 
)
static

◆ ExchangeB() [1/2]

void PML::ExchangeB ( const std::array< amrex::MultiFab *, 3 > &  B_fp,
const std::array< amrex::MultiFab *, 3 > &  B_cp,
int  do_pml_in_domain 
)

◆ ExchangeB() [2/2]

void PML::ExchangeB ( PatchType  patch_type,
const std::array< amrex::MultiFab *, 3 > &  Bp,
int  do_pml_in_domain 
)

◆ ExchangeE() [1/2]

void PML::ExchangeE ( const std::array< amrex::MultiFab *, 3 > &  E_fp,
const std::array< amrex::MultiFab *, 3 > &  E_cp,
int  do_pml_in_domain 
)

◆ ExchangeE() [2/2]

void PML::ExchangeE ( PatchType  patch_type,
const std::array< amrex::MultiFab *, 3 > &  Ep,
int  do_pml_in_domain 
)

◆ ExchangeF() [1/2]

void PML::ExchangeF ( amrex::MultiFab *  F_fp,
amrex::MultiFab *  F_cp,
int  do_pml_in_domain 
)

◆ ExchangeF() [2/2]

void PML::ExchangeF ( PatchType  patch_type,
amrex::MultiFab *  Fp,
int  do_pml_in_domain 
)

◆ FillBoundary()

void PML::FillBoundary ( )

◆ FillBoundaryB() [1/2]

void PML::FillBoundaryB ( )

◆ FillBoundaryB() [2/2]

void PML::FillBoundaryB ( PatchType  patch_type)

◆ FillBoundaryE() [1/2]

void PML::FillBoundaryE ( )

◆ FillBoundaryE() [2/2]

void PML::FillBoundaryE ( PatchType  patch_type)

◆ FillBoundaryF() [1/2]

void PML::FillBoundaryF ( )

◆ FillBoundaryF() [2/2]

void PML::FillBoundaryF ( PatchType  patch_type)

◆ GetB_cp()

std::array< MultiFab *, 3 > PML::GetB_cp ( )

◆ GetB_fp()

std::array< MultiFab *, 3 > PML::GetB_fp ( )

◆ GetE_cp()

std::array< MultiFab *, 3 > PML::GetE_cp ( )

◆ GetE_fp()

std::array< MultiFab *, 3 > PML::GetE_fp ( )

◆ GetF_cp()

MultiFab * PML::GetF_cp ( )

◆ GetF_fp()

MultiFab * PML::GetF_fp ( )

◆ Getj_cp()

std::array< MultiFab *, 3 > PML::Getj_cp ( )

◆ Getj_fp()

std::array< MultiFab *, 3 > PML::Getj_fp ( )

◆ GetMultiSigmaBox_cp()

const MultiSigmaBox& PML::GetMultiSigmaBox_cp ( ) const
inline

◆ GetMultiSigmaBox_fp()

const MultiSigmaBox& PML::GetMultiSigmaBox_fp ( ) const
inline

◆ MakeBoxArray()

BoxArray PML::MakeBoxArray ( const amrex::Geometry &  geom,
const amrex::BoxArray &  grid_ba,
int  ncell,
int  do_pml_in_domain,
const amrex::IntVect  do_pml_Lo = amrex::IntVect::TheUnitVector(),
const amrex::IntVect  do_pml_Hi = amrex::IntVect::TheUnitVector() 
)
staticprivate

◆ ok()

bool PML::ok ( ) const
inline

◆ PushPSATD()

void PML::PushPSATD ( )

◆ Restart()

void PML::Restart ( const std::string &  dir)

Member Data Documentation

◆ m_cgeom

const amrex::Geometry* PML::m_cgeom
private

◆ m_geom

const amrex::Geometry* PML::m_geom
private

◆ m_ok

bool PML::m_ok
private

◆ pml_B_cp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_B_cp
private

◆ pml_B_fp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_B_fp
private

◆ pml_E_cp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_E_cp
private

◆ pml_E_fp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_E_fp
private

◆ pml_F_cp

std::unique_ptr<amrex::MultiFab> PML::pml_F_cp
private

◆ pml_F_fp

std::unique_ptr<amrex::MultiFab> PML::pml_F_fp
private

◆ pml_j_cp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_j_cp
private

◆ pml_j_fp

std::array<std::unique_ptr<amrex::MultiFab>,3> PML::pml_j_fp
private

◆ sigba_cp

std::unique_ptr<MultiSigmaBox> PML::sigba_cp
private

◆ sigba_fp

std::unique_ptr<MultiSigmaBox> PML::sigba_fp
private

◆ spectral_solver_cp

std::unique_ptr<SpectralSolver> PML::spectral_solver_cp
private

◆ spectral_solver_fp

std::unique_ptr<SpectralSolver> PML::spectral_solver_fp
private

The documentation for this class was generated from the following files: