9 #ifndef stk_io_IossBridge_hpp 10 #define stk_io_IossBridge_hpp 13 #include <stk_util/parallel/Parallel.hpp> 14 #include <stk_mesh/base/Types.hpp> 15 #include <stk_mesh/fem/CoordinateSystems.hpp> 16 #include <stk_mesh/fem/FEMMetaData.hpp> 20 #define USE_FEMMETADATA 21 #ifdef USE_FEMMETADATA 22 #include <stk_mesh/fem/FEMHelpers.hpp> 25 #include <stk_mesh/fem/TopologyDimensions.hpp> 26 #include <Ioss_DBUsage.h> 27 #include <Ioss_Field.h> 28 #include <Ioss_SideBlock.h> 29 #include <Ioss_ElementTopology.h> 37 class ElementTopology;
40 struct CellTopologyData;
96 for(
size_t i=0; i < entities.size(); i++) {
97 T* entity = entities[i];
98 internal_part_processing(entity, fem_meta);
103 template <
typename T>
105 const stk_classic::mesh::EntityRank)
133 const Ioss::Region *input_region = NULL,
135 const bool sort_stk_parts =
false);
173 const stk_classic::mesh::EntityRank part_type,
176 const Ioss::Field::RoleType filter_role,
177 const bool add_all =
false);
185 const stk_classic::mesh::EntityRank part_type,
186 Ioss::GroupingEntity *entity,
187 const Ioss::Field::RoleType filter_role,
188 const bool add_all =
false);
203 Ioss::Field::RoleType role,
205 stk_classic::mesh::EntityRank part_type);
219 int spatial_dimension);
232 void get_entity_list(Ioss::GroupingEntity *io_entity,
233 stk_classic::mesh::EntityRank part_type,
235 std::vector<stk_classic::mesh::Entity*> &entities);
244 std::vector<stk_classic::mesh::Entity*> &entities,
245 Ioss::GroupingEntity *io_entity,
246 const std::string &io_fld_name);
255 std::vector<stk_classic::mesh::Entity*> &entities,
256 Ioss::GroupingEntity *io_entity,
257 const std::string &io_fld_name,
258 Ioss::Field::RoleType filter_role);
305 const Ioss::GroupingEntity *get_associated_ioss_entity(
const mesh::Part &part);
307 size_t db_api_int_size(
const Ioss::GroupingEntity *entity);
310 bool invalid_rank(mesh::EntityRank rank);
311 mesh::EntityRank part_primary_entity_rank(
const mesh::Part &part);
317 void set_cell_topology(
mesh::Part &part,
const CellTopologyData *
const cell_topology);
318 const CellTopologyData *get_cell_topology(
const mesh::Part &part);
320 void initialize_spatial_dimension(
mesh::fem::FEMMetaData &fem_meta,
size_t spatial_dimension,
const std::vector<std::string> &entity_rank_names);
323 void initialize_spatial_dimension(
mesh::MetaData &meta,
size_t spatial_dimension,
const std::vector<std::string> &entity_rank_names);
327 std::pair<std::string, Ioss::Field::BasicType> *result);
void write_output_db(Ioss::Region &io_region, const stk_classic::mesh::BulkData &bulk, const stk_classic::mesh::Selector *anded_selector)
Field base class with an anonymous data type and anonymous multi-dimension.
void field_data_from_ioss(const stk_classic::mesh::FieldBase *field, std::vector< stk_classic::mesh::Entity *> &entities, Ioss::GroupingEntity *io_entity, const std::string &io_fld_name)
void define_output_db(Ioss::Region &io_region, const mesh::BulkData &bulk_data, const Ioss::Region *input_region, const stk_classic::mesh::Selector *anded_selector, const bool sort_stk_parts)
const Ioss::Field::RoleType * get_field_role(const stk_classic::mesh::FieldBase &f)
void put_io_part_attribute(mesh::Part &part, Ioss::GroupingEntity *entity)
This is a class for selecting buckets based on a set of meshparts and set logic.
bool include_entity(const Ioss::GroupingEntity *entity)
std::string map_topology_cell_to_ioss(const CellTopologyData *cell_top, int spatial_dimension)
Field with defined data type and multi-dimensions (if any)
An application-defined subset of a problem domain.
void default_part_processing(const std::vector< T *> &entities, stk_classic::mesh::fem::FEMMetaData &fem_meta)
bool is_part_io_part(stk_classic::mesh::Part &part)
const stk_classic::mesh::Field< double, stk_classic::mesh::ElementNode > * get_distribution_factor_field(const stk_classic::mesh::Part &p)
Manager for an integrated collection of entities, entity relations, and buckets of field data...
const CellTopologyData * map_topology_ioss_to_cell(const Ioss::ElementTopology *topology)
bool is_valid_part_field(const stk_classic::mesh::FieldBase *field, const stk_classic::mesh::EntityRank part_type, const stk_classic::mesh::Part &part, const stk_classic::mesh::Part &universal, const Ioss::Field::RoleType filter_role, bool add_all)
void field_data_to_ioss(const stk_classic::mesh::FieldBase *field, std::vector< stk_classic::mesh::Entity *> &entities, Ioss::GroupingEntity *io_entity, const std::string &io_fld_name, Ioss::Field::RoleType filter_role)
void set_field_role(stk_classic::mesh::FieldBase &f, const Ioss::Field::RoleType &role)
void ioss_add_fields(const stk_classic::mesh::Part &part, const stk_classic::mesh::EntityRank part_type, Ioss::GroupingEntity *entity, const Ioss::Field::RoleType filter_role, const bool add_all)
void define_io_fields(Ioss::GroupingEntity *entity, Ioss::Field::RoleType role, stk_classic::mesh::Part &part, stk_classic::mesh::EntityRank part_type)
void remove_io_part_attribute(mesh::Part &part)
void set_distribution_factor_field(stk_classic::mesh::Part &p, const stk_classic::mesh::Field< double, stk_classic::mesh::ElementNode > &df_field)