54 std::size_t n_components = 1);
74 std::string
const& name,
75 std::size_t n_prop_groups,
76 std::vector<std::size_t>
const& item2group_mapping,
78 std::size_t n_components = 1);
91 int const number_of_components)
const;
100 template <
typename T>
106 template <
typename T>
109 int const n_components)
const;
114 template <
typename T>
117 int const n_components);
130 template <
typename T>
143 std::vector<std::size_t>
const& exclude_elem_ids,
144 std::vector<std::size_t>
const& exclude_node_ids)
const;
150 std::vector<MeshItemType>
const& exclude_mesh_item_types)
const;
161 std::map<std::string, PropertyVectorBase*>::const_iterator
begin()
const;
162 std::map<std::string, PropertyVectorBase*>::const_iterator
end()
const;
163 std::map<std::string, PropertyVectorBase*>::iterator
begin();
164 std::map<std::string, PropertyVectorBase*>::iterator
end();
165 std::map<std::string, PropertyVectorBase*>::size_type
size()
const;
167 std::map<std::string, PropertyVectorBase*>::size_type
size(
181template <
typename Function>
190 switch (mesh_item_type)
193 return "bulk_node_ids";
196 return "bulk_element_ids";
199 return "bulk_edge_ids";
202 return "bulk_face_ids";
205 OGS_FATAL(
"MeshItemType::IntegrationPoint is not handled.");
210 "Unknown mesh item type. At the moment only for mesh item "
211 "types 'Node', 'Cell', and 'Face' mapping names are "
Implemenatiom of the template part of the class Properties.
Property manager on mesh items. Class Properties manages scalar, vector or matrix properties....
bool hasPropertyVector(std::string const &name, MeshItemType const item_type) const
bool existsPropertyVector(std::string_view name, MeshItemType const mesh_item_type, int const number_of_components) const
Properties & operator=(Properties &&properties)=default
std::vector< std::string > getPropertyVectorNames() const
std::map< std::string, PropertyVectorBase * > _properties
bool hasPropertyVector(std::string_view name) const
bool existsPropertyVector(std::string_view name) const
std::map< std::string, PropertyVectorBase * >::size_type size() const
Properties excludeCopyProperties(std::vector< std::size_t > const &exclude_elem_ids, std::vector< std::size_t > const &exclude_node_ids) const
std::map< std::string, PropertyVectorBase * >::const_iterator begin() const
PropertyVector< T > * createNewPropertyVector(std::string_view name, MeshItemType mesh_item_type, std::size_t n_components=1)
PropertyVector< T > const * getPropertyVector(std::string_view name) const
std::map< std::string, PropertyVectorBase * >::const_iterator end() const
Properties(Properties &&properties)=default
void removePropertyVector(std::string_view name)
Properties & operator=(Properties const &properties)
PropertyVector< T > * getPropertyVector(std::string_view name)
PropertyVector< T > * createNewPropertyVector(std::string const &name, std::size_t n_prop_groups, std::vector< std::size_t > const &item2group_mapping, MeshItemType mesh_item_type, std::size_t n_components=1)
PropertyVector< T > const * getPropertyVector(std::string_view name, MeshItemType const item_type, int const n_components) const
PropertyVector< T > * getPropertyVector(std::string_view name, MeshItemType const item_type, int const n_components)
constexpr std::string_view getBulkIDString(MeshItemType mesh_item_type)
void applyToPropertyVectors(Properties const &properties, Function f)