v0.15.0
Loading...
Searching...
No Matches
MoFEM::TaoMethod Struct Reference

#include "src/interfaces/LoopMethods.hpp"

Inheritance diagram for MoFEM::TaoMethod:
[legend]
Collaboration diagram for MoFEM::TaoMethod:
[legend]

Public Types

enum  TAOContext { CTX_TAO_OBJECTIVE , CTX_TAO_GRADIENT , CTX_TAO_HESSIAN , CTX_TAO_NONE }
 

Public Member Functions

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

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
 

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
}
 
using Switches = std::bitset<8>
 
- Protected Member Functions inherited from MoFEM::PetscData
 PetscData ()
 
virtual ~PetscData ()=default
 
MoFEMErrorCode copyPetscData (const PetscData &petsc_data)
 
- 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
 
Vec f
 
Mat A
 
Mat B
 
Vec x
 
Vec dx
 
Vec x_t
 
Vec x_tt
 
- Static Protected Attributes inherited from MoFEM::PetscData
static constexpr Switches CtxSetNone = PetscData::Switches(CTX_SET_NONE)
 
static constexpr Switches CtxSetF = PetscData::Switches(CTX_SET_F)
 
static constexpr Switches CtxSetA = PetscData::Switches(CTX_SET_A)
 
static constexpr Switches CtxSetB = PetscData::Switches(CTX_SET_B)
 
static constexpr Switches CtxSetX = PetscData::Switches(CTX_SET_X)
 
static constexpr Switches CtxSetDX = PetscData::Switches(CTX_SET_DX)
 
static constexpr Switches CtxSetX_T = PetscData::Switches(CTX_SET_X_T)
 
static constexpr Switches CtxSetX_TT = PetscData::Switches(CTX_SET_X_TT)
 
static constexpr Switches CtxSetTime = PetscData::Switches(CTX_SET_TIME)
 

Detailed Description

Definition at line 180 of file LoopMethods.hpp.

Member Enumeration Documentation

◆ TAOContext

Enumerator
CTX_TAO_OBJECTIVE 
CTX_TAO_GRADIENT 
CTX_TAO_HESSIAN 
CTX_TAO_NONE 

Definition at line 185 of file LoopMethods.hpp.

Constructor & Destructor Documentation

◆ TaoMethod()

MoFEM::TaoMethod::TaoMethod ( )

◆ ~TaoMethod()

virtual MoFEM::TaoMethod::~TaoMethod ( )
virtualdefault

Member Function Documentation

◆ copyTao()

MoFEMErrorCode MoFEM::TaoMethod::copyTao ( const TaoMethod & tao)

Copy TAO data.

Definition at line 96 of file LoopMethods.cpp.

96 {
99 this->tao_ctx = tao.tao_ctx;
100 this->tao = tao.tao;
102}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
MoFEMErrorCode copyPetscData(const PetscData &petsc_data)
Tao tao
tao solver

◆ query_interface()

MoFEMErrorCode MoFEM::TaoMethod::query_interface ( boost::typeindex::type_index type_index,
UnknownInterface ** iface ) const
virtual

Reimplemented from MoFEM::PetscData.

Definition at line 86 of file LoopMethods.cpp.

87 {
88 *iface = const_cast<TaoMethod *>(this);
89 return 0;
90}

Member Data Documentation

◆ tao

Tao MoFEM::TaoMethod::tao

tao solver

Definition at line 203 of file LoopMethods.hpp.

◆ tao_A

Mat& MoFEM::TaoMethod::tao_A

gradient vector

Definition at line 206 of file LoopMethods.hpp.

◆ tao_B

Mat& MoFEM::TaoMethod::tao_B

hessian matrix

Definition at line 207 of file LoopMethods.hpp.

◆ tao_ctx

TAOContext MoFEM::TaoMethod::tao_ctx

Definition at line 201 of file LoopMethods.hpp.

◆ tao_f

Vec& MoFEM::TaoMethod::tao_f

state vector

Definition at line 205 of file LoopMethods.hpp.

◆ tao_x

Vec& MoFEM::TaoMethod::tao_x

Definition at line 204 of file LoopMethods.hpp.


The documentation for this struct was generated from the following files: