34#ifndef NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERBLOCK_H
35#define NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERBLOCK_H
45class PreconditionerBlock;
53 const std::shared_ptr<GlobalLinSys> &plinsys,
54 const std::shared_ptr<AssemblyMap> &pLocToGloMap)
67 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.
void BlockPreconditionerCG(void)
Construct a block preconditioner from for the continuous Galerkin system.
static PreconditionerSharedPtr create(const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap)
Creates an instance of this class.
void v_DoPreconditioner(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &isLocal=false) override
Apply preconditioner to pInput and store the result in pOutput.
void BlockPreconditionerHDG(void)
Construct a block preconditioner for the hybridized discontinuous Galerkin system.
PreconditionerBlock(const std::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
void v_InitObject() override
static std::string className
Name of class.
DNekBlkMatSharedPtr m_blkMat
void v_BuildPreconditioner() override
Gs::gs_data * m_gs_mapping
~PreconditionerBlock() override
static void Free(gs_data *pGsh)
Deallocates GSLib mapping data without finalising MPI.
std::shared_ptr< Preconditioner > PreconditionerSharedPtr
std::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
std::shared_ptr< PreconditionerBlock > PreconditionerBlockSharedPtr
std::shared_ptr< DNekBlkMat > DNekBlkMatSharedPtr