FreePOOMA  2.4.1
Classes | Enumerations | Functions
FieldCentering.h File Reference

specifies value locations within a field's cell More...

#include "Tiny/Vector.h"
#include "Utilities/PAssert.h"
#include <vector>
#include <ostream>
Include dependency graph for FieldCentering.h:
This graph shows which files directly or indirectly include this file:

Classes

class  Centering< Dim >
 Centering indicates the positions of values within a field's cell. More...
class  CanonicalCentering< Dim >
 This object makes available some canonical centerings. More...

Enumerations

enum  CenteringType { VertexType, EdgeType, FaceType, CellType }
 Indicate a cell's centering type. More...
enum  ContinuityType { Continuous = 0, Discontinuous }
 Indicate whether a cell's values are shared xor not shared. More...
enum  { XDim = 1, YDim = XDim << 1, ZDim = YDim << 1, AllDim = XDim | YDim | ZDim }
 Permit specifying various dimensions. More...

Functions

template<int Dim>
std::ostream & operator<< (std::ostream &o, const Centering< Dim > &centering)
template<int Dim>
bool operator== (const Centering< Dim > &centering1, const Centering< Dim > &centering2)
template<int Dim>
bool operator!= (const Centering< Dim > &centering1, const Centering< Dim > &centering2)
Functions for translating domains based on centerings.
template<int Dim>
Interval< Dim > cellDomainToCenteringDomain (const Interval< Dim > &cellDom, const Centering< Dim > &centering, int i)
 cellDomainToCenteringDomain(cellDom, centering, i) computes the domain of the i'th subfield for a field that has the given cell domain.
template<int Dim>
Interval< Dim > centeringDomainToCellDomain (const Interval< Dim > &cDom, const Centering< Dim > &centering, int i)
 centeringDomainToCellDomain(cDom, centering, i) the inverse function.

canonicalCentering

canonicalCentering<Dim>(type, discontinuous, dimension) is a functional wrapper around a CanonicalCentering object.

const CanonicalCentering< 1 > canonicalCenteringOne_g
const CanonicalCentering< 2 > canonicalCenteringTwo_g
const CanonicalCentering< 3 > canonicalCenteringThree_g
template<int Dim>
const Centering< Dim > canonicalCentering (const enum CenteringType type, const enum ContinuityType discontinuous, const int dimension=0)
template<>
const Centering< 1 > canonicalCentering< 1 > (const enum CenteringType type, const enum ContinuityType discontinuous, const int dimension)
template<>
const Centering< 2 > canonicalCentering< 2 > (const enum CenteringType type, const enum ContinuityType discontinuous, const int dimension)
template<>
const Centering< 3 > canonicalCentering< 3 > (const enum CenteringType type, const enum ContinuityType discontinuous, const int dimension)

Detailed Description

specifies value locations within a field's cell

Centering specifies value locations within a field's cell.

CanonicalCentering yields some canonical centerings.

canonicalCentering<Dim>(type, discontinuous, dimension) yields the specified canonical centering


Enumeration Type Documentation

Indicate a cell's centering type.

Enumerator:
VertexType 

Vertex type.

EdgeType 

Edge type.

FaceType 

Face type.

CellType 

Cell type.

Indicate whether a cell's values are shared xor not shared.

Enumerator:
Continuous 

Shared xor.

Discontinuous 

Not shared.

anonymous enum

Permit specifying various dimensions.

Enumerator:
XDim 

X components.

YDim 

Y components.

ZDim 

Z components.

AllDim 

All components.


Function Documentation

template<int Dim>
std::ostream& operator<< ( std::ostream &  o,
const Centering< Dim > &  centering 
)
template<int Dim>
bool operator== ( const Centering< Dim > &  centering1,
const Centering< Dim > &  centering2 
)
template<int Dim>
bool operator!= ( const Centering< Dim > &  centering1,
const Centering< Dim > &  centering2 
)
template<int Dim>
const Centering<Dim> canonicalCentering ( const enum CenteringType  type,
const enum ContinuityType  discontinuous,
const int  dimension = 0 
)
template<>
const Centering<1> canonicalCentering< 1 > ( const enum CenteringType  type,
const enum ContinuityType  discontinuous,
const int  dimension 
)
template<>
const Centering<2> canonicalCentering< 2 > ( const enum CenteringType  type,
const enum ContinuityType  discontinuous,
const int  dimension 
)
template<>
const Centering<3> canonicalCentering< 3 > ( const enum CenteringType  type,
const enum ContinuityType  discontinuous,
const int  dimension 
)
template<int Dim>
Interval<Dim> cellDomainToCenteringDomain ( const Interval< Dim > &  cellDom,
const Centering< Dim > &  centering,
int  i 
) [inline]

cellDomainToCenteringDomain(cellDom, centering, i) computes the domain of the i'th subfield for a field that has the given cell domain.

References Centering< Dim >::discontinuous(), growRight(), Centering< Dim >::orientation(), and shrinkRight().

Referenced by FieldEngine< Mesh, T, EngineTag >::FieldEngine(), FieldEngine< Mesh, T, EngineTag >::physicalDomain(), and FieldEngine< Mesh, T, EngineTag >::totalDomain().

template<int Dim>
Interval<Dim> centeringDomainToCellDomain ( const Interval< Dim > &  cDom,
const Centering< Dim > &  centering,
int  i 
) [inline]

Variable Documentation