Nektar++
|
#include <NekLinSysIter.h>
Public Member Functions | |
NekLinSysIter (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey) | |
~NekLinSysIter () override=default | |
void | SetUniversalUniqueMap (const Array< OneD, const int > &map) |
void | SetNekLinSysTolerance (const NekDouble in) |
void | SetNekLinSysMaxIterations (const unsigned int in) |
int | GetNekLinSysTolerance () |
bool | IsLocal () |
Public Member Functions inherited from Nektar::LibUtilities::NekSys | |
NekSys (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey) | |
virtual | ~NekSys ()=default |
void | InitObject () |
int | SolveSystem (const int nGlobal, const Array< OneD, const NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const int nDir=0) |
const NekSysOperators & | GetSysOperators () |
void | SetSysOperators (const NekSysOperators &in) |
void | SetFlagWarnings (bool in) |
void | SetRhsMagnitude (const NekDouble mag) |
Static Public Member Functions | |
static NekLinSysIterSharedPtr | CreateInstance (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey) |
Static Public Member Functions inherited from Nektar::LibUtilities::NekSys | |
static NekSysSharedPtr | CreateInstance (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey) |
Protected Member Functions | |
void | v_InitObject () override |
void | SetUniversalUniqueMap () |
void | Set_Rhs_Magnitude (const Array< OneD, NekDouble > &pIn) |
void | ConvergenceCheck (const Array< OneD, const NekDouble > &Residual) |
Protected Member Functions inherited from Nektar::LibUtilities::NekSys | |
virtual void | v_InitObject () |
virtual void | v_SetSysOperators (const NekSysOperators &in) |
virtual int | v_SolveSystem (const int nGlobal, const Array< OneD, const NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const int nDir) |
Protected Attributes | |
Array< OneD, int > | m_map |
Global to universal unique map. More... | |
NekDouble | m_NekLinSysTolerance |
int | m_NekLinSysMaxIterations |
int | m_totalIterations = 0 |
bool | m_isLocal |
Protected Attributes inherited from Nektar::LibUtilities::NekSys | |
LibUtilities::CommSharedPtr | m_rowComm |
bool | m_converged |
bool | m_root |
bool | m_verbose |
bool | m_FlagWarnings |
int | m_SysDimen |
NekSysOperators | m_operator |
NekDouble | m_rhs_magnitude = NekConstants::kNekUnsetDouble |
Friends | |
class | MemoryManager< NekLinSysIter > |
Support creation through MemoryManager. More... | |
Solves a linear system using iterative methods.
Definition at line 55 of file NekLinSysIter.h.
Nektar::LibUtilities::NekLinSysIter::NekLinSysIter | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
const LibUtilities::CommSharedPtr & | vRowComm, | ||
const int | nDimen, | ||
const NekSysKey & | pKey | ||
) |
Definition at line 51 of file NekLinSysIter.cpp.
References m_isLocal, m_NekLinSysMaxIterations, Nektar::LibUtilities::NekSysKey::m_NekLinSysMaxIterations, m_NekLinSysTolerance, and Nektar::LibUtilities::NekSysKey::m_NekLinSysTolerance.
|
overridedefault |
|
protected |
Definition at line 102 of file NekLinSysIter.cpp.
References Vmath::Dot(), Nektar::LibUtilities::NekSys::m_converged, m_NekLinSysTolerance, Nektar::LibUtilities::NekSys::m_rhs_magnitude, Nektar::LibUtilities::NekSys::m_rowComm, and Nektar::LibUtilities::ReduceSum.
Referenced by Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_SolveSystem().
|
inlinestatic |
Definition at line 61 of file NekLinSysIter.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
inline |
Definition at line 91 of file NekLinSysIter.h.
References m_NekLinSysTolerance.
|
inline |
|
protected |
Definition at line 83 of file NekLinSysIter.cpp.
References Nektar::LibUtilities::NekSysOperators::DoAssembleLoc(), Vmath::Dot(), Vmath::Dot2(), m_isLocal, m_map, Nektar::LibUtilities::NekSys::m_operator, Nektar::LibUtilities::NekSys::m_rhs_magnitude, Nektar::LibUtilities::NekSys::m_rowComm, and Nektar::LibUtilities::ReduceSum.
Referenced by Nektar::LibUtilities::NekLinSysIterCGLoc::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGMRES(), and Nektar::LibUtilities::NekLinSysIterGMRES::DoGMRES().
|
inline |
Definition at line 86 of file NekLinSysIter.h.
References m_NekLinSysMaxIterations.
Definition at line 81 of file NekLinSysIter.h.
References m_NekLinSysTolerance.
|
protected |
Definition at line 78 of file NekLinSysIter.cpp.
References m_map, and Nektar::LibUtilities::NekSys::m_SysDimen.
Referenced by v_InitObject().
void Nektar::LibUtilities::NekLinSysIter::SetUniversalUniqueMap | ( | const Array< OneD, const int > & | map | ) |
Definition at line 68 of file NekLinSysIter.cpp.
References m_map, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::LibUtilities::NekSys.
Reimplemented in Nektar::LibUtilities::NekLinSysIterCG, Nektar::LibUtilities::NekLinSysIterCGLoc, Nektar::LibUtilities::NekLinSysIterFixedpointJacobi, Nektar::LibUtilities::NekLinSysIterGMRES, and Nektar::LibUtilities::NekLinSysIterGMRESLoc.
Definition at line 62 of file NekLinSysIter.cpp.
References SetUniversalUniqueMap(), and Nektar::LibUtilities::NekSys::v_InitObject().
Referenced by Nektar::LibUtilities::NekLinSysIterCG::v_InitObject(), Nektar::LibUtilities::NekLinSysIterCGLoc::v_InitObject(), Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_InitObject(), Nektar::LibUtilities::NekLinSysIterGMRES::v_InitObject(), and Nektar::LibUtilities::NekLinSysIterGMRESLoc::v_InitObject().
|
friend |
Support creation through MemoryManager.
Definition at line 53 of file NekLinSysIter.h.
|
protected |
Definition at line 110 of file NekLinSysIter.h.
Referenced by IsLocal(), NekLinSysIter(), Nektar::LibUtilities::NekLinSysIterCGLoc::NekLinSysIterCGLoc(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::NekLinSysIterGMRESLoc(), and Set_Rhs_Magnitude().
Global to universal unique map.
Definition at line 103 of file NekLinSysIter.h.
Referenced by Nektar::LibUtilities::NekLinSysIterGMRES::DoArnoldi(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGmresRestart(), Set_Rhs_Magnitude(), and SetUniversalUniqueMap().
|
protected |
Definition at line 106 of file NekLinSysIter.h.
Referenced by Nektar::LibUtilities::NekLinSysIterCGLoc::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), NekLinSysIter(), Nektar::LibUtilities::NekLinSysIterGMRES::NekLinSysIterGMRES(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::NekLinSysIterGMRESLoc(), SetNekLinSysMaxIterations(), and Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_SolveSystem().
|
protected |
Definition at line 105 of file NekLinSysIter.h.
Referenced by ConvergenceCheck(), Nektar::LibUtilities::NekLinSysIterCGLoc::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGmresRestart(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGmresRestart(), GetNekLinSysTolerance(), NekLinSysIter(), and SetNekLinSysTolerance().
|
protected |
Definition at line 107 of file NekLinSysIter.h.
Referenced by Nektar::LibUtilities::NekLinSysIterCGLoc::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGmresRestart(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGmresRestart(), Nektar::LibUtilities::NekLinSysIterCG::v_SolveSystem(), and Nektar::LibUtilities::NekLinSysIterCGLoc::v_SolveSystem().