WarpX
Loading...
Searching...
No Matches
MultiSigmaBox Class Reference

#include <PML.H>

Inheritance diagram for MultiSigmaBox:
amrex::FabArray< SigmaBox > amrex::FabArrayBase

Public Member Functions

 MultiSigmaBox (const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, const amrex::BoxArray *grid_ba, const amrex::Real *dx, const amrex::IntVect &ncell, const amrex::IntVect &delta, const amrex::Box &regular_domain, amrex::Real v_sigma_sb)
void ComputePMLFactorsB (const amrex::Real *dx, amrex::Real dt)
void ComputePMLFactorsE (const amrex::Real *dx, amrex::Real dt)
Public Member Functions inherited from amrex::FabArray< SigmaBox >
 FabArray () noexcept
 ~FabArray ()
FabArray< FAB > & operator= (FabArray< FAB > &&rhs) noexcept
void define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow, const MFInfo &info=MFInfo(), const FabFactory< FAB > &factory=DefaultFabFactory< FAB >())
const FabFactory< FAB > & Factory () const noexcept
Arenaarena () const noexcept
const Vector< std::string > & tags () const noexcept
bool hasEBFabFactory () const noexcept
value_typesingleChunkPtr () noexcept
std::size_t singleChunkSize () const noexcept
bool isAllRegular () const noexcept
bool ok () const
bool isDefined () const
const FAB & operator[] (const MFIter &mfi) const noexcept
const FAB & get (const MFIter &mfi) const noexcept
FAB & atLocalIdx (int L) noexcept
FAB * fabPtr (const MFIter &mfi) noexcept
void prefetchToHost (const MFIter &mfi) const noexcept
void prefetchToDevice (const MFIter &mfi) const noexcept
Array4< typename FabArray< FAB >::value_type const > array (const MFIter &mfi) const noexcept
Array4< typename FabArray< FAB >::value_type const > const_array (const MFIter &mfi) const noexcept
MultiArray4< typename FabArray< FAB >::value_typearrays () noexcept
MultiArray4< typename FabArray< FAB >::value_type const > const_arrays () const noexcept
void setFab (int boxno, std::unique_ptr< FAB > elem)
FAB * release (int K)
void clear ()
void LocalCopy (FabArray< SFAB > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
void LocalAdd (FabArray< FAB > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
void setVal (value_type val)
void abs (int comp, int ncomp, int nghost=0)
void plus (value_type val, int comp, int num_comp, int nghost=0)
void mult (value_type val, int comp, int num_comp, int nghost=0)
void invert (value_type numerator, int comp, int num_comp, int nghost=0)
void setBndry (value_type val)
void setDomainBndry (value_type val, const Geometry &geom)
void capacityOfFabs (LayoutData< I > &mem) const
F::value_type sum (int comp, IntVect const &nghost, bool local=false) const
void ParallelAdd (const FabArray< FAB > &src, const Periodicity &period=Periodicity::NonPeriodic())
void ParallelCopy (const FabArray< FAB > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY)
void copy (const FabArray< FAB > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY)
void ParallelAdd_nowait (const FabArray< FAB > &src, const Periodicity &period=Periodicity::NonPeriodic())
void ParallelCopy_nowait (const FabArray< FAB > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY)
void ParallelCopy_finish ()
void ParallelCopyToGhost (const FabArray< FAB > &src, int scomp, int dcomp, int ncomp, const IntVect &snghost, const IntVect &dnghost, const Periodicity &period=Periodicity::NonPeriodic())
void ParallelCopyToGhost_nowait (const FabArray< FAB > &src, int scomp, int dcomp, int ncomp, const IntVect &snghost, const IntVect &dnghost, const Periodicity &period=Periodicity::NonPeriodic())
void ParallelCopyToGhost_finish ()
void Redistribute (const FabArray< FAB > &src, int scomp, int dcomp, int ncomp, const IntVect &nghost)
void copyTo (FAB &dest, int nghost=0) const
void shift (const IntVect &v)
bool defined (int K) const noexcept
void FillBoundary (bool cross=false)
void FillBoundary_nowait (bool cross=false)
void FillBoundary_finish ()
void FillBoundary_test ()
void FillBoundaryAndSync (const Periodicity &period=Periodicity::NonPeriodic())
void FillBoundaryAndSync_nowait (const Periodicity &period=Periodicity::NonPeriodic())
void FillBoundaryAndSync_finish ()
void OverrideSync (const Periodicity &period=Periodicity::NonPeriodic())
void OverrideSync_nowait (const Periodicity &period=Periodicity::NonPeriodic())
void OverrideSync_finish ()
void SumBoundary (const Periodicity &period=Periodicity::NonPeriodic(), bool deterministic=false)
void SumBoundary_nowait (const Periodicity &period=Periodicity::NonPeriodic(), bool deterministic=false)
void SumBoundary_finish ()
void EnforcePeriodicity (const Periodicity &period)
void BuildMask (const Box &phys_domain, const Periodicity &period, value_type covered, value_type notcovered, value_type physbnd, value_type interior)
void FBEP_nowait (int scomp, int ncomp, const IntVect &nghost, const Periodicity &period, bool cross, bool enforce_periodicity_only=false, bool override_sync=false, IntVect const &sumboundary_src_nghost=IntVect(-1), bool deterministic=false)
void FB_local_copy_cpu (const FB &TheFB, int scomp, int ncomp)
void FB_local_add_cpu (const FB &TheFB, int scomp, int ncomp)
void PC_local_cpu (const CPC &thecpc, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp, CpOp op)
LayoutData< intRecvLayoutMask (const CommMetaData &thecmd)
TagVector< Array4CopyTag< value_type > > const * FB_get_local_copy_tag_vector (const FB &TheFB)
void FB_local_copy_gpu (const FB &TheFB, int scomp, int ncomp)
void FB_local_add_gpu (const FB &TheFB, int scomp, int ncomp, bool deterministic)
void PC_local_gpu (const CPC &thecpc, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp, CpOp op, bool deterministic)
void CMD_local_setVal_gpu (value_type x, const CommMetaData &thecmd, int scomp, int ncomp)
void CMD_remote_setVal_gpu (value_type x, const CommMetaData &thecmd, int scomp, int ncomp)
TagVector< CommRecvBufTag< value_type > > const * get_recv_copy_tag_vector (Vector< char * > const &recv_data, Vector< std::size_t > const &recv_size, Vector< CopyComTagsContainer const * > const &recv_cctc, int ncomp, std::uint64_t id)
TagVector< CommSendBufTag< value_type > > const * get_send_copy_tag_vector (Vector< char * > const &send_data, Vector< std::size_t > const &send_size, Vector< CopyComTagsContainer const * > const &send_cctc, int ncomp, std::uint64_t id) const
F::value_type norminf (int comp, int ncomp, IntVect const &nghost, bool local=false, bool ignore_covered=false) const
Public Member Functions inherited from amrex::FabArrayBase
 FabArrayBase ()=default
 ~FabArrayBase ()=default
 FabArrayBase (const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow)
 FabArrayBase (const BoxArray &bxs, const DistributionMapping &dm, int nvar, const IntVect &ngrow)
 FabArrayBase (FabArrayBase &&rhs) noexcept=default
 FabArrayBase (const FabArrayBase &rhs)=default
FabArrayBaseoperator= (const FabArrayBase &rhs)=default
FabArrayBaseoperator= (FabArrayBase &&rhs)=default
void define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow)
void define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, const IntVect &ngrow)
int nGrow (int direction=0) const noexcept
IntVect nGrowVect () const noexcept
int nComp () const noexcept
IndexType ixType () const noexcept
bool empty () const noexcept
const BoxArrayboxArray () const noexcept
Box box (int K) const noexcept
Box fabbox (int K) const noexcept
int size () const noexcept
int local_size () const noexcept
const Vector< int > & IndexArray () const noexcept
int localindex (int K) const noexcept
const DistributionMappingDistributionMap () const noexcept
bool is_nodal () const noexcept
bool is_nodal (int dir) const noexcept
bool is_cell_centered () const noexcept
void setMultiGhost (bool a_multi_ghost)
IntVect nGrowFilled () const noexcept
void setNGrowFilled (IntVect const &ng) noexcept
bool isFusingCandidate () const noexcept
BDKey getBDKey () const noexcept
void updateBDKey ()
void flushFPinfo (bool no_assertion=false) const
void flushCFinfo (bool no_assertion=false) const
const TileArraygetTileArray (const IntVect &tilesize) const
void clear ()
const std::vector< bool > & OwnerShip () const noexcept
bool isOwner (int li) const noexcept
void buildTileArray (const IntVect &tilesize, TileArray &ta) const
void flushTileArray (const IntVect &tilesize=IntVect::TheZeroVector(), bool no_assertion=false) const
void define_fb_metadata (CommMetaData &cmd, const IntVect &nghost, bool cross, const Periodicity &period, bool multi_ghost) const
const FBgetFB (const IntVect &nghost, const Periodicity &period, bool cross=false, bool enforce_periodicity_only=false, bool override_sync=false, IntVect const &sumboundary_src_nghost=IntVect(-1)) const
const CPCgetCPC (const IntVect &dstng, const FabArrayBase &src, const IntVect &srcng, const Periodicity &period, bool to_ghost_cells_only=false, const IntVect &offset=IntVect(0)) const
const RB90getRB90 (const IntVect &nghost, const Box &domain) const
void flushRB90 (bool no_assertion=false) const
const RB180getRB180 (const IntVect &nghost, const Box &domain) const
void flushRB180 (bool no_assertion=false) const
const PolarBgetPolarB (const IntVect &nghost, const Box &domain) const
void flushPolarB (bool no_assertion=false) const
ParForInfo const & getParForInfo (const IntVect &nghost) const
void flushParForInfo (bool no_assertion=false) const
void clearThisBD (bool no_assertion=false) const
void addThisBD ()

