v0.5.86
List of all members
MoFEM::Interface Struct Referenceabstract

InterfaceThis interface is used by user to:
More...

#include <src/interfaces/Interface.hpp>

Inheritance diagram for MoFEM::Interface:
[legend]
Collaboration diagram for MoFEM::Interface:
[legend]

Interface

virtual PetscErrorCode query_interface_type (const std::type_info &type, void *&ptr) const =0
 
template<class IFace >
PetscErrorCode query_interface (IFace *&ptr) const
 
template<class IFace >
IFace * query_interface () const
 
virtual moab::Interface & get_moab ()=0
 
virtual const moab::Interface & get_moab () const =0
 
virtual MeshsetsManagerget_meshsets_manager_ptr ()=0
 get MeshsetsManager pointer More...
 
virtual const MeshsetsManagerget_meshsets_manager_ptr () const =0
 get MeshsetsManager pointer More...
 
virtual MeshsetsManagerget_meshsets_manager ()=0
 get MeshsetsManager pointer More...
 
virtual const MeshsetsManagerget_meshsets_manager () const =0
 get MeshsetsManager pointer More...
 

Basic entity

virtual boost::shared_ptr< BasicEntityData > & get_basic_entity_data_ptr ()=0
 Get pointer to basic entity data. More...
 

Communicator

virtual MPI_Comm & get_comm () const =0
 
virtual int get_comm_size () const =0
 
virtual int get_comm_rank () const =0
 

Check consistency

virtual PetscErrorCode check_number_of_ents_in_ents_field (const std::string &name) const =0
 check data consistency in entitiesPtr More...
 
virtual PetscErrorCode check_number_of_ents_in_ents_field () const =0
 check data consistency in entitiesPtr More...
 
virtual PetscErrorCode check_number_of_ents_in_ents_finite_element (const std::string &name) const =0
 check data consistency in entsFiniteElements More...
 
virtual PetscErrorCode check_number_of_ents_in_ents_finite_element () const =0
 check data consistency in entsFiniteElements More...
 

Mange meshest (ALL FUNCTION DEPRECATED - DO NOT USE THIS)

virtual DEPRECATED bool check_msId_meshset (const int msId, const CubitBCType cubit_bc_type)=0
 check for CUBIT Id and CUBIT type More...
 
virtual DEPRECATED PetscErrorCode add_cubit_msId (const CubitBCType cubit_bc_tyep, const int msId, const std::string name="")=0
 add cubit meshset More...
 
virtual DEPRECATED PetscErrorCode set_cubit_msId_attribites (const CubitBCType cubit_bc_type, const int ms_id, const std::vector< double > &attributes, const std::string name="")=0
 set attributes to cubit meshset More...
 
virtual DEPRECATED PetscErrorCode set_cubit_msId_attribites_data_structure (const CubitBCType cubit_bc_type, const int ms_id, const GenericAttributeData &data, const std::string name="")=0
 set (material) data structure to cubit meshset More...
 
virtual DEPRECATED PetscErrorCode set_cubit_msId_bc_data_structure (const CubitBCType cubit_bc_type, const int ms_id, const GenericCubitBcData &data)=0
 set boundary data structure to meshset More...
 
virtual DEPRECATED PetscErrorCode delete_cubit_msId (const CubitBCType cubit_bc_type, const int msId)=0
 delete cubit meshset More...
 
virtual DEPRECATED PetscErrorCode get_cubit_msId (const int msId, const CubitBCType cubit_bc_type, const CubitMeshSets **cubit_meshset_ptr)=0
 get cubit meshset More...
 
virtual DEPRECATED PetscErrorCode get_cubit_msId_entities_by_dimension (const int msId, const unsigned int cubit_bc_type, const int dimension, Range &entities, const bool recursive=false)=0
 get entities from CUBIT/meshset of a particular entity dimension More...
 
virtual DEPRECATED PetscErrorCode get_cubit_msId_entities_by_dimension (const int msId, const unsigned int cubit_bc_type, Range &entities, const bool recursive=false)=0
 get entities related to CUBIT/meshset, More...
 
virtual DEPRECATED PetscErrorCode get_cubit_msId_meshset (const int msId, const unsigned int cubit_bc_type, EntityHandle &meshset)=0
 get meshset from CUBIT Id and CUBIT type More...
 
virtual DEPRECATED PetscErrorCode get_cubit_meshsets (const unsigned int cubit_bc_type, Range &meshsets)=0
 get all CUBIT meshsets by CUBIT type More...
 
virtual DEPRECATED PetscErrorCode print_cubit_displacement_set () const =0
 
virtual DEPRECATED PetscErrorCode print_cubit_pressure_set () const =0
 
virtual DEPRECATED PetscErrorCode print_cubit_force_set () const =0
 
virtual DEPRECATED PetscErrorCode print_cubit_materials_set () const =0
 

Database

virtual PetscErrorCode clear_database (int verb=-1)=0
 Clear database. More...
 
virtual PetscErrorCode rebuild_database (int verb=-1)=0
 Clear database and initialize it once again. More...
 

Synchronize

virtual PetscErrorCode synchronise_entities (Range &ent, int verb=-1)=0
 
virtual PetscErrorCode synchronise_field_entities (const BitFieldId id, int verb=-1)=0
 
virtual PetscErrorCode synchronise_field_entities (const std::string &name, int verb=-1)=0
 

Seed entities

virtual PetscErrorCode seed_finite_elements (const EntityHandle meshset, int verb=-1)=0
 
virtual PetscErrorCode seed_finite_elements (const Range &entities, int verb=-1)=0
 
virtual DEPRECATED PetscErrorCode seed_ref_level_2D (const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)=0
 seed 2D entities (Triangles entities only) in the meshset and their adjacencies (only TRIs adjacencies) in a particular BitRefLevel More...
 
virtual DEPRECATED PetscErrorCode seed_ref_level_3D (const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)=0
 seed 2D entities in the meshset and their adjacencies (only TETs adjacencies) in a particular BitRefLevel More...
 
virtual DEPRECATED PetscErrorCode seed_ref_level (const Range &ents, const BitRefLevel &bit, const bool only_tets=true, int verb=-1)=0
 seed entities in the range and their adjacencies in a particular BitRefLevel More...
 
virtual DEPRECATED PetscErrorCode seed_ref_level_MESHSET (const EntityHandle meshset, const BitRefLevel &bit, int verb=-1)=0
 

Getting entities by BitRefLevel

virtual PetscErrorCode get_entities_by_type_and_ref_level (const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type, const EntityHandle meshset, int verb=-1)=0
 add all ents from ref level given by bit to meshset More...
 
virtual PetscErrorCode get_entities_by_type_and_ref_level (const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type, Range &ents, int verb=-1)=0
 add all ents from ref level given by bit to meshset More...
 
virtual PetscErrorCode get_entities_by_ref_level (const BitRefLevel &bit, const BitRefLevel &mask, const EntityHandle meshset)=0
 add all ents from ref level given by bit to meshset More...
 
virtual PetscErrorCode get_entities_by_ref_level (const BitRefLevel &bit, const BitRefLevel &mask, Range &ents)=0
 add all ents from ref level given by bit to meshset More...
 

Get adjacencies

virtual PetscErrorCode get_adjacencies_equality (const EntityHandle from_entiti, const int to_dimension, Range &adj_entities) const =0
 Get the adjacencies associated with a entity to entities of a specified dimension. More...
 
virtual PetscErrorCode get_adjacencies_any (const EntityHandle from_entiti, const int to_dimension, Range &adj_entities) const =0
 Get the adjacencies associated with a entity to entities of a specified dimension.bit ref level of adjacent entities is any of bit ref level of adjacent entities. More...
 
virtual PetscErrorCode get_adjacencies (const Problem *problem_ptr, const EntityHandle *from_entities, const int num_netities, const int to_dimension, Range &adj_entities, const int operation_type=moab::Interface::INTERSECT, const int verb=0) const =0
 Get the adjacencies associated with a entity to entities of a specified dimension. More...
 
virtual PetscErrorCode get_adjacencies (const BitRefLevel &bit, const EntityHandle *from_entities, const int num_netities, const int to_dimension, Range &adj_entities, const int operation_type=moab::Interface::INTERSECT, const int verb=0) const =0
 Get the adjacencies associated with a entity to entities of a specified dimension. More...
 

Updating entities

virtual PetscErrorCode update_meshset_by_entities_children (const EntityHandle parent, const BitRefLevel &child_bit, const EntityHandle child, EntityType child_type, const bool recursive=false, int verb=-1)=0
 Get child entities form meshset containing parent entities. More...
 
virtual PetscErrorCode update_field_meshset_by_entities_children (const BitRefLevel &child_bit, int verb=-1)=0
 update fields meshesets by child entities More...
 
virtual PetscErrorCode update_field_meshset_by_entities_children (const std::string name, const BitRefLevel &child_bit, int verb=-1)=0
 update field mesheset by child entities More...
 
virtual PetscErrorCode update_finite_element_meshset_by_entities_children (const std::string name, const BitRefLevel &child_bit, const EntityType fe_ent_type, int verb=-1)=0
 update finite element mesheset by child entities More...
 

Delete and remove

virtual PetscErrorCode delete_ents_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, const bool remove_parent=false, int verb=-1)=0
 delete entities form mofem and moab database More...
 
