v0.8.15
Functions
Finite elements

Adding and managing finite elements. More...

Collaboration diagram for Finite elements:

Functions

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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 MoFEMErrorCode MoFEM::DeprecatedCoreInterface::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...
 

Finite elements

virtual MoFEMErrorCode MoFEM::CoreInterface::add_finite_element (const std::string &fe_name, enum MoFEMTypes bh=MF_EXCL, int verb=DEFAULT_VERBOSITY)=0
 add finite element More...
 
virtual MoFEMErrorCode MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::get_finite_element_meshset (const std::string &name) const =0
 
virtual MoFEMErrorCode MoFEM::CoreInterface::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 MoFEM::CoreInterface::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 MoFEM::CoreInterface::remove_ents_from_finite_element (const Range &ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from finite elements in database More...
 
virtual MoFEMErrorCode MoFEM::CoreInterface::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 MoFEM::CoreInterface::list_finite_elements () const =0
 list finite elements in database More...
 

Build fields, finite elements and problems

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

Detailed Description

Adding and managing finite elements.

Function Documentation

◆ add_ents_to_finite_element_by_bit_ref()

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_bit_ref ( const BitRefLevel bit,
const BitRefLevel mask,
const std::string &  name,
EntityType  type,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

add TET entities from given refinement level to finite element database given by name

Note
not collective
Parameters
BitRefLevelbit
BitRefLevelmask
finiteelement name
finiteelement type
verboselevel

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_dim() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_dim ( const EntityHandle  entities,
const int  dim,
const std::string &  name,
const bool  recursive = true 
)
pure virtual

add entities to finite element

Note
not collective
Parameters
entitiesmeshset or range form were entities taken
dimdimension
namename of field
recursivetake entities from meshsets in meshset
Returns
error code

Implemented in MoFEM::Core.

Examples:
simple_elasticity.cpp.

◆ add_ents_to_finite_element_by_dim() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_dim ( const Range &  ents,
const int  dim,
const std::string &  name 
)
pure virtual

add entities to finite elements

Note
not collective
Parameters
entsrange of entities
dimdimension of entities
namename of finite element
Returns
error code

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_EDGEs()

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_EDGEs ( const Range &  edge,
const std::string &  name 
)
pure virtual

add EDGES entities from range to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_MESHSET()

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_MESHSET ( const EntityHandle  meshset,
const std::string &  name,
const bool  recursive = false 
)
pure virtual

add MESHSET element to finite element database given by name

Note
not collective
Parameters
meshsetcontains all entities that could be used for finite element
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_PRISMs() [1/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_PRISMs ( const Range &  prims,
const std::string &  name 
)
pure virtual

add PRISM entities from meshset to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_PRISMs() [2/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_PRISMs ( const EntityHandle  meshset,
const std::string &  name,
const bool  recursive = false 
)
pure virtual

add TET entities from meshset to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
meshsetcontains tetrahedron
nameFinite Element name
recursiveif true parent meshset is searched recursively

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_TETs() [1/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_TETs ( const Range &  tets,
const std::string &  name 
)
pure virtual

add TET entities from range to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_TETs() [2/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_TETs ( const EntityHandle  meshset,
const std::string &  name,
const bool  recursive = false 
)
pure virtual

add TET entities from meshset to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
meshsetcontains tetrahedron
nameFinite Element name
recursiveif true parent meshset is searched recursively

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_TRIs() [1/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_TRIs ( const Range &  tris,
const std::string &  name 
)
pure virtual

add TRI entities from range to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_TRIs() [2/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_TRIs ( const EntityHandle  meshset,
const std::string &  name,
const bool  recursive = false 
)
pure virtual

add TRI entities from meshset to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name
recursiveif true parent meshset is searched recursively

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_type() [1/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_type ( const EntityHandle  entities,
const EntityType  type,
const std::string &  name,
const bool  recursive = true 
)
pure virtual

add entities to finite element

Note
not collective
Parameters
entitiesmeshset or range form were entities taken
typetype of entity
namename of field
recursivetake entities from meshsets in meshset
Returns
error code

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, HookeElement.cpp, MagneticElement.hpp, mesh_smoothing.cpp, minimal_surface_area.cpp, unsaturated_transport.cpp, and UnsaturatedFlow.hpp.

◆ add_ents_to_finite_element_by_type() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::add_ents_to_finite_element_by_type ( const Range &  ents,
const EntityType  type,
const std::string &  name 
)
pure virtual

add entities to finite elements

Note
not collective
Parameters
entsrange of entities
typetype of entity (MBVERTEX, MBEDGE, MBTRI, ...)
namename of finite element
Returns
error code

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_by_VERTICEs()

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_by_VERTICEs ( const Range &  vert,
const std::string &  name 
)
pure virtual

add VERTICES entities from range to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_type
Parameters
rangecontains tetrahedron
nameFinite Element name

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_EntType_by_bit_ref() [1/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_EntType_by_bit_ref ( const BitRefLevel bit,
const std::string &  name,
EntityType  type,
int  verb = -1 
)
pure virtual

add TET elements from given refinement level to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_bit_ref with mask explicitly given
Parameters
BitRefLevelbit
finiteelement name
finiteelenent type
verrboselevel

Implemented in MoFEM::Core.

◆ add_ents_to_finite_element_EntType_by_bit_ref() [2/2]

virtual DEPRECATED MoFEMErrorCode MoFEM::DeprecatedCoreInterface::add_ents_to_finite_element_EntType_by_bit_ref ( const BitRefLevel bit,
const BitRefLevel mask,
const std::string &  name,
EntityType  type,
int  verb = -1 
)
pure virtual

add TET entities from given refinement level to finite element database given by name

Deprecated:
use add_ents_to_finite_element_by_bit_ref with mask explicitly given
Parameters
BitRefLevelbit
BitRefLevelmask
finiteelement name
finiteelement type
verrboselevel

Implemented in MoFEM::Core.

◆ add_finite_element()

virtual MoFEMErrorCode MoFEM::CoreInterface::add_finite_element ( const std::string &  fe_name,
enum MoFEMTypes  bh = MF_EXCL,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

add finite element

Parameters
namefinite element name
Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.

Example

CHKERR mField.add_finite_element("ELASTIC");
CHKERR mField.add_finite_element("PLASTIC");

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, HookeElement.cpp, MagneticElement.hpp, mesh_smoothing.cpp, minimal_surface_area.cpp, simple_elasticity.cpp, and UnsaturatedFlow.hpp.

◆ build_finite_elements() [1/2]

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

Build finite elementsBuild finite element data structures. Have to be run before problem and adjacencies are constructed.

Parameters
verbVerbosity level
Returns
Error code

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, MagneticElement.hpp, minimal_surface_area.cpp, simple_elasticity.cpp, and UnsaturatedFlow.hpp.

◆ build_finite_elements() [2/2]

virtual MoFEMErrorCode MoFEM::CoreInterface::build_finite_elements ( const string  fe_name,
const Range *  ents_ptr = NULL,
int  verb = DEFAULT_VERBOSITY 
)
pure virtual

Build finite elementsBuild finite element data structures. Have to be run before problem and adjacencies are constructed.

Parameters
fe_nameName of finite element
ents_ptrPointer to range of finite elements
verbVerbosity level
Returns
Error code

Implemented in MoFEM::Core.

◆ get_finite_element_meshset()

virtual EntityHandle MoFEM::CoreInterface::get_finite_element_meshset ( const std::string &  name) const
pure virtual

get finite element meshset

Implemented in MoFEM::Core.

◆ list_finite_elements()

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

list finite elements in database

Implemented in MoFEM::Core.

◆ modify_finite_element_add_field_col()

virtual MoFEMErrorCode MoFEM::CoreInterface::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

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, HookeElement.cpp, MagneticElement.hpp, mesh_smoothing.cpp, minimal_surface_area.cpp, simple_elasticity.cpp, and UnsaturatedFlow.hpp.

◆ modify_finite_element_add_field_data()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_add_field_data ( const std::string &  fe_name,
const std::string &  name_filed 
)
pure virtual

set finite element field data

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

This function will set memory in the form of a vector

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, HookeElement.cpp, MagneticElement.hpp, mesh_smoothing.cpp, minimal_surface_area.cpp, simple_elasticity.cpp, and UnsaturatedFlow.hpp.

◆ modify_finite_element_add_field_row()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_add_field_row ( const std::string &  fe_name,
const std::string &  name_row 
)
pure virtual

set field row which finite element use

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

Implemented in MoFEM::Core.

Examples:
cell_forces.cpp, elasticity.cpp, forces_and_sources_testing_edge_element.cpp, forces_and_sources_testing_users_base.cpp, HookeElement.cpp, MagneticElement.hpp, mesh_smoothing.cpp, minimal_surface_area.cpp, simple_elasticity.cpp, and UnsaturatedFlow.hpp.

◆ modify_finite_element_adjacency_table()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_adjacency_table ( const std::string &  fe_name,
const EntityType  type,
ElementAdjacencyFunct  function 
)
pure virtual

modify finite element table, only for advanced user

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.

Using that functions means that you like to do something not usual.

Implemented in MoFEM::Core.

◆ modify_finite_element_off_field_col()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_off_field_col ( const std::string &  fe_name,
const std::string &  name_row 
)
pure virtual

unset field col which finite element use

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

Implemented in MoFEM::Core.

◆ modify_finite_element_off_field_data()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_off_field_data ( const std::string &  fe_name,
const std::string &  name_filed 
)
pure virtual

unset finite element field data

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

This function will set memory in the form of a vector

Implemented in MoFEM::Core.

◆ modify_finite_element_off_field_row()

virtual MoFEMErrorCode MoFEM::CoreInterface::modify_finite_element_off_field_row ( const std::string &  fe_name,
const std::string &  name_row 
)
pure virtual

unset field row which finite element use

Note
add_file is a collective, should be executed on all processors. Otherwise could lead to deadlock.
Parameters
namefinite element name
namefield name

Implemented in MoFEM::Core.

◆ remove_ents_from_finite_element() [1/2]

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

remove entities from finite element database

Implemented in MoFEM::Core.

◆ remove_ents_from_finite_element() [2/2]

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

remove entities from finite elements in database

Implemented in MoFEM::Core.

◆ remove_ents_from_finite_element_by_bit_ref()

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

remove elements from given refinement level to finite element database

Parameters
BitRefLevelbit
BitRefLevelmask
verboselevel

Implemented in MoFEM::Core.