Private Attributes

amrex::Real dt_B = -1.e10
amrex::Real dt_E = -1.e10

Additional Inherited Members

Public Types inherited from amrex::FabArray< SigmaBox >
typedef typename std::conditional_t< IsBaseFab< FAB >::value, FAB, FABType >::value_type value_type
typedef FAB fab_type
Public Types inherited from amrex::FabArrayBase
enum  CpOp
typedef CopyComTag::CopyComTagsContainer CopyComTagsContainer
typedef CopyComTag::MapOfCopyComTagContainers MapOfCopyComTagContainers
typedef std::multimap< BDKey, FabArrayBase::FPinfo * > FPinfoCache
typedef FPinfoCache::iterator FPinfoCacheIter
typedef std::multimap< BDKey, FabArrayBase::CFinfo * > CFinfoCache
typedef CFinfoCache::iterator CFinfoCacheIter
typedef std::map< std::pair< IntVect, IntVect >, TileArrayTAMap
typedef std::map< BDKey, TAMapTACache
typedef std::multimap< BDKey, FabArrayBase::FB * > FBCache
typedef FBCache::iterator FBCacheIter
typedef std::multimap< BDKey, FabArrayBase::CPC * > CPCache
typedef CPCache::iterator CPCacheIter
typedef std::multimap< BDKey, FabArrayBase::RB90 * > RB90Cache
typedef RB90Cache::iterator RB90CacheIter
typedef std::multimap< BDKey, FabArrayBase::RB180 * > RB180Cache
typedef RB180Cache::iterator RB180CacheIter
typedef std::multimap< BDKey, FabArrayBase::PolarB * > PolarBCache
typedef PolarBCache::iterator PolarBCacheIter
Static Public Member Functions inherited from amrex::FabArray< SigmaBox >
static void pack_send_buffer_gpu (FabArray< FAB > const &src, int scomp, int ncomp, Vector< char * > const &send_data, Vector< std::size_t > const &send_size, Vector< const CopyComTagsContainer * > const &send_cctc, std::uint64_t id)
static void unpack_recv_buffer_gpu (FabArray< FAB > &dst, int dcomp, int ncomp, Vector< char * > const &recv_data, Vector< std::size_t > const &recv_size, Vector< const CopyComTagsContainer * > const &recv_cctc, CpOp op, bool is_thread_safe, std::uint64_t id, bool deterministic)
static void pack_send_buffer_cpu (FabArray< FAB > const &src, int scomp, int ncomp, Vector< char * > const &send_data, Vector< std::size_t > const &send_size, Vector< const CopyComTagsContainer * > const &send_cctc)
static void unpack_recv_buffer_cpu (FabArray< FAB > &dst, int dcomp, int ncomp, Vector< char * > const &recv_data, Vector< std::size_t > const &recv_size, Vector< const CopyComTagsContainer * > const &recv_cctc, CpOp op, bool is_thread_safe)
static void Saxpy (FabArray< FAB > &y, value_type a, FabArray< FAB > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost)
static void Xpay (FabArray< FAB > &y, value_type a, FabArray< FAB > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost)
static void LinComb (FabArray< FAB > &dst, value_type a, const FabArray< FAB > &x, int xcomp, value_type b, const FabArray< FAB > &y, int ycomp, int dstcomp, int numcomp, const IntVect &nghost)
static void Saxpy_Xpay (FabArray< FAB > &y, value_type a1, FabArray< FAB > const &x1, value_type a2, FabArray< FAB > const &x2, int xcomp, int ycomp, int ncomp, IntVect const &nghost)
static void Saxpy_Saxpy (FabArray< FAB > &y1, value_type a1, FabArray< FAB > const &x1, FabArray< FAB > &y2, value_type a2, FabArray< FAB > const &x2, int xcomp, int ycomp, int ncomp, IntVect const &nghost)
static void Saypy_Saxpy (FabArray< FAB > &y1, value_type a1, FabArray< FAB > &y2, value_type a2, FabArray< FAB > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost)
Static Public Member Functions inherited from amrex::FabArrayBase
static Long bytesOfMapOfCopyComTagContainers (const MapOfCopyComTagContainers &)
static void Initialize ()
static void Finalize ()
static const FPinfoTheFPinfo (const FabArrayBase &srcfa, const FabArrayBase &dstfa, const IntVect &dstng, const BoxConverter &coarsener, const Geometry &fgeom, const Geometry &cgeom, const EB2::IndexSpace *)
static const CFinfoTheCFinfo (const FabArrayBase &finefa, const Geometry &finegm, const IntVect &ng, bool include_periodic, bool include_physbndry)
static void updateMemUsage (std::string const &tag, Long nbytes, Arena const *ar)
static void printMemUsage ()
static Long queryMemUsage (const std::string &tag=std::string("All"))
static Long queryMemUsageHWM (const std::string &tag=std::string("All"))
static void pushRegionTag (const char *t)
static void pushRegionTag (std::string t)
static void popRegionTag ()
static void flushTileArrayCache ()
static void flushRB90Cache ()
static void flushRB180Cache ()
static void flushPolarBCache ()
static void flushParForCache ()
static bool getAllocSingleChunk ()
static std::uint64_t getNextCommMetaDataId ()
Public Attributes inherited from amrex::FabArray< SigmaBox >
std::unique_ptr< FBData< FAB > > fbd
std::unique_ptr< PCData< FAB > > pcd
std::unique_ptr< FabArray< FAB > > os_temp
Public Attributes inherited from amrex::FabArrayBase
 COPY
 ADD
