36 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_NONLINSYS_H
37 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_NONLINSYS_H
44 namespace LibUtilities
104 "SetRefResidual dimension not correct");
116 const unsigned int in)
#define ASSERTL0(condition, msg)
#define LIB_UTILITIES_EXPORT
Provides a generic Factory class.
NekNonlinSys(const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm, const int nDimen, const NekSysKey &pKey)
void SetLinSysRelativeTolInNonlin(const NekDouble in)
NekDouble m_NonlinIterTolRelativeL2
std::string m_LinSysIterSolverType
void SetNekNonlinSysTolerance(const NekDouble in)
Array< OneD, NekDouble > m_Residual
const Array< OneD, const NekDouble > & GetRefSourceVec() const
const NekLinSysIterSharedPtr & GetLinSys()
static NekNonlinSysSharedPtr CreateInstance(const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm, const int nDimen, const NekSysKey &pKey)
void SetRefResidual(const Array< OneD, const NekDouble > &in)
NekDouble m_LinSysRelativeTolInNonlin
Array< OneD, NekDouble > m_DeltSltn
void SetNonlinIterTolRelativeL2(const NekDouble in)
virtual void v_SetupNekNonlinSystem(const int nGlobal, const Array< OneD, const NekDouble > &pInput, const Array< OneD, const NekDouble > &pSource, const int nDir)
virtual void v_InitObject()
Array< OneD, NekDouble > m_SourceVec
NekLinSysIterSharedPtr m_linsol
const Array< OneD, const NekDouble > & GetRefSolution() const
const Array< OneD, const NekDouble > & GetRefResidual() const
void SetNekNonlinSysMaxIterations(const unsigned int in)
Array< OneD, NekDouble > m_Solution
NekDouble m_tolerance
Tolerance of iterative solver.
int m_SysDimen
The dimension of the system.
int m_maxiter
Maximum iterations.
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
LibUtilities::NekFactory< std::string, NekNonlinSys, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr &, const int, const NekSysKey & > NekNonlinSysFactory
std::shared_ptr< NekLinSysIter > NekLinSysIterSharedPtr
NekNonlinSysFactory & GetNekNonlinSysFactory()
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< NekNonlinSys > NekNonlinSysSharedPtr
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
The above copyright notice and this permission notice shall be included.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)