46 namespace MultiRegions
50 "GlobalSysSoln",
"DirectFull",
53 "GlobalSysSoln",
"DirectStaticCond",
56 "GlobalSysSoln",
"DirectMultiLevelStaticCond",
59 "GlobalSysSoln",
"IterativeFull",
62 "GlobalSysSoln",
"IterativeStaticCond",
65 "GlobalSysSoln",
"IterativeMultiLevelStaticCond",
68 "GlobalSysSoln",
"XxtFull",
71 "GlobalSysSoln",
"XxtStaticCond",
74 "GlobalSysSoln",
"XxtMultiLevelStaticCond",
77 "GlobalSysSoln",
"PETScFull",
80 "GlobalSysSoln",
"PETScStaticCond",
83 "GlobalSysSoln",
"PETScMultiLevelStaticCond",
89 "DirectMultiLevelStaticCond");
189 const boost::weak_ptr<ExpList> &pExpList,
190 const boost::shared_ptr<AssemblyMap>
194 m_robinBCInfo(m_expList.lock()->GetRobinBCInfo())
204 Loki::CreateUsingNew,
205 Loki::NoDestroy > Type;
206 return Type::Instance();
229 boost::shared_ptr<MultiRegions::ExpList> expList =
m_expList.lock();
244 StdRegions::VarCoeffMap::const_iterator x;
245 cnt = expList->GetPhys_Offset(n);
250 vVarCoeffMap[x->first] = x->second + cnt;
255 vExp->DetShapeType(),
258 loc_mat = vExp->GetLocMatrix(matkey);
266 int rows = loc_mat->GetRows();
267 int cols = loc_mat->GetColumns();
268 const NekDouble *dat = loc_mat->GetRawPtr();
271 Blas::Dscal(rows*cols,loc_mat->Scale(),new_mat->GetRawPtr(),1);
274 for(rBC =
m_robinBCInfo.find(n)->second;rBC; rBC = rBC->next)
276 vExp->AddRobinMassMatrix(
277 rBC->m_robinID, rBC->m_robinPrimitiveCoeffs, new_mat);
300 boost::shared_ptr<MultiRegions::ExpList> expList =
m_expList.lock();
314 StdRegions::VarCoeffMap::const_iterator x;
315 cnt = expList->GetPhys_Offset(n);
319 vVarCoeffMap[x->first] = x->second + cnt;
324 vExp->DetShapeType(),
329 loc_mat = vExp->GetLocStaticCondMatrix(matkey);
335 tmp_mat = loc_mat->GetBlock(0,0);
338 int rows = tmp_mat->GetRows();
339 int cols = tmp_mat->GetColumns();
340 const NekDouble *dat = tmp_mat->GetRawPtr();
343 Blas::Dscal(rows*cols,tmp_mat->Scale(),new_mat->GetRawPtr(),1);
346 for(rBC =
m_robinBCInfo.find(n)->second;rBC; rBC = rBC->next)
348 vExp->AddRobinMassMatrix(
349 rBC->m_robinID, rBC->m_robinPrimitiveCoeffs, new_mat);
355 loc_mat->SetBlock(0,0,tmp_mat);
369 boost::shared_ptr<MultiRegions::ExpList> expList =
m_expList.lock();
380 StdRegions::VarCoeffMap::const_iterator x;
381 int cnt = expList->GetPhys_Offset(n);
385 vVarCoeffMap[x->first] = x->second + cnt;
390 vExp->DetShapeType(),
395 vExp->DropLocStaticCondMatrix(matkey);
404 const boost::shared_ptr<AssemblyMap>& pLocToGloMap)