#include <FieldEngine.h>
Public Types | |
enum | { dimensions = Mesh::dimensions } |
enum | { Dim = dimensions } |
typedef FieldEngine< Mesh, T, EngineTag > | This_t |
typedef FieldEngineBaseData < Dim, T, EngineTag > | Data_t |
typedef Engine< Dim, T, EngineTag > | Engine_t |
typedef Engine_t::Domain_t | Domain_t |
typedef Engine_t::Layout_t | Layout_t |
typedef Engine_t::Element_t | Element_t |
typedef Engine_t::ElementRef_t | ElementRef_t |
typedef GuardLayers< Dim > | GuardLayers_t |
Public Member Functions | |
FieldEngine () | |
Default constructor. | |
template<class Layout2 > | |
FieldEngine (const Centering< Dim > ¢ering, const Layout2 &layout, const Mesh &mesh, int materials=1) | |
General version takes centering, layout, mesh, materials. | |
FieldEngine (const This_t &model) | |
Copy constructor. | |
FieldEngine (const This_t &model, const Pooma::DontCopyRelations &d) | |
void | initialize (const This_t &model) |
template<class Subject > | |
void | makeOwnCopy (const Subject &s) |
Make a distinct copy of this fieldEngineBase. | |
Domain_t | translateToVertexDomain (const Domain_t &d) const |
Domain translation function. | |
Domain_t | inputDomainToVertexDomain (const Domain_t &d) const |
Converts an input domain (which is a cell domain for fields with multiple centering points and a centering domain for one centering point) to the corresponding vertex domain. | |
Sub-field view constructors | |
FieldEngine (const This_t &model, int subField) | |
Takes a view of
| |
FieldEngine (const This_t &model, int m, int c) | |
Takes a view of the specified centering point of the specified material. | |
FieldEngine (const This_t &model, int c, const Pooma::CenteringViewTag &) | |
Takes a view of the specified centering point from all materials. | |
FieldEngine (const This_t &model, int m, const Pooma::MaterialViewTag &) | |
Takes a view of the specified material retaining all centering points. | |
FieldEngine (int c, const This_t &model) | |
Takes a view of the specified centering point of the first material. | |
View constructors. | |
template<class T2 , class EngineTag2 > | |
FieldEngine (const FieldEngine< Mesh, T2, EngineTag2 > &model, const Domain_t &d) | |
template<class Mesh2 , class T2 , class EngineTag2 , class Domain > | |
FieldEngine (const FieldEngine< Mesh2, T2, EngineTag2 > &model, const Domain &d) | |
This constructor handle weird things like range views. | |
template<class Mesh2 , class EngineTag2 > | |
FieldEngine (const FieldEngine< Mesh2, T, EngineTag2 > &model, const SliceInterval< Mesh2::dimensions, Dim > &d) | |
This constructor handles SliceInterval views. | |
template<class Mesh2 , class EngineTag2 > | |
FieldEngine (const FieldEngine< Mesh2, T, EngineTag2 > &model, const SliceRange< Mesh2::dimensions, Dim > &d) | |
This constructor handles SliceRange views. | |
template<class T2 , class EngineTag2 > | |
FieldEngine (const FieldEngine< Mesh, T2, EngineTag2 > &model, const INode< Dim > &i) | |
template<class Mesh2 , class T2 , class EngineTag2 , class Tag > | |
FieldEngine (const FieldEngine< Mesh2, T2, EngineTag2 > &model, const EngineView< Tag > &ev) | |
template<class EngineTag2 > | |
FieldEngine (const FieldEngine< Mesh, T, EngineTag2 > &model, const FieldEnginePatch< Dim > &p) | |
template<class Mesh2 , class T2 , class EngineTag2 , class Components > | |
FieldEngine (const FieldEngine< Mesh2, T2, EngineTag2 > &model, const ComponentWrapper< Components > &cw) | |
void | addSubFields () |
int | numSubFields () const |
FIXME: This function is deprecated. | |
Engine_t & | engine () |
const Engine_t & | engine () const |
Engine_t & | engine (int m, int c) |
const Engine_t & | engine (int m, int c) const |
RelationList & | relations () const |
RelationList & | relations (int m, int c) const |
const GuardLayers_t & | guardLayers () const |
GuardLayers_t & | guardLayers () |
int | numMaterials () const |
Domain_t & | physicalCellDomain () |
The physical cell domain of all the sub-fields. | |
const Domain_t & | physicalCellDomain () const |
Domain_t | totalCellDomain () const |
Domain_t | physicalDomain () const |
Returns the physical domain suitable for viewing regardless of centering point count. | |
Domain_t | physicalDomain (int i) const |
Returns the physical domain of the specified centering. | |
Domain_t | totalDomain () const |
Returns the total domain suitable for viewing regardless of centering point count. | |
Domain_t | totalDomain (int i) const |
Returns the total domain of the specified centering. | |
const Centering< Dim > & | centering () const |
int | centeringSize () const |
Mesh & | mesh () |
const Mesh & | mesh () const |
Data_t & | data (int material, int centering) |
const Data_t & | data (int material, int centering) const |
typedef FieldEngine<Mesh, T, EngineTag> FieldEngine< Mesh, T, EngineTag >::This_t |
typedef FieldEngineBaseData<Dim, T, EngineTag> FieldEngine< Mesh, T, EngineTag >::Data_t |
typedef Engine<Dim, T, EngineTag> FieldEngine< Mesh, T, EngineTag >::Engine_t |
typedef Engine_t::Domain_t FieldEngine< Mesh, T, EngineTag >::Domain_t |
typedef Engine_t::Layout_t FieldEngine< Mesh, T, EngineTag >::Layout_t |
typedef Engine_t::Element_t FieldEngine< Mesh, T, EngineTag >::Element_t |
typedef Engine_t::ElementRef_t FieldEngine< Mesh, T, EngineTag >::ElementRef_t |
typedef GuardLayers<Dim> FieldEngine< Mesh, T, EngineTag >::GuardLayers_t |
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | ) | [inline] |
Default constructor.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const Centering< Dim > & | centering, | |
const Layout2 & | layout, | |||
const Mesh & | mesh, | |||
int | materials = 1 | |||
) | [inline] |
General version takes centering, layout, mesh, materials.
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), shrinkInPlace(), shrinkRightInPlace(), and Centering< Dim >::size().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model | ) | [inline] |
Copy constructor.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model, | |
int | subField | |||
) | [inline] |
Takes a view of
References FieldEngine< Mesh, T, EngineTag >::centering(), and FieldEngine< Mesh, T, EngineTag >::numMaterials().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model, | |
int | m, | |||
int | c | |||
) | [inline] |
Takes a view of the specified centering point of the specified material.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model, | |
int | c, | |||
const Pooma::CenteringViewTag & | ||||
) | [inline] |
Takes a view of the specified centering point from all materials.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model, | |
int | m, | |||
const Pooma::MaterialViewTag & | ||||
) | [inline] |
Takes a view of the specified material retaining all centering points.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | int | c, | |
const This_t & | model | |||
) | [inline] |
Takes a view of the specified centering point of the first material.
This is useless for fields with multiple materials and thus this method is deprecated. Use FieldEngine(field, 0, c).
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh, T2, EngineTag2 > & | model, | |
const Domain_t & | d | |||
) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), cellDomainToCenteringDomain(), centeringDomainToCellDomain(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), and FieldEngineBaseData< Dim, T, EngineTag >::relations().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh2, T2, EngineTag2 > & | model, | |
const Domain & | d | |||
) | [inline] |
This constructor handle weird things like range views.
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngine< Mesh, T, EngineTag >::engine(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::inputDomainToVertexDomain(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), PAssert, and FieldEngineBaseData< Dim, T, EngineTag >::relations().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh2, T, EngineTag2 > & | model, | |
const SliceInterval< Mesh2::dimensions, Dim > & | d | |||
) | [inline] |
This constructor handles SliceInterval views.
For this view we get a NoMesh mesh. We can only handle fields with one centering point.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh2, T, EngineTag2 > & | model, | |
const SliceRange< Mesh2::dimensions, Dim > & | d | |||
) | [inline] |
This constructor handles SliceRange views.
For this view we get a NoMesh mesh. We can only handle fields with one centering point.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh, T2, EngineTag2 > & | model, | |
const INode< Dim > & | i | |||
) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), cellDomainToCenteringDomain(), centeringDomainToCellDomain(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), INode< Dim >::domain(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), and FieldEngineBaseData< Dim, T, EngineTag >::relations().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh2, T2, EngineTag2 > & | model, | |
const EngineView< Tag > & | ev | |||
) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), and FieldEngineBaseData< Dim, T, EngineTag >::relations().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh, T, EngineTag2 > & | model, | |
const FieldEnginePatch< Dim > & | p | |||
) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), centeringDomainToCellDomain(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEnginePatch< Dim >::domain_m, FieldEngine< Mesh, T, EngineTag >::engine(), engineFunctor(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), PAssert, and FieldEnginePatch< Dim >::patch_m.
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const FieldEngine< Mesh2, T2, EngineTag2 > & | model, | |
const ComponentWrapper< Components > & | cw | |||
) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), ComponentWrapper< Components >::components(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), and FieldEngineBaseData< Dim, T, EngineTag >::relations().
FieldEngine< Mesh, T, EngineTag >::FieldEngine | ( | const This_t & | model, | |
const Pooma::DontCopyRelations & | d | |||
) | [inline] |
void FieldEngine< Mesh, T, EngineTag >::initialize | ( | const This_t & | model | ) | [inline] |
void FieldEngine< Mesh, T, EngineTag >::addSubFields | ( | ) | [inline] |
References FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), PAssert, RefCountedBlockPtr< T, BoundsChecked, Controller >::reserve(), RefCountedBlockPtr< T, BoundsChecked, Controller >::resize(), and RefCountedBlockPtr< T, BoundsChecked, Controller >::size().
Referenced by FieldEngine< Mesh, T, EngineTag >::FieldEngine(), and FieldEngine< Mesh, T, EngineTag >::makeOwnCopy().
int FieldEngine< Mesh, T, EngineTag >::numSubFields | ( | ) | const [inline] |
FIXME: This function is deprecated.
References FieldEngine< Mesh, T, EngineTag >::centering(), and FieldEngine< Mesh, T, EngineTag >::numMaterials().
Referenced by Field< Mesh, T, EngineTag >::numSubFields().
Engine_t& FieldEngine< Mesh, T, EngineTag >::engine | ( | ) | [inline] |
References RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), and PAssert.
Referenced by LeafFunctor< FieldEngine< Mesh, T, EngineTag >, DataObjectRequest< RequestType > >::apply(), Field< Mesh, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::FieldEngine(), and Field< Mesh, T, EngineTag >::layout().
const Engine_t& FieldEngine< Mesh, T, EngineTag >::engine | ( | ) | const [inline] |
References RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), and PAssert.
Engine_t& FieldEngine< Mesh, T, EngineTag >::engine | ( | int | m, | |
int | c | |||
) | [inline] |
const Engine_t& FieldEngine< Mesh, T, EngineTag >::engine | ( | int | m, | |
int | c | |||
) | const [inline] |
RelationList& FieldEngine< Mesh, T, EngineTag >::relations | ( | ) | const [inline] |
References RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), and PAssert.
Referenced by Field< Mesh, T, EngineTag >::addRelation().
RelationList& FieldEngine< Mesh, T, EngineTag >::relations | ( | int | m, | |
int | c | |||
) | const [inline] |
const GuardLayers_t& FieldEngine< Mesh, T, EngineTag >::guardLayers | ( | ) | const [inline] |
GuardLayers_t& FieldEngine< Mesh, T, EngineTag >::guardLayers | ( | ) | [inline] |
int FieldEngine< Mesh, T, EngineTag >::numMaterials | ( | ) | const [inline] |
Referenced by FieldEngine< Mesh, T, EngineTag >::addSubFields(), LeafFunctor< FieldEngine< Mesh, T, EngineTag >, ExpressionApply< Tag > >::apply(), FieldEngine< Mesh, T, EngineTag >::FieldEngine(), FieldEngine< Mesh, T, EngineTag >::makeOwnCopy(), Field< Mesh, T, EngineTag >::numMaterials(), and FieldEngine< Mesh, T, EngineTag >::numSubFields().
Domain_t& FieldEngine< Mesh, T, EngineTag >::physicalCellDomain | ( | ) | [inline] |
The physical cell domain of all the sub-fields.
Can be converted to the centering physical domain by means of cellDomainToCenteringDomain().
Referenced by Field< Mesh, T, EngineTag >::physicalCellDomain().
const Domain_t& FieldEngine< Mesh, T, EngineTag >::physicalCellDomain | ( | ) | const [inline] |
Domain_t FieldEngine< Mesh, T, EngineTag >::totalCellDomain | ( | ) | const [inline] |
References grow().
Referenced by Field< Mesh, T, EngineTag >::totalCellDomain(), and FieldEngine< Mesh, T, EngineTag >::totalDomain().
Domain_t FieldEngine< Mesh, T, EngineTag >::physicalDomain | ( | ) | const [inline] |
Returns the physical domain suitable for viewing regardless of centering point count.
References cellDomainToCenteringDomain(), and FieldEngine< Mesh, T, EngineTag >::centeringSize().
Referenced by Field< Mesh, T, EngineTag >::domain(), and Field< Mesh, T, EngineTag >::physicalDomain().
Domain_t FieldEngine< Mesh, T, EngineTag >::physicalDomain | ( | int | i | ) | const [inline] |
Domain_t FieldEngine< Mesh, T, EngineTag >::totalDomain | ( | ) | const [inline] |
Returns the total domain suitable for viewing regardless of centering point count.
References cellDomainToCenteringDomain(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), and FieldEngine< Mesh, T, EngineTag >::totalCellDomain().
Referenced by Field< Mesh, T, EngineTag >::totalDomain().
Domain_t FieldEngine< Mesh, T, EngineTag >::totalDomain | ( | int | i | ) | const [inline] |
Returns the total domain of the specified centering.
References cellDomainToCenteringDomain(), and FieldEngine< Mesh, T, EngineTag >::totalCellDomain().
const Centering<Dim>& FieldEngine< Mesh, T, EngineTag >::centering | ( | ) | const [inline] |
Referenced by LeafFunctor< FieldEngine< Mesh, T, EngineTag >, ExpressionApply< Tag > >::apply(), Field< Mesh, T, EngineTag >::centering(), FieldEngine< Mesh, T, EngineTag >::FieldEngine(), FieldEngine< Mesh, T, EngineTag >::inputDomainToVertexDomain(), and FieldEngine< Mesh, T, EngineTag >::numSubFields().
int FieldEngine< Mesh, T, EngineTag >::centeringSize | ( | ) | const [inline] |
Referenced by FieldEngine< Mesh, T, EngineTag >::addSubFields(), Field< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::FieldEngine(), FieldEngine< Mesh, T, EngineTag >::inputDomainToVertexDomain(), FieldEngine< Mesh, T, EngineTag >::makeOwnCopy(), FieldEngine< Mesh, T, EngineTag >::physicalDomain(), FieldEngine< Mesh, T, EngineTag >::totalDomain(), and FieldEngine< Mesh, T, EngineTag >::translateToVertexDomain().
Mesh& FieldEngine< Mesh, T, EngineTag >::mesh | ( | ) | [inline] |
Referenced by Field< Mesh, T, EngineTag >::mesh().
const Mesh& FieldEngine< Mesh, T, EngineTag >::mesh | ( | ) | const [inline] |
void FieldEngine< Mesh, T, EngineTag >::makeOwnCopy | ( | const Subject & | s | ) | [inline] |
Make a distinct copy of this fieldEngineBase.
References FieldEngine< Mesh, T, EngineTag >::addSubFields(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), FieldEngine< Mesh, T, EngineTag >::data(), FieldEngineBaseData< Dim, T, EngineTag >::engine(), RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), RelationList::makeOwnCopy(), FieldEngine< Mesh, T, EngineTag >::numMaterials(), PAssert, and FieldEngineBaseData< Dim, T, EngineTag >::relations().
Referenced by Field< Mesh, T, EngineTag >::makeOwnCopy().
Domain_t FieldEngine< Mesh, T, EngineTag >::translateToVertexDomain | ( | const Domain_t & | d | ) | const [inline] |
Domain translation function.
FIXME: This function should go away. Currently it's only used by the lagrangian field engine.
References FieldEngine< Mesh, T, EngineTag >::centeringSize(), and growRight().
Domain_t FieldEngine< Mesh, T, EngineTag >::inputDomainToVertexDomain | ( | const Domain_t & | d | ) | const [inline] |
Converts an input domain (which is a cell domain for fields with multiple centering points and a centering domain for one centering point) to the corresponding vertex domain.
References FieldEngine< Mesh, T, EngineTag >::centering(), centeringDomainToCellDomain(), FieldEngine< Mesh, T, EngineTag >::centeringSize(), and growRight().
Referenced by FieldEngine< Mesh, T, EngineTag >::FieldEngine().
Data_t& FieldEngine< Mesh, T, EngineTag >::data | ( | int | material, | |
int | centering | |||
) | [inline] |
References RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), and PAssert.
Referenced by LeafFunctor< FieldEngine< Mesh, T, EngineTag >, ExpressionApply< Tag > >::apply(), Field< Mesh, T, EngineTag >::applyRelations(), Field< Mesh, T, EngineTag >::clearDirty(), FieldEngine< Mesh, T, EngineTag >::engine(), FieldEngine< Mesh, T, EngineTag >::FieldEngine(), FieldEngine< Mesh, T, EngineTag >::makeOwnCopy(), FieldEngine< Mesh, T, EngineTag >::relations(), Field< Mesh, T, EngineTag >::removeRelations(), and Field< Mesh, T, EngineTag >::setDirty().
const Data_t& FieldEngine< Mesh, T, EngineTag >::data | ( | int | material, | |
int | centering | |||
) | const [inline] |
References RefCountedBlockPtr< T, BoundsChecked, Controller >::isValid(), and PAssert.