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

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

#include "src/interfaces/LoopMethods.hpp"

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

Public Types

enum  SNESContext { CTX_SNESSETFUNCTION , CTX_SNESSETJACOBIAN , CTX_SNESNONE }
 

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.
 

Public Attributes

SNESContext snes_ctx
 
SNES snes
 snes solver
 
Vec & snes_x
 state vector
 
Vec & snes_dx
 solution update
 
Vec & snes_f
 residual
 
Mat & snes_A
 jacobian matrix
 
Mat & snes_B
 preconditioner of jacobian 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

data structure for snes (nonlinear solver) context

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

Definition at line 106 of file LoopMethods.hpp.

Member Enumeration Documentation

◆ SNESContext

Enumerator
CTX_SNESSETFUNCTION 
CTX_SNESSETJACOBIAN 
CTX_SNESNONE 

Definition at line 111 of file LoopMethods.hpp.

Constructor & Destructor Documentation

◆ SnesMethod()

MoFEM::SnesMethod::SnesMethod ( )

◆ ~SnesMethod()

virtual MoFEM::SnesMethod::~SnesMethod ( )
virtualdefault

Member Function Documentation

◆ copySnes()

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

Copy snes data.

Definition at line 76 of file LoopMethods.cpp.

76 {
79 this->snes_ctx = snes.snes_ctx;
80 this->snes = snes.snes;
82}
#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)
SNES snes
snes solver

◆ query_interface()

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

Reimplemented from MoFEM::PetscData.

Definition at line 66 of file LoopMethods.cpp.

67 {
68 *iface = const_cast<SnesMethod *>(this);
69 return 0;
70}

Member Data Documentation

◆ snes

SNES MoFEM::SnesMethod::snes

snes solver

Definition at line 124 of file LoopMethods.hpp.

◆ snes_A

Mat& MoFEM::SnesMethod::snes_A

jacobian matrix

Definition at line 128 of file LoopMethods.hpp.

◆ snes_B

Mat& MoFEM::SnesMethod::snes_B

preconditioner of jacobian matrix

Definition at line 129 of file LoopMethods.hpp.

◆ snes_ctx

SNESContext MoFEM::SnesMethod::snes_ctx
Examples
nonlinear_dynamics.cpp.

Definition at line 122 of file LoopMethods.hpp.

◆ snes_dx

Vec& MoFEM::SnesMethod::snes_dx

solution update

Definition at line 126 of file LoopMethods.hpp.

◆ snes_f

Vec& MoFEM::SnesMethod::snes_f

residual

Definition at line 127 of file LoopMethods.hpp.

◆ snes_x

Vec& MoFEM::SnesMethod::snes_x

state vector

Definition at line 125 of file LoopMethods.hpp.


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