43 #ifdef NEKTAR_USING_PETSC 
   52     namespace MultiRegions
 
   62                     "Full Linear space inverse Preconditioning");
 
   87             const boost::shared_ptr<GlobalLinSys> &plinsys,
 
  101                      "This type of preconditioning is not implemented " 
  104             boost::shared_ptr<MultiRegions::ExpList>
 
  105                 expList=((
m_linsys.lock())->GetLocMat()).lock();
 
  109                     "LinearPreconSolver");
 
  122 #ifdef NEKTAR_USING_PETSC 
  125                     ASSERTL0(
false, 
"Nektar++ has not been compiled with " 
  151 #ifdef NEKTAR_USING_PETSC 
  155                     ASSERTL0(
false, 
"Nektar++ has not been compiled with " 
  166                 const Array<OneD, NekDouble>& pInput,
 
  167                 Array<OneD, NekDouble>& pOutput)
 
  177             const Array<OneD, NekDouble>& pInput,
 
  178             Array<OneD, NekDouble>& pOutput,
 
  179             const Array<OneD, NekDouble>& pNonVertOutput,
 
  180             Array<OneD, NekDouble>& pVertForce)
 
  199                     Array<OneD,NekDouble> In(nglo,0.0);
 
  200                     Array<OneD,NekDouble> Out(nglo,0.0);
 
  203                     for(i = 0; i < nloc; ++i)
 
  205                         val = LocToGloBnd[i];
 
  208                             In[LocToGlo[i]] = pInput[val-nDirFull];
 
  219                         ASSERTL1(pNonVertOutput.num_elements() >= pOutput.num_elements(),
"Non Vert output is not of sufficient length");
 
  220                         Vmath::Vcopy(pOutput.num_elements(),pNonVertOutput,1,pOutput,1);
 
  231                         Vmath::Zero(pVertForce.num_elements(),pVertForce,1);
 
  233                         for(i = 0; i < nloc; ++i)
 
  235                             val = LocToGloBnd[i];
 
  238                                 pOutput[val-nDirFull] = Out[LocToGlo[i]];
 
  240                                 pVertForce[val-nDirFull] = In[LocToGlo[i]];
 
  247                         for(i = 0; i < nloc; ++i)
 
  249                             val = LocToGloBnd[i];
 
  252                                 pOutput[val-nDirFull] = Out[LocToGlo[i]];
 
  259                 ASSERTL0(0,
"Unsupported solver type");