v0.14.0
Public Member Functions | List of all members
MoFEM::CoreInterface Struct Referenceabstract

Interface. More...

#include <src/interfaces/Interface.hpp>

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

Public Member Functions

virtual ~CoreInterface ()=default
 
virtual const int getValue () const =0
 Get the core. More...
 
virtual boost::shared_ptr< RefEntityTmp< 0 > > make_shared_ref_entity (const EntityHandle ent)=0
 Get RefEntity. More...
 
- Public Member Functions inherited from MoFEM::UnknownInterface
virtual MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const =0
 
template<class IFACE >
MoFEMErrorCode registerInterface (bool error_if_registration_failed=true)
 Register interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE *&iface) const
 Get interface refernce to pointer of interface. More...
 
template<class IFACE >
MoFEMErrorCode getInterface (IFACE **const iface) const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get interface pointer to pointer of interface. More...
 
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0>
IFACE getInterface () const
 Get reference to interface. More...
 
template<class IFACE >
IFACE * getInterface () const
 Function returning pointer to interface. More...
 
virtual ~UnknownInterface ()=default
 

Interfaces

virtual moab::Interface & get_moab ()=0
 
virtual const moab::Interface & get_moab () const =0
 
virtual MoFEMErrorCode set_moab_interface (moab::Interface &new_moab, int verb=VERBOSE)=0
 Set the moab interface object. More...
 
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 MoFEMErrorCode check_number_of_ents_in_ents_field (const std::string &name) const =0
 check data consistency in entitiesPtr More...
 
virtual MoFEMErrorCode check_number_of_ents_in_ents_field () const =0
 check data consistency in entitiesPtr More...
 
virtual MoFEMErrorCode check_number_of_ents_in_ents_finite_element (const std::string &name) const =0
 check data consistency in entsFiniteElements More...
 
virtual MoFEMErrorCode check_number_of_ents_in_ents_finite_element () const =0
 check data consistency in entsFiniteElements More...
 

Database

virtual MoFEMErrorCode clear_database (int verb=DEFAULT_VERBOSITY)=0
 Clear database. More...
 
virtual MoFEMErrorCode rebuild_database (int verb=DEFAULT_VERBOSITY)=0
 Clear database and initialize it once again. More...
 

Delete and remove

virtual MoFEMErrorCode remove_parents_by_ents (const Range &ents, int verb=DEFAULT_VERBOSITY)=0
 Remove parents from entities. More...
 
virtual MoFEMErrorCode remove_parents_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 Remove parent from entities on bit level. More...
 
virtual MoFEMErrorCode remove_parents_by_parents (const Range &ents, int verb=DEFAULT_VERBOSITY)=0
 Remove paremts from entities having parents in passed range. More...
 
virtual MoFEMErrorCode delete_ents_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, const bool remove_parent=false, int verb=DEFAULT_VERBOSITY, MoFEMTypes mf=MF_ZERO)=0
 delete entities form mofem and moab database More...
 
