14 #ifndef stk_mesh_TopologyDimensions_hpp 15 #define stk_mesh_TopologyDimensions_hpp 17 #include <Shards_Array.hpp> 19 #include <stk_mesh/base/Field.hpp> 20 #include <stk_mesh/base/MetaData.hpp> 22 #include <stk_mesh/fem/Stencils.hpp> 38 const char * name()
const ;
64 declare_element_node_field(
MetaData & md ,
const std::string & s )
76 template<
class NodeField >
78 ElementNodePointerField &
80 MetaData & md ,
const std::string & s ,
81 NodeField & node_field )
85 ElementNodePointerField & f =
86 md.template declare_field< ElementNodePointerField >( s, num_states );
88 for (
unsigned i = 0 ; i < num_states ; ++i ) {
90 md.declare_field_relation(
91 f.field_of_state( state ) ,
93 node_field.field_of_state( state ) );
102 template<
class NodeField >
104 ElementNodeLockField &
105 declare_element_node_lock_field(
106 MetaData & md ,
const std::string & s ,
107 NodeField & node_field )
111 ElementNodeLockField & f =
112 md.template declare_field< ElementNodeLockField >( s, num_states );
114 for (
unsigned i = 0 ; i < num_states ; ++i ) {
116 md.declare_field_relation(
117 f.field_of_state( state ) ,
119 node_field.field_of_state( state ) );
129 struct QuadratureTag :
public shards::ArrayDimTag {
130 const char * name()
const ;
131 static const QuadratureTag & tag();
134 QuadratureTag(
const QuadratureTag & );
135 QuadratureTag & operator = (
const QuadratureTag & );
138 struct BasisTag :
public shards::ArrayDimTag {
139 const char * name()
const ;
140 static const BasisTag & tag();
143 BasisTag(
const BasisTag & );
144 BasisTag & operator = (
const BasisTag & );
unsigned number_of_states() const
Number of states of this field.
static const ElementNode & tag()
Singleton.
Field with defined data type and multi-dimensions (if any)
Define an array dimension of the number of nodes per element.
ElementNodePointerField & declare_element_node_pointer_field(FEMMetaData &fmd, const std::string &s, NodeField &node_field)
Declare an element-to-node-data pointer field.
FieldState
Enumeration of states for multi-state fields.