![]() |
v0.14.0 |
Data structure to exchange data between mofem and User Loop Methods. More...
#include <src/interfaces/LoopMethods.hpp>
Public Member Functions | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| BasicMethod () | |
| virtual | ~BasicMethod ()=default |
| int | getNinTheLoop () const |
| get number of evaluated element in the loop More... | |
| int | getLoopSize () const |
| get loop size More... | |
| auto | getLoHiFERank () const |
| Get lo and hi processor rank of iterated entities. More... | |
| auto | getLoFERank () const |
| Get upper rank in loop for iterating elements. More... | |
| auto | getHiFERank () const |
| Get upper rank in loop for iterating elements. More... | |
| unsigned int | getFieldBitNumber (std::string field_name) const |
| MoFEMErrorCode | copyBasicMethod (const BasicMethod &basic) |
| Copy data from other base method to this base method. More... | |
| virtual MoFEMErrorCode | preProcess () |
| function is run at the beginning of loop More... | |
| virtual MoFEMErrorCode | operator() () |
| function is run for every finite element More... | |
| virtual MoFEMErrorCode | postProcess () |
| function is run at the end of loop More... | |
| boost::weak_ptr< CacheTuple > | getCacheWeakPtr () const |
| Get the cache weak ptr object. More... | |
Public Member Functions inherited from MoFEM::KspMethod | |
| KspMethod () | |
| virtual | ~KspMethod ()=default |
| MoFEMErrorCode | copyKsp (const KspMethod &ksp) |
| copy data form another method More... | |
Public Member Functions inherited from MoFEM::PetscData | |
| PetscData () | |
| virtual | ~PetscData ()=default |
| MoFEMErrorCode | copyPetscData (const PetscData &petsc_data) |
Public Member Functions inherited from MoFEM::UnknownInterface | |
| template<class IFACE > | |
| MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
| Register interface. More... | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE *&iface) const |
| Get interface reference to pointer of interface. More... | |
| template<class IFACE > | |
| MoFEMErrorCode | getInterface (IFACE **const iface) const |
| Get interface pointer to pointer of interface. More... | |
| template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get interface pointer to pointer of interface. More... | |
| template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
| IFACE | getInterface () const |
| Get reference to interface. More... | |
| template<class IFACE > | |
| IFACE * | getInterface () const |
| Function returning pointer to interface. More... | |
| virtual | ~UnknownInterface ()=default |
Public Member Functions inherited from MoFEM::SnesMethod | |
| SnesMethod () | |
| virtual | ~SnesMethod ()=default |
| MoFEMErrorCode | copySnes (const SnesMethod &snes) |
| Copy snes data. More... | |
Public Member Functions inherited from MoFEM::TSMethod | |
| TSMethod () | |
| virtual | ~TSMethod ()=default |
| MoFEMErrorCode | copyTs (const TSMethod &ts) |
| Copy TS solver data. More... | |
Public Attributes | |
| int | nInTheLoop |
| number currently of processed method More... | |
| int | loopSize |
| local number oe methods to process More... | |
| std::pair< int, int > | loHiFERank |
| Llo and hi processor rank of iterated entities. More... | |
| int | rAnk |
| processor rank More... | |
| int | sIze |
| number of processors in communicator More... | |
| const RefEntity_multiIndex * | refinedEntitiesPtr |
| container of mofem dof entities More... | |
| const RefElement_multiIndex * | refinedFiniteElementsPtr |
| container of mofem finite element entities More... | |
| const Problem * | problemPtr |
| raw pointer to problem More... | |
| const Field_multiIndex * | fieldsPtr |
| raw pointer to fields container More... | |
| const FieldEntity_multiIndex * | entitiesPtr |
| raw pointer to container of field entities More... | |
| const DofEntity_multiIndex * | dofsPtr |
| raw pointer container of dofs More... | |
| const FiniteElement_multiIndex * | finiteElementsPtr |
| raw pointer to container finite elements More... | |
| const EntFiniteElement_multiIndex * | finiteElementsEntitiesPtr |
| const FieldEntityEntFiniteElementAdjacencyMap_multiIndex * | adjacenciesPtr |
| boost::function< MoFEMErrorCode()> | preProcessHook |
| Hook function for pre-processing. More... | |
| boost::function< MoFEMErrorCode()> | postProcessHook |
| Hook function for post-processing. More... | |
| boost::function< MoFEMErrorCode()> | operatorHook |
| Hook function for operator. More... | |
| boost::movelib::unique_ptr< bool > | vecAssembleSwitch |
| boost::movelib::unique_ptr< bool > | matAssembleSwitch |
| boost::weak_ptr< CacheTuple > | cacheWeakPtr |
Public Attributes inherited from MoFEM::KspMethod | |
| KSPContext | ksp_ctx |
| Context. More... | |
| KSP | ksp |
| KSP solver. More... | |
| Vec & | ksp_f |
| Mat & | ksp_A |
| Mat & | ksp_B |
Public Attributes inherited from MoFEM::PetscData | |
| Switches | data_ctx |
| Vec | f |
| Mat | A |
| Mat | B |
| Vec | x |
| Vec | x_t |
| Vec | x_tt |
Public Attributes inherited from MoFEM::SnesMethod | |
| SNESContext | snes_ctx |
| SNES | snes |
| snes solver More... | |
| Vec & | snes_x |
| state vector More... | |
| Vec & | snes_f |
| residual More... | |
| Mat & | snes_A |
| jacobian matrix More... | |
| Mat & | snes_B |
| preconditioner of jacobian matrix More... | |
Public Attributes inherited from MoFEM::TSMethod | |
| TS | ts |
| time solver More... | |
| TSContext | ts_ctx |
| PetscInt | ts_step |
| time step number More... | |
| PetscReal | ts_a |
| shift for U_t (see PETSc Time Solver) More... | |
| PetscReal | ts_aa |
| shift for U_tt shift for U_tt More... | |
| PetscReal | ts_t |
| time More... | |
| PetscReal | ts_dt |
| time step size More... | |
| Vec & | ts_u |
| state vector More... | |
| Vec & | ts_u_t |
| time derivative of state vector More... | |
| Vec & | ts_u_tt |
| second time derivative of state vector More... | |
| Vec & | ts_F |
| residual vector More... | |
| Mat & | ts_A |
| Mat & | ts_B |
| Preconditioner for ts_A. More... | |
Data structure to exchange data between mofem and User Loop Methods.
It allows to exchange data between MoFEM and user functions. It stores information about multi-indices.
Definition at line 183 of file LoopMethods.hpp.
| MoFEM::BasicMethod::BasicMethod | ( | ) |
Definition at line 109 of file LoopMethods.cpp.
|
virtualdefault |
| MoFEMErrorCode MoFEM::BasicMethod::copyBasicMethod | ( | const BasicMethod & | basic | ) |
Copy data from other base method to this base method.
| basic |
Definition at line 117 of file LoopMethods.cpp.
|
inline |
Get the cache weak ptr object.
Definition at line 344 of file LoopMethods.hpp.
|
inline |
Definition at line 270 of file LoopMethods.hpp.
|
inline |
Get upper rank in loop for iterating elements.
Definition at line 238 of file LoopMethods.hpp.
|
inline |
Get upper rank in loop for iterating elements.
Definition at line 231 of file LoopMethods.hpp.
|
inline |
Get lo and hi processor rank of iterated entities.
Definition at line 224 of file LoopMethods.hpp.
|
inline |
|
inline |
|
virtual |
function is run for every finite element
It is used to calculate element local matrices and assembly. It can be used for post-processing.
Reimplemented in GelModule::Gel::MonitorPostProc, MixTransport::UnsaturatedFlowElement::MonitorPostProc, FractureMechanics::CrackPropagation::PostProcVertexMethod, DirichletDisplacementRemoveDofsBc, ReactionDiffusionEquation::Monitor, MonitorRestart, MoFEM::FatPrismElementForcesAndSourcesCore, BcEntMethodSpatial, PhotonDiffusion::Monitor, MoFEM::FlatPrismElementForcesAndSourcesCore, MonitorPostProc, NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE, BcEntMethodDisp, MoFEM::ForcesAndSourcesCore, MonitorPostProc, DirichletDisplacementBc, Monitor, Monitor, MonitorIncompressible, MoFEM::ProjectionFieldOn10NodeTet, BasicFiniteElements::SaveVertexDofOnTag, BasicFiniteElements::SaveVertexDofOnTag, MoFEM::VertexElementForcesAndSourcesCore, MoFEM::EdgeElementForcesAndSourcesCore, MoFEM::VolumeElementForcesAndSourcesCore, MoFEM::ContactPrismElementForcesAndSourcesCore, MoFEM::FaceElementForcesAndSourcesCore, CountDown, MoFEM::Projection10NodeCoordsOnField, TestEntityMethod, and CountUp.
Definition at line 160 of file LoopMethods.cpp.
|
virtual |
function is run at the end of loop
It is used to assembly matrices and vectors, calculating global variables, f.e. total internal energy, ect.
Iterating over dofs: Example1 iterating over dofs in row by name of the field for(IT_GET_FEROW_BY_NAME_DOFS_FOR_LOOP(this,"DISPLACEMENT",it)) { ... }
Reimplemented in GelModule::Gel::MonitorPostProc, Monitor, PostProcEdgeOnRefinedMesh, MixTransport::UnsaturatedFlowElement::MonitorPostProc, PostProcFaceOnRefinedMesh, PostProcFatPrismOnRefinedMesh, FractureMechanics::CrackPropagation::PostProcVertexMethod, Monitor, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, Monitor, Monitor, GelModule::Gel::GelFE, Monitor, ApplyDirichletBc, DirichletDisplacementRemoveDofsBc, ReactionDiffusionEquation::Monitor, DirichletFixFieldAtEntitiesBc, KelvinVoigtDamper::DamperFE, Monitor, MonitorRestart, PhotonDiffusion::Monitor, BcEntMethodSpatial, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, MonitorPostProc, CohesiveElement::AssembleRhsVectors, BcEntMethodDisp, MoFEM::ForcesAndSourcesCore, Smoother::MyVolumeFE, Smoother::MyVolumeFE, MonitorPostProc, DirichletDisplacementBc, Monitor, Monitor, MonitorIncompressible, NonlinearElasticElement::MyVolumeFE, BasicFiniteElements::SaveVertexDofOnTag, BasicFiniteElements::SaveVertexDofOnTag, EshelbianPlasticity::ContactTree, CountDown, TestEntityMethod, MoFEM::Projection10NodeCoordsOnField, and CountUp.
Definition at line 149 of file LoopMethods.cpp.
|
virtual |
function is run at the beginning of loop
It is used to zeroing matrices and vectors, calculation of shape functions on reference element, preprocessing boundary conditions, etc.
Reimplemented in GelModule::Gel::MonitorPostProc, PostProcEdgeOnRefinedMesh, MixTransport::UnsaturatedFlowElement::MonitorPostProc, PostProcFaceOnRefinedMesh, PostProcFatPrismOnRefinedMesh, FractureMechanics::CrackPropagation::PostProcVertexMethod, EdgeSlidingConstrains::MyEdgeFE, EdgeSlidingConstrains::MyEdgeFE, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, GelModule::Gel::GelFE, SurfaceSlidingConstrains::MyTriangleFE, SurfaceSlidingConstrains::MyTriangleFE, DirichletDisplacementRemoveDofsBc, DirichletFixFieldAtEntitiesBc, ReactionDiffusionEquation::Monitor, KelvinVoigtDamper::DamperFE, MonitorRestart, BcEntMethodSpatial, PhotonDiffusion::Monitor, MoFEM::PostProcBrokenMeshInMoabBase< FaceElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< VolumeElementForcesAndSourcesCore >, MoFEM::PostProcBrokenMeshInMoabBase< EdgeElementForcesAndSourcesCore >, NeumannForcesSurfaceComplexForLazy::MyTriangleSpatialFE, BcEntMethodDisp, MoFEM::ForcesAndSourcesCore, CohesiveElement::AssembleRhsVectors, MonitorPostProc, DirichletDisplacementBc, MonitorPostProc, Monitor, Monitor, Smoother::MyVolumeFE, Smoother::MyVolumeFE, MonitorIncompressible, NonlinearElasticElement::MyVolumeFE, MoFEM::ProjectionFieldOn10NodeTet, EshelbianPlasticity::ContactTree, CountDown, BasicFiniteElements::SaveVertexDofOnTag, MoFEM::Projection10NodeCoordsOnField, FluidPressure::MyTriangleFE, BasicFiniteElements::SaveVertexDofOnTag, TestEntityMethod, and CountUp.
Definition at line 138 of file LoopMethods.cpp.
|
inlinevirtual |
Reimplemented from MoFEM::KspMethod.
Reimplemented in MoFEM::DofMethod, MoFEM::EntityMethod, and MoFEM::FEMethod.
Definition at line 185 of file LoopMethods.hpp.
| const FieldEntityEntFiniteElementAdjacencyMap_multiIndex* MoFEM::BasicMethod::adjacenciesPtr |
raw pointer to container to adjacencies between dofs and finite elements
Definition at line 267 of file LoopMethods.hpp.
| boost::weak_ptr<CacheTuple> MoFEM::BasicMethod::cacheWeakPtr |
Definition at line 351 of file LoopMethods.hpp.
| const DofEntity_multiIndex* MoFEM::BasicMethod::dofsPtr |
raw pointer container of dofs
Definition at line 257 of file LoopMethods.hpp.
| const FieldEntity_multiIndex* MoFEM::BasicMethod::entitiesPtr |
raw pointer to container of field entities
Definition at line 255 of file LoopMethods.hpp.
| const Field_multiIndex* MoFEM::BasicMethod::fieldsPtr |
raw pointer to fields container
Definition at line 252 of file LoopMethods.hpp.
| const EntFiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsEntitiesPtr |
raw pointer to container finite elements entities
Definition at line 263 of file LoopMethods.hpp.
| const FiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsPtr |
raw pointer to container finite elements
Definition at line 260 of file LoopMethods.hpp.
| std::pair<int, int> MoFEM::BasicMethod::loHiFERank |
Llo and hi processor rank of iterated entities.
Definition at line 217 of file LoopMethods.hpp.
| int MoFEM::BasicMethod::loopSize |
local number oe methods to process
Definition at line 203 of file LoopMethods.hpp.
| boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::matAssembleSwitch |
Definition at line 349 of file LoopMethods.hpp.
| int MoFEM::BasicMethod::nInTheLoop |
number currently of processed method
Definition at line 198 of file LoopMethods.hpp.
| boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::operatorHook |
Hook function for operator.
Definition at line 304 of file LoopMethods.hpp.
| boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::postProcessHook |
Hook function for post-processing.
Definition at line 299 of file LoopMethods.hpp.
| boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::preProcessHook |
Hook function for pre-processing.
Definition at line 294 of file LoopMethods.hpp.
| const Problem* MoFEM::BasicMethod::problemPtr |
raw pointer to problem
Definition at line 250 of file LoopMethods.hpp.
| int MoFEM::BasicMethod::rAnk |
processor rank
Definition at line 240 of file LoopMethods.hpp.
| const RefEntity_multiIndex* MoFEM::BasicMethod::refinedEntitiesPtr |
container of mofem dof entities
Definition at line 245 of file LoopMethods.hpp.
| const RefElement_multiIndex* MoFEM::BasicMethod::refinedFiniteElementsPtr |
container of mofem finite element entities
Definition at line 248 of file LoopMethods.hpp.
| int MoFEM::BasicMethod::sIze |
number of processors in communicator
Definition at line 242 of file LoopMethods.hpp.
| boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::vecAssembleSwitch |
Definition at line 348 of file LoopMethods.hpp.