45     namespace MultiRegions
 
   57         string GlobalLinSysXxtStaticCond::className
 
   60                     GlobalLinSysXxtStaticCond::create,
 
   61                     "Iterative static condensation.");
 
   63         string GlobalLinSysXxtStaticCond::className2
 
   65                     "XxtMultiLevelStaticCond",
 
   66                     GlobalLinSysXxtStaticCond::create,
 
   67                     "Xxt multi-level static condensation.");
 
   88         GlobalLinSysXxtStaticCond::GlobalLinSysXxtStaticCond(
 
   90                      const boost::weak_ptr<ExpList> &pExpList,
 
   91                      const boost::shared_ptr<AssemblyMap>
 
   99                      "This constructor is only valid when using static " 
  102                         == pLocToGloMap->GetGlobalSysSolnType(),
 
  103                      "The local to global map is not set up for the requested " 
  113                      const boost::weak_ptr<ExpList> &pExpList,
 
  118                      const boost::shared_ptr<AssemblyMap>
 
  145                     const boost::shared_ptr<AssemblyMap> &pLocToGloMap)
 
  148                                     = pLocToGloMap->GetLocalToGlobalBndMap();
 
  149             unsigned int nGlo       = pLocToGloMap->GetNumGlobalBndCoeffs();
 
  150             unsigned int nEntries   = pLocToGloMap->GetNumLocalBndCoeffs();
 
  155             for (i = 0; i < nEntries; ++i)
 
  157                 vCounts[vMap[i]] += 1.0;
 
  161             pLocToGloMap->UniversalAssembleBnd(vCounts);
 
  165             for (i = 0; i < nEntries; ++i)
 
  170             m_map = pLocToGloMap->GetLocalToGlobalBndMap();
 
  179             boost::shared_ptr<AssemblyMap> pLocToGloMap)
 
  184             unsigned int nElmt = 
m_schurCompl->GetNumberOfBlockRows();
 
  186             unsigned int iCount     = 0;
 
  187             unsigned int rCount     = 0;
 
  188             unsigned int nRows      = 0;
 
  189             unsigned int nEntries   = 0;
 
  190             unsigned int numDirBnd  = pLocToGloMap->GetNumGlobalDirBndCoeffs();
 
  191             unsigned int nLocal     = pLocToGloMap->GetNumLocalBndCoeffs();
 
  193                                     = pLocToGloMap->GetLocalToGlobalBndSign();
 
  194             bool doSign = pLocToGloMap->GetSignChange();
 
  195             unsigned int i = 0, j = 0, k = 0, n = 0;
 
  201             for (n = 0; n < nElmt; ++n)
 
  204                 vSizes[n] = loc_mat->GetRows();
 
  205                 nEntries += vSizes[n]*vSizes[n];
 
  218             for(n = iCount = 0; n < nElmt; ++n)
 
  221                 nRows = loc_mat->GetRows();
 
  223                 for(i = 0; i < nRows; ++i)
 
  225                     gid1 = pLocToGloMap->GetLocalToGlobalBndMap(iCount + i);
 
  226                     for(j = 0; j < nRows; ++j)
 
  228                             k = rCount + i*vSizes[n] + j;
 
  229                             m_Ai[k] = iCount + i;
 
  230                             m_Aj[k] = iCount + j;
 
  231                             m_Ar[k] = (*loc_mat)(i,j);
 
  234                                 m_Ar[k] *= vMapSign[iCount+i]*vMapSign[iCount+j];
 
  240                     if (gid1 < numDirBnd)
 
  247                             = pLocToGloMap->GetGlobalToUniversalBndMap()[gid1];
 
  251                 rCount += vSizes[n]*vSizes[n];
 
  265             const boost::weak_ptr<ExpList>       &pExpList,
 
  270             const boost::shared_ptr<AssemblyMap> &l2gMap)
 
  274                     mkey, pExpList, pSchurCompl, pBinvD, pC, pInvD, l2gMap);
 
  275             sys->Initialise(l2gMap);
 
virtual ~GlobalLinSysXxtStaticCond()
 
GlobalSysSolnType GetGlobalSysSolnType() const 
Return the associated solution type. 
 
DNekScalBlkMatSharedPtr m_schurCompl
Block Schur complement matrix. 
 
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
 
Array< OneD, double > m_Ar
 
DNekScalBlkMatSharedPtr m_C
Block  matrix. 
 
boost::shared_ptr< GlobalLinSysXxtStaticCond > GlobalLinSysXxtStaticCondSharedPtr
 
DNekScalBlkMatSharedPtr m_invD
Block  matrix. 
 
virtual void v_AssembleSchurComplement(boost::shared_ptr< AssemblyMap > locToGloMap)
Assemble the Schur complement matrix. 
 
boost::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
 
boost::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object. 
 
boost::shared_ptr< DNekScalBlkMat > DNekScalBlkMatSharedPtr
 
boost::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object. 
 
Describe a linear system. 
 
static struct crs_data * Init(unsigned int pRank, const Nektar::Array< OneD, unsigned long > pId, const Nektar::Array< OneD, unsigned int > pAi, const Nektar::Array< OneD, unsigned int > pAj, const Nektar::Array< OneD, NekDouble > pAr, const LibUtilities::CommSharedPtr &pComm)
Initialise the matrix-solve. 
 
GlobalLinSysXxtStaticCond(const GlobalLinSysKey &mkey, const boost::weak_ptr< ExpList > &pExpList, const boost::shared_ptr< AssemblyMap > &locToGloMap)
Constructor for full direct matrix solve. 
 
Array< OneD, unsigned int > m_Aj
 
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 > &locToGloMap)
 
Array< OneD, unsigned int > m_Ai
 
boost::shared_ptr< AssemblyMap > m_locToGloMap
Local to global map. 
 
GlobalLinSysFactory & GetGlobalLinSysFactory()
 
void nektar_crs_stats(struct crs_data *data)
 
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
 
struct Xxt::crs_data * m_crsData
 
void CreateMap(const boost::shared_ptr< AssemblyMap > &pLocToGloMap)
 
DNekScalBlkMatSharedPtr m_BinvD
Block  matrix. 
 
Array< OneD, NekDouble > m_locToGloSignMult
 
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory. 
 
boost::shared_ptr< GlobalLinSysStaticCond > GlobalLinSysStaticCondSharedPtr
 
const boost::weak_ptr< ExpList > m_expList
Local Matrix System.