34#ifndef NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERDIAGONAL_H
35#define NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERDIAGONAL_H
43class PreconditionerDiagonal;
51 const std::shared_ptr<GlobalLinSys> &plinsys,
52 const std::shared_ptr<AssemblyMap> &pLocToGloMap)
56 plinsys, pLocToGloMap);
66 const std::shared_ptr<GlobalLinSys> &plinsys,
81 const bool &IsLocal =
false)
override;
91 static std::string
def;
102 const std::shared_ptr<GlobalLinSys> &plinsys,
103 const std::shared_ptr<AssemblyMap> &pLocToGloMap)
116 const std::shared_ptr<GlobalLinSys> &plinsys,
128 const bool &isLocal =
false)
override;
145 const std::shared_ptr<GlobalLinSys> &plinsys,
146 const std::shared_ptr<AssemblyMap> &pLocToGloMap)
150 plinsys, pLocToGloMap);
160 const std::shared_ptr<GlobalLinSys> &plinsys,
175 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.
void v_BuildPreconditioner() override
void StaticCondDiagonalPreconditionerSum(void)
static PreconditionerSharedPtr create(const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap)
Creates an instance of this class.
~PreconditionerDiagonal() override
Array< OneD, NekDouble > m_diagonals
void v_InitObject() override
void DiagonalPreconditionerSum(void)
static std::string lookupIds[]
PreconditionerDiagonal(const std::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
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.
static std::string className
Name of class.
void v_InitObject() override
static PreconditionerSharedPtr create(const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap)
Creates an instance of this class.
PreconditionerJacobi(const std::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
~PreconditionerJacobi() override
static std::string lookupIds[]
void v_BuildPreconditioner() override
static std::string className
Name of class.
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.
~PreconditionerNull() override
void v_BuildPreconditioner() override
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.
static std::string className
Name of class.
void v_InitObject() override
static std::string lookupIds[]
PreconditionerNull(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.
std::shared_ptr< PreconditionerJacobi > PreconditionerJacobiSharedPtr
std::shared_ptr< PreconditionerNull > PreconditionerNullSharedPtr
std::shared_ptr< Preconditioner > PreconditionerSharedPtr
std::shared_ptr< PreconditionerDiagonal > PreconditionerDiagonalSharedPtr
std::shared_ptr< AssemblyMap > AssemblyMapSharedPtr