Nektar++
|
#include <PreconditionerDiagonal.h>
Static Public Member Functions | |
static PreconditionerSharedPtr | create (const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap) |
Creates an instance of this class. More... | |
Static Public Member Functions inherited from Nektar::MultiRegions::PreconditionerDiagonal | |
static PreconditionerSharedPtr | create (const std::shared_ptr< GlobalLinSys > &plinsys, const std::shared_ptr< AssemblyMap > &pLocToGloMap) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Static Public Attributes inherited from Nektar::MultiRegions::PreconditionerDiagonal | |
static std::string | className |
Name of class. More... | |
Protected Member Functions | |
void | v_InitObject () 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. More... | |
void | v_InitObject () 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. More... | |
void | v_BuildPreconditioner () override |
Protected Member Functions inherited from Nektar::MultiRegions::Preconditioner | |
virtual DNekScalMatSharedPtr | v_TransformedSchurCompl (int offset, int bndoffset, const std::shared_ptr< DNekScalMat > &loc_mat) |
Get block elemental transposed transformation matrix \(\mathbf{R}^{T}\). More... | |
virtual void | v_InitObject () |
virtual void | v_DoPreconditioner (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &isLocal=false) |
Apply a preconditioner to the conjugate gradient method. More... | |
virtual void | v_DoPreconditionerWithNonVertOutput (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const Array< OneD, NekDouble > &pNonVertOutput, Array< OneD, NekDouble > &pVertForce) |
Apply a preconditioner to the conjugate gradient method with an output for non-vertex degrees of freedom. More... | |
virtual void | v_DoTransformBasisToLowEnergy (Array< OneD, NekDouble > &pInOut) |
Transform from original basis to low energy basis. More... | |
virtual void | v_DoTransformCoeffsFromLowEnergy (Array< OneD, NekDouble > &pInOut) |
Transform from low energy coeffs to orignal basis. More... | |
virtual void | v_DoTransformCoeffsToLowEnergy (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) |
Multiply by the block inverse transformation matrix. More... | |
virtual void | v_DoTransformBasisFromLowEnergy (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) |
Multiply by the block transposed inverse transformation matrix. More... | |
virtual void | v_BuildPreconditioner () |
Private Attributes | |
int | m_niter |
Static Private Attributes | |
static std::string | lookupIds [] |
static std::string | def |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::MultiRegions::PreconditionerDiagonal | |
Array< OneD, NekDouble > | m_diagonals |
Protected Attributes inherited from Nektar::MultiRegions::Preconditioner | |
const std::weak_ptr< GlobalLinSys > | m_linsys |
std::string | m_preconType |
DNekMatSharedPtr | m_preconditioner |
std::weak_ptr< AssemblyMap > | m_locToGloMap |
This class implements jacobi preconditioning building on diagonal version above
Definition at line 140 of file PreconditionerDiagonal.h.
Nektar::MultiRegions::PreconditionerJacobi::PreconditionerJacobi | ( | const std::shared_ptr< GlobalLinSys > & | plinsys, |
const AssemblyMapSharedPtr & | pLocToGloMap | ||
) |
Definition at line 265 of file PreconditionerDiagonal.cpp.
|
inlineoverride |
Definition at line 164 of file PreconditionerDiagonal.h.
|
inlinestatic |
Creates an instance of this class.
Definition at line 144 of file PreconditionerDiagonal.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
overrideprotectedvirtual |
Reimplemented from Nektar::MultiRegions::PreconditionerDiagonal.
Definition at line 276 of file PreconditionerDiagonal.cpp.
References Nektar::MultiRegions::Preconditioner::m_linsys, Nektar::MultiRegions::Preconditioner::m_locToGloMap, m_niter, and Nektar::MultiRegions::PreconditionerDiagonal::v_BuildPreconditioner().
|
overrideprotectedvirtual |
Apply a preconditioner to the conjugate gradient method.
Reimplemented from Nektar::MultiRegions::PreconditionerDiagonal.
Definition at line 300 of file PreconditionerDiagonal.cpp.
References Nektar::MultiRegions::eIterativeFull, Nektar::MultiRegions::PreconditionerDiagonal::m_diagonals, Nektar::MultiRegions::Preconditioner::m_linsys, Nektar::MultiRegions::Preconditioner::m_locToGloMap, m_niter, Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vsub(), Vmath::Vvtvp(), and Vmath::Zero().
|
overrideprotectedvirtual |
Reimplemented from Nektar::MultiRegions::PreconditionerDiagonal.
Definition at line 272 of file PreconditionerDiagonal.cpp.
|
static |
Name of class.
Registers the class with the Factory.
Definition at line 156 of file PreconditionerDiagonal.h.
|
staticprivate |
Definition at line 181 of file PreconditionerDiagonal.h.
|
staticprivate |
Definition at line 180 of file PreconditionerDiagonal.h.
|
private |
Definition at line 178 of file PreconditionerDiagonal.h.
Referenced by v_BuildPreconditioner(), and v_DoPreconditioner().