![]() |
v0.15.0 |
Manages complexities for integrating over finite elements and dofs. More...
Classes | |
| struct | MoFEM::PetscData |
| Base data structure for PETSc-related contexts. More... | |
| struct | MoFEM::KspMethod |
| Data structure for KSP (linear solver) context. More... | |
| struct | MoFEM::SnesMethod |
| Data structure for SNES (nonlinear solver) context. More... | |
| struct | MoFEM::TSMethod |
| Data structure for TS (time stepping) context. More... | |
| struct | MoFEM::TaoMethod |
| Data structure for TAO (optimization) context. More... | |
| struct | MoFEM::BasicMethod |
| Data structure to exchange data between MoFEM and User Loop Methods. More... | |
| struct | MoFEM::FEMethod |
| Structure for user loop methods on finite elements. More... | |
| struct | MoFEM::EntityMethod |
| Data structure for user loop methods on entities. More... | |
| struct | MoFEM::DofMethod |
| Data structure for user loop methods on degrees of freedom (DOFs) More... | |
Making loops on elements and entities | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::problem_basic_method_postProcess (const Problem *problem_ptr, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0 |
| Set data for BasicMethod. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::problem_basic_method_postProcess (const std::string &problem_name, BasicMethod &method, int verb=DEFAULT_VERBOSITY)=0 |
| Set data for BasicMethod. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
| virtual MoFEMErrorCode | MoFEM::CoreInterface::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. | |
Manages complexities for integrating over finite elements and dofs.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over dofs.
| problem_ptr | Pointer to problem structure |
| field_name | Name of the field containing DOFs to loop over |
| rc | Row/column data specification |
| method | User-defined method to execute on each DOF |
| lower_rank | Lower processor rank range (inclusive) |
| upper_rank | Upper processor rank range (inclusive) |
| verb | Verbosity level (default: DEFAULT_VERBOSITY) |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over dofs.
| problem_name | Name of the problem containing DOFs |
| field_name | Name of the field containing DOFs to loop over |
| rc | Row/column data specification |
| method | User-defined method to execute on each DOF |
| lower_rank | Lower processor rank range (inclusive) |
| upper_rank | Upper processor rank range (inclusive) |
| verb | Verbosity level (default: DEFAULT_VERBOSITY) |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over dofs.
| problem_name | Name of the problem containing DOFs |
| field_name | Name of the field containing DOFs to loop over |
| rc | Row/column data specification |
| method | User-defined method to execute on each DOF |
| verb | Verbosity level (default: DEFAULT_VERBOSITY) |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over finite elements on partitions from upper to lower rank.
This function is like a Swiss knife; it can be used for post-processing or matrix and vector assembly. It iterates over the given finite element for a given problem. The particular methods executed on each element are provided by a class derived from Interface::FEMethod. At the beginning of each loop the user- defined function (method) preProcess() is called; for each element operator() is executed; at the end, the loop finalizes with the user-defined function (method) postProcess().
For more details please look to examples.
Interface::FEMethod
| problem_ptr | pointer to problem consisting set of elements |
| fe_name | name of element in problem |
| method | class derived from Interface::FEMethod |
| lower_rank | lower rank of process owning the finite element |
| upper_rank | upper rank of process owning the finite element |
| fe_ptr | pointer to finite elements multi-index |
| bh | if bH = MF_EXIST, throws error if fe_name does not exist |
| cache_data | cache data vector |
| cache_row | cache row vector |
| cache_col | cache row vector |
| verb | verbosity level |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over finite elements.
This function is like a Swiss knife; it can be used for post-processing or matrix and vector assembly. It iterates over the given finite element for a given problem. The particular methods executed on each element are provided by a class derived from Interface::FEMethod. At the beginning of each loop the user- defined function (method) preProcess() is called; for each element operator() is executed; at the end, the loop finalizes with the user-defined function (method) postProcess().
Methods are executed only for local elements on a given processor.
For more details please look at examples.
| problem_name | problem consisting set of elements |
| fe_name | name of element in problem |
| method | class derived form Interface::FEMethod |
| fe_ptr | pointer to finite elements multi-index |
| bh | if bH = MF_EXIST, throws error if fe_name does not exist |
| cache_tuple_ptr | cache |
| verb | verbosity level |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
Make a loop over finite elements on partitions from upper to lower rank.
This function is like a Swiss knife; it can be used for post-processing or matrix and vector assembly. It iterates over the given finite element for a given problem. The particular methods executed on each element are provided by a class derived from Interface::FEMethod. At the beginning of each loop the user- defined function (method) preProcess() is called; for each element operator() is executed; at the end, the loop finalizes with the user-defined function (method) postProcess().
For more details please look to examples.
| problem_name | pointer to problem consisting set of elements |
| fe_name | name of element in problem |
| method | class derived from Interface::FEMethod |
| lower_rank | lower rank of process owning the finite element |
| upper_rank | upper rank of process owning the finite element |
| fe_ptr | pointer to finite elements multi-index |
| bh | if bH = MF_EXIST, throws error if fe_name does not exist |
| cache_data | cache data vector |
| cache_row | cache row vector |
| cache_col | cache row vector |
| verb | verbosity level |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
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
| pointer | to problem data structure |
| method | user method derived from BasicMethod |
Implemented in MoFEM::CoreTmp< 0 >.
|
pure virtual |
#include <src/interfaces/Interface.hpp>
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
| problem_name | name of the problem |
| method | user method derived from BasicMethod |
Implemented in MoFEM::CoreTmp< 0 >.