![]() |
v0.15.0 |
structure for User Loop Methods on finite elements More...
#include "src/interfaces/LoopMethods.hpp"
Public Member Functions | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
FEMethod ()=default | |
auto | getFEName () const |
get finite element name | |
auto | getDataDofsPtr () const |
auto | getDataVectorDofsPtr () const |
const FieldEntity_vector_view & | getDataFieldEnts () const |
boost::shared_ptr< FieldEntity_vector_view > & | getDataFieldEntsPtr () const |
auto & | getRowFieldEnts () const |
auto & | getRowFieldEntsPtr () const |
auto & | getColFieldEnts () const |
auto & | getColFieldEntsPtr () const |
auto | getRowDofsPtr () const |
auto | getColDofsPtr () const |
auto | getNumberOfNodes () const |
EntityHandle | getFEEntityHandle () const |
MoFEMErrorCode | getNodeData (const std::string field_name, VectorDouble &data, const bool reset_dofs=true) |
![]() | |
BasicMethod () | |
virtual | ~BasicMethod ()=default |
int | getNinTheLoop () const |
get number of evaluated element in the loop | |
int | getLoopSize () const |
get loop size | |
auto | getLoHiFERank () const |
Get lo and hi processor rank of iterated entities. | |
auto | getLoFERank () const |
Get upper rank in loop for iterating elements. | |
auto | getHiFERank () const |
Get upper rank in loop for iterating elements. | |
unsigned int | getFieldBitNumber (std::string field_name) const |
MoFEMErrorCode | copyBasicMethod (const BasicMethod &basic) |
Copy data from other base method to this base method. | |
virtual MoFEMErrorCode | preProcess () |
function is run at the beginning of loop | |
virtual MoFEMErrorCode | operator() () |
function is run for every finite element | |
virtual MoFEMErrorCode | postProcess () |
function is run at the end of loop | |
boost::weak_ptr< CacheTuple > | getCacheWeakPtr () const |
Get the cache weak ptr object. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
KspMethod () | |
virtual | ~KspMethod ()=default |
MoFEMErrorCode | copyKsp (const KspMethod &ksp) |
copy data form another method | |
![]() | |
PetscData () | |
virtual | ~PetscData ()=default |
MoFEMErrorCode | copyPetscData (const PetscData &petsc_data) |
![]() | |
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 |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
SnesMethod () | |
virtual | ~SnesMethod ()=default |
MoFEMErrorCode | copySnes (const SnesMethod &snes) |
Copy snes data. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
TSMethod () | |
virtual | ~TSMethod ()=default |
MoFEMErrorCode | copyTs (const TSMethod &ts) |
Copy TS solver data. | |
![]() | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
TaoMethod () | |
virtual | ~TaoMethod ()=default |
MoFEMErrorCode | copyTao (const TaoMethod &tao) |
Copy TAO data. | |
Public Attributes | |
std::string | feName |
Name of finite element. | |
boost::shared_ptr< const NumeredEntFiniteElement > | numeredEntFiniteElementPtr |
boost::function< bool(FEMethod *fe_method_ptr)> | exeTestHook |
Tet if element to skip element. | |
![]() | |
int | nInTheLoop |
number currently of processed method | |
int | loopSize |
local number oe methods to process | |
std::pair< int, int > | loHiFERank |
Llo and hi processor rank of iterated entities. | |
int | rAnk |
processor rank | |
int | sIze |
number of processors in communicator | |
const RefEntity_multiIndex * | refinedEntitiesPtr |
container of mofem dof entities | |
const RefElement_multiIndex * | refinedFiniteElementsPtr |
container of mofem finite element entities | |
const Problem * | problemPtr |
raw pointer to problem | |
const Field_multiIndex * | fieldsPtr |
raw pointer to fields container | |
const FieldEntity_multiIndex * | entitiesPtr |
raw pointer to container of field entities | |
const DofEntity_multiIndex * | dofsPtr |
raw pointer container of dofs | |
const FiniteElement_multiIndex * | finiteElementsPtr |
raw pointer to container finite elements | |
const EntFiniteElement_multiIndex * | finiteElementsEntitiesPtr |
const FieldEntityEntFiniteElementAdjacencyMap_multiIndex * | adjacenciesPtr |
boost::function< MoFEMErrorCode()> | preProcessHook |
Hook function for pre-processing. | |
boost::function< MoFEMErrorCode()> | postProcessHook |
Hook function for post-processing. | |
boost::function< MoFEMErrorCode()> | operatorHook |
Hook function for operator. | |
boost::movelib::unique_ptr< bool > | vecAssembleSwitch |
boost::movelib::unique_ptr< bool > | matAssembleSwitch |
boost::weak_ptr< CacheTuple > | cacheWeakPtr |
![]() | |
KSPContext | ksp_ctx |
Context. | |
KSP | ksp |
KSP solver. | |
Vec & | ksp_f |
Mat & | ksp_A |
Mat & | ksp_B |
![]() | |
Switches | data_ctx |
Vec | f |
Mat | A |
Mat | B |
Vec | x |
Vec | dx |
Vec | x_t |
Vec | x_tt |
![]() | |
SNESContext | snes_ctx |
SNES | snes |
snes solver | |
Vec & | snes_x |
state vector | |
Vec & | snes_dx |
solution update | |
Vec & | snes_f |
residual | |
Mat & | snes_A |
jacobian matrix | |
Mat & | snes_B |
preconditioner of jacobian matrix | |
![]() | |
TS | ts |
time solver | |
TSContext | ts_ctx |
PetscInt | ts_step |
time step number | |
PetscReal | ts_a |
shift for U_t (see PETSc Time Solver) | |
PetscReal | ts_aa |
shift for U_tt shift for U_tt | |
PetscReal | ts_t |
time | |
PetscReal | ts_dt |
time step size | |
Vec & | ts_u |
state vector | |
Vec & | ts_u_t |
time derivative of state vector | |
Vec & | ts_u_tt |
second time derivative of state vector | |
Vec & | ts_F |
residual vector | |
Mat & | ts_A |
Mat & | ts_B |
Preconditioner for ts_A. | |
![]() | |
TAOContext | tao_ctx |
Tao | tao |
tao solver | |
Vec & | tao_x |
Vec & | tao_f |
state vector | |
Mat & | tao_A |
gradient vector | |
Mat & | tao_B |
hessian matrix | |
structure for User Loop Methods on finite elements
It can be used to calculate stiffness matrices, residuals, load vectors etc. It is low level class however in some class users looking for speed and efficiency, can use it directly.
This class is used with Interface::loop_finite_elements, where user overloaded operator FEMethod::operator() is executed for each element in the problem. Class have to additional methods which are overloaded by user, FEMethod::preProcess() and FEMethod::postProcess() executed at beginning and end of the loop over problem elements, respectively.
Definition at line 404 of file LoopMethods.hpp.
|
default |
|
inline |
Definition at line 478 of file LoopMethods.hpp.
|
inline |
Definition at line 466 of file LoopMethods.hpp.
|
inline |
Definition at line 470 of file LoopMethods.hpp.
|
inline |
Definition at line 439 of file LoopMethods.hpp.
|
inline |
Definition at line 447 of file LoopMethods.hpp.
|
inline |
Definition at line 452 of file LoopMethods.hpp.
|
inline |
Definition at line 443 of file LoopMethods.hpp.
|
inline |
Definition at line 495 of file LoopMethods.hpp.
|
inline |
MoFEMErrorCode FEMethod::getNodeData | ( | const std::string | field_name, |
VectorDouble & | data, | ||
const bool | reset_dofs = true ) |
Definition at line 193 of file LoopMethods.cpp.
|
inline |
Definition at line 491 of file LoopMethods.hpp.
|
inline |
Definition at line 474 of file LoopMethods.hpp.
|
inline |
Definition at line 458 of file LoopMethods.hpp.
|
inline |
Definition at line 462 of file LoopMethods.hpp.
|
inlinevirtual |
Reimplemented from MoFEM::BasicMethod.
Definition at line 406 of file LoopMethods.hpp.
Tet if element to skip element.
If is set and return false elemnent us skiped in MoFEM::Core::loop_finite_elements
Definition at line 437 of file LoopMethods.hpp.
std::string MoFEM::FEMethod::feName |
Name of finite element.
Definition at line 415 of file LoopMethods.hpp.
boost::shared_ptr<const NumeredEntFiniteElement> MoFEM::FEMethod::numeredEntFiniteElementPtr |
Pointer to finite element database structure
Definition at line 418 of file LoopMethods.hpp.