35 #ifndef NEKTAR_LIB_MULTIREGIONS_PRECONDITIONER_H    36 #define NEKTAR_LIB_MULTIREGIONS_PRECONDITIONER_H    49     namespace MultiRegions
    60             const std::shared_ptr<GlobalLinSys>&,
    68                          const std::shared_ptr<GlobalLinSys> &plinsys,
    69                      const AssemblyMapSharedPtr &pLocToGloMap);
   129                    int offset, 
int bndoffset, 
   130                    const std::shared_ptr<DNekScalMat > &loc_mat);
   140                         int offset, 
int bndoffset,
   141                         const std::shared_ptr<DNekScalMat > &loc_mat);
   199                             int offset, 
int bndoffset,
   200                             const std::shared_ptr<DNekScalMat > &loc_mat)
 const DNekScalBlkMatSharedPtr & GetBlockCMatrix() const
 
static std::string lookupIds[]
 
Preconditioner(const std::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
 
LibUtilities::CommSharedPtr m_comm
 
virtual DNekScalMatSharedPtr v_TransformedSchurCompl(int offset, int bndoffset, const std::shared_ptr< DNekScalMat > &loc_mat)
Get block elemental transposed transformation matrix . 
 
virtual void v_DoMultiplybyInverseTransposedTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
Multiply by the block transposed inverse transformation matrix. 
 
static Array< OneD, NekDouble > NullNekDouble1DArray
 
std::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
 
const DNekScalBlkMatSharedPtr & GetBlockTransformationMatrix() const
 
void DoMultiplybyInverseTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
 
std::shared_ptr< DNekScalBlkMat > DNekScalBlkMatSharedPtr
 
const std::weak_ptr< GlobalLinSys > m_linsys
 
const DNekScalBlkMatSharedPtr & GetBlockSchurCompl() const
 
virtual void v_DoPreconditioner(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
Apply a preconditioner to the conjugate gradient method. 
 
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object. 
 
#define MULTI_REGIONS_EXPORT
 
PreconFactory & GetPreconFactory()
 
virtual void v_DoPreconditionerWithNonVertOutput(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const Array< OneD, NekDouble > &pNonVertOutput, Array< OneD, NekDouble > &pVertForce)
Apply a preconditioner to the conjugate gradient method with an output for non-vertex degrees of free...
 
std::shared_ptr< DNekMat > DNekMatSharedPtr
 
virtual void v_DoMultiplybyInverseTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
Multiply by the block inverse transformation matrix. 
 
LibUtilities::NekFactory< std::string, Preconditioner, const std::shared_ptr< GlobalLinSys > &, const std::shared_ptr< AssemblyMap > &> PreconFactory
 
std::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
 
DNekMatSharedPtr m_preconditioner
 
void DoMultiplybyInverseTransposedTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
 
const DNekScalBlkMatSharedPtr & GetBlockTransformedSchurCompl() const
 
void DoTransformFromLowEnergy(Array< OneD, NekDouble > &pInOut)
 
static PreconditionerSharedPtr NullPreconditionerSharedPtr
 
const DNekScalBlkMatSharedPtr & GetBlockTransposedTransformationMatrix() const
 
virtual void v_DoTransformFromLowEnergy(Array< OneD, NekDouble > &pInput)
Transform from low energy basis to orignal basis. 
 
Array< OneD, NekDouble > AssembleStaticCondGlobalDiagonals()
Performs global assembly of diagonal entries to global Schur complement matrix. 
 
void DoPreconditioner(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
 
virtual void v_DoTransformToLowEnergy(Array< OneD, NekDouble > &pInOut, int offset)
Transform from original basis to low energy basis. 
 
void DoPreconditionerWithNonVertOutput(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const Array< OneD, NekDouble > &pNonVertOutput, Array< OneD, NekDouble > &pVertForce=NullNekDouble1DArray)
 
void DoTransformToLowEnergy(Array< OneD, NekDouble > &pInOut, int offset)
 
void BuildPreconditioner()
 
virtual void v_BuildPreconditioner()
 
void NullPreconditioner(void)
 
virtual ~Preconditioner()
 
std::shared_ptr< Preconditioner > PreconditionerSharedPtr
 
const DNekScalBlkMatSharedPtr & GetBlockInvDMatrix() const
 
virtual void v_InitObject()
 
std::weak_ptr< AssemblyMap > m_locToGloMap
 
DNekScalMatSharedPtr TransformedSchurCompl(int offset, int bndoffset, const std::shared_ptr< DNekScalMat > &loc_mat)
 
PreconditionerType m_preconType
 
Provides a generic Factory class.