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


| Public Member Functions | |
| GlobalLinSysDirect (const GlobalLinSysKey &pKey, const boost::weak_ptr< ExpList > &pExp, const boost::shared_ptr< AssemblyMap > &pLocToGloMap) | |
| Constructor for full direct matrix solve. | |
| 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. | |
| virtual | ~GlobalLinSys () | 
| const GlobalLinSysKey & | GetKey (void) const | 
| Returns the key associated with the system. | |
| 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. | |
| boost::shared_ptr< GlobalLinSys > | GetSharedThisPtr () | 
| Returns a shared pointer to the current object. | |
| 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. | |
| Protected Member Functions | |
| 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. | |
|  Protected Member Functions inherited from Nektar::MultiRegions::GlobalLinSys | |
| virtual int | v_GetNumBlocks () | 
| Get the number of blocks in this system. | |
| virtual DNekScalMatSharedPtr | v_GetBlock (unsigned int n) | 
| Retrieves the block matrix from n-th expansion using the matrix key provided by the m_linSysKey. | |
| 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. | |
| 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. | |
| Protected Attributes | |
| DNekLinSysSharedPtr | m_linSys | 
| Basic linear system object. | |
|  Protected Attributes inherited from Nektar::MultiRegions::GlobalLinSys | |
| const GlobalLinSysKey | m_linSysKey | 
| Key associated with this linear system. | |
| const boost::weak_ptr< ExpList > | m_expList | 
| Local Matrix System. | |
| const map< int, RobinBCInfoSharedPtr > | m_robinBCInfo | 
| Robin boundary info. | |
A global linear system.
Solves a linear system using direct methods.
Consider a linear system  to be solved, where
 to be solved, where  is a matrix of type specified by mkey. This function assembles the global system matrix
 is a matrix of type specified by mkey. This function assembles the global system matrix  out of the elemental submatrices
 out of the elemental submatrices  . This is equivalent to:
. This is equivalent to: 
![\[ \boldsymbol{M}=\boldsymbol{\mathcal{A}}^T \underline{\boldsymbol{M}}^e\boldsymbol{\mathcal{A}}.\]](form_385.png) 
 where the matrix  is a sparse permutation matrix of size
 is a sparse permutation matrix of size  . However, due to the size and sparsity of the matrix
. However, due to the size and sparsity of the matrix  , it is more efficient to assemble the global matrix using the mapping array map
, it is more efficient to assemble the global matrix using the mapping array map ![$[e][i]$](form_273.png) contained in the input argument locToGloMap. The global assembly is then evaluated as:
 contained in the input argument locToGloMap. The global assembly is then evaluated as: 
![\[ \boldsymbol{M}\left[\mathrm{\texttt{map}}[e][i]\right] \left[\mathrm{\texttt{map}}[e][j]\right] =\mathrm{\texttt{sign}}[e][i]\cdot \mathrm{\texttt{sign}}[e][j] \cdot\boldsymbol{M}^e[i][j]\]](form_387.png) 
 where the values sign ![$[e][i]$](form_273.png) ensure the correct connectivity.
 ensure the correct connectivity.
Solves a linear system using single- or multi-level static condensation.
Definition at line 49 of file GlobalLinSysDirect.h.
| 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.
Definition at line 54 of file GlobalLinSysDirect.cpp.
| 
 | virtual | 
Definition at line 63 of file GlobalLinSysDirect.cpp.
| 
 | protectedvirtual | 
Solve the linear system for given input and output vectors.
Implements Nektar::MultiRegions::GlobalLinSys.
Definition at line 68 of file GlobalLinSysDirect.cpp.
References Nektar::eWrapper, and m_linSys.
| 
 | protected | 
Basic linear system object.
Definition at line 61 of file GlobalLinSysDirect.h.
Referenced by Nektar::MultiRegions::GlobalLinSysDirectFull::AssembleFullMatrix(), Nektar::MultiRegions::GlobalLinSysDirectStaticCond::v_AssembleSchurComplement(), and v_SolveLinearSystem().
 1.8.1.2
 1.8.1.2