virtual MoFEMErrorCode remove_ents (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities form mofem database More...
 
virtual MoFEMErrorCode remove_ents_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 remove entities form mofem database More...
 
virtual MoFEMErrorCode delete_finite_element (const std::string name, int verb=DEFAULT_VERBOSITY)=0
 delete finite element from mofem database More...
 

Fields

virtual MoFEMErrorCode add_field (const std::string &name, const FieldSpace space, const FieldApproximationBase base, const FieldCoefficientsNumber nb_of_coefficients, const TagType tag_type=MB_TAG_SPARSE, const enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
 Add field. More...
 
virtual MoFEMErrorCode delete_field (const std::string name, int verb=DEFAULT_VERBOSITY)=0
 Delete field. More...
 
virtual MoFEMErrorCode add_ents_to_field_by_dim (const Range &ents, const int dim, const std::string &name, int verb=DEFAULT_VERBOSITY)=0
 Add entities to field meshset. More...
 
virtual MoFEMErrorCode add_ents_to_field_by_type (const Range &ents, const EntityType type, const std::string &name, int verb=DEFAULT_VERBOSITY)=0
 Add entities to field meshset. More...
 
virtual MoFEMErrorCode add_ents_to_field_by_dim (const EntityHandle meshset, const int dim, const std::string &name, const bool recursive=true, int verb=DEFAULT_VERBOSITY)=0
 Add entities to field meshset. More...
 
virtual MoFEMErrorCode add_ents_to_field_by_type (const EntityHandle meshset, const EntityType type, const std::string &name, const bool recursive=true, int verb=DEFAULT_VERBOSITY)=0
 Add entities to field meshset. More...
 
virtual MoFEMErrorCode create_vertices_and_add_to_field (const std::string name, const double coords[], int size, int verb=DEFAULT_VERBOSITY)=0
 Create a vertices and add to field object. More...
 
virtual MoFEMErrorCode remove_ents_from_field_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 remove entities from field More...
 
virtual MoFEMErrorCode remove_ents_from_field (const std::string name, const EntityHandle meshset, const EntityType type, int verb=DEFAULT_VERBOSITY)=0
 remove entities from field More...
 
virtual MoFEMErrorCode remove_ents_from_field (const std::string name, const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from field More...
 
virtual MoFEMErrorCode remove_ents_from_field (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from all fields More...
 
virtual MoFEMErrorCode set_field_order (const EntityHandle meshset, const EntityType type, const std::string &name, const ApproximationOrder order, int verb=DEFAULT_VERBOSITY)=0
 Set order approximation of the entities in the field. More...
 
virtual MoFEMErrorCode set_field_order (const Range &ents, const std::string &name, const ApproximationOrder order, int verb=DEFAULT_VERBOSITY)=0
 Set order approximation of the entities in the field. More...
 
virtual MoFEMErrorCode 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=DEFAULT_VERBOSITY)=0
 Set order approximation of the entities in the field. More...
 
virtual MoFEMErrorCode list_fields () const =0
 list entities in the field More...
 
virtual MoFEMErrorCode build_fields (int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode build_field (const std::string field_name, int verb=DEFAULT_VERBOSITY)=0
 build field by name More...
 
virtual BitFieldId get_field_id (const std::string &name) const =0
 Get field Id. More...
 
virtual FieldBitNumber get_field_bit_number (const std::string name) const =0
 get field bit number More...
 
virtual std::string get_field_name (const BitFieldId id) const =0
 get field name from id More...
 
virtual EntityHandle get_field_meshset (const std::string name) const =0
 get field meshset More...
 
virtual MoFEMErrorCode get_field_entities_by_dimension (const std::string name, int dim, Range &ents) const =0
 get entities in the field by dimension More...
 
virtual MoFEMErrorCode get_field_entities_by_type (const std::string name, EntityType type, Range &ents) const =0
 get entities in the field by type More...
 
virtual MoFEMErrorCode 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, enum MoFEMTypes bh=MF_EXIST) const =0
 get field structure More...
 

Finite elements

virtual const FiniteElementget_finite_element_structure (const std::string &name, enum MoFEMTypes bh=MF_EXIST) const =0
 get finite element struture More...
 
virtual bool check_finite_element (const std::string &name) const =0
 Check if finite element is in database. More...
 
virtual MoFEMErrorCode add_finite_element (const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
 add finite element More...
 
virtual MoFEMErrorCode modify_finite_element_adjacency_table (const std::string &fe_name, const EntityType type, ElementAdjacencyFunct function)=0
 modify finite element table, only for advanced user More...
 
virtual MoFEMErrorCode modify_finite_element_add_field_data (const std::string &fe_name, const std::string name_filed)=0
 set finite element field data More...
 
virtual MoFEMErrorCode modify_finite_element_off_field_data (const std::string &fe_name, const std::string name_filed)=0
 unset finite element field data More...
 
virtual MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode add_ents_to_finite_element_by_bit_ref (const BitRefLevel &bit, const BitRefLevel &mask, const std::string &name, EntityType type, int verb=DEFAULT_VERBOSITY)=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 MoFEMErrorCode 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 MoFEMErrorCode 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 MoFEMErrorCode get_finite_element_entities_by_handle (const std::string name, Range &ents) const =0
 get entities in the finite element by handle More...
 
virtual MoFEMErrorCode remove_ents_from_finite_element_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 remove elements from given refinement level to finite element database More...
 
virtual MoFEMErrorCode remove_ents_from_finite_element (const std::string name, const EntityHandle meshset, const EntityType type, int verb=DEFAULT_VERBOSITY)=0
 remove entities from given refinement level to finite element database More...
 
virtual MoFEMErrorCode remove_ents_from_finite_element (const std::string name, const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from finite element database More...
 
virtual MoFEMErrorCode remove_ents_from_finite_element (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from finite elements in database More...
 
virtual MoFEMErrorCode 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 MoFEMErrorCode list_finite_elements () const =0
 list finite elements in database More...
 

Problems

virtual MoFEMErrorCode add_problem (const std::string &name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
 Add problem. More...
 
virtual bool check_problem (const std::string name)=0
 check if problem exist More...
 
virtual MoFEMErrorCode delete_problem (const std::string name)=0
 Delete problem. More...
 
virtual MoFEMErrorCode 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 MoFEMErrorCode 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 problem More...
 
virtual MoFEMErrorCode modify_problem_ref_level_add_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 add ref level to problem More...
 
virtual MoFEMErrorCode modify_problem_mask_ref_level_add_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 set dof mask ref level for problem More...
 
virtual MoFEMErrorCode modify_problem_ref_level_set_bit (const std::string &name_problem, const BitRefLevel &bit)=0
 set ref level for problem More...
 
virtual MoFEMErrorCode 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 MoFEMErrorCode list_problem () const =0
 list problems More...
 
virtual MoFEMErrorCode clear_problem (const std::string name, int verb=DEFAULT_VERBOSITY)=0
 clear problem More...
 
virtual MoFEMErrorCode clear_problems (int verb=DEFAULT_VERBOSITY)=0
 clear problems More...
 
virtual MoFEMErrorCode 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...
 

Clear dofs and entities

virtual MoFEMErrorCode list_dofs_by_field_name (const std::string &name) const =0
 
virtual MoFEMErrorCode clear_inactive_dofs (int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_dofs_fields_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_dofs_fields (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_dofs_fields (const std::string name, const Range ents, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_ents_fields (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_ents_fields (const std::string name, const Range ents, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_ents_fields_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 

Build fields, finite elements and problems

virtual MoFEMErrorCode build_finite_elements (int verb=DEFAULT_VERBOSITY)=0
 Build finite elements. More...
 
virtual MoFEMErrorCode build_finite_elements (const string fe_name, const Range *const ents_ptr=nullptr, int verb=DEFAULT_VERBOSITY)=0
 Build finite elements. More...
 

Clear finite elements

virtual MoFEMErrorCode clear_finite_elements_by_bit_ref (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_finite_elements (const Range &ents, int verb=DEFAULT_VERBOSITY)=0
 
virtual MoFEMErrorCode clear_finite_elements (const std::string &fe_name, const Range &ents, int verb=DEFAULT_VERBOSITY)=0
 

Build adjacencies

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

Clear adjacencies

virtual MoFEMErrorCode clear_adjacencies_finite_elements (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 clear adjacency map for finite elements on given bit level More...
 
virtual MoFEMErrorCode clear_adjacencies_entities (const BitRefLevel bit, const BitRefLevel mask, int verb=DEFAULT_VERBOSITY)=0
 clear adjacency map for entities on given bit level More...
 
virtual MoFEMErrorCode clear_adjacencies_entities (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 clear adjacencies for field entities by entities More...
 
virtual MoFEMErrorCode clear_adjacencies_entities (const std::string name, const Range ents, int verb=DEFAULT_VERBOSITY)=0
 clear adjacencies for field entities by entities and field namd More...
 

Making loops on elements and entities

virtual MoFEMErrorCode problem_basic_method_preProcess (const Problem *problem_ptr, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Set data for BasicMethod. More...
 
virtual MoFEMErrorCode problem_basic_method_preProcess (const std::string &problem_name, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Set data for BasicMethod. More...
 
virtual MoFEMErrorCode problem_basic_method_postProcess (const Problem *problem_ptr, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Set data for BasicMethod. More...
 
virtual MoFEMErrorCode problem_basic_method_postProcess (const std::string &problem_name, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Set data for BasicMethod. More...
 
virtual MoFEMErrorCode cache_problem_entities (const std::string prb_name, CacheTupleWeakPtr cache_ptr)=0
 Cache variables. More...
 
virtual MoFEMErrorCode loop_finite_elements (const std::string problem_name, const std::string &fe_name, FEMethod &method, boost::shared_ptr< NumeredEntFiniteElement_multiIndex > fe_ptr=nullptr, MoFEMTypes bh=MF_EXIST, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr(), int verb=DEFAULT_VERBOSITY)=0
 Make a loop over finite elements. More...
 
virtual MoFEMErrorCode loop_finite_elements (const Problem *problem_ptr, const std::string &fe_name, FEMethod &method, int lower_rank, int upper_rank, boost::shared_ptr< NumeredEntFiniteElement_multiIndex > fe_ptr=nullptr, MoFEMTypes bh=MF_EXIST, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr(), int verb=DEFAULT_VERBOSITY)=0
 Make a loop over finite elements on partitions from upper to lower rank. More...
 
virtual MoFEMErrorCode loop_finite_elements (const std::string problem_name, const std::string &fe_name, FEMethod &method, int lower_rank, int upper_rank, boost::shared_ptr< NumeredEntFiniteElement_multiIndex > fe_ptr=nullptr, MoFEMTypes bh=MF_EXIST, CacheTupleWeakPtr cache_ptr=CacheTupleSharedPtr(), int verb=DEFAULT_VERBOSITY)=0
 Make a loop over finite elements on partitions from upper to lower rank. More...
 
virtual MoFEMErrorCode loop_dofs (const Problem *problem_ptr, const std::string &field_name, RowColData rc, DofMethod &method, int lower_rank, int upper_rank, int verb=DEFAULT_VERBOSITY)=0
 Make a loop over dofs. More...
 
virtual MoFEMErrorCode loop_dofs (const std::string &problem_name, const std::string &field_name, RowColData rc, DofMethod &method, int lower_rank, int upper_rank, int verb=DEFAULT_VERBOSITY)=0
 Make a loop over dofs. More...
 
virtual MoFEMErrorCode loop_dofs (const std::string &problem_name, const std::string &field_name, RowColData rc, DofMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Make a loop over dofs. More...
 
virtual MoFEMErrorCode loop_dofs (const std::string &field_name, DofMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Make a loop over dofs. More...
 
virtual MoFEMErrorCode loop_entities (const std::string field_name, EntityMethod &method, Range const *const ents=nullptr, int verb=DEFAULT_VERBOSITY)=0
 Loop over field entities. More...
 
virtual MoFEMErrorCode loop_entities (const Problem *problem_ptr, const std::string field_name, RowColData rc, EntityMethod &method, int lower_rank, int upper_rank, int verb=DEFAULT_VERBOSITY)=0
 Loop over field entities in the problem. More...
 
virtual MoFEMErrorCode loop_entities (const std::string problem_name, const std::string field_name, RowColData rc, EntityMethod &method, int lower_rank, int upper_rank, int verb=DEFAULT_VERBOSITY)=0
 Loop over field entities in the problem. More...
 
virtual MoFEMErrorCode loop_entities (const std::string problem_name, const std::string field_name, RowColData rc, EntityMethod &method, int verb=DEFAULT_VERBOSITY)=0
 Loop over field entities in the problem. More...
 

Get pointers to multi-index database

virtual const Field_multiIndexget_fields () const =0
 Get the fields object. More...
 
virtual const RefEntity_multiIndexget_ref_ents () const =0
 Get the ref ents object. More...
 
virtual const RefElement_multiIndexget_ref_finite_elements () const =0
 Get the ref finite elements object. More...
 
virtual const FiniteElement_multiIndexget_finite_elements () const =0
 Get the finite elements object. More...
 
virtual const EntFiniteElement_multiIndexget_ents_finite_elements () const =0
 Get the ents finite elements object. More...
 
virtual const FieldEntity_multiIndexget_field_ents () const =0
 Get the field ents object. More...
 
virtual const DofEntity_multiIndexget_dofs () const =0
 Get the dofs object. More...
 
virtual const Problemget_problem (const std::string problem_name) const =0
 Get the problem object. More...
 
virtual const Problem_multiIndexget_problems () const =0
 Get the problems object. More...
 
virtual MoFEMErrorCode get_ents_elements_adjacency (const FieldEntityEntFiniteElementAdjacencyMap_multiIndex **dofs_elements_adjacency) const =0
 Get the dofs elements adjacency object. More...
 
virtual const FieldEntityEntFiniteElementAdjacencyMap_multiIndexget_ents_elements_adjacency () const =0
 Get the dofs elements adjacency object. More...
 
virtual MoFEMErrorCode get_fields (const Field_multiIndex **fields_ptr) const =0
 Get fields multi-index from database. More...
 
virtual MoFEMErrorCode get_ref_ents (const RefEntity_multiIndex **refined_ents_ptr) const =0
 Get ref entities multi-index from database. More...
 
virtual MoFEMErrorCode get_ref_finite_elements (const RefElement_multiIndex **refined_finite_elements_ptr) const =0
 Get ref finite elements multi-index form database. More...
 
virtual MoFEMErrorCode get_finite_elements (const FiniteElement_multiIndex **fe_ptr) const =0
 Get finite elements multi-index. More...
 
virtual MoFEMErrorCode get_ents_finite_elements (const EntFiniteElement_multiIndex **fe_ent_ptr) const =0
 Get entities finite elements multi-index. More...
 
virtual MoFEMErrorCode get_problem (const std::string &problem_name, const Problem **problem_ptr) const =0
 Get problem database (data structure) More...
 
virtual MoFEMErrorCode get_problems (const Problem_multiIndex **problems_ptr) const =0
 Get pointer to problems multi-index. More...
 
virtual MoFEMErrorCode get_field_ents (const FieldEntity_multiIndex **field_ents) const =0
 Get field multi index. More...
 
virtual MoFEMErrorCode get_dofs (const DofEntity_multiIndex **dofs_ptr) const =0
 Get dofs multi index. More...
 
virtual FieldEntityByUId::iterator get_ent_field_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) More...
 
virtual FieldEntityByUId::iterator get_ent_field_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) More...
 
virtual DofEntityByUId::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) More...
 
virtual DofEntityByUId::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) More...
 
virtual DofEntityByUId::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) More...
 
virtual DofEntityByUId::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) More...
 
virtual DofEntityByUId::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) More...
 
virtual DofEntityByUId::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) More...
 
virtual EntFiniteElement_multiIndex::index< Unique_mi_tag >::type::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) More...
 
virtual EntFiniteElement_multiIndex::index< Unique_mi_tag >::type::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) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MoFEM::UnknownInterface
static MoFEMErrorCode getLibVersion (Version &version)
 Get library version. More...
 
static MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version)
 Get database major version. More...
 
static MoFEMErrorCode setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD))
 Get database major version. More...
 
static MoFEMErrorCode getInterfaceVersion (Version &version)
 Get database major version. More...
 

Detailed Description

Interface.

This interface is used by user to:

Examples
mesh_cut.cpp.

Definition at line 27 of file Interface.hpp.

Constructor & Destructor Documentation

◆ ~CoreInterface()

virtual MoFEM::CoreInterface::~CoreInterface ( )
virtualdefault

Member Function Documentation

◆ add_field()

virtual MoFEMErrorCode MoFEM::CoreInterface::add_field ( const std::string &  name,
const FieldSpace  space,
const FieldApproximationBase  base,
const FieldCoefficientsNumber  nb_of_coefficients,
const TagType  tag_type = MB_TAG_SPARSE,
const enum MoFEMTypes  bh = MF_EXCL,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Add field.

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namename of the filed
spacespace (L2,H1,Hdiv,Hcurl)
baseapproximation base, see FieldApproximationBase
nb_of_coefficientsnumber 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 level
Returns
error code

Implemented in MoFEM::CoreTmp< 0 >.

Examples
build_large_problem.cpp, build_problems.cpp, cell_forces.cpp, continuity_check_on_contact_prism_side_ele.cpp, continuity_check_on_skeleton_3d.cpp, dm_build_partitioned_mesh.cpp, dm_create_subdm.cpp, dm_partitioned_no_field.cpp, elasticity.cpp, elasticity_mixed_formulation.cpp, field_blas.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_flat_prism_element.cpp, forces_and_sources_testing_users_base.cpp, hcurl_divergence_operator_2d.cpp, MagneticElement.hpp, mesh_insert_interface_atom.cpp, mesh_smoothing.cpp, minimal_surface_area.cpp, mortar_contact_thermal.cpp, nonlinear_dynamics.cpp, prism_elements_from_surface.cpp, prism_polynomial_approximation.cpp, quad_polynomial_approximation.cpp, remove_entities_from_problem.cpp, remove_entities_from_problem_not_partitioned.cpp, simple_contact.cpp, simple_contact_thermal.cpp, test_jacobian_of_simple_contact_element.cpp, and UnsaturatedFlow.hpp.

◆ build_adjacencies() [1/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::build_adjacencies ( const BitRefLevel bit,
const BitRefLevel mask,
int  verb = DEFAULT_VERBOSITY 
)
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::CoreTmp< 0 >.

◆ build_adjacencies() [2/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::build_adjacencies ( const BitRefLevel bit,
int  verb = DEFAULT_VERBOSITY 
)
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::CoreTmp< 0 >.

◆ build_adjacencies() [3/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::build_adjacencies ( const Range ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

◆ build_field()

virtual MoFEMErrorCode MoFEM::CoreInterface::build_field ( const std::string  field_name,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

build field by name

Parameters
field_name
verbm
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp< 0 >.

◆ cache_problem_entities()

virtual MoFEMErrorCode MoFEM::CoreInterface::cache_problem_entities ( const std::string  prb_name,
CacheTupleWeakPtr  cache_ptr 
)
pure virtual

Cache variables.

Parameters
prb_name
cache_ptr
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp< 0 >.

Examples
continuity_check_on_skeleton_3d.cpp, and lorentz_force.cpp.

◆ check_finite_element()

virtual bool MoFEM::CoreInterface::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::CoreTmp< 0 >.

Examples
elasticity_mixed_formulation.cpp, and photon_diffusion.cpp.

◆ check_number_of_ents_in_ents_field() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::check_number_of_ents_in_ents_field ( ) const
pure virtual

check data consistency in entitiesPtr

Implemented in MoFEM::CoreTmp< 0 >.

◆ check_number_of_ents_in_ents_field() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::check_number_of_ents_in_ents_field ( const std::string &  name) const
pure virtual

check data consistency in entitiesPtr

Implemented in MoFEM::CoreTmp< 0 >.

◆ check_number_of_ents_in_ents_finite_element() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::check_number_of_ents_in_ents_finite_element ( ) const
pure virtual

check data consistency in entsFiniteElements

Implemented in MoFEM::CoreTmp< 0 >.

◆ check_number_of_ents_in_ents_finite_element() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::check_number_of_ents_in_ents_finite_element ( const std::string &  name) const
pure virtual

check data consistency in entsFiniteElements

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_adjacencies_entities() [1/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_adjacencies_entities ( const BitRefLevel  bit,
const BitRefLevel  mask,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear adjacency map for entities on given bit level

Parameters
bit
mask

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_adjacencies_entities() [2/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_adjacencies_entities ( const Range  ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear adjacencies for field entities by entities

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_adjacencies_entities() [3/3]

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_adjacencies_entities ( const std::string  name,
const Range  ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear adjacencies for field entities by entities and field namd

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_adjacencies_finite_elements()

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_adjacencies_finite_elements ( const BitRefLevel  bit,
const BitRefLevel  mask,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear adjacency map for finite elements on given bit level

Parameters
bit
mask

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_database()

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_database ( int  verb = DEFAULT_VERBOSITY)
pure virtual

Clear database.

Parameters
verbVerbosity level
Returns
Error code

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_finite_elements() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_finite_elements ( const Range ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear finite elements

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_finite_elements() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_finite_elements ( const std::string &  fe_name,
const Range ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear finite elements

Implemented in MoFEM::CoreTmp< 0 >.

◆ clear_finite_elements_by_bit_ref()

virtual MoFEMErrorCode MoFEM::CoreInterface::clear_finite_elements_by_bit_ref ( const BitRefLevel  bit,
const BitRefLevel  mask,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

clear finite elements

Implemented in MoFEM::CoreTmp< 0 >.

◆ create_vertices_and_add_to_field()

virtual MoFEMErrorCode MoFEM::CoreInterface::create_vertices_and_add_to_field ( const std::string  name,
const double  coords[],
int  size,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Create a vertices and add to field object.

Create vertices and add them to field. Those vertices would be carring DOFs of the filed.

Note
This function is typically used when NOFIELD is created, for example load factor in arc-length control.
Parameters
namename of the field
bitbit ref level of the created vertices
coordsof the vertices
sizenumber of vertices
verbverbosity level
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp< 0 >.

Examples
dm_partitioned_no_field.cpp.

◆ delete_ents_by_bit_ref()

virtual MoFEMErrorCode MoFEM::CoreInterface::delete_ents_by_bit_ref ( const BitRefLevel  bit,
const BitRefLevel  mask,
const bool  remove_parent = false,
int  verb = DEFAULT_VERBOSITY,
MoFEMTypes  mf = MF_ZERO 
)
pure virtual

delete entities form mofem and moab database

Implemented in MoFEM::CoreTmp< 0 >.

Examples
continuity_check_on_contact_prism_side_ele.cpp, and split_sideset.cpp.

◆ delete_field()

virtual MoFEMErrorCode MoFEM::CoreInterface::delete_field ( const std::string  name,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Delete field.

Parameters
namefield name
verbverbosity level
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp< 0 >.

◆ delete_finite_element()

virtual MoFEMErrorCode MoFEM::CoreInterface::delete_finite_element ( const std::string  name,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

delete finite element from mofem database

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_basic_entity_data_ptr()

virtual boost::shared_ptr<BasicEntityData>& MoFEM::CoreInterface::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::CoreTmp< 0 >.

◆ get_comm()

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

◆ get_comm_rank()

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

◆ get_comm_size()

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

◆ get_field_bit_number()

virtual FieldBitNumber MoFEM::CoreInterface::get_field_bit_number ( const std::string  name) const
pure virtual

get field bit number

Parameters
nameof field Example:
auto field_number = mField.get_field_bit_number("DISPLACEMENT");

Implemented in MoFEM::CoreTmp< 0 >.

Examples
cell_forces.cpp, dm_partitioned_no_field.cpp, and free_surface.cpp.

◆ get_field_id()

virtual BitFieldId MoFEM::CoreInterface::get_field_id ( const std::string &  name) const
pure virtual

Get field Id.

Parameters
nameof field
Returns
BitFieldId

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_field_meshset()

virtual EntityHandle MoFEM::CoreInterface::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::CoreTmp< 0 >.

Examples
forces_and_sources_testing_flat_prism_element.cpp.

◆ get_field_name()

virtual std::string MoFEM::CoreInterface::get_field_name ( const BitFieldId  id) const
pure virtual

get field name from id

Parameters
id
Returns
std::string

Implemented in MoFEM::CoreTmp< 0 >.

Examples
dm_build_partitioned_mesh.cpp.

◆ get_finite_element_structure()

virtual const FiniteElement* MoFEM::CoreInterface::get_finite_element_structure ( const std::string &  name,
enum MoFEMTypes  bh = MF_EXIST 
) const
pure virtual

get finite element struture

If finite element is not found throw error if bh == MF_EXIST, or return nullptr if bh == MF_ZERO, i.e. otherwise

Parameters
name
bh
Returns
FiniteElement*

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_meshsets_manager() [1/2]

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

get MeshsetsManager pointer

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_meshsets_manager() [2/2]

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

get MeshsetsManager pointer

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_meshsets_manager_ptr() [1/2]

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

get MeshsetsManager pointer

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_meshsets_manager_ptr() [2/2]

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

get MeshsetsManager pointer

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_moab() [1/2]

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

get moab instance interface

Implemented in MoFEM::CoreTmp< 0 >.

◆ get_moab() [2/2]

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

◆ getValue()

virtual const int MoFEM::CoreInterface::getValue ( ) const
pure virtual

Get the core.

Returns
int

Implemented in MoFEM::CoreTmp<-1 >, and MoFEM::CoreTmp< 0 >.

◆ make_shared_ref_entity()

virtual boost::shared_ptr<RefEntityTmp<0> > MoFEM::CoreInterface::make_shared_ref_entity ( const EntityHandle  ent)
pure virtual

Get RefEntity.

Parameters
ent
Returns
boost::shared_ptr<RefEntityTmp<0>>

Implemented in MoFEM::CoreTmp<-1 >, and MoFEM::CoreTmp< 0 >.

◆ problem_basic_method_preProcess() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::problem_basic_method_preProcess ( const Problem problem_ptr,
BasicMethod method,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Set data for BasicMethod.

This function set data about problem, adjacencies and other multi-indices 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
pointerto problem data structure
methoduser method derived from BasicMethod

Implemented in MoFEM::CoreTmp< 0 >.

◆ problem_basic_method_preProcess() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::problem_basic_method_preProcess ( const std::string &  problem_name,
BasicMethod method,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Set data for BasicMethod.

This function set data about problem, adjacencies and other multi-indices 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::CoreTmp< 0 >.

◆ rebuild_database()

virtual MoFEMErrorCode MoFEM::CoreInterface::rebuild_database ( int  verb = DEFAULT_VERBOSITY)
pure virtual

Clear database and initialize it once again.

Parameters
verbVerbosity level
Returns
Error code

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_ents()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_ents ( const Range  ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

remove entities form mofem database

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_ents_by_bit_ref()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_ents_by_bit_ref ( const BitRefLevel  bit,
const BitRefLevel  mask,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

remove entities form mofem database

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_ents_from_finite_element()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_ents_from_finite_element ( const std::string  name,
const EntityHandle  meshset,
const EntityType  type,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

remove entities from given refinement level to finite element database

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_parents_by_bit_ref()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_parents_by_bit_ref ( const BitRefLevel  bit,
const BitRefLevel  mask,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Remove parent from entities on bit level.

Evert entity created by refinement, split or any other change on the mesh can have parent. This function remove parent from entity,

Note
Functions makeing topological changes on entities should repsect parents child relation. This erase that relation. If you going to split faces and create interface is recommended to call this function before split opeartion.
Parameters
bitlevel
maskof bit level
verbverbosity level
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_parents_by_ents()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_parents_by_ents ( const Range ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Remove parents from entities.

Implemented in MoFEM::CoreTmp< 0 >.

◆ remove_parents_by_parents()

virtual MoFEMErrorCode MoFEM::CoreInterface::remove_parents_by_parents ( const Range ents,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Remove paremts from entities having parents in passed range.

Implemented in MoFEM::CoreTmp< 0 >.

◆ set_moab_interface()

virtual MoFEMErrorCode MoFEM::CoreInterface::set_moab_interface ( moab::Interface &  new_moab,
int  verb = VERBOSE 
)
pure virtual

Set the moab interface object.

Parameters
new_moab
verb
Returns
MoFEMErrorCode

Implemented in MoFEM::CoreTmp<-1 >, and MoFEM::CoreTmp< 0 >.


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