#include <source/mathops/node/HierarchyNodeDataOpsComplex.h>
Inheritance diagram for SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >:
Public Member Functions | |
HierarchyNodeDataOpsComplex (tbox::Pointer< hier::PatchHierarchy< DIM > > hierarchy, const int coarsest_level=-1, const int finest_level=-1) | |
virtual | ~HierarchyNodeDataOpsComplex () |
void | setPatchHierarchy (tbox::Pointer< hier::PatchHierarchy< DIM > > hierarchy) |
void | resetLevels (const int coarsest_level, const int finest_level) |
const tbox::Pointer< hier::PatchHierarchy< DIM > > | getPatchHierarchy () const |
void | copyData (const int dst_id, const int src_id, const bool interior_only=true) const |
void | swapData (const int data1_id, const int data2_id) const |
void | printData (const int data_id, std::ostream &s, const bool interior_only=true) const |
void | setToScalar (const int data_id, const dcomplex &alpha, const bool interior_only=true) const |
void | scale (const int dst_id, const dcomplex &alpha, const int src_id, const bool interior_only=true) const |
void | addScalar (const int dst_id, const int src_id, const dcomplex &alpha, const bool interior_only=true) const |
void | add (const int dst_id, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | subtract (const int dst_id, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | multiply (const int dst_id, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | divide (const int dst_id, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | reciprocal (const int dst_id, const int src_id, const bool interior_only=true) const |
void | linearSum (const int dst_id, const dcomplex &alpha, const int src1_id, const dcomplex &beta, const int src2_id, const bool interior_only=true) const |
void | axpy (const int dst_id, const dcomplex &alpha, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | axmy (const int dst_id, const dcomplex &alpha, const int src1_id, const int src2_id, const bool interior_only=true) const |
void | abs (const int dst_id, const int src_id, const bool interior_only=true) const |
void | setRandomValues (const int data_id, const dcomplex &width, const dcomplex &low, const bool interior_only=true) const |
int | numberOfEntries (const int data_id, const bool interior_only=true) const |
double | sumControlVolumes (const int data_id, const int vol_id) const |
double | L1Norm (const int data_id, const int vol_id=-1) const |
double | L2Norm (const int data_id, const int vol_id=-1) const |
double | weightedL2Norm (const int data_id, const int weight_id, const int vol_id=-1) const |
double | RMSNorm (const int data_id, const int vol_id=-1) const |
double | weightedRMSNorm (const int data_id, const int weight_id, const int vol_id=-1) const |
double | maxNorm (const int data_id, const int vol_id=-1) const |
dcomplex | dot (const int data1_id, const int data2_id, const int vol_id=-1) const |
dcomplex | integral (const int data_id, const int vol_id) const |
The patch hierarchy and set of levels within that hierarcy over which the operations will be performed are set in the constructor. However, note that the constructor accepts default arguments for the coarsest and finest level numbers. If the level numbers are not specified when calling the constructor the levels which exist in the hierarchy will be assumed in all operations. The hierarchy and levels may be changed at any time using the proper member functions.
Note that, when it makes sense, an operation accept a boolean argument which indicates whether the operation should be performed on all of the data or just those data elements corresponding to the patch interiors. If no boolean argument is provided, the default behavior is to treat only the patch interiors. Also, a similar set of operations for real (double and float) and integer node-centered data is provided in the classes HierarchyNodeDataOpsReal<DIM> and HierarchyNodeDataOpsInteger<DIM>, respectively.
SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::HierarchyNodeDataOpsComplex | ( | tbox::Pointer< hier::PatchHierarchy< DIM > > | hierarchy, | |
const int | coarsest_level = -1 , |
|||
const int | finest_level = -1 | |||
) |
The constructor for the HierarchyNodeDataOpsComplex<DIM> class sets the default patch hierarchy and coarsest and finest patch levels in that hierarchy over which operations will be performed. The hierarchy and operations may be reset using the member fuctions setPatchHierarchy() and resetLevels() below. If no level number arguments are given here, the levels over which the operations will be performed are those already existing in the hierarchy. If the hierarchy level configuration changes, the operations must be explicitly reset by calling the resetLevels() function.
SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::~HierarchyNodeDataOpsComplex | ( | ) | [virtual] |
Virtual destructor for the HierarchyNodeDataOpsComplex<DIM> class.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::setPatchHierarchy | ( | tbox::Pointer< hier::PatchHierarchy< DIM > > | hierarchy | ) | [virtual] |
Reset patch hierarchy over which operations occur.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::resetLevels | ( | const int | coarsest_level, | |
const int | finest_level | |||
) | [virtual] |
Reset range of patch levels over which operations occur. Levels must exist in hierarchy or an assertion will result.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
const tbox::Pointer< hier::PatchHierarchy< DIM > > SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::getPatchHierarchy | ( | ) | const [virtual] |
Return const pointer to patch hierarchy associated with operations.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::copyData | ( | const int | dst_id, | |
const int | src_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Copy source data to destination data.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::swapData | ( | const int | data1_id, | |
const int | data2_id | |||
) | const [virtual] |
Swap data pointers (i.e., storage) between two data components.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::printData | ( | const int | data_id, | |
std::ostream & | s, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Print data over multiple levels to specified output stream.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::setToScalar | ( | const int | data_id, | |
const dcomplex & | alpha, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set data component to given scalar.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::scale | ( | const int | dst_id, | |
const dcomplex & | alpha, | |||
const int | src_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set destination to source multiplied by given scalar, pointwise.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::addScalar | ( | const int | dst_id, | |
const int | src_id, | |||
const dcomplex & | alpha, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Add scalar to each entry in source data and set destination to result.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::add | ( | const int | dst_id, | |
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set destination to sum of two source components, pointwise.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::subtract | ( | const int | dst_id, | |
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Subtract second source component from first source component pointwise and set destination data component to result.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::multiply | ( | const int | dst_id, | |
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set destination component to product of two source components, pointwise.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::divide | ( | const int | dst_id, | |
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Divide first data component by second source component pointwise and set destination data component to result.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::reciprocal | ( | const int | dst_id, | |
const int | src_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set each entry of destination component to reciprocal of corresponding source data component entry.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::linearSum | ( | const int | dst_id, | |
const dcomplex & | alpha, | |||
const int | src1_id, | |||
const dcomplex & | beta, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set , where is the destination patch data component and are the first and second source components, respectively. Here are scalar values.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::axpy | ( | const int | dst_id, | |
const dcomplex & | alpha, | |||
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set , where is the destination patch data component and are the first and second source components, respectively. Here is a scalar.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::axmy | ( | const int | dst_id, | |
const dcomplex & | alpha, | |||
const int | src1_id, | |||
const int | src2_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set , where is the destination patch data component and are the first and second source components, respectively. Here is a scalar.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::abs | ( | const int | dst_id, | |
const int | src_id, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set destination data to absolute value of source data, pointwise. Note that the source data must be dcomplex and the destination must be double.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
void SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::setRandomValues | ( | const int | data_id, | |
const dcomplex & | width, | |||
const dcomplex & | low, | |||
const bool | interior_only = true | |||
) | const [virtual] |
Set data entries to random values. See the operations in the array data operation classes for details on the generation of the random values.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
int SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::numberOfEntries | ( | const int | data_id, | |
const bool | interior_only = true | |||
) | const [virtual] |
Return the total number of data values for the component on the set of hierarchy levels. If the boolean argument is true, the number of elements will be summed over patch interiors in a unique way which avoids multiple counting of redundant values (recall the definition of node points on a patch interior). If the boolean argument is false, all elements will be counted (including ghost values) over all patches.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::sumControlVolumes | ( | const int | data_id, | |
const int | vol_id | |||
) | const [virtual] |
Return sum of the control volumes associated with the data component. Note that if the ontrol volumes are set propery, this is equivalent to integrating a data component containing all ones over the collection of hierarchy levels.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::L1Norm | ( | const int | data_id, | |
const int | vol_id = -1 | |||
) | const [virtual] |
Return discrete -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 . If the control volume is undefined (vol_id < 0), the return value is .
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::L2Norm | ( | const int | data_id, | |
const int | vol_id = -1 | |||
) | const [virtual] |
Return discrete -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 . If the control volume is undefined (vol_id < 0), the return value is .
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::weightedL2Norm | ( | const int | data_id, | |
const int | weight_id, | |||
const int | vol_id = -1 | |||
) | const [virtual] |
Return discrete weighted -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 . If the control volume is undefined (vol_id < 0), the return value is .
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::RMSNorm | ( | const int | data_id, | |
const int | vol_id = -1 | |||
) | const [virtual] |
Return discrete root mean squared norm of the data. If the control volume is specified (vol_id >= 0), the return value is the -norm divided by the square root of the sum of the control volumes. Otherwise, the return value is the -norm divided by the square root of the number of data entries.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::weightedRMSNorm | ( | const int | data_id, | |
const int | weight_id, | |||
const int | vol_id = -1 | |||
) | const [virtual] |
Return discrete weighted root mean squared norm of the data. If the control volume is specified (vol_id >= 0), the return value is the weighted -norm divided by the square root of the sum of the control volumes. Otherwise, the return value is the weighted -norm divided by the square root of the number of data entries.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
double SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::maxNorm | ( | const int | data_id, | |
const int | vol_id = -1 | |||
) | const [virtual] |
Return the -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 , where the max is over the data elements where . If the control volume is undefined (vol_id < 0), it is ignored during the computation of the maximum.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
dcomplex SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::dot | ( | const int | data1_id, | |
const int | data2_id, | |||
const int | vol_id = -1 | |||
) | const [virtual] |
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 . If the control volume is undefined (vol_id < 0), it is ignored during the summation.
Implements SAMRAI::math::HierarchyDataOpsComplex< DIM >.
dcomplex SAMRAI::math::HierarchyNodeDataOpsComplex< DIM >::integral | ( | const int | data_id, | |
const int | vol_id | |||
) | const |
Return the integral of the function represented by the data array. The return value is the sum .