Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Attributes | List of all members
Nektar::PreconCfsOp Class Reference

#include <PreconCfsOp.h>

Inheritance diagram for Nektar::PreconCfsOp:
[legend]

Public Member Functions

 PreconCfsOp (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm)
 
virtual ~PreconCfsOp ()
 
void SetOperators (const NekPreconCfsOperators &in)
 
- Public Member Functions inherited from Nektar::PreconCfs
 PreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm)
 
virtual ~PreconCfs ()
 
void DoPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag)
 
void BuildPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, const Array< OneD, NekDouble >> &intmp, const NekDouble time, const NekDouble lambda)
 
void InitObject ()
 
virtual bool v_UpdatePreconMatCheck (const Array< OneD, const NekDouble > &res, const NekDouble dtLambda)
 
bool UpdatePreconMatCheck (const Array< OneD, const NekDouble > &res, const NekDouble dtLambda)
 

Protected Member Functions

virtual void v_InitObject () override
 
- Protected Member Functions inherited from Nektar::PreconCfs
void DoNullPrecon (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag)
 

Protected Attributes

NekPreconCfsOperators m_operator
 
- Protected Attributes inherited from Nektar::PreconCfs
LibUtilities::CommSharedPtr m_Comm
 
bool m_verbose
 
int m_spacedim
 
int m_PreconMatFreezNumb
 
int m_PreconTimesCounter
 
NekDouble m_DtLambdaPreconMat = -1.0
 
NekDouble m_BndEvaluateTime
 
bool m_CalcPreconMatFlag = false
 

Private Member Functions

void NullPreconCfsOp (void)
 
virtual void v_DoPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag) override
 
virtual void v_BuildPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, const Array< OneD, NekDouble >> &intmp, const NekDouble time, const NekDouble lambda) override
 

Static Private Attributes

static std::string lookupIds []
 
static std::string def
 

Detailed Description

High level abstraction of operator based preconditioner. In some cases, the operators is not presented in matrix form (matrix-free implementation for example), thus operator classes needs to be provided to perform the operators needed in preconditioning.

A brother class, PreconCfsMat for example, which stores the system coefficient matrix, could be designed. With the matrix, preconditioning matrix could be formed directly within this class (for example the ILU factorization). The operator defined in this class is not necessary in PreconCfsMat.

Definition at line 180 of file PreconCfsOp.h.

Constructor & Destructor Documentation

◆ PreconCfsOp()

Nektar::PreconCfsOp::PreconCfsOp ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const LibUtilities::SessionReaderSharedPtr pSession,
const LibUtilities::CommSharedPtr vComm 
)

Definition at line 48 of file PreconCfsOp.cpp.

52  : PreconCfs(pFields, pSession, vComm)
53 {
54 }
PreconCfs(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm)
Definition: PreconCfs.cpp:42

◆ ~PreconCfsOp()

virtual Nektar::PreconCfsOp::~PreconCfsOp ( )
inlinevirtual

Definition at line 186 of file PreconCfsOp.h.

187  {
188  }

Member Function Documentation

◆ NullPreconCfsOp()

void Nektar::PreconCfsOp::NullPreconCfsOp ( void  )
private

◆ SetOperators()

void Nektar::PreconCfsOp::SetOperators ( const NekPreconCfsOperators in)
inline

Definition at line 190 of file PreconCfsOp.h.

191  {
192  m_operator = in;
193  }
NekPreconCfsOperators m_operator
Definition: PreconCfsOp.h:196

References m_operator.

◆ v_BuildPreconCfs()

void Nektar::PreconCfsOp::v_BuildPreconCfs ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const Array< OneD, const Array< OneD, NekDouble >> &  intmp,
const NekDouble  time,
const NekDouble  lambda 
)
overrideprivatevirtual

Reimplemented from Nektar::PreconCfs.

Reimplemented in Nektar::PreconCfsBRJ.

Definition at line 70 of file PreconCfsOp.cpp.

74 {
75  boost::ignore_unused(pFields, intmp, time, lambda);
76  NEKERROR(ErrorUtil::efatal, "v_BuildPreconCfs not defined");
77 }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:209

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_DoPreconCfs()

void Nektar::PreconCfsOp::v_DoPreconCfs ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const Array< OneD, NekDouble > &  pInput,
Array< OneD, NekDouble > &  pOutput,
const bool &  flag 
)
overrideprivatevirtual

Reimplemented from Nektar::PreconCfs.

Reimplemented in Nektar::PreconCfsBRJ.

Definition at line 61 of file PreconCfsOp.cpp.

65 {
66  boost::ignore_unused(pFields, pInput, pOutput, flag);
67  NEKERROR(ErrorUtil::efatal, "v_DoPreconCfs not defined");
68 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_InitObject()

void Nektar::PreconCfsOp::v_InitObject ( )
overrideprotectedvirtual

Reimplemented from Nektar::PreconCfs.

Reimplemented in Nektar::PreconCfsBRJ.

Definition at line 56 of file PreconCfsOp.cpp.

57 {
59 }
virtual void v_InitObject()
Definition: PreconCfs.cpp:51

References Nektar::PreconCfs::v_InitObject().

Referenced by Nektar::PreconCfsBRJ::v_InitObject().

Member Data Documentation

◆ def

std::string Nektar::PreconCfsOp::def
staticprivate

Definition at line 214 of file PreconCfsOp.h.

◆ lookupIds

std::string Nektar::PreconCfsOp::lookupIds[]
staticprivate

Definition at line 213 of file PreconCfsOp.h.

◆ m_operator

NekPreconCfsOperators Nektar::PreconCfsOp::m_operator
protected

Definition at line 196 of file PreconCfsOp.h.

Referenced by SetOperators(), and Nektar::PreconCfsBRJ::v_BuildPreconCfs().