v0.14.0
Loading...
Searching...
No Matches
Finite elements

Adding and managing finite elements. More...

Collaboration diagram for Finite elements:

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
virtual MoFEMErrorCode MoFEM::CoreInterface::remove_ents_from_finite_element (const Range ents, int verb=DEFAULT_VERBOSITY)=0
 remove entities from finite elements in database
 
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
 
virtual MoFEMErrorCode MoFEM::CoreInterface::list_finite_elements () const =0
 list finite elements in database
 

Build fields, finite elements and problems

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

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::CoreTmp< 0 >.

◆ 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::CoreTmp< 0 >.

Examples
HookeElement.cpp, NavierStokesElement.hpp, continuity_check_on_skeleton_3d.cpp, elasticity.cpp, hcurl_divergence_operator_2d.cpp, photon_diffusion.cpp, remove_entities_from_problem.cpp, remove_entities_from_problem_not_partitioned.cpp, and 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::CoreTmp< 0 >.

◆ 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::CoreTmp< 0 >.

◆ 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_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::CoreTmp< 0 >.

◆ 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

◆ build_finite_elements() [1/2]

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

Build finite elements.

Build 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::CoreTmp< 0 >.

◆ build_finite_elements() [2/2]

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

◆ 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::CoreTmp< 0 >.

Examples
level_set.cpp.

◆ list_finite_elements()

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

list finite elements in database

Implemented in MoFEM::CoreTmp< 0 >.

◆ 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

◆ 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

◆ 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

◆ 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::CoreTmp< 0 >.

Examples
scalar_check_approximation.cpp.

◆ 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::CoreTmp< 0 >.

◆ 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::CoreTmp< 0 >.

◆ 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::CoreTmp< 0 >.

◆ remove_ents_from_finite_element() [1/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::CoreTmp< 0 >.

◆ remove_ents_from_finite_element() [2/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::CoreTmp< 0 >.

◆ 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::CoreTmp< 0 >.