IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE > Class Template Reference

#include <PatchEdgeDataBasicOps.h>

Inheritance diagram for SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >:
Inheritance graph
[legend]

Public Member Functions

 PatchEdgeDataBasicOps ()
 
virtual ~PatchEdgeDataBasicOps ()
 
void scale (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const TYPE &alpha, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src, const hier::Box< DIM > &box) const
 
void addScalar (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src, const TYPE &alpha, const hier::Box< DIM > &box) const
 
void add (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void subtract (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void multiply (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void divide (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void reciprocal (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src, const hier::Box< DIM > &box) const
 
void linearSum (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const TYPE &alpha, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const TYPE &beta, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void axpy (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const TYPE &alpha, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
void axmy (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const TYPE &alpha, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src1, const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &src2, const hier::Box< DIM > &box) const
 
TYPE min (const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &data, const hier::Box< DIM > &box) const
 
TYPE max (const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &data, const hier::Box< DIM > &box) const
 
void setRandomValues (tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &dst, const TYPE &width, const TYPE &low, const hier::Box< DIM > &box) const
 

Private Member Functions

 PatchEdgeDataBasicOps (const PatchEdgeDataBasicOps< DIM, TYPE > &)
 
void operator= (const PatchEdgeDataBasicOps< DIM, TYPE > &)
 

Private Attributes

ArrayDataBasicOps< DIM, TYPE > d_array_ops
 

Detailed Description

template<int DIM, class TYPE>
class SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >

Class PatchEdgeDataBasicOps<DIM> provides access to a collection of basic numerical operations that may be applied to numerical edge- centered patch data. These operations include simple arithmetic operations as well as min and max, etc. The primary intent of this class is to provide the interface to these standard operations for an PatchEdgeDataOps<DIM> object which provides access to a complete set of operations that may be used to manipulate edge-centered patch data objects. Each member function accepts a box argument indicating the region of index space on which the operation should be performed. The operation will be performed on the intersection of this box and those boxes corresponding to the patch data objects involved.

These operations typically apply only to the numerical standard built-in types, such as double, float, and int, and the complex type (which may or may not be a built-in type depending on the C++ compiler). Thus, this templated class should only be used to instantiate objects with those types as the template parameter. None of the operations are implemented for any other type.

See also
math::ArrayDataBasicOps

Constructor & Destructor Documentation

◆ PatchEdgeDataBasicOps() [1/2]

template<int DIM, class TYPE >
SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::PatchEdgeDataBasicOps ( )

Empty constructor and destructor.

◆ ~PatchEdgeDataBasicOps()

template<int DIM, class TYPE >
virtual SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::~PatchEdgeDataBasicOps ( )
virtual

◆ PatchEdgeDataBasicOps() [2/2]

template<int DIM, class TYPE >
SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::PatchEdgeDataBasicOps ( const PatchEdgeDataBasicOps< DIM, TYPE > &  )
private

Member Function Documentation

◆ scale()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::scale ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const TYPE &  alpha,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src,
const hier::Box< DIM > &  box 
) const

Set dst = alpha * src, elementwise.

◆ addScalar()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::addScalar ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src,
const TYPE &  alpha,
const hier::Box< DIM > &  box 
) const

Set dst = src + alpha, elementwise.

◆ add()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::add ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = src1 + src2, elementwise.

◆ subtract()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::subtract ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = src1 - src2, elementwise.

◆ multiply()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::multiply ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = src1 * src2, elementwise.

◆ divide()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::divide ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = src1 / src2, elementwise. No check for division by zero.

◆ reciprocal()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::reciprocal ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src,
const hier::Box< DIM > &  box 
) const

Set dst = 1 / src, elementwise. No check for division by zero.

◆ linearSum()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::linearSum ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const TYPE &  alpha,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const TYPE &  beta,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = alpha * src1 + beta * src2, elementwise.

◆ axpy()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::axpy ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const TYPE &  alpha,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = alpha * src1 + src2, elementwise.

◆ axmy()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::axmy ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const TYPE &  alpha,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src1,
const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  src2,
const hier::Box< DIM > &  box 
) const

Set dst = alpha * src1 - src2, elementwise.

◆ min()

template<int DIM, class TYPE >
TYPE SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::min ( const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  data,
const hier::Box< DIM > &  box 
) const

Return the minimum patch data component entry When the data is complex, the result is the data element with the smallest norm.

◆ max()

template<int DIM, class TYPE >
TYPE SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::max ( const tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  data,
const hier::Box< DIM > &  box 
) const

Return the maximum patch data component entry When the data is complex, the result is the data element with the largest norm.

◆ setRandomValues()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::setRandomValues ( tbox::Pointer< pdat::EdgeData< DIM, TYPE > > &  dst,
const TYPE &  width,
const TYPE &  low,
const hier::Box< DIM > &  box 
) const

Set patch data to random values. See the operations in the ArrayDataBasicOps<DIM> class for details on the generation of the random values for each data type.

◆ operator=()

template<int DIM, class TYPE >
void SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::operator= ( const PatchEdgeDataBasicOps< DIM, TYPE > &  )
private

Member Data Documentation

◆ d_array_ops

template<int DIM, class TYPE >
ArrayDataBasicOps<DIM,TYPE> SAMRAI::math::PatchEdgeDataBasicOps< DIM, TYPE >::d_array_ops
private

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