|
| | MultiFab () noexcept |
| | Constructs an empty MultiFab.
|
| | MultiFab (Arena *a) noexcept |
| | Constructs an empty MultiFab.
|
| | MultiFab (const BoxArray &bxs, const DistributionMapping &dm, int ncomp, int ngrow, const MFInfo &info=MFInfo(), const FabFactory< FArrayBox > &factory=FArrayBoxFactory()) |
| | Constructs a MultiFab.
|
| | MultiFab (const BoxArray &bxs, const DistributionMapping &dm, int ncomp, const IntVect &ngrow, const MFInfo &info=MFInfo(), const FabFactory< FArrayBox > &factory=FArrayBoxFactory()) |
| | MultiFab (const MultiFab &rhs, MakeType maketype, int scomp, int ncomp) |
| | Make an alias MultiFab.
|
| | ~MultiFab () |
| | MultiFab (MultiFab &&rhs) noexcept |
| MultiFab & | operator= (MultiFab &&rhs) noexcept=default |
| | MultiFab (const MultiFab &rhs)=delete |
| MultiFab & | operator= (const MultiFab &rhs)=delete |
| void | define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow, const MFInfo &info=MFInfo(), const FabFactory< FArrayBox > &factory=FArrayBoxFactory()) |
| void | define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, const IntVect &ngrow, const MFInfo &info=MFInfo(), const FabFactory< FArrayBox > &factory=FArrayBoxFactory()) |
| MultiFab & | operator= (Real r) |
| Real | min (int comp, int nghost=0, bool local=false) const |
| | Returns the minimum value contained in component comp of the MultiFab.
|
| Real | min (const Box ®ion, int comp, int nghost=0, bool local=false) const |
| | Identical to min() function, but confines its search to intersection of Box b and the MultiFab.
|
| Real | max (int comp, int nghost=0, bool local=false) const |
| | Returns the maximum value contained in component comp of the MultiFab.
|
| Real | max (const Box ®ion, int comp, int nghost=0, bool local=false) const |
| | Identical to the previous max() function, but confines its search to intersection of Box b and the MultiFab.
|
| Real | norm0 (int comp=0, int nghost=0, bool local=false, bool ignore_covered=false) const |
| | Returns the maximum absolute value contained in component comp of the MultiFab.
|
| Real | norminf (int comp=0, int nghost=0, bool local=false, bool ignore_covered=false) const |
| Real | norm0 (const iMultiFab &mask, int comp=0, int nghost=0, bool local=false) const |
| | Returns the maximum absolute value inside the region where mask is non-zero.
|
| Real | norminf (const iMultiFab &mask, int comp=0, int nghost=0, bool local=false) const |
| Real | norm0 (int comp, int ncomp, IntVect const &nghost, bool local=false, bool ignore_covered=false) const |
| | Returns the maximum absolute value across ncomp components.
|
| Vector< Real > | norm0 (const Vector< int > &comps, int nghost=0, bool local=false, bool ignore_covered=false) const |
| | Returns the maximum absolute values contained in each component of comps of the MultiFab. nghost ghost cells are used.
|
| Vector< Real > | norminf (const Vector< int > &comps, int nghost=0, bool local=false, bool ignore_covered=false) const |
| Real | norm1 (int comp, const Periodicity &period, bool ignore_covered=false) const |
| | Returns the L1 norm of component comp over the MultiFab.
|
| Real | norm1 (int comp=0, int ngrow=0, bool local=false) const |
| | Returns the L1 norm of component comp over the MultiFab. ngrow ghost cells are used.
|
| Vector< Real > | norm1 (const Vector< int > &comps, int ngrow=0, bool local=false) const |
| | Returns the L1 norm of each component of "comps" over the MultiFab. ngrow ghost cells are used.
|
| Real | norm2 (int comp=0) const |
| | Returns the L2 norm of component comp over the MultiFab. No ghost cells are used.
|
| Real | norm2 (int comp, int numcomp) const |
| | Returns the L2 norm of numcomp components starting from comp component over the MultiFab. No ghost cells are used.
|
| Real | norm2 (int comp, const Periodicity &period) const |
| | Returns the L2 norm of component comp over the MultiFab. No ghost cells are used. This version has no double counting for nodal data.
|
| Vector< Real > | norm2 (const Vector< int > &comps) const |
| | Returns the L2 norm of each component of "comps" over the MultiFab. No ghost cells are used.
|
| Real | sum (int comp=0, bool local=false) const |
| | Returns the sum of component "comp" over the MultiFab – no ghost cells are included.
|
| Real | sum (Box const ®ion, int comp=0, bool local=false) const |
| | Returns the sum of component "comp" in the given "region". – no ghost cells are included.
|
| Real | sum_unique (int comp=0, bool local=false, const Periodicity &period=Periodicity::NonPeriodic()) const |
| | Same as sum with local =false, but for non-cell-centered data, this only adds non-unique points that are owned by multiple boxes once.
|
| Real | sum_unique (Box const ®ion, int comp=0, bool local=false) const |
| | Returns the unique sum of component "comp" in the given region. Non-unique points owned by multiple boxes in the MultiFab are only added once. No ghost cells are included. This function does not take periodicity into account in the determination of uniqueness of points.
|
| void | plus (Real val, int comp, int num_comp, int nghost=0) |
| | Adds the scalar value val to the value of each cell in the specified subregion of the MultiFab.
|
| void | plus (Real val, const Box ®ion, int comp, int num_comp, int nghost=0) |
| | Identical to the previous version of plus(), with the restriction that the subregion is further constrained to the intersection with Box region.
|
| void | plus (Real val, int nghost) |
| | Adds the scalar value val to the value of each cell in the valid region of each component of the MultiFab. The value of nghost specifies the number of cells in the boundary region that should be modified.
|
| void | plus (Real val, const Box ®ion, int nghost) |
| | Adds the scalar value val to the value of each cell in the valid region of each component of the MultiFab, that also intersects the Box region. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | mult (Real val, int comp, int num_comp, int nghost=0) |
| | Scales the value of each cell in the specified subregion of the MultiFab by the scalar val (a[i] <- a[i]*val). The subregion consists of the num_comp components starting at component comp. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | mult (Real val, const Box ®ion, int comp, int num_comp, int nghost=0) |
| | Identical to the previous version of mult(), with the restriction that the subregion is further constrained to the intersection with Box region. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | mult (Real val, int nghost=0) |
| | Scales the value of each cell in the valid region of each component of the MultiFab by the scalar val (a[i] <- a[i]*val). The value of nghost specifies the number of cells in the boundary region that should be modified.
|
| void | mult (Real val, const Box ®ion, int nghost=0) |
| | Scales the value of each cell in the valid region of each component of the MultiFab by the scalar val (a[i] <- a[i]*val), that also intersects the Box region. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | invert (Real numerator, int comp, int num_comp, int nghost=0) |
| | Replaces the value of each cell in the specified subregion of the MultiFab with its reciprocal multiplied by the value of numerator. The subregion consists of the num_comp components starting at component comp. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | invert (Real numerator, const Box ®ion, int comp, int num_comp, int nghost=0) |
| | Identical to the previous version of invert(), with the restriction that the subregion is further constrained to the intersection with Box region. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | invert (Real numerator, int nghost) |
| | Replaces the value of each cell in the specified subregion of the MultiFab with its reciprocal multiplied by the value of numerator. The value of nghost specifies the number of cells in the boundary region that should be modified.
|
| void | invert (Real numerator, const Box ®ion, int nghost) |
| | Replaces the value of each cell in the specified subregion of the MultiFab, that also intersects the Box region, with its reciprocal multiplied by the value of numerator. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | negate (int comp, int num_comp, int nghost=0) |
| | Negates the value of each cell in the specified subregion of the MultiFab. The subregion consists of the num_comp components starting at component comp. The value of nghost specifies the number of cells in the boundary region of each FArrayBox in the subregion that should be modified.
|
| void | negate (const Box ®ion, int comp, int num_comp, int nghost=0) |
| | Identical to the previous version of negate(), with the restriction that the subregion is further constrained to the intersection with Box region.
|
| void | negate (int nghost=0) |
| | Negates the value of each cell in the valid region of the MultiFab. The value of nghost specifies the number of cells in the boundary region that should be modified.
|
| void | negate (const Box ®ion, int nghost=0) |
| | Negates the value of each cell in the valid region of the MultiFab that also intersects the Box region. The value of nghost specifies the number of cells in the boundary region that should be modified.
|
| IntVect | minIndex (int comp, int nghost=0) const |
| IntVect | maxIndex (int comp, int nghost=0) const |
| void | plus (const MultiFab &mf, int strt_comp, int num_comp, int nghost) |
| | This function adds the values of the cells in mf to the corresponding cells of this MultiFab. mf is required to have the same BoxArray or "valid region" as this MultiFab. The addition is done only to num_comp components, starting with component number strt_comp. The parameter nghost specifies the number of boundary cells that will be modified. If nghost == 0, only the valid region of each FArrayBox will be modified.
|
| void | minus (const MultiFab &mf, int strt_comp, int num_comp, int nghost) |
| | This function subtracts the values of the cells in mf from the corresponding cells of this MultiFab. mf is required to have the same BoxArray or "valid region" as this MultiFab. The subtraction is done only to num_comp components, starting with component number strt_comp. The parameter nghost specifies the number of boundary cells that will be modified. If nghost == 0, only the valid region of each FArrayBox will be modified.
|
| void | divide (const MultiFab &mf, int strt_comp, int num_comp, int nghost) |
| | This function divides the values of the cells in mf from the corresponding cells of this MultiFab. mf is required to have the same BoxArray or "valid region" as this MultiFab. The division is done only to num_comp components, starting with component number strt_comp. The parameter nghost specifies the number of boundary cells that will be modified. If nghost == 0, only the valid region of each FArrayBox will be modified. Note, nothing is done to protect against divide by zero.
|
| MultiFab | deepCopy () const |
| bool | is_finite (bool local=false) const |
| | Are the numbers in the MF finite (i.e., neither nan nor inf)? This may return true, even if the MF contains NaNs or Infs, if the machine doesn't support the appropriate NaN and Inf testing functions.
|
| bool | is_finite (int scomp, int ncomp, int ngrow=0, bool local=false) const |
| bool | is_finite (int scomp, int ncomp, const IntVect &ngrow, bool local=false) const |
| bool | contains_nan (bool local=false) const |
| | Are there any NaNs in the MF? This may return false, even if the MF contains NaNs, if the machine doesn't support the appropriate NaN testing functions.
|
| bool | contains_nan (int scomp, int ncomp, int ngrow=0, bool local=false) const |
| bool | contains_nan (int scomp, int ncomp, const IntVect &ngrow, bool local=false) const |
| bool | contains_inf (bool local=false) const |
| | Are there any Infs in the MF? This may return false, even if the MF contains Infs, if the machine doesn't support the appropriate Inf testing functions. This version checks all components and grow cells.
|
| bool | contains_inf (int scomp, int ncomp, int ngrow=0, bool local=false) const |
| bool | contains_inf (int scomp, int ncomp, const IntVect &ngrow, bool local=false) const |
| std::unique_ptr< MultiFab > | OverlapMask (const Periodicity &period=Periodicity::NonPeriodic()) const |
| | Return a mask indicating how many duplicates are in each point.
|
| std::unique_ptr< iMultiFab > | OwnerMask (const Periodicity &period=Periodicity::NonPeriodic()) const |
| | Owner is the grid with the lowest grid number containing the data.
|
| void | AverageSync (const Periodicity &period=Periodicity::NonPeriodic()) |
| | Sync up nodal data via averaging.
|
| void | WeightedSync (const MultiFab &wgt, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Sync up nodal data with weights.
|
| void | OverrideSync (const iMultiFab &msk, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Synchronize nodal data. The synchronization will override valid regions by the intersecting valid regions with a higher precedence, according to the owner mask provided as input.
|
| auto | 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 -> TagVector< CommSendBufTag< value_type > > const * |
| void | pack_send_buffer_gpu (FabArray< FArrayBox > const &src, int scomp, int ncomp, Vector< char * > const &send_data, Vector< std::size_t > const &send_size, Vector< CopyComTagsContainer const * > const &send_cctc, std::uint64_t id) |
| auto | 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< CommRecvBufTag< value_type > > const * |
| void | unpack_recv_buffer_gpu (FabArray< FArrayBox > &dst, int dcomp, int ncomp, Vector< char * > const &recv_data, Vector< std::size_t > const &recv_size, Vector< CopyComTagsContainer const * > const &recv_cctc, CpOp op, bool is_thread_safe, std::uint64_t id, bool deterministic) |
| void | pack_send_buffer_cpu (FabArray< FArrayBox > const &src, int scomp, int ncomp, Vector< char * > const &send_data, Vector< std::size_t > const &send_size, Vector< CopyComTagsContainer const * > const &send_cctc) |
| void | unpack_recv_buffer_cpu (FabArray< FArrayBox > &dst, int dcomp, int ncomp, Vector< char * > const &recv_data, Vector< std::size_t > const &recv_size, Vector< CopyComTagsContainer const * > const &recv_cctc, CpOp op, bool is_thread_safe) |
| | FabArray () noexcept |
| | Constructs an empty FabArray<FAB>.
|
| | ~FabArray () |
| | The destructor – deletes all FABs in the array.
|
| FabArray< FArrayBox > & | operator= (FabArray< FArrayBox > &&rhs) noexcept |
| void | define (const BoxArray &bxs, const DistributionMapping &dm, int nvar, int ngrow, const MFInfo &info=MFInfo(), const FabFactory< FArrayBox > &factory=DefaultFabFactory< FArrayBox >()) |
| | Define this FabArray identically to that performed by the constructor having an analogous function signature. This is only valid if this FabArray was defined using the default constructor.
|
| const FabFactory< FArrayBox > & | Factory () const noexcept |
| | Factory used to create FAB instances for this FabArray.
|
| Arena * | arena () const noexcept |
| | Arena configured for allocations by this FabArray.
|
| const Vector< std::string > & | tags () const noexcept |
| | Memory-usage tags recorded for this FabArray's allocations.
|
| bool | hasEBFabFactory () const noexcept |
| | Return whether this FabArray uses an EBFArrayBoxFactory.
|
| value_type * | singleChunkPtr () noexcept |
| std::size_t | singleChunkSize () const noexcept |
| bool | isAllRegular () const noexcept |
| | Return the EB factory's all-regular status, or true for other factories.
|
| bool | ok () const |
| | Return true if the FabArray is well-defined. That is, the FabArray has a BoxArray and DistributionMapping, the FABs are allocated for each Box in the BoxArray and the sizes of the FABs and the number of components are consistent with the definition of the FabArray.
|
| bool | isDefined () const |
| const FArrayBox & | operator[] (const MFIter &mfi) const noexcept |
| | Return a constant reference to the FAB associated with mfi.
|
| const FArrayBox & | get (const MFIter &mfi) const noexcept |
| | Return a constant reference to the FAB associated with mfi.
|
| FArrayBox & | atLocalIdx (int L) noexcept |
| | Return a reference to the FAB associated with local index L.
|
| FArrayBox * | fabPtr (const MFIter &mfi) noexcept |
| | Return pointer to FAB.
|
| void | prefetchToHost (const MFIter &mfi) const noexcept |
| | Request that the FAB selected by iterator mfi be prefetched to host memory, where supported.
|
| void | prefetchToDevice (const MFIter &mfi) const noexcept |
| | Request that the FAB selected by iterator mfi be prefetched to device memory, where supported.
|
| Array4< typename FabArray< FArrayBox >::value_type const > | array (const MFIter &mfi) const noexcept |
| | Read-only Array4 view for the FAB referenced by iterator mfi.
|
| Array4< typename FabArray< FArrayBox >::value_type const > | const_array (const MFIter &mfi) const noexcept |
| | Synonym for array(const MFIter&) that highlights read-only semantics.
|
| MultiArray4< typename FabArray< FArrayBox >::value_type > | arrays () noexcept |
| | Build, if needed, and return mutable Array4 views for local FABs.
|
| MultiArray4< typename FabArray< FArrayBox >::value_type const > | const_arrays () const noexcept |
| | Read-only convenience wrapper equivalent to arrays() const.
|
| void | setFab (int boxno, std::unique_ptr< FArrayBox > elem) |
| | Explicitly set the Kth FAB in the FabArray to point to elem.
|
| FArrayBox * | release (int K) |
| | Release ownership of the FAB. This function is not thread safe.
|
| void | clear () |
| | Releases FAB memory in the FabArray.
|
| void | LocalCopy (FabArray< SFAB > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| | Perform local copy of FabArray data.
|
| void | LocalAdd (FabArray< FArrayBox > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| | Perform local addition of FabArray data.
|
| void | setVal (value_type val) |
| | Set all components in the entire region of each FAB to 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) |
| | Set all values in the boundary region to val.
|
| void | setDomainBndry (value_type val, const Geometry &geom) |
| | Set all values outside the Geometry domain described by geom to val.
|
| void | capacityOfFabs (LayoutData< Int > &mem) const |
| | Accumulate the per-FAB allocation sizes.
|
| F::value_type | sum (int comp, IntVect const &nghost, bool local=false) const |
| | Returns the sum of component "comp".
|
| void | ParallelAdd (const FabArray< FArrayBox > &src, const Periodicity &period=Periodicity::NonPeriodic()) |
| | This function copies data from src to this FabArray. Each FAB in fa is intersected with all FABs in this FabArray and a copy is performed on the region of intersection. The intersection is restricted to the valid regions.
|
| void | ParallelCopy (const FabArray< FArrayBox > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY) |
| void | copy (const FabArray< FArrayBox > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY) |
| void | ParallelAdd_nowait (const FabArray< FArrayBox > &src, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Start an asynchronous ParallelAdd over all components.
|
| void | ParallelCopy_nowait (const FabArray< FArrayBox > &src, const Periodicity &period=Periodicity::NonPeriodic(), CpOp op=FabArrayBase::COPY) |
| | Start an asynchronous ParallelCopy that copies every component.
|
| void | ParallelCopy_finish () |
| | Finish the current nowait ParallelCopy or ParallelAdd operation.
|
| void | ParallelCopyToGhost (const FabArray< FArrayBox > &src, int scomp, int dcomp, int ncomp, const IntVect &snghost, const IntVect &dnghost, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Copy source data to destination ghost cells only.
|
| void | ParallelCopyToGhost_nowait (const FabArray< FArrayBox > &src, int scomp, int dcomp, int ncomp, const IntVect &snghost, const IntVect &dnghost, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Start an asynchronous version of ParallelCopyToGhost().
|
| void | ParallelCopyToGhost_finish () |
| | Finish the current ParallelCopyToGhost_nowait() operation.
|
| void | Redistribute (const FabArray< FArrayBox > &src, int scomp, int dcomp, int ncomp, const IntVect &nghost) |
| | Copy from src to this. this and src have the same BoxArray, but different DistributionMapping.
|
| void | copyTo (FArrayBox &dest, int nghost=0) const |
| | Copy the values contained in the intersection of the valid + nghost region of this FabArray with the FAB dest into dest. Note that FAB dest is assumed to be identical on each process.
|
| void | shift (const IntVect &v) |
| | Shift the boxarray by vector v.
|
| bool | defined (int K) const noexcept |
| void | FillBoundary (bool cross=false) |
| | Copy on intersection within a FabArray.
|
| void | FillBoundary_nowait (bool cross=false) |
| void | FillBoundary_finish () |
| void | FillBoundary_test () |
| void | FillBoundaryAndSync (const Periodicity &period=Periodicity::NonPeriodic()) |
| | Fill ghost cells and synchronize nodal data.
|
| void | FillBoundaryAndSync_nowait (const Periodicity &period=Periodicity::NonPeriodic()) |
| void | FillBoundaryAndSync_finish () |
| void | OverrideSync (const Periodicity &period=Periodicity::NonPeriodic()) |
| | Synchronize nodal data.
|
| void | OverrideSync_nowait (const Periodicity &period=Periodicity::NonPeriodic()) |
| | Split-phase version of OverrideSync.
|
| void | OverrideSync_finish () |
| void | SumBoundary (const Periodicity &period=Periodicity::NonPeriodic(), bool deterministic=false) |
| | Sum values in overlapped cells.
|
| void | SumBoundary_nowait (const Periodicity &period=Periodicity::NonPeriodic(), bool deterministic=false) |
| void | SumBoundary_finish () |
| void | EnforcePeriodicity (const Periodicity &period) |
| | Fill ghost cells with values from their corresponding cells across periodic boundaries, regardless of whether the corresponding cells are valid.
|
| 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< FArrayBox > const &src, int scomp, int dcomp, int ncomp, CpOp op) |
| LayoutData< int > | RecvLayoutMask (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< FArrayBox > 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) |
| F::value_type | norminf (int comp, int ncomp, IntVect const &nghost, bool local=false, bool ignore_covered=false) const |
| | Return infinity norm. A NaN counts as infinity.
|
| | 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 |
| FabArrayBase & | operator= (const FabArrayBase &rhs)=default |
| FabArrayBase & | operator= (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 |
| | Return the grow factor that defines the region of definition.
|
| IntVect | nGrowVect () const noexcept |
| int | nComp () const noexcept |
| | Return number of variables (aka components) associated with each point.
|
| IndexType | ixType () const noexcept |
| | Return index type.
|
| bool | empty () const noexcept |
| const BoxArray & | boxArray () const noexcept |
| | Return a constant reference to the BoxArray that defines the valid region associated with this FabArray.
|
| Box | box (int K) const noexcept |
| | Return the Kth Box in the BoxArray. That is, the valid region of the Kth grid.
|
| Box | fabbox (int K) const noexcept |
| | Return the Kth FABs Box in the FabArray. That is, the region the Kth fab is actually defined on.
|
| int | size () const noexcept |
| | Return the number of FABs in the FabArray.
|
| int | local_size () const noexcept |
| | Return the number of local FABs in the FabArray.
|
| const Vector< int > & | IndexArray () const noexcept |
| | Return constant reference to indices in the FabArray that we have access.
|
| int | localindex (int K) const noexcept |
| | Return local index in the vector of FABs.
|
| const DistributionMapping & | DistributionMap () const noexcept |
| | Return constant reference to associated DistributionMapping.
|
| bool | is_nodal () const noexcept |
| | This tests on whether the FabArray is fully nodal.
|
| bool | is_nodal (int dir) const noexcept |
| | This tests on whether the FabArray is nodal in direction dir.
|
| bool | is_cell_centered () const noexcept |
| | This tests on whether the FabArray is cell-centered.
|
| void | setMultiGhost (bool a_multi_ghost) |
| | Record whether this FabArrayBase participates in multi-ghost exchanges.
|
| IntVect | nGrowFilled () const noexcept |
| | Return the halo width currently recorded as up to date.
|
| void | setNGrowFilled (IntVect const &ng) noexcept |
| | Update the bookkeeping on how many ghost cells are known to be valid.
|
| bool | isFusingCandidate () const noexcept |
| | Is this a good candidate for kernel fusing?
|
| BDKey | getBDKey () const noexcept |
| void | updateBDKey () |
| | Refresh the cached BDKey after rebinding BoxArray or DistributionMapping data.
|
| void | flushFPinfo (bool no_assertion=false) const |
| void | flushCFinfo (bool no_assertion=false) const |
| const TileArray * | getTileArray (const IntVect &tilesize) const |
| | Return the cached tile decomposition used by MFIter.
|
| void | clear () |
| | Clear this object's BoxArray, DistributionMapping, local index/ownership data, and BDKey so the container can be redefined.
|
| const std::vector< bool > & | OwnerShip () const noexcept |
| | Return owenership of fabs. The concept of ownership only applies when UPC++ team is used. In that case, each fab is shared by team workers, with one taking the ownership.
|
| 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 |
| | Populate communication metadata for FillBoundary-style operations.
|
| const FB & | getFB (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 |
| | Retrieve (and cache) the FillBoundary metadata for the requested halo.
|
| const CPC & | getCPC (const IntVect &dstng, const FabArrayBase &src, const IntVect &srcng, const Periodicity &period, bool to_ghost_cells_only=false, const IntVect &offset=IntVect(0)) const |
| | Retrieve (and cache) the ParallelCopy metadata between two FabArrays.
|
| const RB90 & | getRB90 (const IntVect &nghost, const Box &domain) const |
| void | flushRB90 (bool no_assertion=false) const |
| | This flushes its own RB90.
|
| const RB180 & | getRB180 (const IntVect &nghost, const Box &domain) const |
| void | flushRB180 (bool no_assertion=false) const |
| | This flushes its own RB180.
|
| const PolarB & | getPolarB (const IntVect &nghost, const Box &domain) const |
| void | flushPolarB (bool no_assertion=false) const |
| | This flushes its own PolarB.
|
| ParForInfo const & | getParForInfo (const IntVect &nghost) const |
| | Obtain metadata describing how to launch device ParallelFor over this FabArray.
|
| ParForInfo const & | getParForInfo (const IntVect &stride, const IntVect &offset) const |
| | Obtain metadata for launching device ParallelFor over the valid points whose index equals offset modulo stride.
|
| ParForInfo const & | getParForInfoRedBlack () const |
| | Obtain metadata for a red-black ParallelFor over the valid region.
|
| void | flushParForInfo (bool no_assertion=false) const |
| void | clearThisBD (bool no_assertion=false) const |
| | clear BD count and caches associated with this BD, if no other is using this BD.
|
| void | addThisBD () |
| | add the current BD into BD count database
|
|
| static Real | Dot (const MultiFab &x, int xcomp, const MultiFab &y, int ycomp, int numcomp, int nghost, bool local=false) |
| | Returns the dot product of two MultiFabs.
|
| static Real | Dot (const MultiFab &x, int xcomp, int numcomp, int nghost, bool local=false) |
| | Returns the dot product of a MultiFab with itself.
|
| static Real | Dot (const iMultiFab &mask, const MultiFab &x, int xcomp, const MultiFab &y, int ycomp, int numcomp, int nghost, bool local=false) |
| static void | Add (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Add src to dst including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray.
|
| static void | Add (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Copy (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Copy from src to dst including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray. The copy is local. The parallel copy function is in FabArray.H.
|
| static void | Copy (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Swap (MultiFab &dst, MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Swap from src to dst including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray. The swap is local.
|
| static void | Swap (MultiFab &dst, MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Subtract (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Subtract src from dst including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray.
|
| static void | Subtract (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Multiply (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Multiply dst by src including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray.
|
| static void | Multiply (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Divide (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | Divide dst by src including nghost ghost cells. The two MultiFabs MUST have the same underlying BoxArray.
|
| static void | Divide (MultiFab &dst, const MultiFab &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Saxpy (MultiFab &dst, Real a, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | dst += a*src
|
| static void | Xpay (MultiFab &dst, Real a, const MultiFab &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| | dst = src + a*dst
|
| static void | LinComb (MultiFab &dst, Real a, const MultiFab &x, int xcomp, Real b, const MultiFab &y, int ycomp, int dstcomp, int numcomp, int nghost) |
| | dst = a*x + b*y
|
| static void | AddProduct (MultiFab &dst, const MultiFab &src1, int comp1, const MultiFab &src2, int comp2, int dstcomp, int numcomp, int nghost) |
| | dst += src1*src2
|
| static void | AddProduct (MultiFab &dst, const MultiFab &src1, int comp1, const MultiFab &src2, int comp2, int dstcomp, int numcomp, const IntVect &nghost) |
| static void | Initialize () |
| static void | Finalize () |
| static void | Saxpy (FabArray< FArrayBox > &y, value_type a, FabArray< FArrayBox > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost) |
| | y += a*x
|
| static void | Xpay (FabArray< FArrayBox > &y, value_type a, FabArray< FArrayBox > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost) |
| | y = x + a*y
|
| static void | LinComb (FabArray< FArrayBox > &dst, value_type a, const FabArray< FArrayBox > &x, int xcomp, value_type b, const FabArray< FArrayBox > &y, int ycomp, int dstcomp, int numcomp, const IntVect &nghost) |
| | dst = a*x + b*y
|
| static void | Saxpy_Xpay (FabArray< FArrayBox > &y, value_type a1, FabArray< FArrayBox > const &x1, value_type a2, FabArray< FArrayBox > const &x2, int xcomp, int ycomp, int ncomp, IntVect const &nghost) |
| | y = x2+a2*(y+a1*x1)
|
| static void | Saxpy_Saxpy (FabArray< FArrayBox > &y1, value_type a1, FabArray< FArrayBox > const &x1, FabArray< FArrayBox > &y2, value_type a2, FabArray< FArrayBox > const &x2, int xcomp, int ycomp, int ncomp, IntVect const &nghost) |
| | y1 += a1*x1; y2 += a2*x2;
|
| static void | Saypy_Saxpy (FabArray< FArrayBox > &y1, value_type a1, FabArray< FArrayBox > &y2, value_type a2, FabArray< FArrayBox > const &x, int xcomp, int ycomp, int ncomp, IntVect const &nghost) |
| | y1 += a1*y2; y2 += a2*x;
|
| static Long | bytesOfMapOfCopyComTagContainers (const MapOfCopyComTagContainers &) |
| static void | Initialize () |
| | Initialize from ParmParse with "fabarray" prefix.
|
| static void | Finalize () |
| static const FPinfo & | TheFPinfo (const FabArrayBase &srcfa, const FabArrayBase &dstfa, const IntVect &dstng, const BoxConverter &coarsener, const Geometry &fgeom, const Geometry &cgeom, const EB2::IndexSpace *) |
| static void | flushFPinfo (const EB2::IndexSpace *ispace) |
| | Erase all FillPatch cache entries built with the given EB index space.
|
| static const CFinfo & | TheCFinfo (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) |
| | Accumulate memory usage statistics for diagnostics.
|
| static void | printMemUsage () |
| | Print the tracked memory usage table on the current subcommunicator's I/O process.
|
| static Long | queryMemUsage (const std::string &tag=std::string("All")) |
| | Query the currently-live bytes tracked under tag (defaults to the All tag).
|
| static Long | queryMemUsageHWM (const std::string &tag=std::string("All")) |
| | Query the recorded high-water mark tracked under tag (defaults to the All tag).
|
| static void | pushRegionTag (const char *t) |
| | Push a memory-region tag used to classify subsequent FabArray allocations.
|
| static void | pushRegionTag (std::string t) |
| | Overload accepting std::string.
|
| static void | popRegionTag () |
| | Pop the most recent region tag. The tag stack must be nonempty.
|
| static void | flushTileArrayCache () |
| | This flushes the entire cache.
|
| static void | flushRB90Cache () |
| | This flushes the entire cache.
|
| static void | flushRB180Cache () |
| | This flushes the entire cache.
|
| static void | flushPolarBCache () |
| | This flushes the entire cache.
|
| static void | flushParForCache () |
| static bool | getAllocSingleChunk () |
| | Query whether single-chunk allocation is enabled for new FabArrays.
|
| static std::uint64_t | getNextCommMetaDataId () |
| | Generate a monotonically increasing identifier for communication metadata objects.
|