Nektar++
|
#include <PreconCfsBRJ.h>
Static Public Member Functions | |
static PreconCfsOpSharedPtr | create (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const LibUtilities::SessionReaderSharedPtr &pSession, const LibUtilities::CommSharedPtr &vComm) |
Creates an instance of this class. More... | |
Static Public Attributes | |
static std::string | className |
Name of the class. More... | |
Protected Member Functions | |
virtual void | v_InitObject () |
![]() | |
void | DoNullPrecon (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag) |
Protected Attributes | |
int | m_PreconItsStep |
int | m_BRJRelaxParam |
Array< OneD, Array< OneD, SNekBlkMatSharedPtr > > | m_PreconMatVarsSingle |
SNekBlkMatSharedPtr | m_PreconMatSingle |
Array< OneD, SNekBlkMatSharedPtr > | m_TraceJacSingle |
TensorOfArray4D< NekSingle > | m_TraceJacArraySingle |
Array< OneD, SNekBlkMatSharedPtr > | m_TraceJacDerivSingle |
TensorOfArray4D< NekSingle > | m_TraceJacDerivArraySingle |
Array< OneD, Array< OneD, NekSingle > > | m_TraceJacDerivSignSingle |
TensorOfArray5D< NekSingle > | m_TraceIPSymJacArraySingle |
PrecType | m_PreconMatStorage |
![]() | |
NekPreconCfsOperators | m_operator |
![]() | |
LibUtilities::CommSharedPtr | m_Comm |
bool | m_root |
bool | m_verbose |
int | m_spacedim |
int | m_PreconMatFreezNumb |
int | m_PreconTimesCounter |
NekDouble | m_DtLambdaPreconMat = -1.0 |
NekDouble | m_BndEvaluateTime |
bool | m_CalcPreconMatFlag = false |
Private Member Functions | |
virtual void | v_DoPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag) |
virtual void | v_BuildPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, const Array< OneD, NekDouble >> &intmp, const NekDouble time, const NekDouble lambda) |
template<typename DataType , typename TypeNekBlkMatSharedPtr > | |
void | PreconBlkDiag (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const TypeNekBlkMatSharedPtr &PreconMatVars, const DataType &tmpDataType) |
template<typename DataType > | |
void | MinusOffDiag2Rhs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const int nvariables, const int nCoeffs, const Array< OneD, const Array< OneD, NekDouble >> &inarray, Array< OneD, Array< OneD, NekDouble >> &outarray, bool flagUpdateDervFlux, Array< OneD, Array< OneD, NekDouble >> &FwdFluxDeriv, Array< OneD, Array< OneD, NekDouble >> &BwdFluxDeriv, TensorOfArray3D< NekDouble > &qfield, TensorOfArray3D< NekDouble > &wspTrace, Array< OneD, Array< OneD, DataType >> &wspTraceDataType, const TensorOfArray4D< DataType > &TraceJacArray, const TensorOfArray4D< DataType > &TraceJacDerivArray, const Array< OneD, const Array< OneD, DataType >> &TraceJacDerivSign, const TensorOfArray5D< DataType > &TraceIPSymJacArray) |
template<typename TypeNekBlkMatSharedPtr > | |
void | AllocatePreconBlkDiagCoeff (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, Array< OneD, Array< OneD, TypeNekBlkMatSharedPtr >> &gmtxarray, const int &nscale=1) |
void | AllocateNekBlkMatDig (SNekBlkMatSharedPtr &mat, const Array< OneD, unsigned int > nrow, const Array< OneD, unsigned int > ncol) |
Friends | |
class | MemoryManager< PreconCfsBRJ > |
Block Relaxed(weighted) Jacobi iterative (BRJ) Preconditioner for CFS
Solves a linear system using iterative methods.
Definition at line 46 of file PreconCfsBRJ.h.
Nektar::PreconCfsBRJ::PreconCfsBRJ | ( | const Array< OneD, MultiRegions::ExpListSharedPtr > & | pFields, |
const LibUtilities::SessionReaderSharedPtr & | pSession, | ||
const LibUtilities::CommSharedPtr & | vComm | ||
) |
Definition at line 53 of file PreconCfsBRJ.cpp.
References AllocateNekBlkMatDig(), AllocatePreconBlkDiagCoeff(), Nektar::eDiagonal, m_BRJRelaxParam, m_PreconItsStep, m_PreconMatSingle, m_PreconMatStorage, and m_PreconMatVarsSingle.
|
inline |
Definition at line 68 of file PreconCfsBRJ.h.
|
inlineprivate |
Definition at line 130 of file PreconCfsBRJ.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::eDIAGONAL.
Referenced by AllocatePreconBlkDiagCoeff(), and PreconCfsBRJ().
|
private |
Definition at line 422 of file PreconCfsBRJ.cpp.
References AllocateNekBlkMatDig().
Referenced by PreconCfsBRJ().
|
inlinestatic |
Creates an instance of this class.
Definition at line 52 of file PreconCfsBRJ.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
private |
Definition at line 300 of file PreconCfsBRJ.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Vmath::Fill(), Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfs::m_spacedim, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), Vmath::Svtvp(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by v_DoPreconCfs().
|
private |
Definition at line 245 of file PreconCfsBRJ.cpp.
References Nektar::eWrapper.
Referenced by v_DoPreconCfs().
|
virtual |
Reimplemented from Nektar::PreconCfs.
Definition at line 223 of file PreconCfsBRJ.cpp.
References Nektar::PreconCfs::m_CalcPreconMatFlag, Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfs::m_PreconMatFreezNumb, and Nektar::PreconCfs::m_PreconTimesCounter.
|
privatevirtual |
Reimplemented from Nektar::PreconCfsOp.
Definition at line 197 of file PreconCfsBRJ.cpp.
References Nektar::NekPreconCfsOperators::DoCalcPreconMatBRJCoeff(), Nektar::PreconCfs::m_BndEvaluateTime, Nektar::PreconCfs::m_CalcPreconMatFlag, Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfsOp::m_operator, m_PreconItsStep, m_PreconMatSingle, m_PreconMatVarsSingle, Nektar::PreconCfs::m_PreconTimesCounter, Nektar::PreconCfs::m_root, m_TraceIPSymJacArraySingle, m_TraceJacArraySingle, m_TraceJacDerivArraySingle, m_TraceJacDerivSignSingle, m_TraceJacDerivSingle, m_TraceJacSingle, and Nektar::PreconCfs::m_verbose.
|
privatevirtual |
Reimplemented from Nektar::PreconCfsOp.
Definition at line 88 of file PreconCfsBRJ.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL0, Nektar::PreconCfs::DoNullPrecon(), m_BRJRelaxParam, m_PreconItsStep, m_PreconMatSingle, Nektar::PreconCfs::m_spacedim, m_TraceIPSymJacArraySingle, m_TraceJacArraySingle, m_TraceJacDerivArraySingle, m_TraceJacDerivSignSingle, MinusOffDiag2Rhs(), PreconBlkDiag(), Vmath::Smul(), Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Vmath::Svtvp().
|
protectedvirtual |
Reimplemented from Nektar::PreconCfsOp.
Definition at line 83 of file PreconCfsBRJ.cpp.
References Nektar::PreconCfsOp::v_InitObject().
|
friend |
Definition at line 1 of file PreconCfsBRJ.h.
|
static |
Name of the class.
Definition at line 63 of file PreconCfsBRJ.h.
|
protected |
Definition at line 75 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), and v_DoPreconCfs().
|
protected |
Definition at line 74 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 78 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 86 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ().
|
protected |
Definition at line 77 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), and v_BuildPreconCfs().
|
protected |
Definition at line 84 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 80 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 82 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
Definition at line 83 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 81 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs().
|
protected |
Definition at line 79 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs().