Public Types | Public Member Functions | Public Attributes | List of all members
MoFEM::SnesMethod Struct Reference

data structure for snes (nonlinear solver) context More...

#include <src/interfaces/LoopMethods.hpp>

Inheritance diagram for MoFEM::SnesMethod:
Collaboration diagram for MoFEM::SnesMethod:

Public Types


Public Member Functions

MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const
 SnesMethod ()
virtual ~SnesMethod ()=default
MoFEMErrorCode copySnes (const SnesMethod &snes)
 Copy snes data. More...

Public Attributes

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...

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_X_T = 1 << 4 , CTX_SET_X_TT = 1 << 6 , CTX_SET_TIME = 1 << 7
using Switches = std::bitset< 8 >
- Protected Member Functions inherited from MoFEM::PetscData
MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const
 PetscData ()
virtual ~PetscData ()=default
MoFEMErrorCode copyPetscData (const PetscData &petsc_data)
- Protected Member Functions inherited from MoFEM::UnknownInterface
virtual MoFEMErrorCode query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const =0
template<class IFACE >
MoFEMErrorCode registerInterface (bool error_if_registration_failed=true)
 Register 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
- Static Protected Member Functions inherited from MoFEM::UnknownInterface
static MoFEMErrorCode getLibVersion (Version &version)
 Get library version. More...
static MoFEMErrorCode getFileVersion (moab::Interface &moab, Version &version)
 Get database major version. More...
static MoFEMErrorCode setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD))
 Get database major version. More...
static MoFEMErrorCode getInterfaceVersion (Version &version)
 Get database major version. More...
- Protected Attributes inherited from MoFEM::PetscData
Switches data_ctx
Vec f
Mat A
Mat B
Vec x
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 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

data structure for snes (nonlinear solver) context

Structure stores context data which are set in functions run by PETSc SNES functions.

Definition at line 112 of file LoopMethods.hpp.

Member Enumeration Documentation

◆ SNESContext


Definition at line 117 of file LoopMethods.hpp.

Constructor & Destructor Documentation

◆ SnesMethod()

MoFEM::SnesMethod::SnesMethod ( )

Definition at line 84 of file LoopMethods.cpp.

◆ ~SnesMethod()

virtual MoFEM::SnesMethod::~SnesMethod ( )

Member Function Documentation

◆ copySnes()

MoFEMErrorCode MoFEM::SnesMethod::copySnes ( const SnesMethod snes)

Copy snes data.

Definition at line 88 of file LoopMethods.cpp.

88 {
91 this->snes_ctx = snes.snes_ctx;
92 this->snes = snes.snes;
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
#define CHKERR
Inline error check.
Definition: definitions.h:548
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453
MoFEMErrorCode copyPetscData(const PetscData &petsc_data)
Definition: LoopMethods.cpp:44
SNES snes
snes solver

◆ query_interface()

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

Reimplemented from MoFEM::PetscData.

Reimplemented in MoFEM::BasicMethod, MoFEM::FEMethod, MoFEM::EntityMethod, and MoFEM::DofMethod.

Definition at line 78 of file LoopMethods.cpp.

79 {
80 *iface = const_cast<SnesMethod *>(this);
81 return 0;

Member Data Documentation

◆ snes

SNES MoFEM::SnesMethod::snes

snes solver

Definition at line 130 of file LoopMethods.hpp.

◆ snes_A

Mat& MoFEM::SnesMethod::snes_A

jacobian matrix

Definition at line 133 of file LoopMethods.hpp.

◆ snes_B

Mat& MoFEM::SnesMethod::snes_B

preconditioner of jacobian matrix

Definition at line 134 of file LoopMethods.hpp.

◆ snes_ctx

SNESContext MoFEM::SnesMethod::snes_ctx
nonlinear_dynamics.cpp, and simple_contact.cpp.

Definition at line 128 of file LoopMethods.hpp.

◆ snes_f

Vec& MoFEM::SnesMethod::snes_f


Definition at line 132 of file LoopMethods.hpp.

◆ snes_x

Vec& MoFEM::SnesMethod::snes_x

state vector

Definition at line 131 of file LoopMethods.hpp.

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