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

#include <PatchSideDataOpsInteger.h>

Inheritance diagram for SAMRAI::math::PatchSideDataOpsInteger< DIM >:
Inheritance graph
[legend]

Public Member Functions

 PatchSideDataOpsInteger ()
 
virtual ~PatchSideDataOpsInteger ()
 
int numberOfEntries (const tbox::Pointer< pdat::SideData< DIM, int > > &data, const hier::Box< DIM > &box) const
 
void copyData (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src, const hier::Box< DIM > &box) const
 
void swapData (tbox::Pointer< hier::Patch< DIM > > patch, const int data1_id, const int data2_id) const
 
void printData (const tbox::Pointer< pdat::SideData< DIM, int > > &data, const hier::Box< DIM > &box, std::ostream &s=tbox::plog) const
 
void setToScalar (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &alpha, const hier::Box< DIM > &box) const
 
void abs (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src, const hier::Box< DIM > &box) const
 
void scale (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &alpha, const tbox::Pointer< pdat::SideData< DIM, int > > &src, const hier::Box< DIM > &box) const
 
void addScalar (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src, const int &alpha, const hier::Box< DIM > &box) const
 
void add (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void subtract (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void multiply (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void divide (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void reciprocal (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const tbox::Pointer< pdat::SideData< DIM, int > > &src, const hier::Box< DIM > &box) const
 
void linearSum (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &alpha, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const int &beta, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void axpy (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &alpha, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
void axmy (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &alpha, const tbox::Pointer< pdat::SideData< DIM, int > > &src1, const tbox::Pointer< pdat::SideData< DIM, int > > &src2, const hier::Box< DIM > &box) const
 
int min (const tbox::Pointer< pdat::SideData< DIM, int > > &data, const hier::Box< DIM > &box) const
 
int max (const tbox::Pointer< pdat::SideData< DIM, int > > &data, const hier::Box< DIM > &box) const
 
void setRandomValues (tbox::Pointer< pdat::SideData< DIM, int > > &dst, const int &width, const int &low, const hier::Box< DIM > &box) const
 

Private Member Functions

 PatchSideDataOpsInteger (const PatchSideDataOpsInteger< DIM > &)
 
void operator= (const PatchSideDataOpsInteger< DIM > &)
 

Private Attributes

ArrayDataNormOpsInteger< DIM > d_array_ops
 

Detailed Description

template<int DIM>
class SAMRAI::math::PatchSideDataOpsInteger< DIM >

Class PatchSideDataOpsInteger<DIM> provides a collection of operations that may be used to manipulate integer side-centered patch data. The operations include basic arithmetic, min, max, etc. With the exception of a few basic routines, this class inherits its interface (and thus its functionality) from the base class PatchSideDataBasicOps<DIM> from which it is derived.

A more extensive set of operations is implemented for real (double and float) and complex patch data in the classes PatchSideDataOpsReal<DIM> and PatchSideDataOpsComplex<DIM>, repsectively.

See also
math::PatchSideDataBasicOps

Constructor & Destructor Documentation

◆ PatchSideDataOpsInteger() [1/2]

Empty constructor and destructor.

◆ ~PatchSideDataOpsInteger()

template<int DIM>
virtual SAMRAI::math::PatchSideDataOpsInteger< DIM >::~PatchSideDataOpsInteger ( )
virtual

◆ PatchSideDataOpsInteger() [2/2]

template<int DIM>
SAMRAI::math::PatchSideDataOpsInteger< DIM >::PatchSideDataOpsInteger ( const PatchSideDataOpsInteger< DIM > &  )
private

Member Function Documentation

◆ numberOfEntries()

template<int DIM>
int SAMRAI::math::PatchSideDataOpsInteger< DIM >::numberOfEntries ( const tbox::Pointer< pdat::SideData< DIM, int > > &  data,
const hier::Box< DIM > &  box 
) const

Return the number of data values for the side-centered data object in the given box. Note that it is assumed that the box refers to the cell-centered index space corresponding to the patch hierarchy.

◆ copyData()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::copyData ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src,
const hier::Box< DIM > &  box 
) const

Copy dst data to src data over given box.

◆ swapData()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::swapData ( tbox::Pointer< hier::Patch< DIM > >  patch,
const int  data1_id,
const int  data2_id 
) const

Swap pointers for patch data objects. Objects are checked for consistency of depth, box, and ghost box.

◆ printData()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::printData ( const tbox::Pointer< pdat::SideData< DIM, int > > &  data,
const hier::Box< DIM > &  box,
std::ostream &  s = tbox::plog 
) const

Print data entries over given box to given output stream.

◆ setToScalar()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::setToScalar ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int alpha,
const hier::Box< DIM > &  box 
) const

Initialize data to given scalar over given box.

◆ abs()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::abs ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src,
const hier::Box< DIM > &  box 
) const

Set destination component to absolute value of source component. That is, each destination entry is set to \(d_i = \| s_i \|\).

◆ operator=()

template<int DIM>
void SAMRAI::math::PatchSideDataOpsInteger< DIM >::operator= ( const PatchSideDataOpsInteger< DIM > &  )
private

◆ scale()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::scale ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int alpha,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = alpha * src, elementwise.

◆ addScalar()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::addScalar ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src,
const int alpha,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src + alpha, elementwise.

◆ add()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::add ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 + src2, elementwise.

◆ subtract()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::subtract ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 - src2, elementwise.

◆ multiply()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::multiply ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 * src2, elementwise.

◆ divide()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::divide ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ reciprocal()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::reciprocal ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ linearSum()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::linearSum ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int alpha,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const int beta,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ axpy()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::axpy ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int alpha,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = alpha * src1 + src2, elementwise.

◆ axmy()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::axmy ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int alpha,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src1,
const tbox::Pointer< pdat::SideData< DIM, int > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = alpha * src1 - src2, elementwise.

◆ min()

int SAMRAI::math::PatchSideDataBasicOps< DIM, int >::min ( const tbox::Pointer< pdat::SideData< DIM, int > > &  data,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ max()

int SAMRAI::math::PatchSideDataBasicOps< DIM, int >::max ( const tbox::Pointer< pdat::SideData< DIM, int > > &  data,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ setRandomValues()

void SAMRAI::math::PatchSideDataBasicOps< DIM, int >::setRandomValues ( tbox::Pointer< pdat::SideData< DIM, int > > &  dst,
const int width,
const int low,
const hier::Box< DIM > &  box 
) const
inherited

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.

Member Data Documentation

◆ d_array_ops

template<int DIM>
ArrayDataNormOpsInteger<DIM> SAMRAI::math::PatchSideDataOpsInteger< DIM >::d_array_ops
private

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