53        "Full linear space and diagonal preconditioning");
 
   63    const std::shared_ptr<GlobalLinSys> &plinsys,
 
   96    ASSERTL0(isLocal == 
false, 
"PreconditionerLinearWithDiag is only set up " 
   97                               "for Global iteratives sovles");
 
#define ASSERTL0(condition, msg)
 
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
 
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
 
const std::weak_ptr< GlobalLinSys > m_linsys
 
std::weak_ptr< AssemblyMap > m_locToGloMap
 
virtual void v_BuildPreconditioner() override
 
static std::string className
Name of class.
 
PreconditionerSharedPtr m_diagonalPrecon
 
PreconditionerSharedPtr m_linSpacePrecon
 
virtual void v_InitObject() override
 
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.
 
PreconFactory & GetPreconFactory()
 
std::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
 
The above copyright notice and this permission notice shall be included.