![]() |
v0.15.0 |
Data structure for TAO (optimization) context. More...
#include "src/interfaces/LoopMethods.hpp"
Public Types | |
| enum | TAOContext { CTX_TAO_OBJECTIVE , CTX_TAO_GRADIENT , CTX_TAO_HESSIAN , CTX_TAO_NONE } |
| Context enumeration for TAO solver phases. More... | |
Public Member Functions | |
| MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
| Query interface for type casting. | |
| TaoMethod () | |
| Default constructor. | |
| virtual | ~TaoMethod ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyTao (const TaoMethod &tao) |
| Copy TAO data from another instance. | |
Public Attributes | |
| TAOContext | tao_ctx |
| Current TAO computation context. | |
| Tao | tao |
| PETSc TAO optimization solver object. | |
| Vec & | tao_x |
| Reference to optimization variables vector. | |
| Vec & | tao_f |
| Reference to gradient vector. | |
| Mat & | tao_A |
| Reference to Hessian matrix. | |
| Mat & | tao_B |
| Reference to preconditioner matrix for Hessian. | |
Additional Inherited Members | |
Protected Types inherited from MoFEM::PetscData | |
| enum | DataContext { CTX_SET_NONE = 0 , CTX_SET_F = 1 << 0 , CTX_SET_A = 1 << 1 , CTX_SET_B = 1 << 2 , CTX_SET_X = 1 << 3 , CTX_SET_DX = 1 << 4 , CTX_SET_X_T = 1 << 5 , CTX_SET_X_TT = 1 << 6 , CTX_SET_TIME = 1 << 7 } |
| Enumeration for data context flags. More... | |
| using | Switches = std::bitset< 8 > |
| Bitset type for context switches. | |
Protected Member Functions inherited from MoFEM::PetscData | |
| PetscData () | |
| Default constructor. | |
| virtual | ~PetscData ()=default |
| Virtual destructor. | |
| MoFEMErrorCode | copyPetscData (const PetscData &petsc_data) |
| Copy PETSc data from another instance. | |
Protected 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 |
Static Protected 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. | |
Protected Attributes inherited from MoFEM::PetscData | |
| Switches | data_ctx |
| Current data context switches. | |
| Vec | f |
| PETSc residual vector. | |
| Mat | A |
| PETSc Jacobian matrix. | |
| Mat | B |
| PETSc preconditioner matrix. | |
| Vec | x |
| PETSc solution vector. | |
| Vec | dx |
| PETSc solution increment vector. | |
| Vec | x_t |
| PETSc first time derivative vector. | |
| Vec | x_tt |
| PETSc second time derivative vector. | |
Static Protected Attributes inherited from MoFEM::PetscData | |
| static constexpr Switches | CtxSetNone = PetscData::Switches(CTX_SET_NONE) |
| No data switch. | |
| static constexpr Switches | CtxSetF = PetscData::Switches(CTX_SET_F) |
| Residual vector switch. | |
| static constexpr Switches | CtxSetA = PetscData::Switches(CTX_SET_A) |
| Jacobian matrix switch. | |
| static constexpr Switches | CtxSetB = PetscData::Switches(CTX_SET_B) |
| Preconditioner matrix switch. | |
| static constexpr Switches | CtxSetX = PetscData::Switches(CTX_SET_X) |
| Solution vector switch. | |
| static constexpr Switches | CtxSetDX = PetscData::Switches(CTX_SET_DX) |
| Solution increment switch. | |
| static constexpr Switches | CtxSetX_T = PetscData::Switches(CTX_SET_X_T) |
| First time derivative switch. | |
| static constexpr Switches | CtxSetX_TT = PetscData::Switches(CTX_SET_X_TT) |
| Second time derivative switch. | |
| static constexpr Switches | CtxSetTime = PetscData::Switches(CTX_SET_TIME) |
| Time value switch. | |
Data structure for TAO (optimization) context.
This structure extends PetscData to provide context and data management specifically for PETSc TAO (Toolkit for Advanced Optimization) solvers. It manages optimization computations including objective function evaluation, gradient computation, and Hessian matrix assembly for constrained and unconstrained optimization problems.
Definition at line 333 of file LoopMethods.hpp.
Context enumeration for TAO solver phases.
Indicates the current phase of optimization computation, determining which optimization operations are being performed.
| Enumerator | |
|---|---|
| CTX_TAO_OBJECTIVE | Evaluating objective function. |
| CTX_TAO_GRADIENT | Computing gradient vector. |
| CTX_TAO_HESSIAN | Assembling Hessian matrix. |
| CTX_TAO_NONE | No specific TAO context. |
Definition at line 350 of file LoopMethods.hpp.
| MoFEM::TaoMethod::TaoMethod | ( | ) |
Default constructor.
Definition at line 92 of file LoopMethods.cpp.
|
virtualdefault |
Virtual destructor.
| MoFEMErrorCode MoFEM::TaoMethod::copyTao | ( | const TaoMethod & | tao | ) |
Copy TAO data from another instance.
| tao | Source TAO method |
Definition at line 96 of file LoopMethods.cpp.
|
virtual |
Query interface for type casting.
| type_index | Type information for interface querying |
| iface | Pointer to interface object |
Reimplemented from MoFEM::PetscData.
Definition at line 86 of file LoopMethods.cpp.
| Tao MoFEM::TaoMethod::tao |
PETSc TAO optimization solver object.
Definition at line 376 of file LoopMethods.hpp.
| Mat& MoFEM::TaoMethod::tao_A |
Reference to Hessian matrix.
Definition at line 379 of file LoopMethods.hpp.
| Mat& MoFEM::TaoMethod::tao_B |
Reference to preconditioner matrix for Hessian.
Definition at line 380 of file LoopMethods.hpp.
| TAOContext MoFEM::TaoMethod::tao_ctx |
Current TAO computation context.
Definition at line 374 of file LoopMethods.hpp.
| Vec& MoFEM::TaoMethod::tao_f |
Reference to gradient vector.
Definition at line 378 of file LoopMethods.hpp.
| Vec& MoFEM::TaoMethod::tao_x |
Reference to optimization variables vector.
Definition at line 377 of file LoopMethods.hpp.