Nektar++
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Friends | List of all members
Nektar::LibUtilities::NekLinSysIterFixedpointJacobi Class Reference

#include <NekLinSysIterFixedpointJacobi.h>

Inheritance diagram for Nektar::LibUtilities::NekLinSysIterFixedpointJacobi:
[legend]

Public Member Functions

 NekLinSysIterFixedpointJacobi (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey)
 
 ~NekLinSysIterFixedpointJacobi () override=default
 
- Public Member Functions inherited from Nektar::LibUtilities::NekLinSysIter
 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 NekSysOperatorsGetSysOperators ()
 
void SetSysOperators (const NekSysOperators &in)
 
void SetFlagWarnings (bool in)
 
void SetRhsMagnitude (const NekDouble mag)
 

Static Public Member Functions

static NekLinSysIterSharedPtr create (const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey)
 
- Static Public Member Functions inherited from Nektar::LibUtilities::NekLinSysIter
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)
 

Static Public Attributes

static std::string className
 

Protected Member Functions

void v_InitObject () override
 
int v_SolveSystem (const int nGlobal, const Array< OneD, const NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const int nDir) override
 
- Protected Member Functions inherited from Nektar::LibUtilities::NekLinSysIter
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)
 

Friends

class MemoryManager< NekLinSysIterFixedpointJacobi >
 Support creation through MemoryManager. More...
 

Additional Inherited Members

- Protected Attributes inherited from Nektar::LibUtilities::NekLinSysIter
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
 

Detailed Description

Solves a linear system using iterative methods.

Definition at line 48 of file NekLinSysIterFixedpointJacobi.h.

Constructor & Destructor Documentation

◆ NekLinSysIterFixedpointJacobi()

Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::NekLinSysIterFixedpointJacobi ( const LibUtilities::SessionReaderSharedPtr pSession,
const LibUtilities::CommSharedPtr vRowComm,
const int  nDimen,
const NekSysKey pKey 
)

Definition at line 52 of file NekLinSysIterFixedpointJacobi.cpp.

56 : NekLinSysIter(pSession, vRowComm, nDimen, pKey)
57{
58}
NekLinSysIter(const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey)

◆ ~NekLinSysIterFixedpointJacobi()

Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::~NekLinSysIterFixedpointJacobi ( )
overridedefault

Member Function Documentation

◆ create()

static NekLinSysIterSharedPtr Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::create ( const LibUtilities::SessionReaderSharedPtr pSession,
const LibUtilities::CommSharedPtr vRowComm,
const int  nDimen,
const NekSysKey pKey 
)
inlinestatic

Definition at line 54 of file NekLinSysIterFixedpointJacobi.h.

58 {
61 pSession, vRowComm, nDimen, pKey);
62 p->InitObject();
63 return p;
64 }
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< NekLinSysIterFixedpointJacobi > NekLinSysIterFixedpointJacobiSharedPtr

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.

◆ v_InitObject()

void Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_InitObject ( )
overrideprotectedvirtual

◆ v_SolveSystem()

int Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_SolveSystem ( const int  nGlobal,
const Array< OneD, const NekDouble > &  pInput,
Array< OneD, NekDouble > &  pOutput,
const int  nDir 
)
overrideprotectedvirtual

Reimplemented from Nektar::LibUtilities::NekSys.

Definition at line 71 of file NekLinSysIterFixedpointJacobi.cpp.

74{
75
76 int niterations = 0;
77
78 Array<OneD, NekDouble> pSol0(nGlobal);
79 Vmath::Vcopy(nGlobal, pSolution, 1, pSol0, 1);
80 for (int i = 0; i < m_NekLinSysMaxIterations; ++i)
81 {
82 m_operator.DoNekSysFixPointIte(pRhs, pSol0, pSolution);
83 Vmath::Vsub(nGlobal, pSolution, 1, pSol0, 1, pSol0, 1);
84 ConvergenceCheck(pSol0);
85 Vmath::Vcopy(nGlobal, pSolution, 1, pSol0, 1);
86 niterations++;
87 if (m_converged)
88 {
89 break;
90 }
91 }
92
93 return niterations;
94}
void ConvergenceCheck(const Array< OneD, const NekDouble > &Residual)
NekSysOperators m_operator
Definition: NekSys.h:298
void DoNekSysFixPointIte(InArrayType &rhs, InArrayType &xn, OutArrayType &xn1, const bool &flag=false) const
Definition: NekSys.h:169
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.hpp:825
void Vsub(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Subtract vector z = x-y.
Definition: Vmath.hpp:220

References Nektar::LibUtilities::NekLinSysIter::ConvergenceCheck(), Nektar::LibUtilities::NekSysOperators::DoNekSysFixPointIte(), Nektar::LibUtilities::NekSys::m_converged, Nektar::LibUtilities::NekLinSysIter::m_NekLinSysMaxIterations, Nektar::LibUtilities::NekSys::m_operator, Vmath::Vcopy(), and Vmath::Vsub().

Friends And Related Function Documentation

◆ MemoryManager< NekLinSysIterFixedpointJacobi >

Support creation through MemoryManager.

Definition at line 46 of file NekLinSysIterFixedpointJacobi.h.

Member Data Documentation

◆ className

string Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::className
static
Initial value:
=
"NekLinSysIterFixedpointJacobi solver.")
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
static NekLinSysIterSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vRowComm, const int nDimen, const NekSysKey &pKey)
NekLinSysIterFactory & GetNekLinSysIterFactory()

Definition at line 66 of file NekLinSysIterFixedpointJacobi.h.