|
Nektar++
|
A global linear system. More...
#include <GlobalLinSysDirectStaticCond.h>


Public Member Functions | |
| GlobalLinSysDirectStaticCond (const GlobalLinSysKey &mkey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &locToGloMap) | |
| Constructor for full direct matrix solve. More... | |
| GlobalLinSysDirectStaticCond (const GlobalLinSysKey &mkey, const boost::weak_ptr< ExpList > &pExpList, const DNekScalBlkMatSharedPtr pSchurCompl, const DNekScalBlkMatSharedPtr pBinvD, const DNekScalBlkMatSharedPtr pC, const DNekScalBlkMatSharedPtr pInvD, const boost::shared_ptr< AssemblyMap > &locToGloMap) | |
| Constructor for full direct matrix solve. More... | |
| virtual | ~GlobalLinSysDirectStaticCond () |
Public Member Functions inherited from Nektar::MultiRegions::GlobalLinSysDirect | |
| GlobalLinSysDirect (const GlobalLinSysKey &pKey, const boost::weak_ptr< ExpList > &pExp, const boost::shared_ptr< AssemblyMap > &pLocToGloMap) | |
| Constructor for full direct matrix solve. More... | |
| virtual | ~GlobalLinSysDirect () |
Public Member Functions inherited from Nektar::MultiRegions::GlobalLinSys | |
| GlobalLinSys (const GlobalLinSysKey &pKey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &pLocToGloMap) | |
| Constructor for full direct matrix solve. More... | |
| virtual | ~GlobalLinSys () |
| const GlobalLinSysKey & | GetKey (void) const |
| Returns the key associated with the system. More... | |
| const boost::weak_ptr< ExpList > & | GetLocMat (void) const |
| void | InitObject () |
| void | Initialise (const boost::shared_ptr< AssemblyMap > &pLocToGloMap) |
| void | Solve (const Array< OneD, const NekDouble > &in, Array< OneD, NekDouble > &out, const AssemblyMapSharedPtr &locToGloMap, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
| Solve the linear system for given input and output vectors using a specified local to global map. More... | |
| boost::shared_ptr< GlobalLinSys > | GetSharedThisPtr () |
| Returns a shared pointer to the current object. More... | |
| int | GetNumBlocks () |
| DNekScalMatSharedPtr | GetBlock (unsigned int n) |
| DNekScalBlkMatSharedPtr | GetStaticCondBlock (unsigned int n) |
| void | DropStaticCondBlock (unsigned int n) |
| void | SolveLinearSystem (const int pNumRows, const Array< OneD, const NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const AssemblyMapSharedPtr &locToGloMap, const int pNumDir=0) |
| Solve the linear system for given input and output vectors. More... | |
Public Member Functions inherited from Nektar::MultiRegions::GlobalLinSysStaticCond | |
| GlobalLinSysStaticCond (const GlobalLinSysKey &mkey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &locToGloMap) | |
| Constructor for full direct matrix solve. More... | |
| virtual | ~GlobalLinSysStaticCond () |
Static Public Member Functions | |
| static GlobalLinSysSharedPtr | create (const GlobalLinSysKey &pLinSysKey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &pLocToGloMap) |
| Creates an instance of this class. More... | |
Static Public Attributes | |
| static std::string | className |
| Name of class. More... | |
| static std::string | className2 |
Protected Member Functions | |
| virtual void | v_AssembleSchurComplement (boost::shared_ptr< AssemblyMap > pLocToGloMap) |
| virtual GlobalLinSysStaticCondSharedPtr | v_Recurse (const GlobalLinSysKey &mkey, const boost::weak_ptr< ExpList > &pExpList, const DNekScalBlkMatSharedPtr pSchurCompl, const DNekScalBlkMatSharedPtr pBinvD, const DNekScalBlkMatSharedPtr pC, const DNekScalBlkMatSharedPtr pInvD, const boost::shared_ptr< AssemblyMap > &l2gMap) |
Protected Member Functions inherited from Nektar::MultiRegions::GlobalLinSysDirect | |
| virtual void | v_SolveLinearSystem (const int pNumRows, const Array< OneD, const NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const AssemblyMapSharedPtr &locToGloMap, const int pNumDir=0) |
| Solve the linear system for given input and output vectors. More... | |
Protected Member Functions inherited from Nektar::MultiRegions::GlobalLinSys | |
| virtual DNekScalMatSharedPtr | v_GetBlock (unsigned int n) |
| Retrieves the block matrix from n-th expansion using the matrix key provided by the m_linSysKey. More... | |
| virtual DNekScalBlkMatSharedPtr | v_GetStaticCondBlock (unsigned int n) |
| Retrieves a the static condensation block matrices from n-th expansion using the matrix key provided by the m_linSysKey. More... | |
| virtual void | v_DropStaticCondBlock (unsigned int n) |
| Releases the static condensation block matrices from NekManager of n-th expansion using the matrix key provided by the m_linSysKey. More... | |
| PreconditionerSharedPtr | CreatePrecon (AssemblyMapSharedPtr asmMap) |
| Create a preconditioner object from the parameters defined in the supplied assembly map. More... | |
Protected Member Functions inherited from Nektar::MultiRegions::GlobalLinSysStaticCond | |
| virtual DNekScalBlkMatSharedPtr | v_PreSolve (int scLevel, NekVector< NekDouble > &F_GlobBnd) |
| virtual void | v_BasisTransform (Array< OneD, NekDouble > &pInOut, int offset) |
| virtual void | v_BasisInvTransform (Array< OneD, NekDouble > &pInOut) |
| virtual int | v_GetNumBlocks () |
| Get the number of blocks in this system. More... | |
| virtual void | v_Solve (const Array< OneD, const NekDouble > &in, Array< OneD, NekDouble > &out, const AssemblyMapSharedPtr &locToGloMap, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray) |
| Solve the linear system for given input and output vectors using a specified local to global map. More... | |
| virtual void | v_InitObject () |
| virtual void | v_Initialise (const boost::shared_ptr< AssemblyMap > &locToGloMap) |
| Initialise this object. More... | |
| void | SetupTopLevel (const boost::shared_ptr< AssemblyMap > &locToGloMap) |
| Set up the storage for the Schur complement or the top level of the multi-level Schur complement. More... | |
| void | ConstructNextLevelCondensedSystem (const boost::shared_ptr< AssemblyMap > &locToGloMap) |
Private Member Functions | |
| MatrixStorage | DetermineMatrixStorage (const boost::shared_ptr< AssemblyMap > &locToGloMap) |
| Matrix Storage type for known matrices. More... | |
A global linear system.
Definition at line 54 of file GlobalLinSysDirectStaticCond.h.
| Nektar::MultiRegions::GlobalLinSysDirectStaticCond::GlobalLinSysDirectStaticCond | ( | const GlobalLinSysKey & | pKey, |
| const boost::weak_ptr< ExpList > & | pExpList, | ||
| const boost::shared_ptr< AssemblyMap > & | pLocToGloMap | ||
| ) |
Constructor for full direct matrix solve.
For a matrix system of the form
where
and
are invertible, store and assemble a static condensation system, according to a given local to global mapping. m_linSys is constructed by AssembleSchurComplement().
| mKey | Associated matrix key. |
| pLocMatSys | LocalMatrixSystem |
| locToGloMap | Local to global mapping. |
Definition at line 83 of file GlobalLinSysDirectStaticCond.cpp.
References ASSERTL1, Nektar::MultiRegions::eDirectMultiLevelStaticCond, Nektar::MultiRegions::eDirectStaticCond, and Nektar::MultiRegions::GlobalLinSysKey::GetGlobalSysSolnType().
| Nektar::MultiRegions::GlobalLinSysDirectStaticCond::GlobalLinSysDirectStaticCond | ( | const GlobalLinSysKey & | mkey, |
| const boost::weak_ptr< ExpList > & | pExpList, | ||
| const DNekScalBlkMatSharedPtr | pSchurCompl, | ||
| const DNekScalBlkMatSharedPtr | pBinvD, | ||
| const DNekScalBlkMatSharedPtr | pC, | ||
| const DNekScalBlkMatSharedPtr | pInvD, | ||
| const boost::shared_ptr< AssemblyMap > & | locToGloMap | ||
| ) |
Constructor for full direct matrix solve.
Definition at line 105 of file GlobalLinSysDirectStaticCond.cpp.
References Nektar::MultiRegions::GlobalLinSysStaticCond::m_BinvD, Nektar::MultiRegions::GlobalLinSysStaticCond::m_C, Nektar::MultiRegions::GlobalLinSysStaticCond::m_invD, and Nektar::MultiRegions::GlobalLinSysStaticCond::m_schurCompl.
|
virtual |
Definition at line 127 of file GlobalLinSysDirectStaticCond.cpp.
|
inlinestatic |
Creates an instance of this class.
Definition at line 59 of file GlobalLinSysDirectStaticCond.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
|
private |
Matrix Storage type for known matrices.
Definition at line 133 of file GlobalLinSysDirectStaticCond.cpp.
References Nektar::eFULL, Nektar::StdRegions::eHelmholtz, Nektar::StdRegions::eHybridDGHelmBndLam, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eLinearAdvectionDiffusionReaction, Nektar::StdRegions::eLinearAdvectionReaction, Nektar::StdRegions::eMass, Nektar::ePOSITIVE_DEFINITE_SYMMETRIC, Nektar::ePOSITIVE_DEFINITE_SYMMETRIC_BANDED, Nektar::MultiRegions::GlobalMatrixKey::GetMatrixType(), and Nektar::MultiRegions::GlobalLinSys::m_linSysKey.
Referenced by v_AssembleSchurComplement().
|
protectedvirtual |
Assemble the schur complement matrix from the block matrices stored in #m_blkMatrices and the given local to global mapping information.
| locToGloMap | Local to global mapping information. |
Reimplemented from Nektar::MultiRegions::GlobalLinSysStaticCond.
Definition at line 181 of file GlobalLinSysDirectStaticCond.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), DetermineMatrixStorage(), ErrorUtil::efatal, Nektar::eFULL, Nektar::ePOSITIVE_DEFINITE_SYMMETRIC, Nektar::ePOSITIVE_DEFINITE_SYMMETRIC_BANDED, Nektar::eWrapper, Nektar::MultiRegions::GlobalLinSysStaticCond::m_BinvD, Nektar::MultiRegions::GlobalLinSysStaticCond::m_C, Nektar::MultiRegions::GlobalLinSysStaticCond::m_invD, Nektar::MultiRegions::GlobalLinSysDirect::m_linSys, Nektar::MultiRegions::GlobalLinSysStaticCond::m_schurCompl, and NEKERROR.
|
protectedvirtual |
Implements Nektar::MultiRegions::GlobalLinSysStaticCond.
Definition at line 284 of file GlobalLinSysDirectStaticCond.cpp.
|
static |
Name of class.
Registers the class with the Factory.
Definition at line 72 of file GlobalLinSysDirectStaticCond.h.
|
static |
Definition at line 73 of file GlobalLinSysDirectStaticCond.h.
1.8.8