Nektar++
|
#include <PreconditionerBlock.h>
Static Public Member Functions | |
static PreconditionerSharedPtr | create (const boost::shared_ptr< GlobalLinSys > &plinsys, const boost::shared_ptr< AssemblyMap > &pLocToGloMap) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static std::string | className |
Name of class. More... | |
Protected Attributes | |
const boost::weak_ptr < GlobalLinSys > | m_linsys |
PreconditionerType | m_preconType |
DNekBlkMatSharedPtr | m_blkMat |
boost::shared_ptr< AssemblyMap > | m_locToGloMap |
Protected Attributes inherited from Nektar::MultiRegions::Preconditioner | |
const boost::weak_ptr < GlobalLinSys > | m_linsys |
PreconditionerType | m_preconType |
DNekMatSharedPtr | m_preconditioner |
boost::shared_ptr< AssemblyMap > | m_locToGloMap |
LibUtilities::CommSharedPtr | m_comm |
Private Member Functions | |
void | BlockPreconditionerCG (void) |
Construct a block preconditioner from for the continuous Galerkin system. More... | |
void | BlockPreconditionerHDG (void) |
virtual void | v_InitObject () |
virtual void | v_DoPreconditioner (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) |
Apply preconditioner to pInput and store the result in pOutput . More... | |
virtual void | v_BuildPreconditioner () |
Additional Inherited Members | |
Protected Member Functions inherited from Nektar::MultiRegions::Preconditioner | |
virtual DNekScalMatSharedPtr | v_TransformedSchurCompl (int offset, const boost::shared_ptr< DNekScalMat > &loc_mat) |
Get block elemental transposed transformation matrix . More... | |
Definition at line 52 of file PreconditionerBlock.h.
Nektar::MultiRegions::PreconditionerBlock::PreconditionerBlock | ( | const boost::shared_ptr< GlobalLinSys > & | plinsys, |
const AssemblyMapSharedPtr & | pLocToGloMap | ||
) |
Definition at line 65 of file PreconditionerBlock.cpp.
|
inlinevirtual |
Definition at line 75 of file PreconditionerBlock.h.
Construct a block preconditioner from for the continuous Galerkin system.
The preconditioner is defined as:
where is the local Schur complement matrix for each element and the subscript denotes the portion of the Schur complement associated with the vertex, edge and face blocks respectively.
Definition at line 113 of file PreconditionerBlock.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL1, Nektar::MultiRegions::DeterminePeriodicEdgeOrientId(), Nektar::MultiRegions::DeterminePeriodicFaceOrient(), Nektar::eDIAGONAL, Gs::Gather(), Gs::gs_add, Gs::Init(), Nektar::iterator, m_blkMat, Nektar::MultiRegions::Preconditioner::m_comm, m_linsys, m_locToGloMap, Nektar::LibUtilities::ReduceMax, sign, and Vmath::Vadd().
Referenced by v_BuildPreconditioner().
Definition at line 540 of file PreconditionerBlock.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::eDIAGONAL, Gs::Gather(), Gs::gs_add, Gs::Init(), m_blkMat, Nektar::MultiRegions::Preconditioner::m_comm, m_linsys, m_locToGloMap, and Nektar::LibUtilities::ReduceMax.
Referenced by v_BuildPreconditioner().
|
inlinestatic |
Creates an instance of this class.
Definition at line 56 of file PreconditionerBlock.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
|
privatevirtual |
Reimplemented from Nektar::MultiRegions::Preconditioner.
Definition at line 83 of file PreconditionerBlock.cpp.
References BlockPreconditionerCG(), BlockPreconditionerHDG(), Nektar::StdRegions::eHybridDGHelmBndLam, Nektar::MultiRegions::GlobalMatrixKey::GetMatrixType(), and m_linsys.
|
privatevirtual |
Apply preconditioner to pInput
and store the result in pOutput
.
Reimplemented from Nektar::MultiRegions::Preconditioner.
Definition at line 697 of file PreconditionerBlock.cpp.
References Nektar::eWrapper, and m_locToGloMap.
|
privatevirtual |
Reimplemented from Nektar::MultiRegions::Preconditioner.
Definition at line 75 of file PreconditionerBlock.cpp.
References ASSERTL0, Nektar::MultiRegions::eIterativeStaticCond, Nektar::MultiRegions::ePETScStaticCond, and m_locToGloMap.
|
static |
Name of class.
Registers the class with the Factory.
Definition at line 68 of file PreconditionerBlock.h.
|
protected |
Definition at line 80 of file PreconditionerBlock.h.
Referenced by BlockPreconditionerCG(), and BlockPreconditionerHDG().
|
protected |
Definition at line 78 of file PreconditionerBlock.h.
Referenced by BlockPreconditionerCG(), BlockPreconditionerHDG(), and v_BuildPreconditioner().
|
protected |
Definition at line 81 of file PreconditionerBlock.h.
Referenced by BlockPreconditionerCG(), BlockPreconditionerHDG(), v_DoPreconditioner(), and v_InitObject().
|
protected |
Definition at line 79 of file PreconditionerBlock.h.