v0.9.1
Public Types | Public Member Functions | Public Attributes | List of all members
MoFEM::KspMethod Struct Reference

data structure for ksp (linear solver) contextStruture stores context data which are set in functions run by PETSc SNES functions. More...

#include <src/interfaces/LoopMethods.hpp>

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

Public Types

enum  KSPContext { CTX_SETFUNCTION, CTX_OPERATORS, CTX_KSPNONE }
 pass information about context of KSP/DM for with finite element is computed More...
 
- Public 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 >
 

Public Member Functions

MoFEMErrorCode query_interface (const MOFEMuuid &uuid, UnknownInterface **iface) const
 
 KspMethod ()
 
virtual ~KspMethod ()=default
 
MoFEMErrorCode copyKsp (const KspMethod &ksp)
 copy data form another method More...
 
- Public Member Functions inherited from MoFEM::PetscData
 PetscData ()
 
virtual ~PetscData ()=default
 
- Public Member Functions inherited from MoFEM::UnknownInterface
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
 

Public Attributes

KSPContext ksp_ctx
 Context. More...
 
KSP ksp
 KSP solver. More...
 
Vec & ksp_f
 
Mat & ksp_A
 
Mat & ksp_B
 
- Public Attributes inherited from MoFEM::PetscData
Switches data_ctx
 
Vec f
 
Mat A
 
Mat B
 
Vec x
 
Vec x_t
 
Vec x_tt
 

Additional Inherited Members

- Static Public 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)
 
- Protected Member Functions inherited from MoFEM::UnknownInterface
boost::typeindex::type_index getClassIdx (const MOFEMuuid &uid) const
 Get type name for interface Id. More...
 
MOFEMuuid getUId (const boost::typeindex::type_index &class_idx) const
 Get interface Id for class name. More...
 

Detailed Description

data structure for ksp (linear solver) context

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

Definition at line 88 of file LoopMethods.hpp.

Member Enumeration Documentation

◆ KSPContext

pass information about context of KSP/DM for with finite element is computed

Enumerator
CTX_SETFUNCTION 
CTX_OPERATORS 
CTX_KSPNONE 

Definition at line 96 of file LoopMethods.hpp.

Constructor & Destructor Documentation

◆ KspMethod()

MoFEM::KspMethod::KspMethod ( )

◆ ~KspMethod()

virtual MoFEM::KspMethod::~KspMethod ( )
virtualdefault

Member Function Documentation

◆ copyKsp()

MoFEMErrorCode MoFEM::KspMethod::copyKsp ( const KspMethod ksp)

copy data form another method

Parameters
kspksp method
Returns
error code

Definition at line 60 of file LoopMethods.cpp.

60  {
62  this->ksp_ctx = ksp.ksp_ctx;
63  this->ksp = ksp.ksp;
64  this->ksp_f = ksp.ksp_f;
65  this->ksp_A = ksp.ksp_A;
66  this->ksp_B = ksp.ksp_B;
68 }
KSP ksp
KSP solver.
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:507
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:514
KSPContext ksp_ctx
Context.

◆ query_interface()

MoFEMErrorCode MoFEM::KspMethod::query_interface ( const MOFEMuuid uuid,
UnknownInterface **  iface 
) const
virtual

Reimplemented from MoFEM::PetscData.

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

Definition at line 46 of file LoopMethods.cpp.

47  {
49  if (uuid == IDD_MOFEMKspMethod) {
50  *iface = const_cast<KspMethod *>(this);
52  }
53  SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY, "unknown interface");
54 };
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:507
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:514
static const MOFEMuuid IDD_MOFEMKspMethod
Definition: LoopMethods.hpp:26

Member Data Documentation

◆ ksp

KSP MoFEM::KspMethod::ksp

KSP solver.

Definition at line 110 of file LoopMethods.hpp.

◆ ksp_A

Mat& MoFEM::KspMethod::ksp_A

Definition at line 113 of file LoopMethods.hpp.

◆ ksp_B

Mat& MoFEM::KspMethod::ksp_B

Definition at line 114 of file LoopMethods.hpp.

◆ ksp_ctx

KSPContext MoFEM::KspMethod::ksp_ctx

Context.

Definition at line 109 of file LoopMethods.hpp.

◆ ksp_f

Vec& MoFEM::KspMethod::ksp_f

Definition at line 112 of file LoopMethods.hpp.


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