35 #ifndef NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERLOWENERGY_H 
   36 #define NEKTAR_LIB_MULTIREGIONS_PRECONDITIONERLOWENERGY_H 
   48     namespace MultiRegions
 
   58                 const boost::shared_ptr<GlobalLinSys> &plinsys,
 
   59                 const boost::shared_ptr<AssemblyMap>
 
   71                 const boost::shared_ptr<GlobalLinSys> &plinsys,
 
virtual void v_DoPreconditioner(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
 
PreconditionerLowEnergy(const boost::shared_ptr< GlobalLinSys > &plinsys, const AssemblyMapSharedPtr &pLocToGloMap)
 
virtual void v_DoMultiplybyInverseTransposedTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
Multiply by the block tranposed inverse transformation matrix. 
 
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool. 
 
boost::shared_ptr< AssemblyMap > AssemblyMapSharedPtr
 
DNekScalMatSharedPtr m_Rprism
 
Array< OneD, NekDouble > m_multiplicity
 
Array< OneD, NekDouble > m_locToGloSignMult
 
DNekScalBlkMatSharedPtr m_RTBlk
 
DNekScalMatSharedPtr m_RThex
 
virtual void v_InitObject()
 
DNekScalBlkMatSharedPtr m_RBlk
 
#define MULTI_REGIONS_EXPORT
 
boost::shared_ptr< Preconditioner > PreconditionerSharedPtr
 
DNekBlkMatSharedPtr m_BlkMat
 
boost::shared_ptr< HexGeom > HexGeomSharedPtr
 
boost::shared_ptr< DNekMat > DNekMatSharedPtr
 
DNekScalMatSharedPtr m_RTinvtet
 
boost::shared_ptr< TetExp > TetExpSharedPtr
 
DNekScalMatSharedPtr m_Rinvprism
 
boost::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
 
DNekScalBlkMatSharedPtr m_InvRTBlk
 
SpatialDomains::HexGeomSharedPtr CreateRefHexGeom(void)
Sets up the reference hexahedral element needed to construct a low energy basis. 
 
static std::string className
Name of class. 
 
DNekScalMatSharedPtr m_Rhex
 
DNekScalMatSharedPtr m_bnd_mat
 
DNekScalMatSharedPtr m_RTprism
 
virtual DNekScalMatSharedPtr v_TransformedSchurCompl(int offset, const boost::shared_ptr< DNekScalMat > &loc_mat)
Set up the transformed block matrix system. 
 
virtual void v_BuildPreconditioner()
Construct the low energy preconditioner from . 
 
DNekScalMatSharedPtr m_RTinvhex
 
void SetUpReferenceElements(void)
Sets up the reference elements needed by the preconditioner. 
 
static PreconditionerSharedPtr create(const boost::shared_ptr< GlobalLinSys > &plinsys, const boost::shared_ptr< AssemblyMap > &pLocToGloMap)
Creates an instance of this class. 
 
boost::shared_ptr< PreconditionerLowEnergy > PreconditionerLowEnergySharedPtr
 
DNekScalBlkMatSharedPtr m_InvRBlk
 
boost::shared_ptr< DNekScalBlkMat > DNekScalBlkMatSharedPtr
 
virtual void v_DoTransformToLowEnergy(Array< OneD, NekDouble > &pInOut, int offset)
Transform the solution vector vector to low energy. 
 
boost::shared_ptr< PrismExp > PrismExpSharedPtr
 
DNekScalMatSharedPtr m_Rinvtet
 
virtual void v_DoMultiplybyInverseTransformationMatrix(const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput)
Multiply by the block inverse transformation matrix. 
 
virtual void v_DoTransformFromLowEnergy(Array< OneD, NekDouble > &pInOut)
transform the solution vector from low energy back to the original basis. 
 
virtual ~PreconditionerLowEnergy()
 
boost::shared_ptr< AssemblyMap > m_locToGloMap
 
SpatialDomains::TetGeomSharedPtr CreateRefTetGeom(void)
Sets up the reference tretrahedral element needed to construct a low energy basis. 
 
DNekScalMatSharedPtr m_Rinvhex
 
boost::shared_ptr< DNekBlkMat > DNekBlkMatSharedPtr
 
void ModifyPrismTransformationMatrix(LocalRegions::TetExpSharedPtr TetExp, LocalRegions::PrismExpSharedPtr PrismExp, DNekMatSharedPtr Rmodprism, DNekMatSharedPtr RTmodprism)
Modify the prism transformation matrix to align with the tetrahedral modes. 
 
DNekScalMatSharedPtr m_Rtet
 
boost::shared_ptr< PrismGeom > PrismGeomSharedPtr
 
DNekScalMatSharedPtr m_RTtet
 
void SetupBlockTransformationMatrix(void)
 
boost::shared_ptr< TetGeom > TetGeomSharedPtr
 
SpatialDomains::PrismGeomSharedPtr CreateRefPrismGeom(void)
Sets up the reference prismatic element needed to construct a low energy basis. 
 
const boost::weak_ptr< GlobalLinSys > m_linsys
 
void CreateMultiplicityMap(void)
 
DNekScalMatSharedPtr m_RTinvprism