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

#include <PatchFaceDataOpsComplex.h>

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

Public Member Functions

 PatchFaceDataOpsComplex ()
 
virtual ~PatchFaceDataOpsComplex ()
 
void copyData (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &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::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, std::ostream &s=tbox::plog) const
 
void setToScalar (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &alpha, const hier::Box< DIM > &box) const
 
void scale (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &alpha, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src, const hier::Box< DIM > &box) const
 
void addScalar (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src, const dcomplex &alpha, const hier::Box< DIM > &box) const
 
void add (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void subtract (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void multiply (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void divide (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void reciprocal (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src, const hier::Box< DIM > &box) const
 
void linearSum (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &alpha, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const dcomplex &beta, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void axpy (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &alpha, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
void axmy (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &alpha, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src2, const hier::Box< DIM > &box) const
 
dcomplex min (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box) const
 
dcomplex max (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box) const
 
void setRandomValues (tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &dst, const dcomplex &width, const dcomplex &low, const hier::Box< DIM > &box) const
 
int numberOfEntries (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box) const
 
double sumControlVolumes (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const tbox::Pointer< pdat::FaceData< DIM, double > > &cvol, const hier::Box< DIM > &box) const
 
void abs (tbox::Pointer< pdat::FaceData< DIM, double > > &dst, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &src, const hier::Box< DIM > &box) const
 
double L1Norm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
double L2Norm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
double weightedL2Norm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &weight, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
double RMSNorm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
double weightedRMSNorm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &weight, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
double maxNorm (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
dcomplex dot (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data1, const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data2, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > cvol=NULL) const
 
dcomplex integral (const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &data, const hier::Box< DIM > &box, const tbox::Pointer< pdat::FaceData< DIM, double > > vol) const
 

Private Member Functions

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

Private Attributes

ArrayDataBasicOps< DIM, dcomplexd_array_ops
 

Detailed Description

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

Class PatchFaceDataOpsComplex<DIM> provides a collection of operations that may be used to manipulate complex face-centered patch data. The operations include basic arithmetic and norms. With the exception of a few basic routines, this class inherits its interface (and thus its functionality) from the base classes PatchFaceDataBasicOps<DIM>, PatchFaceDataNormOpsComplex<DIM> from which it is derived. The name of each of these base classes is indicative of the set of face-centered patch data operations that it provides.

A similar set of operations is implemented for real (double and float) and integer patch data in the classes PatchFaceDataOpsReal<DIM> and PatchFaceDataOpsInteger<DIM>, repsectively.

See also
math::PatchFaceDataBasicOps
math::PatchFaceDataNormOpsComplex

Constructor & Destructor Documentation

◆ PatchFaceDataOpsComplex() [1/2]

Empty constructor and destructor.

◆ ~PatchFaceDataOpsComplex()

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

◆ PatchFaceDataOpsComplex() [2/2]

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

Member Function Documentation

◆ copyData()

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

Copy dst data to src data over given box.

◆ swapData()

template<int DIM>
void SAMRAI::math::PatchFaceDataOpsComplex< 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::PatchFaceDataOpsComplex< DIM >::printData ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  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::PatchFaceDataOpsComplex< DIM >::setToScalar ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const dcomplex alpha,
const hier::Box< DIM > &  box 
) const

Initialize data to given scalar over given box.

◆ operator=()

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

◆ scale()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::scale ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const dcomplex alpha,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = alpha * src, elementwise.

◆ addScalar()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::addScalar ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src,
const dcomplex alpha,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src + alpha, elementwise.

◆ add()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::add ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src1,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 + src2, elementwise.

◆ subtract()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::subtract ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src1,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 - src2, elementwise.

◆ multiply()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::multiply ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src1,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

Set dst = src1 * src2, elementwise.

◆ divide()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::divide ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src1,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src2,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ reciprocal()

void SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::reciprocal ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src,
const hier::Box< DIM > &  box 
) const
inherited

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

◆ linearSum()

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

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

◆ axpy()

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

Set dst = alpha * src1 + src2, elementwise.

◆ axmy()

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

Set dst = alpha * src1 - src2, elementwise.

◆ min()

dcomplex SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::min ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  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()

dcomplex SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::max ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  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::PatchFaceDataBasicOps< DIM, dcomplex >::setRandomValues ( tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  dst,
const dcomplex width,
const dcomplex 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.

◆ numberOfEntries()

template<int DIM>
int SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::numberOfEntries ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box 
) const
inherited

Return the number of data values for the face-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.

◆ sumControlVolumes()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::sumControlVolumes ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const tbox::Pointer< pdat::FaceData< DIM, double > > &  cvol,
const hier::Box< DIM > &  box 
) const
inherited

Return sum of control volume entries for the face-centered data object.

◆ abs()

template<int DIM>
void SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::abs ( tbox::Pointer< pdat::FaceData< DIM, double > > &  dst,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  src,
const hier::Box< DIM > &  box 
) const
inherited

Set destination component to norm of source component. That is, each destination entry is set to \(d_i = \sqrt{ {real(s_i)}^2 + {imag(s_i)}^2 }\).

◆ L1Norm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::L1Norm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return discrete \(L_1\)-norm of the data using the control volume to weight the contribution of each data entry to the sum. That is, the return value is the sum \(\sum_i ( \sqrt{data_i * \bar{data_i}}*cvol_i )\). If the control volume is NULL, the return value is \(\sum_i ( \sqrt{data_i * \bar{data_i}} )\).

◆ L2Norm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::L2Norm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return discrete \(L_2\)-norm of the data using the control volume to weight the contribution of each data entry to the sum. That is, the return value is the sum \(\sqrt{ \sum_i ( data_i * \bar{data_i} cvol_i ) }\). If the control volume is NULL, the return value is \(\sqrt{ \sum_i ( data_i * \bar{data_i} ) }\).

◆ weightedL2Norm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::weightedL2Norm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  weight,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return discrete weighted \(L_2\)-norm of the data using the control volume to weight the contribution of the data and weight entries to the sum. That is, the return value is the sum \(\sqrt{ \sum_i ( (data_i * wgt_i) * \bar{(data_i * wgt_i)} cvol_i ) }\). If the control volume is NULL, the return value is \(\sqrt{ \sum_i ( (data_i * wgt_i) * \bar{(data_i * wgt_i)} cvol_i ) }\).

◆ RMSNorm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::RMSNorm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return discrete root mean squared norm of the data. If the control volume is not NULL, the return value is the \(L_2\)-norm divided by the square root of the sum of the control volumes. Otherwise, the return value is the \(L_2\)-norm divided by the square root of the number of data entries.

◆ weightedRMSNorm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::weightedRMSNorm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  weight,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return discrete weighted root mean squared norm of the data. If the control volume is not NULL, the return value is the weighted \(L_2\)-norm divided by the square root of the sum of the control volumes. Otherwise, the return value is the weighted \(L_2\)-norm divided by the square root of the number of data entries.

◆ maxNorm()

template<int DIM>
double SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::maxNorm ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return the \(\max\)-norm of the data using the control volume to weight the contribution of each data entry to the maximum. That is, the return value is \(\max_i ( \sqrt{data_i * \bar{data_i}} )\), where the max is over the data elements where \(cvol_i > 0\). If the control volume is NULL, it is ignored during the computation of the maximum.

◆ dot()

template<int DIM>
dcomplex SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::dot ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data1,
const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data2,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  cvol = NULL 
) const
inherited

Return the dot product of the two data arrays using the control volume to weight the contribution of each product to the sum. That is, the return value is the sum \(\sum_i ( data1_i * \bar{data2_i} * cvol_i )\). If the control volume is NULL, it is ignored during the summation.

◆ integral()

template<int DIM>
dcomplex SAMRAI::math::PatchFaceDataNormOpsComplex< DIM >::integral ( const tbox::Pointer< pdat::FaceData< DIM, dcomplex > > &  data,
const hier::Box< DIM > &  box,
const tbox::Pointer< pdat::FaceData< DIM, double > >  vol 
) const
inherited

Return the integral of the function represented by the data array. The return value is the sum \(\sum_i ( data_i * vol_i )\).

Member Data Documentation

◆ d_array_ops

ArrayDataBasicOps<DIM,dcomplex > SAMRAI::math::PatchFaceDataBasicOps< DIM, dcomplex >::d_array_ops
privateinherited

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