virtual PetscErrorCode remove_ents_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 remove entities form mofem database More...
 
virtual PetscErrorCode delete_finite_elements_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 remove finite element from mofem database More...
 
virtual PetscErrorCode delete_finite_element (const std::string name, int verb=-1)=0
 delete finite element from mofem database More...
 

Shift BitRefLevl

virtual PetscErrorCode shift_left_bit_ref (const int shif, int verb=-1)=0
 left shift bit ref level this results of deletion of entities on far left side More...
 
virtual PetscErrorCode shift_right_bit_ref (const int shift, int verb=-1)=0
 right shift bit ref level More...
 

Fields

virtual PetscErrorCode add_field (const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_cooficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_EXCL, int verb=-1)=0
 Add field. More...
 
virtual PetscErrorCode add_ents_to_field_by_dim (const Range &ents, const int dim, const std::string &name, int verb=-1)=0
 Add field with default AINSWORTH_LEGENDRE_BASE approximation base. More...
 
virtual PetscErrorCode add_ents_to_field_by_type (const Range &ents, const EntityType type, const std::string &name, int verb=-1)=0
 Add entities to field meshsetThe lower dimension entities are added depending on the space type. More...
 
virtual PetscErrorCode add_ents_to_field_by_dim (const EntityHandle meshset, const int dim, const std::string &name, const bool recursive=true, int verb=-1)=0
 Add entities to field meshsetThe lower dimension entities are added depending on the space type. More...
 
virtual PetscErrorCode add_ents_to_field_by_type (const EntityHandle meshset, const EntityType type, const std::string &name, const bool recursive=true, int verb=-1)=0
 Add entities to field meshsetThe lower dimension entities are added depending on the space type. More...
 
