|
| | EBFArrayBox () |
| | Construct an empty EB-aware FAB.
|
| | EBFArrayBox (Arena *ar) |
| | Construct using a specific memory arena ar.
|
| | EBFArrayBox (const EBCellFlagFab &ebflag, const Box &bx, int ncomps, Arena *ar, const EBFArrayBoxFactory *factory=nullptr, int box_index=-1) |
| | Construct an EB FAB referencing EB cell flags and optional factory data.
|
| | EBFArrayBox (EBFArrayBox const &rhs, MakeType make_type, int scomp, int ncomp) |
| | Sub-FAB constructor mirroring BaseFab semantics.
|
| | EBFArrayBox (EBFArrayBox &&rhs) noexcept=default |
| | EBFArrayBox (const EBFArrayBox &)=delete |
| EBFArrayBox & | operator= (const EBFArrayBox &)=delete |
| EBFArrayBox & | operator= (EBFArrayBox &&)=delete |
| | ~EBFArrayBox () override |
| const EBCellFlagFab & | getEBCellFlagFab () const |
| | Get EBCellFlag Fab.
|
| const FArrayBox * | getLevelSetData () const |
| const FArrayBox * | getVolFracData () const |
| const FArrayBox * | getCentroidData () const |
| const FArrayBox * | getBndryCentData () const |
| const FArrayBox * | getBndryNormalData () const |
| const FArrayBox * | getBndryAreaData () const |
| Array< const FArrayBox *, 3 > | getAreaFracData () const |
| Array< const FArrayBox *, 3 > | getFaceCentData () const |
| Array< const FArrayBox *, 3 > | getEdgeCentData () const |
| | FArrayBox () noexcept=default |
| | Construct an invalid FAB with no memory.
|
| | FArrayBox (Arena *ar) noexcept |
| | Construct an invalid FAB that will allocate from the supplied arena.
|
| | FArrayBox (const Box &b, int ncomp, Arena *ar) |
| | Allocate ncomp components over b using arena-managed memory.
|
| | FArrayBox (const Box &b, int ncomp=1, bool alloc=true, bool shared=false, Arena *ar=nullptr) |
| | Construct an initial FAB with the data space allocated but not initialized. ncomp is the number of components (variables) at each data point in the Box.
|
| | FArrayBox (const FArrayBox &rhs, MakeType make_type, int scomp, int ncomp) |
| | Construct from another FAB either by aliasing or deep-copying components.
|
| | FArrayBox (const Box &b, int ncomp, Real const *p) noexcept |
| | Wrap an externally owned const buffer; no memory is allocated or freed.
|
| | FArrayBox (const Box &b, int ncomp, Real *p) noexcept |
| | Wrap an externally owned mutable buffer; no memory is allocated or freed.
|
| | FArrayBox (Array4< Real > const &a) noexcept |
| | FArrayBox (Array4< Real > const &a, IndexType t) noexcept |
| | FArrayBox (Array4< Real const > const &a) noexcept |
| | FArrayBox (Array4< Real const > const &a, IndexType t) noexcept |
| | ~FArrayBox () noexcept override=default |
| | The destructor.
|
| | FArrayBox (FArrayBox &&rhs) noexcept=default |
| | Move-construct by transferring ownership of rhs storage.
|
| FArrayBox & | operator= (FArrayBox &&) noexcept=default |
| | Move-assign, releasing existing storage then adopting rhs memory.
|
| | FArrayBox (const FArrayBox &)=delete |
| FArrayBox & | operator= (const FArrayBox &)=delete |
| template<RunOn run_on> |
| FArrayBox & | operator= (Real v) noexcept |
| | Set the fab to the value r.
|
| template<RunOn run_on> |
| bool | contains_nan () const noexcept |
| | Test whether any NaN is present anywhere in the FAB.
|
| template<RunOn run_on> |
| bool | contains_nan (const Box &bx, int scomp, int ncomp) const noexcept |
| | Test whether any NaN is present in a sub-box and component range.
|
| template<RunOn run_on> |
| bool | contains_nan (IntVect &where) const noexcept |
| | Test the whole FAB for a NaN, reporting a location if found.
|
| template<RunOn run_on> |
| bool | contains_nan (const Box &bx, int scomp, int ncomp, IntVect &where) const noexcept |
| | Test a sub-box and component range for a NaN, reporting a location if found.
|
| template<RunOn run_on> |
| bool | contains_inf () const noexcept |
| | Test whether any Inf is present anywhere in the FAB.
|
| template<RunOn run_on> |
| bool | contains_inf (const Box &bx, int scomp, int ncomp) const noexcept |
| | Test whether any Inf is present in a sub-box and component range.
|
| template<RunOn run_on> |
| bool | contains_inf (IntVect &where) const noexcept |
| | Test the whole FAB for an Inf, reporting a location if found.
|
| template<RunOn run_on> |
| bool | contains_inf (const Box &bx, int scomp, int ncomp, IntVect &where) const noexcept |
| | Test a sub-box and component range for an Inf, reporting a location if found.
|
| void | resize (const Box &b, int N=1, Arena *ar=nullptr) |
| | For debugging purposes we hide BaseFab version and do some extra work.
|
| FabType | getType () const noexcept |
| | Return the embedded-boundary FabType of this FAB (always regular for a plain FArrayBox).
|
| void | initVal () noexcept |
| void | writeOn (std::ostream &os) const |
| | Write every component of the FAB using the current FABio format (the default format is NATIVE).
|
| void | writeOn (std::ostream &os, int comp, int num_comp=1) const |
| | Write only selected range of components. comp specifies from which component (starting at 0) to write at each point in space. num_comp specifies how many data points to write out at each point is space – it defaults to 1. It must be the case the comp >= 0 && num_comp >= 1 && (comp+num_comp) <= nComp(). The FAB is written out in whatever format you've set, with the default format being NATIVE. The FAB that is written to disk will be an num_comp component FAB.
|
| void | readFrom (std::istream &is) |
| | Read FAB from is using whichever FABio format it was written with.
|
| int | readFrom (std::istream &is, int compIndex) |
| | Read a single component (indexed by compIndex) from the serialized FAB, using whichever FABio format it was written with.
|
| BaseFab< Real > & | operator= (Real const &t) noexcept |
| virtual | ~BaseFab () noexcept |
| | The destructor deletes the array memory.
|
| void | resize (const Box &b, int N=1, Arena *ar=nullptr) |
| | This function resizes a BaseFab so it covers the Box b with N components.
|
| Elixir | elixir () noexcept |
| | Transfer owned storage to an Elixir when running in a GPU launch region.
|
| void | clear () |
| | The function returns the BaseFab to the invalid state. The memory is freed.
|
| std::unique_ptr< Real, DataDeleter > | release () noexcept |
| | Release ownership of memory.
|
| std::size_t | nBytes () const noexcept |
| | Returns how many bytes used.
|
| std::size_t | nBytesOwned () const noexcept |
| int | nComp () const noexcept |
| | Returns the number of components.
|
| const int * | nCompPtr () const noexcept |
| | for calls to fortran.
|
| Long | numPts () const noexcept |
| | Returns the number of points.
|
| Long | size () const noexcept |
| | Returns the total number of points of all components.
|
| const Box & | box () const noexcept |
| | Returns the domain (box) where the array is defined.
|
| IntVect | length () const noexcept |
| | Returns a pointer to an array of SPACEDIM integers giving the length of the domain in each direction.
|
| const IntVect & | smallEnd () const noexcept |
| | Returns the lower corner of the domain See class Box for analogue.
|
| const IntVect & | bigEnd () const noexcept |
| | Returns the upper corner of the domain. See class Box for analogue.
|
| const int * | loVect () const noexcept |
| | Returns the lower corner of the domain.
|
| const int * | hiVect () const noexcept |
| | Returns the upper corner of the domain.
|
| bool | contains (const BaseFab< Real > &fab) const noexcept |
| | Returns true if the domain of fab is totally contained within the domain of this BaseFab.
|
| Real * | dataPtr (int n=0) noexcept |
| | Returns a pointer to an object of type T that is the value of the Nth component associated with the cell at the low end of the domain. This is commonly used to get a pointer to data in the array which is then handed off to a Fortran subroutine. Remember that data is stored in Fortran array order, with the component index coming last. In other words, dataPtr returns a pointer to all the Nth components.
|
| void | setPtr (Real *p, Long sz) noexcept |
| | Attach externally allocated storage without taking ownership.
|
| void | prefetchToHost () const noexcept |
| | Advise the runtime to migrate storage to the host.
|
| void | prefetchToDevice () const noexcept |
| | Advise the runtime to migrate storage to the active device.
|
| Array4< Real const > | array () const noexcept |
| | Create an Array4 view over all components.
|
| Array4< Real const > | const_array () const noexcept |
| | Return a const-qualified Array4 view over all components.
|
| bool | isAllocated () const noexcept |
| | Returns true if the data for the FAB has been allocated.
|
| Real & | operator() (const IntVect &p, int N) noexcept |
| | Returns a reference to the Nth component value defined at position p in the domain. This operator may be inefficient if the C++ compiler is unable to optimize the C++ code.
|
| void | getVal (Real *data, const IntVect &pos, int N, int numcomp) const noexcept |
| | This function puts numcomp component values, starting at component N, from position pos in the domain into array data, that must be allocated by the user.
|
| void | fill_snan () noexcept |
| void | setVal (Real const &x, const Box &bx, int dcomp, int ncomp) noexcept |
| | The setVal functions set sub-regions in the BaseFab to a constant value. This most general form specifies the sub-box, the starting component number, and the number of components to be set.
|
| void | setValIfNot (Real const &val, const Box &bx, const BaseFab< int > &mask, int nstart, int num) noexcept |
| void | setComplement (Real const &x, const Box &b, int ns, int num) noexcept |
| | This function is analogous to the fourth form of setVal above, except that instead of setting values on the Box b, values are set on the complement of b in the domain.
|
| BaseFab< Real > & | copy (const BaseFab< Real > &src, const Box &srcbox, int srccomp, const Box &destbox, int destcomp, int numcomp) noexcept |
| | The copy functions copy the contents of one BaseFab into another. The destination BaseFab is always the object which invokes the function. This, the most general form of copy, specifies the contents of any sub-box srcbox in BaseFab src may be copied into a (possibly different) destbox in the destination BaseFab. Note that although the srcbox and the destbox may be disjoint, they must be the same size and shape. If the sizes differ, the copy is undefined and a runtime error results. This copy function is the only one of the copy functions to allow a copy between differing boxes. The user also specifies how many components are copied, starting at component srccomp in src and stored starting at component destcomp. The results are UNDEFINED if the src and dest are the same and the srcbox and destbox overlap.
|
| std::size_t | copyToMem (const Box &srcbox, int srccomp, int numcomp, void *dst) const noexcept |
| | Copy from the srcbox of this Fab to raw memory and return the number of bytes copied.
|
| std::size_t | copyFromMem (const Box &dstbox, int dstcomp, int numcomp, const void *src) noexcept |
| | Copy from raw memory to the dstbox of this Fab and return the number of bytes copied.
|
| std::size_t | addFromMem (const Box &dstbox, int dstcomp, int numcomp, const void *src) noexcept |
| | Add from raw memory to the dstbox of this Fab and return the number of bytes copied.
|
| BaseFab< Real > & | shift (const IntVect &v) noexcept |
| | Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory.
|
| BaseFab< Real > & | shiftHalf (int dir, int n_cell) noexcept |
| | Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory.
|
| Real | norminfmask (const Box &subbox, const BaseFab< int > &mask, int scomp=0, int ncomp=1) const noexcept |
| Real | norm (int p, int scomp=0, int numcomp=1) const |
| | Compute the Lp-norm of this FAB using components (scomp : scomp+ncomp-1). p < 0 -> ERROR p = 0 -> infinity norm (max norm) p = 1 -> sum of ABS(FAB).
|
| void | abs () noexcept |
| | Compute absolute value for all components of this FAB.
|
| Real | min (int comp=0) const noexcept |
| Real | max (int comp=0) const noexcept |
| std::pair< Real, Real > | minmax (int comp=0) const noexcept |
| Real | maxabs (int comp=0) const noexcept |
| IntVect | indexFromValue (const Box &subbox, int comp, Real const &value) const noexcept |
| IntVect | minIndex (int comp=0) const noexcept |
| IntVect | maxIndex (int comp=0) const noexcept |
| int | maskLT (BaseFab< int > &mask, Real const &val, int comp=0) const noexcept |
| | Compute mask array with value of 1 in cells where BaseFab has value less than val, 0 otherwise. mask is resized by this function. The number of cells marked with 1 returned.
|
| int | maskLE (BaseFab< int > &mask, Real const &val, int comp=0) const noexcept |
| | Mark cells with value <= val.
|
| int | maskEQ (BaseFab< int > &mask, Real const &val, int comp=0) const noexcept |
| | Mark cells with value equal to val.
|
| int | maskGT (BaseFab< int > &mask, Real const &val, int comp=0) const noexcept |
| | Mark cells with value greater than val.
|
| int | maskGE (BaseFab< int > &mask, Real const &val, int comp=0) const noexcept |
| | Mark cells with value greater than or equal to val.
|
| Real | sum (int comp, int numcomp=1) const noexcept |
| | Returns sum of given component of FAB state vector.
|
| BaseFab< Real > & | invert (Real const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| | Most general version, specify subbox and which components.
|
| BaseFab< Real > & | negate (const Box &b, int comp=0, int numcomp=1) noexcept |
| | Negate BaseFab, most general.
|
| BaseFab< Real > & | plus (Real const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| | Scalar addition (a[i] <- a[i] + r), most general.
|
| BaseFab< Real > & | atomicAdd (const BaseFab< Real > &x) noexcept |
| | Atomic FAB addition (a[i] <- a[i] + b[i]).
|
| BaseFab< Real > & | lockAdd (const BaseFab< Real > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp) noexcept |
| | Atomically add srcbox region of src FAB to destbox region of this FAB. The srcbox and destbox must be same size. When OMP is on, this uses OMP locks in the implementation and it's usually faster than atomicAdd.
|
| BaseFab< Real > & | saxpy (Real a, const BaseFab< Real > &x, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| | FAB SAXPY (y[i] <- y[i] + a * x[i]), in place.
|
| BaseFab< Real > & | xpay (Real a, const BaseFab< Real > &x, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| | FAB XPAY (y[i] <- x[i] + a * y[i]).
|
| BaseFab< Real > & | addproduct (const Box &destbox, int destcomp, int numcomp, const BaseFab< Real > &src1, int comp1, const BaseFab< Real > &src2, int comp2) noexcept |
| | y[i] <- y[i] + x1[i] * x2[i])
|
| BaseFab< Real > & | minus (const BaseFab< Real > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| | Subtract src components (srccomp:srccomp+numcomp-1) to this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect.
|
| BaseFab< Real > & | mult (Real const &r, int comp, int numcomp=1) noexcept |
| | Scalar multiplication applied to selected components over the entire domain.
|
| BaseFab< Real > & | divide (Real const &r, int comp, int numcomp=1) noexcept |
| | Divide selected components by a scalar across the entire domain.
|
| BaseFab< Real > & | protected_divide (const BaseFab< Real > &src) noexcept |
| | Divide wherever "src" is "true" or "non-zero".
|
| BaseFab< Real > & | linInterp (const BaseFab< Real > &f1, const Box &b1, int comp1, const BaseFab< Real > &f2, const Box &b2, int comp2, Real t1, Real t2, Real t, const Box &b, int comp, int numcomp=1) noexcept |
| | Linear interpolation / extrapolation. Result is (t2-t)/(t2-t1)*f1 + (t-t1)/(t2-t1)*f2 Data is taken from b1 region of f1, b2 region of f2 and stored in b region of this FAB. Boxes b, b1 and b2 must be the same size. Data is taken from component comp1 of f1, comp2 of f2, and stored in component comp of this FAB. This FAB is returned as a reference for chaining.
|
| BaseFab< Real > & | linComb (const BaseFab< Real > &f1, const Box &b1, int comp1, const BaseFab< Real > &f2, const Box &b2, int comp2, Real alpha, Real beta, const Box &b, int comp, int numcomp=1) noexcept |
| | Linear combination. Result is alpha*f1 + beta*f2. Data is taken from b1 region of f1, b2 region of f2 and stored in b region of this FAB. Boxes b, b1 and b2 must be the same size. Data is taken from component comp1 of f1, comp2 of f2, and stored in component comp of this FAB. This FAB is returned as a reference for chaining.
|
| Real | dot (const Box &xbx, int xcomp, const BaseFab< Real > &y, const Box &ybx, int ycomp, int numcomp=1) const noexcept |
| | Dot product of x (i.e.,this) and y.
|
| Real | dotmask (const BaseFab< int > &mask, const Box &xbx, int xcomp, const BaseFab< Real > &y, const Box &ybx, int ycomp, int numcomp) const noexcept |
| void | SetBoxType (const IndexType &typ) noexcept |
| | Change the Box type without change the length.
|
| void | setValIf (Real const &val, const BaseFab< int > &mask) noexcept |
| BaseFab< Real > & | operator+= (Real const &val) noexcept |
| BaseFab< Real > & | operator-= (Real const &val) noexcept |
| BaseFab< Real > & | operator*= (Real const &val) noexcept |
| BaseFab< Real > & | operator/= (Real const &val) noexcept |
| | DataAllocator () noexcept=default |
| | Default-construct; alloc/free will use The_Arena().
|
| | DataAllocator (Arena *ar) noexcept |
| | Construct with an explicit arena ar.
|
| void * | alloc (std::size_t sz) const |
| | Allocate sz bytes from the arena. Throws OutOfMemoryError on failure.
|
| void | free (void *pt) const noexcept |
| | Return the allocation at pt to the arena.
|
| Arena * | arena () const noexcept |
| | Return the stored arena, or The_Arena() if none was set.
|