35 #ifndef NEKTAR_LIB_MULTIREGIONS_GLOBALLINSYS_H 
   36 #define NEKTAR_LIB_MULTIREGIONS_GLOBALLINSYS_H 
   41 #include <boost/enable_shared_from_this.hpp> 
   47     namespace MultiRegions
 
   68             const boost::weak_ptr<ExpList>&,
 
   74         class GlobalLinSys: 
public boost::enable_shared_from_this<GlobalLinSys>
 
   79                 const GlobalLinSysKey                &pKey,
 
   80                 const boost::weak_ptr<ExpList>       &pExpList,
 
   81                 const boost::shared_ptr<AssemblyMap> &pLocToGloMap);
 
   87             const inline GlobalLinSysKey &
GetKey(
void) 
const;
 
   90             const inline boost::weak_ptr<ExpList> &
GetLocMat(
void) 
const;
 
   94                 const boost::shared_ptr<AssemblyMap>& pLocToGloMap);
 
  109                 return shared_from_this();
 
  123                 const int                          pNumDir = 0);
 
  157                 const int                          pNumDir) = 0;
 
  161                 const boost::shared_ptr<AssemblyMap>& pLocToGloMap);
 
  194             v_Solve(in,out,locToGloMap,dirForcing);
 
  217             const boost::shared_ptr<AssemblyMap>& pLocToGloMap)
 
std::map< GlobalLinSysKey, GlobalLinSysSharedPtr > GlobalLinSysMap
Mapping between GlobalLinSys objects and their associated keys. 
 
LibUtilities::NekFactory< std::string, GlobalLinSys, const GlobalLinSysKey &, const boost::weak_ptr< ExpList > &, const boost::shared_ptr< AssemblyMap > & > GlobalLinSysFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class...
 
const GlobalLinSysKey & GetKey(void) const 
Returns the key associated with the system. 
 
static Array< OneD, NekDouble > NullNekDouble1DArray
 
boost::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
 
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 a basic matrix system. 
 
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. 
 
#define MULTI_REGIONS_EXPORT
 
boost::shared_ptr< Preconditioner > PreconditionerSharedPtr
 
void DropStaticCondBlock(unsigned int n)
 
void Initialise(const boost::shared_ptr< AssemblyMap > &pLocToGloMap)
 
virtual DNekScalBlkMatSharedPtr v_GetStaticCondBlock(unsigned int n)
Retrieves a the static condensation block matrices from n-th expansion using the matrix key provided ...
 
boost::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
 
virtual void v_Initialise(const boost::shared_ptr< AssemblyMap > &pLocToGloMap)
 
DNekScalMatSharedPtr GetBlock(unsigned int n)
 
virtual void v_Solve(const Array< OneD, const NekDouble > &in, Array< OneD, NekDouble > &out, const AssemblyMapSharedPtr &locToGloMap, const Array< OneD, const NekDouble > &dirForcing=NullNekDouble1DArray)=0
Solve a linear system based on mapping. 
 
virtual DNekScalMatSharedPtr v_GetBlock(unsigned int n)
Retrieves the block matrix from n-th expansion using the matrix key provided by the m_linSysKey...
 
boost::shared_ptr< GlobalLinSys > GetSharedThisPtr()
Returns a shared pointer to the current object. 
 
boost::shared_ptr< DNekScalBlkMat > DNekScalBlkMatSharedPtr
 
boost::shared_ptr< GlobalLinSysMap > GlobalLinSysMapShPtr
Pointer to a GlobalLinSys/key map. 
 
virtual int v_GetNumBlocks()
Get the number of blocks in this system. 
 
virtual void v_InitObject()
 
GlobalLinSys(const GlobalLinSysKey &pKey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &pLocToGloMap)
Constructor for full direct matrix solve. 
 
Describe a linear system. 
 
const GlobalLinSysKey m_linSysKey
Key associated with this linear system. 
 
virtual void v_DropStaticCondBlock(unsigned int n)
Releases the static condensation block matrices from NekManager of n-th expansion using the matrix ke...
 
boost::shared_ptr< GlobalLinSys > GlobalLinSysSharedPtr
Pointer to a GlobalLinSys object. 
 
static std::string lookupIds[]
 
DNekScalBlkMatSharedPtr GetStaticCondBlock(unsigned int n)
 
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...
 
GlobalLinSysFactory & GetGlobalLinSysFactory()
 
const std::map< int, RobinBCInfoSharedPtr > m_robinBCInfo
Robin boundary info. 
 
const boost::weak_ptr< ExpList > & GetLocMat(void) const 
 
PreconditionerSharedPtr CreatePrecon(AssemblyMapSharedPtr asmMap)
Create a preconditioner object from the parameters defined in the supplied assembly map...
 
Provides a generic Factory class. 
 
const boost::weak_ptr< ExpList > m_expList
Local Matrix System.