|
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().