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 () override |
![]() | |
void | DoNullPrecon (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const bool &flag) |
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) override |
virtual void | v_BuildPreconCfs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, const Array< OneD, NekDouble >> &intmp, const NekDouble time, const NekDouble lambda) override |
void | PreconBlkDiag (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const Array< OneD, NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
template<typename DataType > | |
void | MinusOffDiag2Rhs (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const size_t nvariables, const size_t 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 | AllocateSIMDPreconBlkMatDiag (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields) |
This function creates the matrix structure for the block diagonal operator. It organizes the way that the matrix. More... | |
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 49 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 AllocatePreconBlkDiagCoeff(), AllocateSIMDPreconBlkMatDiag(), Nektar::eDiagonal, m_BRJRelaxParam, m_PreconItsStep, m_PreconMatStorage, and m_PreconMatVarsSingle.
|
inline |
Definition at line 71 of file PreconCfsBRJ.h.
|
inlineprivate |
Definition at line 241 of file PreconCfsBRJ.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::eDIAGONAL.
Referenced by AllocatePreconBlkDiagCoeff(), and v_BuildPreconCfs().
|
private |
Definition at line 502 of file PreconCfsBRJ.cpp.
References AllocateNekBlkMatDig().
Referenced by PreconCfsBRJ().
|
inlineprivate |
This function creates the matrix structure for the block diagonal operator. It organizes the way that the matrix.
by SIMD instructions. The degrees of freedom of each element are reorganized, so they are placed in the correct location to perfom SIMD instructions.
Definition at line 143 of file PreconCfsBRJ.h.
References ASSERTL1.
Referenced by PreconCfsBRJ().
|
inlinestatic |
Creates an instance of this class.
Definition at line 55 of file PreconCfsBRJ.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
private |
Definition at line 374 of file PreconCfsBRJ.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), Vmath::Fill(), Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfs::m_spacedim, CellMLToNektar.cellml_metadata::p, Nektar::LibUtilities::Timer::Start(), Nektar::LibUtilities::Timer::Stop(), and Vmath::Zero().
Referenced by v_DoPreconCfs().
|
private |
Definition at line 297 of file PreconCfsBRJ.cpp.
References m_inputIdx, m_max_nblocks, m_max_nElmtDof, and m_sBlkDiagMat.
Referenced by v_DoPreconCfs().
|
overrideprivatevirtual |
Copy array into column major blocks of vector width
Reimplemented from Nektar::PreconCfsOp.
Definition at line 188 of file PreconCfsBRJ.cpp.
References AllocateNekBlkMatDig(), Nektar::NekPreconCfsOperators::DoCalcPreconMatBRJCoeff(), Nektar::PreconCfs::m_BndEvaluateTime, Nektar::PreconCfs::m_CalcPreconMatFlag, Nektar::PreconCfs::m_Comm, Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfsOp::m_operator, m_PreconItsStep, m_PreconMatVarsSingle, Nektar::PreconCfs::m_PreconTimesCounter, m_sBlkDiagMat, m_TraceIPSymJacArraySingle, m_TraceJacArraySingle, m_TraceJacDerivArraySingle, m_TraceJacDerivSignSingle, m_TraceJacDerivSingle, m_TraceJacSingle, and Nektar::PreconCfs::m_verbose.
|
overrideprivatevirtual |
Reimplemented from Nektar::PreconCfsOp.
Definition at line 81 of file PreconCfsBRJ.cpp.
References Nektar::LibUtilities::Timer::AccumulateRegion(), ASSERTL0, Nektar::PreconCfs::DoNullPrecon(), m_BRJRelaxParam, m_PreconItsStep, 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().
|
overrideprotectedvirtual |
Reimplemented from Nektar::PreconCfsOp.
Definition at line 76 of file PreconCfsBRJ.cpp.
References Nektar::PreconCfsOp::v_InitObject().
|
overridevirtual |
Reimplemented from Nektar::PreconCfs.
Definition at line 276 of file PreconCfsBRJ.cpp.
References Nektar::PreconCfs::m_CalcPreconMatFlag, Nektar::PreconCfs::m_DtLambdaPreconMat, Nektar::PreconCfs::m_PreconMatFreezNumb, and Nektar::PreconCfs::m_PreconTimesCounter.
|
friend |
Definition at line 1 of file PreconCfsBRJ.h.
|
static |
Name of the class.
Definition at line 66 of file PreconCfsBRJ.h.
|
protected |
Definition at line 78 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), and v_DoPreconCfs().
|
protected |
Definition at line 86 of file PreconCfsBRJ.h.
Referenced by PreconBlkDiag().
|
protected |
Definition at line 82 of file PreconCfsBRJ.h.
Referenced by PreconBlkDiag().
|
protected |
Definition at line 83 of file PreconCfsBRJ.h.
Referenced by PreconBlkDiag().
|
protected |
Definition at line 77 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 95 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ().
|
protected |
Definition at line 80 of file PreconCfsBRJ.h.
Referenced by PreconCfsBRJ(), and v_BuildPreconCfs().
|
protected |
Definition at line 85 of file PreconCfsBRJ.h.
Referenced by PreconBlkDiag(), and v_BuildPreconCfs().
|
protected |
Definition at line 93 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 89 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 91 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
Definition at line 92 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs(), and v_DoPreconCfs().
|
protected |
Definition at line 90 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs().
|
protected |
Definition at line 88 of file PreconCfsBRJ.h.
Referenced by v_BuildPreconCfs().