34#ifndef NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERLINEARWITHDIAG_H
35#define NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERLINEARWITHDIAG_H
47class PreconditionerLinearWithDiag;
48typedef std::shared_ptr<PreconditionerLinearWithDiag>
56 const std::shared_ptr<GlobalLinSys> &plinsys,
57 const std::shared_ptr<AssemblyMap> &pLocToGloMap)
61 plinsys, pLocToGloMap);
70 const std::shared_ptr<GlobalLinSys> &plinsys,
86 const bool &isLocal =
false)
override;
#define MULTI_REGIONS_EXPORT
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
virtual void v_BuildPreconditioner() override
static std::string className
Name of class.
PreconditionerSharedPtr m_diagonalPrecon
PreconditionerSharedPtr m_linSpacePrecon
virtual void v_InitObject() override
virtual ~PreconditionerLinearWithDiag()
PreconditionerLinearWithDiag(const std::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
static PreconditionerSharedPtr create(const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap)
Creates an instance of this class.
virtual void v_DoPreconditioner(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &isLocal=false) override
Apply a preconditioner to the conjugate gradient method.
std::shared_ptr< PreconditionerLinearWithDiag > PreconditionerLinearWithDiagSharedPtr
std::shared_ptr< Preconditioner > PreconditionerSharedPtr
std::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
The above copyright notice and this permission notice shall be included.