![]() |
v0.10.0 |
Data structure to exchange data between mofem and User Loop Methods. More...
#include <src/interfaces/LoopMethods.hpp>
Public Member Functions | |
MoFEMErrorCode | query_interface (const MOFEMuuid &uuid, 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... | |
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... | |
![]() | |
KspMethod () | |
virtual | ~KspMethod ()=default |
MoFEMErrorCode | copyKsp (const KspMethod &ksp) |
copy data form another method More... | |
![]() | |
PetscData () | |
virtual | ~PetscData ()=default |
![]() | |
template<class IFACE > | |
MoFEMErrorCode | registerInterface (const MOFEMuuid &uuid, bool error_if_registration_failed=true) |
Register interface. More... | |
template<class IFACE , bool VERIFY = false> | |
MoFEMErrorCode | getInterface (const MOFEMuuid &uuid, IFACE *&iface) const |
Get interface by uuid and return reference to pointer of interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE *&iface) const |
Get interface refernce 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 |
virtual MoFEMErrorCode | getLibVersion (Version &version) const |
Get library version. More... | |
virtual const MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) const |
Get database major version. More... | |
virtual MoFEMErrorCode | getInterfaceVersion (Version &version) const |
Get database major version. More... | |
template<> | |
MoFEMErrorCode | getInterface (const MOFEMuuid &uuid, UnknownInterface *&iface) const |
![]() | |
SnesMethod () | |
virtual | ~SnesMethod ()=default |
MoFEMErrorCode | copySnes (const SnesMethod &snes) |
Copy snes data. More... | |
DEPRECATED MoFEMErrorCode | setSnesCtx (SNESContext ctx) |
![]() | |
TSMethod () | |
virtual | ~TSMethod ()=default |
MoFEMErrorCode | copyTs (const TSMethod &ts) |
Copy TS solver data. More... | |
DEPRECATED MoFEMErrorCode | setTsCtx (TSContext ctx) |
Public Attributes | |
int | nInTheLoop |
number currently of processed method More... | |
int | loopSize |
local number oe methods to process 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 |
![]() | |
KSPContext | ksp_ctx |
Context. More... | |
KSP | ksp |
KSP solver. More... | |
Vec & | ksp_f |
Mat & | ksp_A |
Mat & | ksp_B |
![]() | |
Switches | data_ctx |
Vec | f |
Mat | A |
Mat | B |
Vec | x |
Vec | x_t |
Vec | x_tt |
![]() | |
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... | |
![]() | |
TS | ts |
time solver More... | |
TSContext | ts_ctx |
PetscInt | ts_step |
time step 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... | |
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 225 of file LoopMethods.hpp.
MoFEM::BasicMethod::BasicMethod | ( | ) |
Definition at line 129 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 137 of file LoopMethods.cpp.
unsigned int MoFEM::BasicMethod::getFieldBitNumber | ( | std::string | field_name | ) | const |
Definition at line 287 of file LoopMethods.hpp.
int MoFEM::BasicMethod::getLoopSize | ( | ) | const |
int MoFEM::BasicMethod::getNinTheLoop | ( | ) | const |
|
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 ReactionDiffusionEquation::Monitor, MixTransport::UnsaturatedFlowElement::MonitorPostProc, ContactPlasticity::MMonitor, GelModule::Gel::MonitorPostProc, FractureMechanics::CrackPropagation::PostProcVertexMethod, MonitorPostProc, BasicFiniteElements::SaveVertexDofOnTag, MonitorRestart, MonitorPostProc, MoFEM::VolumeElementForcesAndSourcesCoreOnSideSwitch< SWITCH >, MoFEM::VolumeElementForcesAndSourcesCoreOnContactPrismSideSwitch< SWITCH >, MoFEM::VolumeElementForcesAndSourcesCoreSwitch< SWITCH >, MoFEM::VertexElementForcesAndSourcesCore, MoFEM::ForcesAndSourcesCore, MoFEM::FlatPrismElementForcesAndSourcesCore, MoFEM::FatPrismElementForcesAndSourcesCore, MoFEM::FaceElementForcesAndSourcesCoreOnSideSwitch< SWITCH >, MoFEM::FaceElementForcesAndSourcesCoreOnSideSwitch< FaceElementForcesAndSourcesCore::NO_HO_GEOMETRY >, MoFEM::FaceElementForcesAndSourcesCoreSwitch< SWITCH >, MoFEM::EdgeElementForcesAndSourcesCoreSwitch< SWITCH >, MoFEM::ContactPrismElementForcesAndSourcesCore, MoFEM::ProjectionFieldOn10NodeTet, MoFEM::Projection10NodeCoordsOnField, TestEntityMethod, CountDown, and CountUp.
Definition at line 179 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 Monitor, Monitor, ApplyDirichletBc, ReactionDiffusionEquation::Monitor, MixTransport::UnsaturatedFlowElement::MonitorPostProc, SolidShellModule::SolidShellPrismElement::PostProcFatPrismOnTriangleOnRefinedMesh, SolidShellModule::SolidShellPrismElement::SolidShellError, SolidShellModule::SolidShellPrismElement::SolidShell, AddLambdaVectorToFinternal, AssembleRhsVectors, ContactPlasticity::MMonitor, GelModule::Gel::MonitorPostProc, GelModule::Gel::GelFE, FractureMechanics::CrackPropagation::PostProcVertexMethod, MonitorPostProc, Smoother::MyVolumeFE, BasicFiniteElements::SaveVertexDofOnTag, PostProcEdgeOnRefinedMesh, PostProcFatPrismOnRefinedMesh, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, NonlinearElasticElement::MyVolumeFE, KelvinVoigtDamper::DamperFE, DirichletFixFieldAtEntitiesBc, DirichletDisplacementBc, MonitorRestart, MonitorPostProc, CohesiveElement::AssembleRhsVectors, MoFEM::ForcesAndSourcesCore, MoFEM::Projection10NodeCoordsOnField, TestEntityMethod, CountDown, and CountUp.
Definition at line 168 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 ReactionDiffusionEquation::Monitor, MixTransport::UnsaturatedFlowElement::MonitorPostProc, SolidShellModule::SolidShellPrismElement::SolidShellError, SolidShellModule::SolidShellPrismElement::SolidShell, AssembleRhsVectors, ContactPlasticity::MMonitor, GroundSurfaceTemperature::SolarRadiationPreProcessor, GroundSurfaceTemperature::PreProcess, GelModule::Gel::MonitorPostProc, GelModule::Gel::GelFE, FractureMechanics::CrackPropagation::PostProcVertexMethod, MonitorPostProc, EdgeSlidingConstrains::MyEdgeFE, Smoother::MyVolumeFE, BasicFiniteElements::SaveVertexDofOnTag, PostProcEdgeOnRefinedMesh, PostProcFatPrismOnRefinedMesh, PostProcTemplateVolumeOnRefinedMesh< MoFEM::VolumeElementForcesAndSourcesCore >, NonlinearElasticElement::MyVolumeFE, KelvinVoigtDamper::DamperFE, DirichletFixFieldAtEntitiesBc, DirichletDisplacementBc, MonitorRestart, MonitorPostProc, CohesiveElement::AssembleRhsVectors, MoFEM::ForcesAndSourcesCore, MoFEM::ProjectionFieldOn10NodeTet, MoFEM::Projection10NodeCoordsOnField, TestEntityMethod, CountDown, and CountUp.
Definition at line 157 of file LoopMethods.cpp.
|
virtual |
Reimplemented from MoFEM::KspMethod.
Reimplemented in MoFEM::DofMethod, MoFEM::EntityMethod, and MoFEM::FEMethod.
Definition at line 227 of file LoopMethods.hpp.
const FieldEntityEntFiniteElementAdjacencyMap_multiIndex* MoFEM::BasicMethod::adjacenciesPtr |
raw pointer to container to adjacencies between dofs and finite elements
Definition at line 284 of file LoopMethods.hpp.
const DofEntity_multiIndex* MoFEM::BasicMethod::dofsPtr |
raw pointer container of dofs
Definition at line 274 of file LoopMethods.hpp.
const FieldEntity_multiIndex* MoFEM::BasicMethod::entitiesPtr |
raw pointer to container of field entities
Definition at line 272 of file LoopMethods.hpp.
const Field_multiIndex* MoFEM::BasicMethod::fieldsPtr |
raw pointer to fields container
Definition at line 269 of file LoopMethods.hpp.
const EntFiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsEntitiesPtr |
raw pointer to container finite elements entities
Definition at line 280 of file LoopMethods.hpp.
const FiniteElement_multiIndex* MoFEM::BasicMethod::finiteElementsPtr |
raw pointer to container finite elements
Definition at line 277 of file LoopMethods.hpp.
int MoFEM::BasicMethod::loopSize |
local number oe methods to process
Definition at line 247 of file LoopMethods.hpp.
boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::matAssembleSwitch |
Definition at line 351 of file LoopMethods.hpp.
int MoFEM::BasicMethod::nInTheLoop |
number currently of processed method
Definition at line 242 of file LoopMethods.hpp.
boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::operatorHook |
Hook function for operator.
Definition at line 321 of file LoopMethods.hpp.
boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::postProcessHook |
Hook function for post-processing.
Definition at line 316 of file LoopMethods.hpp.
boost::function<MoFEMErrorCode()> MoFEM::BasicMethod::preProcessHook |
Hook function for pre-processing.
Definition at line 311 of file LoopMethods.hpp.
raw pointer to problem
Definition at line 267 of file LoopMethods.hpp.
int MoFEM::BasicMethod::rAnk |
processor rank
Definition at line 257 of file LoopMethods.hpp.
const RefEntity_multiIndex* MoFEM::BasicMethod::refinedEntitiesPtr |
container of mofem dof entities
Definition at line 262 of file LoopMethods.hpp.
const RefElement_multiIndex* MoFEM::BasicMethod::refinedFiniteElementsPtr |
container of mofem finite element entities
Definition at line 265 of file LoopMethods.hpp.
int MoFEM::BasicMethod::sIze |
number of processors in communicator
Definition at line 259 of file LoopMethods.hpp.
boost::movelib::unique_ptr<bool> MoFEM::BasicMethod::vecAssembleSwitch |
Definition at line 350 of file LoopMethods.hpp.