![]() |
v0.15.0 |
Field evaluator interface. More...
#include "src/interfaces/FieldEvaluator.hpp"
Classes | |
| struct | SetIntegrationPtsMethod |
| struct | SetIntegrationPtsMethodData |
Public Types | |
| using | SetPtsData = SetIntegrationPtsMethodData |
| using | VecDataPts = std::vector< std::pair< boost::shared_ptr< VectorDouble >, boost::shared_ptr< VectorDouble > > > |
| using | MatDataPts = std::vector< std::pair< boost::shared_ptr< MatrixDouble >, boost::shared_ptr< MatrixDouble > > > |
Public Member Functions | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| FieldEvaluatorInterface (const MoFEM::Core &core) | |
| template<typename VE , typename SPD = SetIntegrationPtsMethodData, typename SP = SetIntegrationPtsMethod> | |
| boost::shared_ptr< SPD > | getData (const double *ptr=nullptr, const int nb_eval_points=0, const double eps=1e-12, VERBOSITY_LEVELS verb=QUIET) |
| Get the Data object. | |
| template<int D> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element) |
| Build spatial tree. | |
| template<int D> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| Build spatial tree. | |
| template<int D> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh=MF_EXIST, VERBOSITY_LEVELS verb=QUIET) |
| Evaluate field at actbitray position. | |
| template<int D> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperator (VecDataPts vec_data_pts, MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh=MF_EXIST, VERBOSITY_LEVELS verb=QUIET) |
| Evaluate field values at integration points of finite elements to which operator is pushed. | |
| template<int D> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh=MF_EXIST, VERBOSITY_LEVELS verb=QUIET) |
| Evaluate field at actbitray position. | |
| template<> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| template<> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| template<> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperator (FieldEvaluatorInterface::VecDataPts vec_data_pts, FieldEvaluatorInterface::MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperator (FieldEvaluatorInterface::VecDataPts vec_data_pts, FieldEvaluatorInterface::MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| template<> | |
| MoFEMErrorCode | buildTree (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| template<> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| MoFEMErrorCode | evalFEAtThePoint (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperator (FieldEvaluatorInterface::VecDataPts vec_data_pts, FieldEvaluatorInterface::MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
| template<> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperator (FieldEvaluatorInterface::VecDataPts vec_data_pts, FieldEvaluatorInterface::MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh, VERBOSITY_LEVELS verb) |
Public Member Functions inherited from MoFEM::UnknownInterface | |
| template<class IFACE > | |
| MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
| Register interface. | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE *&iface) const |
| Get interface reference to pointer of interface. | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE **const iface) const |
| Get interface pointer to pointer of interface. | |
| template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get interface pointer to pointer of interface. | |
| template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get reference to interface. | |
| template<class IFACE > | |
| IFACE * | getInterface () const |
| Function returning pointer to interface. | |
| virtual | ~UnknownInterface ()=default |
Private Member Functions | |
| template<int D> | |
| MoFEMErrorCode | buildTreeImpl (boost::shared_ptr< SetIntegrationPtsMethodData > spd_ptr, const std::string finite_element, BitRefLevel bit, BitRefLevel mask) |
| template<int D> | |
| MoFEMErrorCode | evalFEAtThePointImpl (const double *const point, const double distance, const std::string problem, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, boost::shared_ptr< CacheTuple > cache_ptr, MoFEMTypes bh=MF_EXIST, VERBOSITY_LEVELS verb=QUIET) |
| template<int D> | |
| ForcesAndSourcesCore::UserDataOperator * | getDataOperatorImpl (VecDataPts vec_data_pts, MatDataPts mat_data_pts, const std::string finite_element, boost::shared_ptr< SetIntegrationPtsMethodData > data_ptr, int lower_rank, int upper_rank, BitRefLevel bit, BitRefLevel mask, MoFEMTypes bh=MF_EXIST, VERBOSITY_LEVELS verb=QUIET) |
Private Attributes | |
| MoFEM::Core & | cOre |
Additional Inherited Members | |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
| static MoFEMErrorCode | getLibVersion (Version &version) |
| Get library version. | |
| static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
| Get database major version. | |
| static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
| Get database major version. | |
| static MoFEMErrorCode | getInterfaceVersion (Version &version) |
| Get database major version. | |
Field evaluator interface.
Definition at line 21 of file FieldEvaluator.hpp.
| using MoFEM::FieldEvaluatorInterface::MatDataPts = std::vector< std::pair<boost::shared_ptr<MatrixDouble>, boost::shared_ptr<MatrixDouble> > > |
Definition at line 152 of file FieldEvaluator.hpp.
Definition at line 24 of file FieldEvaluator.hpp.
| using MoFEM::FieldEvaluatorInterface::VecDataPts = std::vector< std::pair<boost::shared_ptr<VectorDouble>, boost::shared_ptr<VectorDouble> > > |
Definition at line 145 of file FieldEvaluator.hpp.
| MoFEM::FieldEvaluatorInterface::FieldEvaluatorInterface | ( | const MoFEM::Core & | core | ) |
Definition at line 8 of file FieldEvaluator.cpp.
|
inline |
Build spatial tree.
| finite_element | finite element name |
Definition at line 70 of file FieldEvaluator.hpp.
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::buildTree | ( | boost::shared_ptr< SetIntegrationPtsMethodData > | spd_ptr, |
| const std::string | finite_element, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask | ||
| ) |
Build spatial tree.
| finite_element | finite element name |
| bit | bit reference level |
| mask | mask reference level |
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::buildTree | ( | boost::shared_ptr< SetIntegrationPtsMethodData > | spd_ptr, |
| const std::string | finite_element, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask | ||
| ) |
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::buildTree | ( | boost::shared_ptr< SetIntegrationPtsMethodData > | spd_ptr, |
| const std::string | finite_element, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask | ||
| ) |
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::buildTree | ( | boost::shared_ptr< SetIntegrationPtsMethodData > | spd_ptr, |
| const std::string | finite_element, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask | ||
| ) |
Definition at line 61 of file FieldEvaluator.cpp.
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::buildTree | ( | boost::shared_ptr< SetIntegrationPtsMethodData > | spd_ptr, |
| const std::string | finite_element, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask | ||
| ) |
Definition at line 68 of file FieldEvaluator.cpp.
|
private |
Definition at line 41 of file FieldEvaluator.cpp.
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::evalFEAtThePoint | ( | const double *const | point, |
| const double | distance, | ||
| const std::string | problem, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| boost::shared_ptr< CacheTuple > | cache_ptr, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::evalFEAtThePoint | ( | const double *const | point, |
| const double | distance, | ||
| const std::string | problem, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| boost::shared_ptr< CacheTuple > | cache_ptr, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::evalFEAtThePoint | ( | const double *const | point, |
| const double | distance, | ||
| const std::string | problem, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| boost::shared_ptr< CacheTuple > | cache_ptr, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
Definition at line 394 of file FieldEvaluator.cpp.
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::evalFEAtThePoint | ( | const double *const | point, |
| const double | distance, | ||
| const std::string | problem, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| boost::shared_ptr< CacheTuple > | cache_ptr, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
Definition at line 407 of file FieldEvaluator.cpp.
| MoFEMErrorCode MoFEM::FieldEvaluatorInterface::evalFEAtThePoint | ( | const double *const | point, |
| const double | distance, | ||
| const std::string | problem, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| boost::shared_ptr< CacheTuple > | cache_ptr, | ||
| MoFEMTypes | bh = MF_EXIST, |
||
| VERBOSITY_LEVELS | verb = QUIET |
||
| ) |
Evaluate field at actbitray position.
| point | point used to find tetrahedrons |
| distance | distance from the point where tetrahedrons are searched |
| problem | problem name |
| finite_element | finite element name |
| data_ptr | pointer to data abut gauss points |
| lower_rank | lower processor |
| upper_rank | upper process |
| bit | bit reference level |
| mask | mask reference level |
| cache_ptr | cache or problem entities |
| bh | control looping over entities, e.g. throwing error if element not found |
| verb | verbosity level |
|
inline |
Evaluate field at actbitray position.
| point | point used to find tetrahedrons |
| distance | distance from the point where tetrahedrons are searched |
| problem | problem name |
| finite_element | finite element name |
| data_ptr | pointer to data abut gauss points |
| lower_rank | lower processor |
| upper_rank | upper process |
| cache_ptr | cache or problem entities |
| bh | control looping over entities, e.g. throwing error if element not found |
| verb | verbosity level |
Definition at line 134 of file FieldEvaluator.hpp.
|
private |
Definition at line 170 of file FieldEvaluator.cpp.
| boost::shared_ptr< SPD > MoFEM::FieldEvaluatorInterface::getData | ( | const double * | ptr = nullptr, |
| const int | nb_eval_points = 0, |
||
| const double | eps = 1e-12, |
||
| VERBOSITY_LEVELS | verb = QUIET |
||
| ) |
Get the Data object.
Pack pointers with data structures for field evaluator and finite element. Function return shared pointer if returned shared pointer is reset; all data are destroyed. The idea is to pack all data in one structure, create shared pointer to it and return aliased shared pointer to one of the elements of the data structure. It is a bit complicated, but has great flexibility.
| VE | |
| SetIntegrationPtsMethodData | |
| SetIntegrationPtsMethod |
| ptr | |
| nb_eval_points | |
| eps | |
| verb |
Definition at line 333 of file FieldEvaluator.hpp.
| ForcesAndSourcesCore::UserDataOperator * MoFEM::FieldEvaluatorInterface::getDataOperator | ( | FieldEvaluatorInterface::VecDataPts | vec_data_pts, |
| FieldEvaluatorInterface::MatDataPts | mat_data_pts, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
| ForcesAndSourcesCore::UserDataOperator * MoFEM::FieldEvaluatorInterface::getDataOperator | ( | FieldEvaluatorInterface::VecDataPts | vec_data_pts, |
| FieldEvaluatorInterface::MatDataPts | mat_data_pts, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
| ForcesAndSourcesCore::UserDataOperator * MoFEM::FieldEvaluatorInterface::getDataOperator | ( | FieldEvaluatorInterface::VecDataPts | vec_data_pts, |
| FieldEvaluatorInterface::MatDataPts | mat_data_pts, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
Definition at line 559 of file FieldEvaluator.cpp.
| ForcesAndSourcesCore::UserDataOperator * MoFEM::FieldEvaluatorInterface::getDataOperator | ( | FieldEvaluatorInterface::VecDataPts | vec_data_pts, |
| FieldEvaluatorInterface::MatDataPts | mat_data_pts, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| MoFEMTypes | bh, | ||
| VERBOSITY_LEVELS | verb | ||
| ) |
Definition at line 573 of file FieldEvaluator.cpp.
| ForcesAndSourcesCore::UserDataOperator * MoFEM::FieldEvaluatorInterface::getDataOperator | ( | VecDataPts | vec_data_pts, |
| MatDataPts | mat_data_pts, | ||
| const std::string | finite_element, | ||
| boost::shared_ptr< SetIntegrationPtsMethodData > | data_ptr, | ||
| int | lower_rank, | ||
| int | upper_rank, | ||
| BitRefLevel | bit, | ||
| BitRefLevel | mask, | ||
| MoFEMTypes | bh = MF_EXIST, |
||
| VERBOSITY_LEVELS | verb = QUIET |
||
| ) |
Evaluate field values at integration points of finite elements to which operator is pushed.
| vec_data_pts | vector of data shared between physical and post proc elements |
| mat_data_pts | matrix of data shared between physical and post proc elements |
| finite_element | finite element name on which field is evaluated |
| data_ptr | data about field evaluator |
| bh | control looping over entities, e.g. throwing error if element not found |
|
private |
Definition at line 421 of file FieldEvaluator.cpp.
|
virtual |
Implements MoFEM::UnknownInterface.
Definition at line 33 of file FieldEvaluator.cpp.
|
private |
Definition at line 209 of file FieldEvaluator.hpp.