virtual PetscErrorCode add_ents_to_field_by_VERTICEs (const Range &nodes, const std::string &name, int verb=-1)=0
 set field entities on verticesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_VERTICEs (const EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities on verticesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_EDGEs (const Range &edges, const std::string &name, int verb=-1)=0
 set field entities form adjacencies of edgesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_EDGEs (const EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities form adjacencies of edgesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_TRIs (const EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities form adjacencies of trianglesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_TRIs (const Range &tris, const std::string &name, int verb=-1)=0
 set field entities form adjacencies of trianglesThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_TETs (const EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of tetrahedronThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_TETs (const Range &tets, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of tetrahedronThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_QUADs (const Range &quads, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of quadsThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_QUADs (EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of quadsThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_PRISMs (const Range &prisms, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of prismsThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode add_ents_to_field_by_PRISMs (EntityHandle meshset, const std::string &name, int verb=-1)=0
 set field entities from adjacencies of prismsThe lower dimension entities are added depending on the space type More...
 
virtual PetscErrorCode remove_ents_from_field_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 remove entities from field More...
 
virtual PetscErrorCode remove_ents_from_field (const std::string &name, const EntityHandle meshset, const EntityType type, int verb=-1)=0
 remove entities from field More...
 
virtual PetscErrorCode remove_ents_from_field (const std::string &name, const Range &ents, int verb=-1)=0
 remove entities from field More...
 
virtual PetscErrorCode set_field_order (const EntityHandle meshset, const EntityType type, const std::string &name, const ApproximationOrder order, int verb=-1)=0
 Set order approximation of the entities in the field. More...
 
virtual PetscErrorCode set_field_order (const Range &ents, const std::string &name, const ApproximationOrder order, int verb=-1)=0
 Set order approximation of the entities in the field. More...
 
virtual PetscErrorCode set_field_order_by_entity_type_and_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, const EntityType type, const std::string &name, const ApproximationOrder order, int verb=-1)=0
 Set order approximation of the entities in the field. More...
 
virtual PetscErrorCode list_fields () const =0
 list entities in the field More...
 
virtual EntityHandle get_field_meshset (const std::string &name) const =0
 get field meshset More...
 
virtual PetscErrorCode get_field_entities_by_dimension (const std::string name, int dim, Range &ents) const =0
 get entities in the field by dimension More...
 
virtual PetscErrorCode get_field_entities_by_type (const std::string name, EntityType type, Range &ents) const =0
 get entities in the field by type More...
 
virtual PetscErrorCode get_field_entities_by_handle (const std::string name, Range &ents) const =0
 get entities in the field by handle More...
 
virtual bool check_field (const std::string &name) const =0
 check if field is in database More...
 
virtual const Fieldget_field_structure (const std::string &name)=0
 get field structure More...
 

Finite elements

virtual bool check_finite_element (const std::string &name) const =0
 Check if finite element is in database. More...
 
virtual PetscErrorCode add_finite_element (const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL)=0
 add finite element More...
 
virtual PetscErrorCode modify_finite_element_adjacency_table (const std::string &fe_name, const EntityType type, ElementAdjacencyFunct function)=0
 modify finite element table, only for advanced userUsing that functions means that you like to do something not usual. More...
 
virtual PetscErrorCode modify_finite_element_add_field_data (const std::string &fe_name, const std::string &name_filed)=0
 set finite element field data More...
 
virtual PetscErrorCode modify_finite_element_off_field_data (const std::string &fe_name, const std::string &name_filed)=0
 unset finite element field data More...
 
virtual PetscErrorCode modify_finite_element_add_field_row (const std::string &fe_name, const std::string &name_row)=0
 set field row which finite element use More...
 
virtual PetscErrorCode modify_finite_element_off_field_row (const std::string &fe_name, const std::string &name_row)=0
 unset field row which finite element use More...
 
virtual PetscErrorCode modify_finite_element_add_field_col (const std::string &fe_name, const std::string &name_row)=0
 set field col which finite element use More...
 
virtual PetscErrorCode modify_finite_element_off_field_col (const std::string &fe_name, const std::string &name_row)=0
 unset field col which finite element use More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_type (const EntityHandle entities, const EntityType type, const std::string &name, const bool recursive=true)=0
 add entities to finite element More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_dim (const EntityHandle entities, const int dim, const std::string &name, const bool recursive=true)=0
 add entities to finite element More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_type (const Range &ents, const EntityType type, const std::string &name)=0
 add entities to finite elements More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_dim (const Range &ents, const int dim, const std::string &name)=0
 add entities to finite elements More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, const std::string &name, EntityType type, int verb=-1)=0
 add TET entities from given refinement level to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_EDGEs (const Range &edge, const std::string &name)=0
 add EDGES entities from range to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_EDGEs (const EntityHandle meshset, const std::string &name, const bool recursive=false)=0
 add EDGES finite elements More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_VERTICEs (const Range &vert, const std::string &name)=0
 add VERTICES entities from range to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_TRIs (const Range &tris, const std::string &name)=0
 add TRI entities from range to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_TRIs (const EntityHandle meshset, const std::string &name, const bool recursive=false)=0
 add TRI entities from meshset to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_TETs (const Range &tets, const std::string &name)=0
 add TET entities from range to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_TETs (const EntityHandle meshset, const std::string &name, const bool recursive=false)=0
 add TET entities from meshset to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_PRISMs (const Range &prims, const std::string &name)=0
 add PRISM entities from meshset to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_by_PRISMs (const EntityHandle meshset, const std::string &name, const bool recursive=false)=0
 add TET entities from meshset to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_EntType_by_bit_ref (const BitRefLevel &bit, const std::string &name, EntityType type, int verb=-1)=0
 add TET elements from given refinement level to finite element database given by name More...
 
virtual DEPRECATED PetscErrorCode add_ents_to_finite_element_EntType_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, const std::string &name, EntityType type, int verb=-1)=0
 add TET entities from given refinement level to finite element database given by name More...
 
virtual EntityHandle get_finite_element_meshset (const std::string &name) const =0
 
virtual PetscErrorCode get_finite_element_entities_by_dimension (const std::string name, int dim, Range &ents) const =0
 get entities in the finite element by dimension More...
 
virtual PetscErrorCode get_finite_element_entities_by_type (const std::string name, EntityType type, Range &ents) const =0
 get entities in the finite element by type More...
 
virtual PetscErrorCode get_finite_element_entities_by_handle (const std::string name, Range &ents) const =0
 get entities in the finite element by handle More...
 
virtual PetscErrorCode remove_ents_from_finite_element_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 remove elements from given refinement level to finite element database More...
 
virtual PetscErrorCode remove_ents_from_finite_element (const std::string &name, const EntityHandle meshset, const EntityType type, int verb=-1)=0
 remove entities from given refinement level to finite element database More...
 
virtual PetscErrorCode remove_ents_from_finite_element (const std::string &name, const Range &ents, int verb=-1)=0
 remove entities from finite element database More...
 
virtual PetscErrorCode add_ents_to_finite_element_by_MESHSET (const EntityHandle meshset, const std::string &name, const bool recursive=false)=0
 add MESHSET element to finite element database given by name More...
 
virtual PetscErrorCode list_finite_elements () const =0
 list finite elements in database More...
 
virtual PetscErrorCode list_adjacencies () const =0
 list adjacencies More...
 

Problems

virtual PetscErrorCode add_problem (const std::string &name, enum MoFEMTypes bh=MF_EXCL, int verb=-1)=0
 Add problem. More...
 
virtual bool check_problem (const std::string name)=0
 check if problem exist More...
 
virtual PetscErrorCode delete_problem (const std::string name)=0
 Delete problem. More...
 
virtual PetscErrorCode modify_problem_add_finite_element (const std::string &name_problem, const std::string &fe_name)=0
 add finite element to problem, this add entities assigned to finite element to a particular problem More...
 
virtual PetscErrorCode modify_problem_unset_finite_element (const std::string &name_problem, const std::string &fe_name)=0
 unset finite element from problem, this remove entities assigned to finite element to a particular problemNote: If problem is build, it need to be cleaned to make this effective More...
 
virtual PetscErrorCode modify_problem_ref_level_add_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 add ref level to problemif same finite element is solved using different level of refinements, than the level of refinement has to be specificied to problem in query More...
 
virtual PetscErrorCode modify_problem_ref_level_set_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 set ref level for problemif same finite element is solved using different level of refinements, than the level of refinement has to be specificied to problem in query More...
 
virtual PetscErrorCode modify_problem_mask_ref_level_set_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 set dof mask ref level for problem More...
 
virtual PetscErrorCode list_problem () const =0
 list problems More...
 
virtual PetscErrorCode build_fields (int verb=-1)=0
 
virtual PetscErrorCode list_dofs_by_field_name (const std::string &name) const =0
 

Clear dofs and entities

virtual PetscErrorCode clear_inactive_dofs (int verb=-1)=0
 
virtual PetscErrorCode clear_dofs_fields (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 
virtual PetscErrorCode clear_ents_fields (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 
virtual PetscErrorCode clear_dofs_fields (const std::string &name, const Range ents, int verb=-1)=0
 
virtual PetscErrorCode clear_ents_fields (const std::string &name, const Range enst, int verb=-1)=0
 

Build fields, finite elements and problems

virtual PetscErrorCode build_finite_elements (int verb=-1)=0
 Build finite elementsBuild finite element data structures. Have to be run before problem and adjacencies are constructed. More...
 
virtual PetscErrorCode build_finite_elements (const string fe_name, const Range *ents_ptr=NULL, int verb=-1)=0
 Build finite elementsBuild finite element data structures. Have to be run before problem and adjacencies are constructed. More...
 

Clear finite elements

virtual PetscErrorCode clear_finite_elements (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 
virtual PetscErrorCode clear_finite_elements (const std::string &name, const Range &ents, int verb=-1)=0
 

Build adjacencies

virtual PetscErrorCode build_adjacencies (const Range &ents, int verb=-1)=0
 build adjacencies More...
 
virtual PetscErrorCode build_adjacencies (const BitRefLevel &bit, int verb=-1)=0
 build adjacencies More...
 
virtual PetscErrorCode build_adjacencies (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 build adjacencies More...
 

Clear adjacencies

virtual PetscErrorCode clear_adjacencies_finite_elements (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 clear adjacency map for finite elements on given bit level More...
 
virtual PetscErrorCode clear_adjacencies_entities (const BitRefLevel &bit, const BitRefLevel &mask, int verb=-1)=0
 clear adjacency map for entities on given bit level More...
 

Build problems (DEPRECATED SHOULD NOT USE THIS)

virtual DEPRECATED PetscErrorCode build_problem (const std::string &name, const bool square_matrix, int verb=-1)=0
 build problem data structures More...
 
virtual DEPRECATED PetscErrorCode build_problem (Problem *problem_ptr, const bool square_matrix, int verb=-1)=0
 build problem data structures More...
 
virtual PetscErrorCode clear_problem (const std::string &name, int verb=-1)=0
 clear problem More...
 
virtual DEPRECATED PetscErrorCode build_problems (int verb=-1)=0
 build problem data structures More...
 
virtual PetscErrorCode clear_problems (int verb=-1)=0
 clear problems More...
 
virtual DEPRECATED PetscErrorCode build_problem_on_distributed_mesh (const std::string &name, const bool square_matrix=true, int verb=-1)=0
 build problem data structures, assuming that mesh is distributed (collective) More...
 
virtual DEPRECATED PetscErrorCode build_problem_on_distributed_mesh (Problem *problem_ptr, const bool square_matrix=true, int verb=-1)=0
 build problem data structures, assuming that mesh is distributed (collective) More...
 
virtual DEPRECATED PetscErrorCode build_problem_on_distributed_mesh (int verb=-1)=0
 build problem data structures, assuming that mesh is distributed (collective) More...
 
virtual DEPRECATED PetscErrorCode partition_mesh (const Range &ents, const int dim, const int adj_dim, const int n_parts, int verb=-1)=0
 Set partition tag to each finite element in the problem. More...
 
virtual DEPRECATED PetscErrorCode partition_simple_problem (const std::string &name, int verb=-1)=0
 partition problem dofs More...
 
virtual DEPRECATED PetscErrorCode partition_problem (const std::string &name, int verb=-1)=0
 partition problem dofs (collective) More...
 
virtual DEPRECATED PetscErrorCode partition_compose_problem (const std::string &name, const std::string &problem_for_rows, const bool copy_rows, const std::string &problem_for_cols, const bool copy_cols, int verb=-1)=0
 build indexing and partition problem inheriting indexing and partitioning from two other problems More...
 
virtual DEPRECATED PetscErrorCode build_sub_problem (const std::string &out_name, const std::vector< std::string > &fields_row, const std::vector< std::string > &fields_col, const std::string &main_problem, const bool square_matrix=true, int verb=-1)=0
 build sub problem More...
 
virtual DEPRECATED PetscErrorCode partition_ghost_dofs (const std::string &name, int verb=-1)=0
 determine ghost nodes More...
 
virtual DEPRECATED PetscErrorCode partition_finite_elements (const std::string &name, bool part_from_moab=false, int low_proc=-1, int hi_proc=-1, int verb=-1)=0
 partition finite elements More...
 
virtual PetscErrorCode partition_check_matrix_fill_in (const std::string &problem_name, int row, int col, int verb)=0
 check if matrix fill in correspond to finite element indices More...
 
virtual PetscErrorCode resolve_shared_ents (const Problem *problem_ptr, const std::string &fe_name, int verb=-1)=0
 resolve shared entities for finite elements in the problem More...
 
virtual PetscErrorCode resolve_shared_ents (const std::string &name, const std::string &fe_name, int verb=-1)=0
 resolve shared entities for finite elements in the problem More...
 
virtual DEPRECATED PetscErrorCode get_problem_elements_layout (const std::string &name, const std::string &fe_name, PetscLayout *layout, int verb=-1)=0
 Get layout of elements in the problemIn layout is stored information how many elements is on each processor, for more information look int petsc documentation http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/PetscLayoutCreate.html#PetscLayoutCreate More...
 
virtual PetscErrorCode get_problem_finite_elements_entities (const std::string &name, const std::string &fe_name, const EntityHandle meshset)=0
 add finite elements to the meshset More...
 

Create vectors

virtual DEPRECATED PetscErrorCode VecCreateSeq (const std::string &name, RowColData rc, Vec *V) const =0
 create local vector for problem More...
 
virtual DEPRECATED PetscErrorCode VecCreateGhost (const std::string &name, RowColData rc, Vec *V) const =0
 create ghost vector for problem (collective)collective - need to be run on all processors in communicator More...
 

Create matrices

virtual PetscErrorCode MatCreateMPIAIJWithArrays (const std::string &name, Mat *Aij, int verb=-1)=0
 create Mat (MPIAIJ) for problem (collective) More...
 
virtual PetscErrorCode MatCreateMPIAdj_with_Idx_mi_tag (const std::string &name, Mat *Adj, int verb=-1)=0
 Create Adj matrix. More...
 
virtual PetscErrorCode MatCreateSeqAIJWithArrays (const std::string &name, Mat *Aij, PetscInt **i, PetscInt **j, PetscScalar **v, int verb=-1)=0
 create Mat (AIJ) for problem More...
 

Create IS

virtual DEPRECATED PetscErrorCode ISCreateFromProblemFieldToOtherProblemField (const std::string &x_problem, const std::string &x_field_name, RowColData x_rc, const std::string &y_problem, const std::string &y_field_name, RowColData y_rc, std::vector< int > &idx, std::vector< int > &idy, int verb=-1) const =0
 create IS for give two problems and field More...
 
virtual DEPRECATED PetscErrorCode ISCreateFromProblemFieldToOtherProblemField (const std::string &x_problem, const std::string &x_field_name, RowColData x_rc, const std::string &y_problem, const std::string &y_field_name, RowColData y_rc, IS *ix, IS *iy, int verb=-1) const =0
 create IS for give two problems and field More...
 
virtual DEPRECATED PetscErrorCode ISCreateProblemOrder (const std::string &problem, RowColData rc, int min_order, int max_order, IS *is, int verb=-1) const =0
 create IS for given order range (collective) More...
 
virtual DEPRECATED PetscErrorCode ISCreateProblemFieldAndRank (const std::string &problem, RowColData rc, const std::string &field, int min_coeff_idx, int max_coeff_idx, IS *is, int verb=-1) const =0
 create IS for given problem, field and rank range (collective) More...
 

Scatter vectors

virtual DEPRECATED PetscErrorCode VecScatterCreate (Vec xin, const std::string &x_problem, const std::string &x_field_name, RowColData x_rc, Vec yin, const std::string &y_problem, const std::string &y_field_name, RowColData y_rc, VecScatter *newctx, int verb=-1) const =0
 create scatter for vectors form one to another problem (collective)User specify what name of field on one problem is scattered to another. More...
 
virtual DEPRECATED PetscErrorCode VecScatterCreate (Vec xin, const std::string &x_problem, RowColData x_rc, Vec yin, const std::string &y_problem, RowColData y_rc, VecScatter *newctx, int verb=-1) const =0
 create scatter for vectors form one to another problem (collective) More...
 

Set vector and mesh values

virtual DEPRECATED PetscErrorCode set_local_ghost_vector (const Problem *problem_ptr, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const =0
 set values of vector from/to meshdatabase More...
 
virtual DEPRECATED PetscErrorCode set_local_ghost_vector (const std::string &name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const =0
 set values of vector from/to meshdatabase More...
 
virtual DEPRECATED PetscErrorCode set_global_ghost_vector (const Problem *problem_ptr, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const =0
 set values of vector from/to mesh database (collective)collective - need tu be run on all processors in communicator More...
 
virtual DEPRECATED PetscErrorCode set_global_ghost_vector (const std::string &name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode) const =0
 set values of vector from/to mesh database (collective)collective - need tu be run on all processors in communicator More...
 
virtual DEPRECATED PetscErrorCode set_other_local_ghost_vector (const Problem *problem_ptr, const std::string &fiel_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)=0
 Copy vector to field which is not part of the problem. More...
 
virtual DEPRECATED PetscErrorCode set_other_local_ghost_vector (const std::string &name, const std::string &field_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)=0
 Copy vector to field which is not part of the problem. More...
 
virtual DEPRECATED PetscErrorCode set_other_global_ghost_vector (const Problem *problem_ptr, const std::string &field_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)=0
 Copy vector to field which is not part of the problem (collective)collective - need tu be run on all processors in communicator. More...
 
virtual DEPRECATED PetscErrorCode set_other_global_ghost_vector (const std::string &name, const std::string &field_name, const std::string &cpy_field_name, RowColData rc, Vec V, InsertMode mode, ScatterMode scatter_mode, int verb=-1)=0
 Copy vector to field which is not part of the problem (collective)collective - need tu be run on all processors in communicator. More...
 

Field algebra

virtual DEPRECATED PetscErrorCode field_axpy (const double alpha, const std::string &fiel_name_x, const std::string &field_name_y, bool error_if_missing=false, bool creat_if_missing=false)=0
 axpy fields More...
 
virtual DEPRECATED PetscErrorCode field_scale (const double alpha, const std::string &field_name)=0
 scale field More...
 
virtual DEPRECATED PetscErrorCode set_field (const double val, const EntityType type, const std::string &field_name)=0
 use FieldBlas More...
 
virtual DEPRECATED PetscErrorCode set_field (const double val, const EntityType type, const Range &ents, const std::string &field_name)=0
 set field More...
 

Making loops on elements and entities

virtual PetscErrorCode problem_basic_method_preProcess (const Problem *problem_ptr, BasicMethod &method, int verb=-1)=0
 Set data for BasicMethod. More...
 
virtual PetscErrorCode problem_basic_method_preProcess (const std::string &problem_name, BasicMethod &method, int verb=-1)=0
 Set data for BasicMethod. More...
 
virtual PetscErrorCode problem_basic_method_postProcess (const Problem *problem_ptr, BasicMethod &method, int verb=-1)=0
 Set data for BasicMethodThis function set data about problem, adjacencies and other MultIindices in database. This function can be used a special case when user need to do some pre- and post-processing before matrix or vector is initiated, or to assemble matrix for group of FEMethods. Is used by classes SnesCtx and TsCtx. Look for more details there. More...
 
virtual PetscErrorCode problem_basic_method_postProcess (const std::string &problem_name, BasicMethod &method, int verb=-1)=0
 Set data for BasicMethodThis function set data about problem, adjacencies and other MultIindices in database. This function can be used a special case when user need to do some pre- and post-processing before matrix or vector is initiated, or to assemble matrix for group of FEMethods. Is used by classes SnesCtx and TsCtx. Look for more details there. More...
 
virtual PetscErrorCode loop_finite_elements (const std::string &problem_name, const std::string &fe_name, FEMethod &method, MoFEMTypes bh=MF_EXIST, int verb=-1)=0
 Make a loop over finite elements. More...
 
virtual PetscErrorCode loop_finite_elements (const Problem *problem_ptr, const std::string &fe_name, FEMethod &method, int lower_rank, int upper_rank, MoFEMTypes bh=MF_EXIST, int verb=-1)=0
 Make a loop over finite elements on partitions from upper to lower rank. More...
 
virtual PetscErrorCode loop_finite_elements (const std::string &problem_name, const std::string &fe_name, FEMethod &method, int lower_rank, int upper_rank, MoFEMTypes bh=MF_EXIST, int verb=-1)=0
 Make a loop over finite elements on partitions from upper to lower rank. More...
 
virtual PetscErrorCode loop_dofs (const Problem *problem_ptr, const std::string &field_name, RowColData rc, EntMethod &method, int lower_rank, int upper_rank, int verb=-1)=0
 Make a loop over entities. More...
 
virtual PetscErrorCode loop_dofs (const std::string &problem_name, const std::string &field_name, RowColData rc, EntMethod &method, int lower_rank, int upper_rank, int verb=-1)=0
 Make a loop over entities. More...
 
virtual PetscErrorCode loop_dofs (const std::string &problem_name, const std::string &field_name, RowColData rc, EntMethod &method, int verb=-1)=0
 Make a loop over entities. More...
 
virtual PetscErrorCode loop_dofs (const std::string &field_name, EntMethod &method, int verb=-1)=0
 Make a loop over entities. More...
 

Get pointers to multi-index databses

virtual PetscErrorCode get_fields (const Field_multiIndex **fields_ptr) const =0
 Get fields multi-index from database. More...
 
virtual PetscErrorCode get_ref_ents (const RefEntity_multiIndex **refined_ents_ptr) const =0
 Get ref entities multi-index from database. More...
 
virtual PetscErrorCode get_ref_finite_elements (const RefElement_multiIndex **refined_finite_elements_ptr) const =0
 Get ref finite elements multi-index form database. More...
 
virtual PetscErrorCode get_finite_elements (const FiniteElement_multiIndex **fe_ptr) const =0
 Get finite elements multi-index. More...
 
virtual PetscErrorCode get_ents_finite_elements (const EntFiniteElement_multiIndex **fe_ent_ptr) const =0
 Get entities finite elements multi-index. More...
 
virtual PetscErrorCode get_problem (const std::string &problem_name, const Problem **problem_ptr) const =0
 Get problem database (data structure) More...
 
virtual PetscErrorCode get_problems (const Problem_multiIndex **problems_ptr) const =0
 Get pointer to problems multi-index. More...
 
virtual PetscErrorCode get_field_ents (const FieldEntity_multiIndex **field_ents) const =0
 Get field multi index. More...
 
virtual PetscErrorCode get_dofs (const DofEntity_multiIndex **dofs_ptr) const =0
 Get dofs multi index. More...
 
virtual FieldEntityByFieldName::iterator get_ent_moabfield_by_name_begin (const std::string &field_name) const =0
 get begin iterator of filed ents of given name (instead you can use IT_GET_ENT_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_ENT_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 
virtual FieldEntityByFieldName::iterator get_ent_moabfield_by_name_end (const std::string &field_name) const =0
 get begin iterator of filed dofs of given name (instead you can use IT_GET_ENT_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_ENT_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 
virtual DofEntityByFieldName::iterator get_dofs_by_name_begin (const std::string &field_name) const =0
 get begin iterator of filed dofs of given name (instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 
virtual DofEntityByFieldName::iterator get_dofs_by_name_end (const std::string &field_name) const =0
 get begin iterator of filed dofs of given name (instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 
virtual DofEntityByNameAndEnt::iterator get_dofs_by_name_and_ent_begin (const std::string &field_name, const EntityHandle ent) const =0
 get begin iterator of filed dofs of given name and ent(instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,ENT,IT)for(IT_GET_DOFS_FIELD_BY_NAME_AND_ENT_FOR_LOOP(MFIELD,NAME,ENT,IT)) { ... } More...
 
virtual DofEntityByNameAndEnt::iterator get_dofs_by_name_and_ent_end (const std::string &field_name, const EntityHandle ent) const =0
 get begin iterator of filed dofs of given name and ent (instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,ENT,IT)for(IT_GET_DOFS_FIELD_BY_NAME_AND_ENT_FOR_LOOP(MFIELD,NAME,ENT,IT)) { ... } More...
 
template<typename DIT >
PetscErrorCode get_field_dof_data (const std::string &name, const EntityHandle *ent, const int num_ents, DIT dit, int *count=NULL)
 get field data from entity and fieldthis funciont is not recommended to be used in finite elemeny implementation More...
 
template<typename DIT >
PetscErrorCode get_field_dof_data (const std::string &name, const Range &ents, DIT dit, int *count=NULL)
 get field data from entity and fieldthis function is not recommended to be used in finite element implementation More...
 
virtual DofEntityByNameAndType::iterator get_dofs_by_name_and_type_begin (const std::string &field_name, const EntityType type) const =0
 get begin iterator of filed dofs of given name and ent type (instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,TYPE,IT)for(IT_GET_DOFS_FIELD_BY_NAME_AND_TYPE_FOR_LOOP(MFIELD,NAME,TYPE,IT)) { ... } More...
 
virtual DofEntityByNameAndType::iterator get_dofs_by_name_and_type_end (const std::string &field_name, const EntityType type) const =0
 get begin iterator of filed dofs of given name end ent type(instead you can use IT_GET_DOFS_FIELD_BY_NAME_FOR_LOOP(MFIELD,NAME,TYPE,IT)for(IT_GET_DOFS_FIELD_BY_NAME_AND_TYPE_FOR_LOOP(MFIELD,NAME,TYPE,IT)) { ... } More...
 
virtual EntFiniteElementbyName::iterator get_fe_by_name_begin (const std::string &fe_name) const =0
 get begin iterator of finite elements of given name (instead you can use IT_GET_FES_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_FES_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 
virtual EntFiniteElementbyName::iterator get_fe_by_name_end (const std::string &fe_name) const =0
 get end iterator of finite elements of given name (instead you can use IT_GET_FES_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)for(IT_GET_FES_BY_NAME_FOR_LOOP(MFIELD,NAME,IT)) { ... } More...
 

Additional Inherited Members

- Public Member Functions inherited from MoFEM::UnknownInterface
virtual PetscErrorCode queryInterface (const MOFEMuuid &uuid, UnknownInterface **iface)=0
 
virtual ~UnknownInterface ()
 
virtual PetscErrorCode getLibVersion (Version &version) const
 Get library version. More...
 
virtual const PetscErrorCode getFileVersion (moab::Interface &moab, Version &version) const
 Get database major version. More...
 
virtual PetscErrorCode getInterfaceVersion (Version &version) const
 Get database major version. More...
 

Detailed Description

Interface

This interface is used by user to:

Todo:
Clean interface, organize groups outsource some functions to independent interface
Examples:
analytical_nonlinear_poisson.cpp, analytical_poisson.cpp, analytical_poisson_field_split.cpp, AuxPoissonFunctions.hpp, cell_forces.cpp, elasticity.cpp, hello_world.cpp, MagneticElement.hpp, PoissonOperators.hpp, Remodeling.hpp, simple_interface.cpp, SmallStrainPlasticity.hpp, unsaturated_transport.cpp, and UnsaturatedFlow.hpp.

Definition at line 38 of file Interface.hpp.

Member Function Documentation

◆ add_cubit_msId()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::add_cubit_msId ( const CubitBCType  cubit_bc_tyep,
const int  msId,
const std::string  name = "" 
)
pure virtual

add cubit meshset

Deprecated:
use MeshsetsManager
Parameters
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)
ms_idid of the BLOCKSET/SIDESET/BLOCKSET
nameof set

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_EDGEs()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::add_ents_to_finite_element_by_EDGEs ( const EntityHandle  meshset,
const std::string &  name,
const bool  recursive = false 
)
pure virtual

add EDGES finite elements

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
meshset
namename of finite element
recursivetake entities from meshsets in meshset
Returns
error code

Implemented in MoFEM::Core.

◆ add_field()

virtual PetscErrorCode MoFEM::Interface::add_field ( const std::string &  name,
const FieldSpace  space,
const FieldApproximationBase  base,
const FieldCoefficientsNumber  nb_of_cooficients,
const TagType  tag_type = MB_TAG_SPARSE,
const enum MoFEMTypes  bh = MF_EXCL,
int  verb = -1 
)
pure virtual

Add field.

Parameters
namename of the filed
spacespace (L2,H1,Hdiv,Hcurl)
baseapproximation base, see FieldApproximationBase
nb_of_cooficientsnumber of field coefficients
tag_typetype of the tag MB_TAG_DENSE or MB_TAG_SPARSE (DENSE is faster and uses less memory, SPARSE is more flexible if you define field on subdomains)
bhif MF_EXCL throws error if field exits, MF_ZERO no error if field exist
verbverbosity leve
Returns
error code

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, and MagneticElement.hpp.

◆ build_adjacencies() [1/3]

virtual PetscErrorCode MoFEM::Interface::build_adjacencies ( const Range &  ents,
int  verb = -1 
)
pure virtual

build adjacencies

Parameters
listof entities

This function will get information of adjacent finite elements and fields of all entities. If this is not executed, partitioning the problem is not possible. Adjacency map is based on degrees of freedom adjacent to elements. This linked to geometric element connectivity.

If new degrees of freedom or new finite elements are added to the database, adjacency map has to be rebuild.

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, and MagneticElement.hpp.

◆ build_adjacencies() [2/3]

virtual PetscErrorCode MoFEM::Interface::build_adjacencies ( const BitRefLevel bit,
int  verb = -1 
)
pure virtual

build adjacencies

Parameters
bitadjacencies for refine level

This function will get information of adjacent finite elements and fields of all entities. If this is not executed, partitioning the problem is not possible. Adjacency map is based on degrees of freedom adjacent to elements. This linked to geometric element connectivity.

If new degrees of freedom or new finite elements are added to the database, adjacency map has to be rebuild.

Implemented in MoFEM::Core.

◆ build_adjacencies() [3/3]

virtual PetscErrorCode MoFEM::Interface::build_adjacencies ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

build adjacencies

Parameters
bitadjacencies for refine level
maskmask for bit level

This function will get information of adjacent finite elements and fields of all entities. If this is not executed, partitioning the problem is not possible. Adjacency map is based on degrees of freedom adjacent to elements. This linked to geometric element connectivity.

If new degrees of freedom or new finite elements are added to the database, adjacency map has to be rebuild.

Implemented in MoFEM::Core.

◆ build_problem() [1/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problem ( const std::string &  name,
const bool  square_matrix,
int  verb = -1 
)
pure virtual

build problem data structures

Note
If square_matrix is set to true, that indicate that problem is structurally symmetric, i.e. rows and columns have the same dofs and are indexed in the same way.
Deprecated:
Use ProblemsManager to build and partition problems
Parameters
problempointer
square_matrixstructurally symmetric problem
verbverbosity level
Returns
error code

Implemented in MoFEM::Core.

◆ build_problem() [2/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problem ( Problem problem_ptr,
const bool  square_matrix,
int  verb = -1 
)
pure virtual

build problem data structures

Note
If square_matrix is set to true, that indicate that problem is structurally symmetric, i.e. rows and columns have the same dofs and are indexed in the same way.
Deprecated:
Use ProblemsManager to build and partition problems
Parameters
nameproblem name
square_matrixstructurally symmetric problem
verbverbosity level
Returns
error code

Implemented in MoFEM::Core.

◆ build_problem_on_distributed_mesh() [1/3]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problem_on_distributed_mesh ( const std::string &  name,
const bool  square_matrix = true,
int  verb = -1 
)
pure virtual

build problem data structures, assuming that mesh is distributed (collective)

Deprecated:
Use ProblemsManager to build and partition problems

Mesh is distributed, that means that each processor keeps only own part of the mesh and shared entities.

Collective - need to be run on all processors in communicator, i.e. each function has to call this function.

Implemented in MoFEM::Core.

◆ build_problem_on_distributed_mesh() [2/3]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problem_on_distributed_mesh ( Problem problem_ptr,
const bool  square_matrix = true,
int  verb = -1 
)
pure virtual

build problem data structures, assuming that mesh is distributed (collective)

Deprecated:
Use ProblemsManager to build and partition problems

Mesh is distributed, that means that each processor keeps only own part of the mesh and shared entities.

Collective - need to be run on all processors in communicator, i.e. each function has to call this function.

Implemented in MoFEM::Core.

◆ build_problem_on_distributed_mesh() [3/3]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problem_on_distributed_mesh ( int  verb = -1)
pure virtual

build problem data structures, assuming that mesh is distributed (collective)

Deprecated:
Use ProblemsManager to build and partition problems

Mesh is distributed, that means that each processor keeps only own part of the mesh and shared entities.

Collective - need to be run on all processors in communicator, i.e. each function has to call this function.

Implemented in MoFEM::Core.

◆ build_problems()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_problems ( int  verb = -1)
pure virtual

build problem data structures

Deprecated:
Use MoFEM::Interface::build_problem(const std::string &name,const bool square_matrix,int verb = -1) instead. This function not allows to Control if problem is structurally symmetric.

Implemented in MoFEM::Core.

◆ build_sub_problem()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::build_sub_problem ( const std::string &  out_name,
const std::vector< std::string > &  fields_row,
const std::vector< std::string > &  fields_col,
const std::string &  main_problem,
const bool  square_matrix = true,
int  verb = -1 
)
pure virtual

build sub problem

Deprecated:
Use ProblemsManager to build and partition problems
Parameters
out_nameproblem
fields_rowvector of fields composing problem
fields_colvector of fields composing problem
main_problemmain problem
Returns
error code

Implemented in MoFEM::Core.

◆ check_finite_element()

virtual bool MoFEM::Interface::check_finite_element ( const std::string &  name) const
pure virtual

Check if finite element is in database.

Parameters
nameName of finite element
Returns
true if element is declared

Implemented in MoFEM::Core.

◆ check_msId_meshset()

virtual DEPRECATED bool MoFEM::Interface::check_msId_meshset ( const int  msId,
const CubitBCType  cubit_bc_type 
)
pure virtual

check for CUBIT Id and CUBIT type

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
msIdid of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)

Implemented in MoFEM::Core.

◆ check_number_of_ents_in_ents_field() [1/2]

virtual PetscErrorCode MoFEM::Interface::check_number_of_ents_in_ents_field ( const std::string &  name) const
pure virtual

check data consistency in entitiesPtr

Implemented in MoFEM::Core.

◆ check_number_of_ents_in_ents_field() [2/2]

virtual PetscErrorCode MoFEM::Interface::check_number_of_ents_in_ents_field ( ) const
pure virtual

check data consistency in entitiesPtr

Implemented in MoFEM::Core.

◆ check_number_of_ents_in_ents_finite_element() [1/2]

virtual PetscErrorCode MoFEM::Interface::check_number_of_ents_in_ents_finite_element ( const std::string &  name) const
pure virtual

check data consistency in entsFiniteElements

Implemented in MoFEM::Core.

◆ check_number_of_ents_in_ents_finite_element() [2/2]

virtual PetscErrorCode MoFEM::Interface::check_number_of_ents_in_ents_finite_element ( ) const
pure virtual

check data consistency in entsFiniteElements

Implemented in MoFEM::Core.

◆ clear_adjacencies_entities()

virtual PetscErrorCode MoFEM::Interface::clear_adjacencies_entities ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

clear adjacency map for entities on given bit level

Parameters
bit
mask

Implemented in MoFEM::Core.

◆ clear_adjacencies_finite_elements()

virtual PetscErrorCode MoFEM::Interface::clear_adjacencies_finite_elements ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

clear adjacency map for finite elements on given bit level

Parameters
bit
mask

Implemented in MoFEM::Core.

◆ clear_database()

virtual PetscErrorCode MoFEM::Interface::clear_database ( int  verb = -1)
pure virtual

Clear database.

Parameters
verbVerbosity level
Returns
Error code

Implemented in MoFEM::Core.

◆ clear_finite_elements() [1/2]

virtual PetscErrorCode MoFEM::Interface::clear_finite_elements ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

clear finite elements

Implemented in MoFEM::Core.

◆ clear_finite_elements() [2/2]

virtual PetscErrorCode MoFEM::Interface::clear_finite_elements ( const std::string &  name,
const Range &  ents,
int  verb = -1 
)
pure virtual

clear finite elements

Implemented in MoFEM::Core.

◆ delete_cubit_msId()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::delete_cubit_msId ( const CubitBCType  cubit_bc_type,
const int  msId 
)
pure virtual

delete cubit meshset

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)
msIdid of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT

Implemented in MoFEM::Core.

◆ delete_ents_by_bit_ref()

virtual PetscErrorCode MoFEM::Interface::delete_ents_by_bit_ref ( const BitRefLevel bit,
const BitRefLevel mask,
const bool  remove_parent = false,
int  verb = -1 
)
pure virtual

delete entities form mofem and moab database

Implemented in MoFEM::Core.

◆ delete_finite_element()

virtual PetscErrorCode MoFEM::Interface::delete_finite_element ( const std::string  name,
int  verb = -1 
)
pure virtual

delete finite element from mofem database

Implemented in MoFEM::Core.

◆ delete_finite_elements_by_bit_ref()

virtual PetscErrorCode MoFEM::Interface::delete_finite_elements_by_bit_ref ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

remove finite element from mofem database

Implemented in MoFEM::Core.

◆ get_basic_entity_data_ptr()

virtual boost::shared_ptr<BasicEntityData>& MoFEM::Interface::get_basic_entity_data_ptr ( )
pure virtual

Get pointer to basic entity data.

This structure keeps data like tags handlers and other data used to construct mofem entities, dofs and finite elements.

Implemented in MoFEM::Core.

◆ get_comm()

virtual MPI_Comm& MoFEM::Interface::get_comm ( ) const
pure virtual

get MPI communicator

Implemented in MoFEM::Core.

Examples:
AuxPoissonFunctions.hpp, and unsaturated_transport.cpp.

◆ get_comm_rank()

virtual int MoFEM::Interface::get_comm_rank ( ) const
pure virtual

◆ get_comm_size()

virtual int MoFEM::Interface::get_comm_size ( ) const
pure virtual

get communicator size

Deprecated:
use get_comm_size

get comm rank

Deprecated:
use get_comm_rank

get communicator size

Implemented in MoFEM::Core.

◆ get_cubit_meshsets()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::get_cubit_meshsets ( const unsigned int  cubit_bc_type,
Range &  meshsets 
)
pure virtual

get all CUBIT meshsets by CUBIT type

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
seeCubitBC (NODESET, SIDESET or BLOCKSET and more).
meshsetsis range of meshsets

Implemented in MoFEM::Core.

◆ get_cubit_msId()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::get_cubit_msId ( const int  msId,
const CubitBCType  cubit_bc_type,
const CubitMeshSets **  cubit_meshset_ptr 
)
pure virtual

get cubit meshset

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface

Implemented in MoFEM::Core.

◆ get_cubit_msId_entities_by_dimension() [1/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::get_cubit_msId_entities_by_dimension ( const int  msId,
const unsigned int  cubit_bc_type,
const int  dimension,
Range &  entities,
const bool  recursive = false 
)
pure virtual

get entities from CUBIT/meshset of a particular entity dimension

Nodeset can contain nodes, edges, triangles and tets. This applies to other meshsets too. The nodeset's meshset contain the nodes in the MIDDLE of the surface or volume which is done by default in Cubit, Hence if all nodes on a particular nodeset are required, one should get all triangles or tetrahedron for which the nodeset was create in Cubit, and get all the connectivities of tris/tets.

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
MeshsetsManager *meshset_manager_ptr;
ierr = m_field.query_interface(meshset_manager_ptr); CHKERRQ(ierr);
ierr = meshset_manager_ptr->getEntitiesByDimension(ms_id,cubit_bc_type,dimension,entities,true); CHKERRQ(ierr);
Parameters
msIdid of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)
dimensions(0 - Nodes, 1 - Edges, 2 - Faces, 3 - Volume(tetrahedral))
Rangecontaining the retreived entities
recursiveIf true, meshsets containing meshsets are queried recursively. Returns the contents of meshsets, but not the meshsets themselves if true.

Implemented in MoFEM::Core.

◆ get_cubit_msId_entities_by_dimension() [2/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::get_cubit_msId_entities_by_dimension ( const int  msId,
const unsigned int  cubit_bc_type,
Range &  entities,
const bool  recursive = false 
)
pure virtual

get entities related to CUBIT/meshset,

NODESET will get Vertices only, even if the NODESET contains edges, tris and tets SIDESET will get Tris, BLOCKSET will get Tets, DISPLACEMENTSET and FORCESET are stored in NODESET, PRESSURESET is stored in Sideset.

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
msIdid of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)
Rangecontaining the retreived entities related to the
recursiveIf true, meshsets containing meshsets are queried recursively. Returns the contents of meshsets, but not the meshsets themselves if true.

Implemented in MoFEM::Core.

◆ get_cubit_msId_meshset()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::get_cubit_msId_meshset ( const int  msId,
const unsigned int  cubit_bc_type,
EntityHandle meshset 
)
pure virtual

get meshset from CUBIT Id and CUBIT type

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
msIdid of the BLOCKSET/SIDESET/BLOCKSET: from CUBIT
seeCubitBC (NODESET, SIDESET or BLOCKSET and more)
meshsetwhere to store the retrieved entities

Implemented in MoFEM::Core.

◆ get_field_meshset()

virtual EntityHandle MoFEM::Interface::get_field_meshset ( const std::string &  name) const
pure virtual

get field meshset

Parameters
nameof Field Example:
EntityHandle disp_files_meshset = mField.get_field_meshset("DISPLACEMENT");

Implemented in MoFEM::Core.

◆ get_meshsets_manager() [1/2]

virtual MeshsetsManager& MoFEM::Interface::get_meshsets_manager ( )
pure virtual

get MeshsetsManager pointer

Implemented in MoFEM::Core.

◆ get_meshsets_manager() [2/2]

virtual const MeshsetsManager& MoFEM::Interface::get_meshsets_manager ( ) const
pure virtual

get MeshsetsManager pointer

Implemented in MoFEM::Core.

◆ get_meshsets_manager_ptr() [1/2]

virtual MeshsetsManager* MoFEM::Interface::get_meshsets_manager_ptr ( )
pure virtual

get MeshsetsManager pointer

Implemented in MoFEM::Core.

◆ get_meshsets_manager_ptr() [2/2]

virtual const MeshsetsManager* MoFEM::Interface::get_meshsets_manager_ptr ( ) const
pure virtual

get MeshsetsManager pointer

Implemented in MoFEM::Core.

◆ get_moab() [1/2]

virtual moab::Interface& MoFEM::Interface::get_moab ( )
pure virtual

get moab instance get moab instance

Implemented in MoFEM::Core.

Examples:
elasticity.cpp, MagneticElement.hpp, and unsaturated_transport.cpp.

◆ get_moab() [2/2]

virtual const moab::Interface& MoFEM::Interface::get_moab ( ) const
pure virtual

get moab instance interface

Implemented in MoFEM::Core.

◆ ISCreateFromProblemFieldToOtherProblemField() [1/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::ISCreateFromProblemFieldToOtherProblemField ( const std::string &  x_problem,
const std::string &  x_field_name,
RowColData  x_rc,
const std::string &  y_problem,
const std::string &  y_field_name,
RowColData  y_rc,
std::vector< int > &  idx,
std::vector< int > &  idy,
int  verb = -1 
) const
pure virtual

create IS for give two problems and field

Deprecated:
Use ISManager

Note that indices are ordered in ascending order of local indices in problem_y

Parameters
x_problemname of problem
x_field_namename of field in problem_x
x_rcthat is ROW or COL
y_problemname of problem
y_field_namename of field in problem_y
y_rcthat is ROW or COL
Return values
idxindexes in problem_x
idyindexes in problem_y

Implemented in MoFEM::Core.

◆ ISCreateFromProblemFieldToOtherProblemField() [2/2]

virtual DEPRECATED PetscErrorCode MoFEM::Interface::ISCreateFromProblemFieldToOtherProblemField ( const std::string &  x_problem,
const std::string &  x_field_name,
RowColData  x_rc,
const std::string &  y_problem,
const std::string &  y_field_name,
RowColData  y_rc,
IS *  ix,
IS *  iy,
int  verb = -1 
) const
pure virtual

create IS for give two problems and field

Deprecated:
Use ISManager

Indices are sorted by global PETSc index in problem_x.

Parameters
x_problemname of problem
x_field_namename of field in problem_x
x_rcthat is ROW or COL
y_problemname of problem
y_field_namename of field in problem_y
y_rcthat is ROW or COL
Return values
ixIS indexes in problem_x (can be PETSC_NULL)
iyIS indexes in problem_y

Implemented in MoFEM::Core.

◆ ISCreateProblemOrder()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::ISCreateProblemOrder ( const std::string &  problem,
RowColData  rc,
int  min_order,
int  max_order,
IS *  is,
int  verb = -1 
) const
pure virtual

create IS for given order range (collective)

Deprecated:
Use ISManager
Parameters
problemname
rcROW or COL
min_order
max_order
Return values
isout value

Implemented in MoFEM::Core.

◆ list_adjacencies()

virtual PetscErrorCode MoFEM::Interface::list_adjacencies ( ) const
pure virtual

list adjacencies

Implemented in MoFEM::Core.

◆ MatCreateMPIAdj_with_Idx_mi_tag()

virtual PetscErrorCode MoFEM::Interface::MatCreateMPIAdj_with_Idx_mi_tag ( const std::string &  name,
Mat *  Adj,
int  verb = -1 
)
pure virtual

Create Adj matrix.

Parameters
name[description]
Adj[description]
verb[description]
Returns
[description]

Implemented in MoFEM::Core.

◆ MatCreateMPIAIJWithArrays()

virtual PetscErrorCode MoFEM::Interface::MatCreateMPIAIJWithArrays ( const std::string &  name,
Mat *  Aij,
int  verb = -1 
)
pure virtual

create Mat (MPIAIJ) for problem (collective)

Parameters
nameof the problem

Implemented in MoFEM::Core.

◆ MatCreateSeqAIJWithArrays()

virtual PetscErrorCode MoFEM::Interface::MatCreateSeqAIJWithArrays ( const std::string &  name,
Mat *  Aij,
PetscInt **  i,
PetscInt **  j,
PetscScalar **  v,
int  verb = -1 
)
pure virtual

create Mat (AIJ) for problem

Parameters
nameof the problem

Implemented in MoFEM::Core.

◆ modify_finite_element_add_field_col()

virtual PetscErrorCode MoFEM::Interface::modify_finite_element_add_field_col ( const std::string &  fe_name,
const std::string &  name_row 
)
pure virtual

set field col which finite element use

Parameters
namefinite element name
namefield name

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, and MagneticElement.hpp.

◆ partition_check_matrix_fill_in()

virtual PetscErrorCode MoFEM::Interface::partition_check_matrix_fill_in ( const std::string &  problem_name,
int  row,
int  col,
int  verb 
)
pure virtual

check if matrix fill in correspond to finite element indices

This is used to check consistency of code. If problem is notices with additional non-zero elements in matrix, this function can help detect problem. Should be used as a part of atom tests

Parameters
problem_nanme
rowprint info at particular row
colprint info at particular col

Implemented in MoFEM::Core.

◆ partition_compose_problem()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::partition_compose_problem ( const std::string &  name,
const std::string &  problem_for_rows,
const bool  copy_rows,
const std::string &  problem_for_cols,
const bool  copy_cols,
int  verb = -1 
)
pure virtual

build indexing and partition problem inheriting indexing and partitioning from two other problems

Deprecated:
Use ProblemsManager to build and partition problems
Parameters
nameproblem name
problem_for_rowsproblem used to index rows
copy_rowsjust copy rows dofs
problem_for_colsproblem used to index cols
copy_colsjust copy cols dofs

If copy_rows/copy_cols is set to false only partition is copied between problems.

Implemented in MoFEM::Core.

◆ partition_finite_elements()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::partition_finite_elements ( const std::string &  name,
bool  part_from_moab = false,
int  low_proc = -1,
int  hi_proc = -1,
int  verb = -1 
)
pure virtual

partition finite elements

Function which partition finite elements based on dofs partitioning.
In addition it sets information about local row and cols dofs at given element on partition.

Deprecated:
Use ProblemsManager to build and partition problems
Parameters
nameproblem name

Implemented in MoFEM::Core.

◆ partition_mesh()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::partition_mesh ( const Range &  ents,
const int  dim,
const int  adj_dim,
const int  n_parts,
int  verb = -1 
)
pure virtual

Set partition tag to each finite element in the problem.

This will use one of the mesh partitioning programs available from PETSc See http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatPartitioningType.html

Parameters
entsEntities to partition
dimDimension of entities to partition
adj_dimAdjacency dimension
n_partsNumber of partitions
verbVerbosity level
Returns
Error code

Implemented in MoFEM::Core.

◆ partition_problem()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::partition_problem ( const std::string &  name,
int  verb = -1 
)
pure virtual

partition problem dofs (collective)

Deprecated:
Use ProblemsManager to build and partition problems
Parameters
nameproblem name

Implemented in MoFEM::Core.

◆ partition_simple_problem()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::partition_simple_problem ( const std::string &  name,
int  verb = -1 
)
pure virtual

partition problem dofs

Deprecated:
Use ProblemsManager to build and partition problems
Parameters
nameproblem name

Implemented in MoFEM::Core.

◆ print_cubit_displacement_set()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::print_cubit_displacement_set ( ) const
pure virtual
Deprecated:
use MeshsetsManager interface instead

Implemented in MoFEM::Core.

◆ print_cubit_force_set()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::print_cubit_force_set ( ) const
pure virtual
Deprecated:
use MeshsetsManager interface instead

Implemented in MoFEM::Core.

◆ print_cubit_materials_set()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::print_cubit_materials_set ( ) const
pure virtual
Deprecated:
use MeshsetsManager interface instead

Implemented in MoFEM::Core.

◆ print_cubit_pressure_set()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::print_cubit_pressure_set ( ) const
pure virtual
Deprecated:
use MeshsetsManager interface instead

Implemented in MoFEM::Core.

◆ problem_basic_method_preProcess() [1/2]

virtual PetscErrorCode MoFEM::Interface::problem_basic_method_preProcess ( const Problem problem_ptr,
BasicMethod method,
int  verb = -1 
)
pure virtual

Set data for BasicMethod.

This function set data about problem, adjacencies and other MultIindices in database. This function can be used a special case when user need to do some pre- and post-processing before matrix or vector is initiated, or to assemble matrix for group of FEMethods. Is used by calsses classes SnesCtx and TsCtx. Look for more details there.

FIXME: Here we need example

Parameters
pointerto problem data structure
methoduser method derived from BasicMethod

Implemented in MoFEM::Core.

◆ problem_basic_method_preProcess() [2/2]

virtual PetscErrorCode MoFEM::Interface::problem_basic_method_preProcess ( const std::string &  problem_name,
BasicMethod method,
int  verb = -1 
)
pure virtual

Set data for BasicMethod.

This function set data about problem, adjacencies and other MultIindices in database. This function can be used a special case when user need to do some pre- and post-processing before matrix or vector is initiated, or to assemble matrix for group of FEMethods. Is used by classes SnesCtx and TsCtx. Look for more details there.

FIXME: Here we need example

Parameters
problem_namename of the problem
methoduser method derived from BasicMethod

Implemented in MoFEM::Core.

◆ query_interface() [1/2]

template<class IFace >
PetscErrorCode MoFEM::Interface::query_interface ( IFace *&  ptr) const
Examples:
analytical_nonlinear_poisson.cpp, analytical_poisson.cpp, analytical_poisson_field_split.cpp, cell_forces.cpp, elasticity.cpp, hello_world.cpp, simple_interface.cpp, and unsaturated_transport.cpp.

Definition at line 47 of file Interface.hpp.

47  {
48  PetscFunctionBegin;
49  void* tmp_ptr;
50  ierr = query_interface_type(typeid(IFace),tmp_ptr); CHKERRQ(ierr);
51  ptr = reinterpret_cast<IFace*>(tmp_ptr);
52  PetscFunctionReturn(0);
53  }
static PetscErrorCode ierr
Definition: Common.hpp:26
virtual PetscErrorCode query_interface_type(const std::type_info &type, void *&ptr) const =0
CHKERRQ(ierr)

◆ query_interface() [2/2]

template<class IFace >
IFace* MoFEM::Interface::query_interface ( ) const

Definition at line 56 of file Interface.hpp.

56  {
57  void* tmp_ptr;
58  ierr = query_interface_type(typeid(IFace),tmp_ptr); CHKERRABORT(PETSC_COMM_SELF,ierr);
59  return reinterpret_cast<IFace*>(tmp_ptr);
60  }
static PetscErrorCode ierr
Definition: Common.hpp:26
virtual PetscErrorCode query_interface_type(const std::type_info &type, void *&ptr) const =0

◆ query_interface_type()

virtual PetscErrorCode MoFEM::Interface::query_interface_type ( const std::type_info &  type,
void *&  ptr 
) const
pure virtual

Implemented in MoFEM::Core.

◆ rebuild_database()

virtual PetscErrorCode MoFEM::Interface::rebuild_database ( int  verb = -1)
pure virtual

Clear database and initialize it once again.

Parameters
verbVerbosity level
Returns
Error code

Implemented in MoFEM::Core.

◆ remove_ents_by_bit_ref()

virtual PetscErrorCode MoFEM::Interface::remove_ents_by_bit_ref ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = -1 
)
pure virtual

remove entities form mofem database

Implemented in MoFEM::Core.

◆ remove_ents_from_finite_element()

virtual PetscErrorCode MoFEM::Interface::remove_ents_from_finite_element ( const std::string &  name,
const EntityHandle  meshset,
const EntityType  type,
int  verb = -1 
)
pure virtual

remove entities from given refinement level to finite element database

Implemented in MoFEM::Core.

◆ seed_finite_elements() [1/2]

virtual PetscErrorCode MoFEM::Interface::seed_finite_elements ( const EntityHandle  meshset,
int  verb = -1 
)
pure virtual

Create finite elements based from entities in meshses. Throw error if entity is not in database

Todo:
Should be outsourced to separate interface, i.e. BitLevelManager
Parameters
EntityHandlemeshset

Implemented in MoFEM::Core.

◆ seed_finite_elements() [2/2]

virtual PetscErrorCode MoFEM::Interface::seed_finite_elements ( const Range &  entities,
int  verb = -1 
)
pure virtual

Create finite elements based from entities in meshsets. Throw error if entity is not in database

Todo:
Should be outsourced to separate interface, i.e. BitLevelManager
Parameters
Rangeentities

Implemented in MoFEM::Core.

◆ seed_ref_level()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::seed_ref_level ( const Range &  ents,
const BitRefLevel bit,
const bool  only_tets = true,
int  verb = -1 
)
pure virtual

seed entities in the range and their adjacencies in a particular BitRefLevel

Deprecated:
use BitRefManager
Todo:
Should be outsourced to separate interface, i.e. BitLevelManager

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp.

◆ seed_ref_level_2D()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::seed_ref_level_2D ( const EntityHandle  meshset,
const BitRefLevel bit,
int  verb = -1 
)
pure virtual

seed 2D entities (Triangles entities only) in the meshset and their adjacencies (only TRIs adjacencies) in a particular BitRefLevel

Deprecated:
use BitRefManager
Todo:
Should be outsourced to separate interface, i.e. BitLevelManager
Parameters
EntityHandleMeshSet
BitRefLevelbitLevel

Implemented in MoFEM::Core.

◆ seed_ref_level_3D()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::seed_ref_level_3D ( const EntityHandle  meshset,
const BitRefLevel bit,
int  verb = -1 
)
pure virtual

seed 2D entities in the meshset and their adjacencies (only TETs adjacencies) in a particular BitRefLevel

Deprecated:
use BitRefManager
Todo:
Should be outsourced to separate interface, i.e. BitLevelManager
Parameters
EntityHandleMeshSet
BitRefLevelbitLevel

Example:

EntityHandle meshset1; //contains ent1,ent2,ent3
BitRefLevel myLevel0;
myLevel0.set(0);
seed_ref_level_3D(meshset1,myLevel0);
//refine meshset1 into meshset2 and get new ents which are ent4, ent5
EntityHandle meshset2; //contains ent1,ent2,ent3,ent4,ent5
BitRefLevel myLevel1;
myLevel1.set(1);
seed_ref_level_3D(meshset2,myLevel1);

So entities 1,2,3 would be assigned to bit level 0 and 1
ent1[1,1,0,0,0,0,0], ent2[1,1,0,0,0,0,0], ent3[1,1,0,0,0,0,0],
and entities 4 and 5 are assigned to bit level 1 only
ent4[0,1,0,0,0,0,0], ent5[0,1,0,0,0,0,0]

Implemented in MoFEM::Core.

Examples:
elasticity.cpp, MagneticElement.hpp, and unsaturated_transport.cpp.

◆ seed_ref_level_MESHSET()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::seed_ref_level_MESHSET ( const EntityHandle  meshset,
const BitRefLevel bit,
int  verb = -1 
)
pure virtual
Deprecated:
use BitRefManager brief seed ref level by MESHSET that contains entities other than volumes
Parameters
EntityHandleMeshSet
BitRefLevelbitLevel

Implemented in MoFEM::Core.

◆ set_cubit_msId_attribites()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_cubit_msId_attribites ( const CubitBCType  cubit_bc_type,
const int  ms_id,
const std::vector< double > &  attributes,
const std::string  name = "" 
)
pure virtual

set attributes to cubit meshset

Deprecated:
use MeshsetsManager
Parameters
cubit_bc_typetype of meshset, see CubitBC, i.e. BLOCKSET, NODESET, SIDESET
ms_idid of meshset
attributesattributes
Returns
error code

Implemented in MoFEM::Core.

◆ set_cubit_msId_attribites_data_structure()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_cubit_msId_attribites_data_structure ( const CubitBCType  cubit_bc_type,
const int  ms_id,
const GenericAttributeData data,
const std::string  name = "" 
)
pure virtual

set (material) data structure to cubit meshset

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
cubit_bc_typetype of meshset, see CubitBC, i.e. BLOCKSET, NODESET, SIDESET
ms_idid of meshset
attributesattributes
Returns
error code

Implemented in MoFEM::Core.

◆ set_cubit_msId_bc_data_structure()

virtual DEPRECATED PetscErrorCode MoFEM::Interface::set_cubit_msId_bc_data_structure ( const CubitBCType  cubit_bc_type,
const int  ms_id,
const GenericCubitBcData data 
)
pure virtual

set boundary data structure to meshset

Deprecated:
use MeshsetsManager
Todo:
All cubit interface functions should be outsourced to dedicated interface
Parameters
cubit_bc_typetype of meshset, see CubitBC, i.e. BLOCKSET, NODESET, SIDESET
ms_idid of meshset
datadata structure
Returns
error code

Implemented in MoFEM::Core.

◆ shift_left_bit_ref()

virtual PetscErrorCode MoFEM::Interface::shift_left_bit_ref ( const int  shif,
int  verb = -1 
)
pure virtual

left shift bit ref level this results of deletion of entities on far left side

Todo:
Should be outsourced to separate interface, i.e. BitLevelManage

Implemented in MoFEM::Core.

◆ shift_right_bit_ref()

virtual PetscErrorCode MoFEM::Interface::shift_right_bit_ref ( const int  shift,
int  verb = -1 
)
pure virtual

right shift bit ref level

Todo:
Should be outsourced to separate interface, i.e. BitLevelManage

Implemented in MoFEM::Core.

◆ synchronise_entities()

virtual PetscErrorCode MoFEM::Interface::synchronise_entities ( Range &  ent,
int  verb = -1 
)
pure virtual

synchronize entity range on processors (collective)

collective - need tu be run on all processors in communicator

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, and elasticity.cpp.

◆ update_finite_element_meshset_by_entities_children()

virtual PetscErrorCode MoFEM::Interface::update_finite_element_meshset_by_entities_children ( const std::string  name,
const BitRefLevel child_bit,
const EntityType  fe_ent_type,
int  verb = -1 
)
pure virtual

update finite element mesheset by child entities

Todo:
Should be outsourced to separate interface, i.e. BitLevelManage

Implemented in MoFEM::Core.

◆ update_meshset_by_entities_children()

virtual PetscErrorCode MoFEM::Interface::update_meshset_by_entities_children ( const EntityHandle  parent,
const BitRefLevel child_bit,
const EntityHandle  child,
EntityType  child_type,
const bool  recursive = false,
int  verb = -1 
)
pure virtual

Get child entities form meshset containing parent entities.

Todo:
Should be outsourced to separate interface, i.e. BitLevelManage

Search for refined entities of given type whose parent are entities in the parent meshset. It can be used for example to transfer information about boundary conditions to refined mesh or split mesh by interface elements. It is used by function refine_MESHSET, to update MESHSET finite elements.

Parameters
parentmeshset
child_bitrefinement level
typeof refined entity
child_typemeshset where child entities are stored (if the child meshset is set to be the parent meshset, the parent would be updated with the refined entities)
recursiveif true parent meshset is searched recursively

Implemented in MoFEM::Core.


The documentation for this struct was generated from the following file: