#include <Phalanx_DataLayout.hpp>
Public Types | |
typedef unsigned | size_type |
Public Member Functions | |
DataLayout () | |
virtual | ~DataLayout () |
virtual size_type | rank () const =0 |
virtual void | dimensions (std::vector< size_type > &dim) const =0 |
virtual size_type | size () const =0 |
virtual bool | operator== (const DataLayout &left) const =0 |
virtual bool | operator!= (const DataLayout &left) const |
virtual std::string | identifier () const =0 |
Unique name identifier that can be used for strict weak ordering in stl std::map keys. | |
virtual void | print (std::ostream &os, int indent=0) const =0 |
The DataLayout class is used to (1) specify the array size of a an algebraic type in a single cell, and (2) to differentiate FieldTags that have the same name, but have different DataLayouts in the FieldManager. For example suppose we want to store density at both the nodes and the quadrature points in a cell. If we use the same string name for the FieldTag, the DataLayout will differentiate the objects. We could probably just use an enumerated type here, but the DataLayout class allows users to derive and pass in auxiliary data via the tag.
typedef unsigned PHX::DataLayout::size_type |
PHX::DataLayout::DataLayout | ( | ) | [inline] |
virtual PHX::DataLayout::~DataLayout | ( | ) | [inline, virtual] |
virtual void PHX::DataLayout::dimensions | ( | std::vector< size_type > & | dim | ) | const [pure virtual] |
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
virtual std::string PHX::DataLayout::identifier | ( | ) | const [pure virtual] |
Unique name identifier that can be used for strict weak ordering in stl std::map keys.
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
Referenced by PHX::Tag< DataT >::identifier().
virtual bool PHX::DataLayout::operator!= | ( | const DataLayout & | left | ) | const [inline, virtual] |
virtual bool PHX::DataLayout::operator== | ( | const DataLayout & | left | ) | const [pure virtual] |
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
virtual void PHX::DataLayout::print | ( | std::ostream & | os, | |
int | indent = 0 | |||
) | const [pure virtual] |
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
Referenced by PHX::operator<<().
virtual size_type PHX::DataLayout::rank | ( | ) | const [pure virtual] |
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
virtual size_type PHX::DataLayout::size | ( | ) | const [pure virtual] |
Implemented in PHX::FlatLayout, and PHX::MDALayout< Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 >.
Referenced by PHX::DataContainer< DataT, Traits >::allocateField(), FEInterpolation< EvalT, Traits >::evaluateFields(), NonlinearSource< EvalT, Traits >::postRegistrationSetup(), Fourier< EvalT, Traits >::postRegistrationSetup(), and Density< EvalT, Traits >::postRegistrationSetup().