BoxArray boxarray
DistributionMapping distributionMap
Vector< intindexArray
std::vector< bool > ownership
IntVect n_grow
int n_comp
BDKey m_bdkey
IntVect n_filled
bool m_multi_ghost
Static Public Attributes inherited from amrex::FabArrayBase
static IntVect mfiter_tile_size
static int MaxComp
static IntVect comm_tile_size
static FPinfoCache m_TheFillPatchCache
static CacheStats m_FPinfo_stats
static CFinfoCache m_TheCrseFineCache
static CacheStats m_CFinfo_stats
static std::map< std::string, meminfom_mem_usage
static std::vector< std::string > m_region_tag
static TACache m_TheTileArrayCache
static CacheStats m_TAC_stats
static FBCache m_TheFBCache
static CacheStats m_FBC_stats
static CPCache m_TheCPCache
static CacheStats m_CPC_stats
static RB90Cache m_TheRB90Cache
static RB180Cache m_TheRB180Cache
static PolarBCache m_ThePolarBCache
static std::multimap< BDKey, ParForInfo * > m_TheParForCache
static std::map< BDKey, intm_BD_count
static FabArrayStats m_FA_stats
static bool m_alloc_single_chunk
Protected Member Functions inherited from amrex::FabArray< SigmaBox >
bool SharedMemory () const noexcept
Protected Attributes inherited from amrex::FabArray< SigmaBox >
std::unique_ptr< FabFactory< FAB > > m_factory
DataAllocator m_dallocator
std::unique_ptr< detail::SingleChunkArena > m_single_chunk_arena
Long m_single_chunk_size
bool define_function_called
std::vector< FAB * > m_fabs_v
void * m_dp_arrays
void * m_hp_arrays
MultiArray4< value_typem_arrays
MultiArray4< value_type const > m_const_arrays
Vector< std::string > m_tags
ShMem shmem

Constructor & Destructor Documentation

◆ MultiSigmaBox()

MultiSigmaBox::MultiSigmaBox ( const amrex::BoxArray & ba,
const amrex::DistributionMapping & dm,
const amrex::BoxArray * grid_ba,
const amrex::Real * dx,
const amrex::IntVect & ncell,
const amrex::IntVect & delta,
const amrex::Box & regular_domain,
amrex::Real v_sigma_sb )

Member Function Documentation

◆ ComputePMLFactorsB()

void MultiSigmaBox::ComputePMLFactorsB ( const amrex::Real * dx,
amrex::Real dt )

◆ ComputePMLFactorsE()

void MultiSigmaBox::ComputePMLFactorsE ( const amrex::Real * dx,
amrex::Real dt )

Member Data Documentation

◆ dt_B

amrex::Real MultiSigmaBox::dt_B = -1.e10
private

◆ dt_E

amrex::Real MultiSigmaBox::dt_E = -1.e10
private

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