8 #ifndef stk_mesh_baseImpl_FieldBaseImpl_hpp 9 #define stk_mesh_baseImpl_FieldBaseImpl_hpp 12 #include <Shards_Array.hpp> 13 #include <stk_mesh/base/DataTraits.hpp> 15 #include <stk_mesh/base/FieldState.hpp> 16 #include <stk_mesh/base/FieldRestriction.hpp> 18 #include <stk_util/util/CSet.hpp> 31 MetaData & meta_data()
const {
35 unsigned ordinal()
const {
39 const std::string & name()
const {
44 bool type_is()
const {
45 return m_data_traits.type_info ==
typeid(Type) ;
48 const DataTraits & data_traits()
const {
49 return m_data_traits ;
52 unsigned number_of_states()
const {
60 unsigned rank()
const {
64 const shards::ArrayDimTag *
const * dimension_tags()
const {
72 const A * attribute()
const {
73 return m_attribute.template get<A>();
77 const A * declare_attribute_no_delete(
const A * a) {
78 return m_attribute.template insert_no_delete<A>(a);
82 const A * declare_attribute_with_delete(
const A * a) {
83 return m_attribute.template insert_with_delete<A>(a);
86 const FieldRestriction & restriction(
unsigned entity_rank ,
const Part & part)
const ;
88 const FieldRestrictionVector &restrictions()
const ;
90 const FieldRestrictionVector &selector_restrictions()
const ;
92 FieldBase * field_state(
FieldState fstate)
const {
93 return m_field_states[fstate];
96 void insert_restriction(
const char * arg_method ,
97 EntityRank arg_entity_rank ,
98 const Part & arg_part ,
99 const unsigned * arg_stride ,
100 const void* arg_init_value = NULL);
102 void insert_restriction(
const char * arg_method ,
103 EntityRank arg_entity_rank ,
104 const Selector & arg_selector ,
105 const unsigned * arg_stride ,
106 const void* arg_init_value = NULL);
108 void verify_and_clean_restrictions(
const char * arg_method ,
109 const Part& superset,
const Part& subset,
112 const void* get_initial_value()
const;
114 void* get_initial_value();
116 unsigned get_initial_value_num_bytes()
const;
118 void set_field_states( FieldBase ** field_states);
121 MetaData * arg_mesh_meta_data ,
122 unsigned arg_ordinal ,
123 const std::string & arg_name ,
124 const DataTraits & arg_traits ,
126 const shards::ArrayDimTag *
const * arg_dim_tags,
127 unsigned arg_number_of_states ,
135 void set_initial_value(
const void* new_initial_value,
unsigned num_scalars,
unsigned num_bytes);
137 FieldRestrictionVector & restrictions();
138 FieldRestrictionVector & selector_restrictions();
140 const std::string m_name ;
142 const DataTraits & m_data_traits ;
143 MetaData *
const m_meta_data ;
144 const unsigned m_ordinal ;
145 const unsigned m_num_states ;
147 unsigned m_field_rank ;
148 FieldRestrictionVector m_dim_map ;
149 FieldRestrictionVector m_selector_restrictions ;
150 FieldBase * m_field_states[ MaximumFieldStates ];
151 const shards::ArrayDimTag * m_dim_tags[ MaximumFieldDimension ];
152 void* m_initial_value;
153 unsigned m_initial_value_num_bytes;
157 FieldBaseImpl(
const FieldBase & );
158 FieldBaseImpl & operator = (
const FieldBaseImpl & );
163 std::ostream & operator << ( std::ostream & ,
const FieldBaseImpl & );
166 std::ostream &
print( std::ostream & ,
167 const char *
const ,
const FieldBase & );
174 #endif // stk_mesh_baseImpl_FieldBaseIml_hpp std::ostream & print(std::ostream &os, const std::string &indent, const Bucket &bucket)
Print the parts and entities of this bucket.
std::vector< Part *> PartVector
Collections of parts are frequently maintained as a vector of Part pointers.
EntityRank entity_rank(const EntityKey &key)
Given an entity key, return an entity type (rank).
FieldState
Enumeration of states for multi-state fields.