35#ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
36#define NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
61 return m_exp->DetShapeType();
66 return m_exp->GetBasis(0)->GetNumModes();
89 if (
m_exp->GetBasis(i)->GetBasisKey() !=
90 rhs.
m_exp->GetBasis(i)->GetBasisKey())
92 return (
m_exp->GetBasis(i)->GetBasisKey() <
93 rhs.
m_exp->GetBasis(i)->GetBasisKey());
150 SetWithTimings(std::vector<StdRegions::StdExpansionSharedPtr> pGeom,
158 typedef std::pair<LibUtilities::ShapeType, int>
ElmtOrder;
159 typedef std::map<OperatorType, std::map<ElmtOrder, ImplementationType>>
161 static std::map<size_t, std::map<OpImpTimingKey, OperatorImpMap>>
#define COLLECTIONS_EXPORT
COLLECTIONS_EXPORT OperatorImpMap SetWithTimings(std::vector< StdRegions::StdExpansionSharedPtr > pGeom, OperatorImpMap &impTypes, bool verbose=true)
ImplementationType m_defaultType
ImplementationType GetDefaultImplementationType()
COLLECTIONS_EXPORT void UpdateOptFile(std::string sessName, LibUtilities::CommSharedPtr &comm)
static std::map< size_t, std::map< OpImpTimingKey, OperatorImpMap > > m_opImpMap
COLLECTIONS_EXPORT CollectionOptimisation(LibUtilities::SessionReaderSharedPtr pSession, const int shapedim, ImplementationType defaultType=eStdMat)
~CollectionOptimisation()=default
COLLECTIONS_EXPORT OperatorImpMap GetOperatorImpMap(StdRegions::StdExpansionSharedPtr pExp)
Get Operator Implementation Map from XMl or using default;.
std::map< OperatorType, std::map< ElmtOrder, ImplementationType > > GlobalOpMap
std::pair< LibUtilities::ShapeType, int > ElmtOrder
void ReadCollOps(TiXmlElement *xmlCol, GlobalOpMap &global, bool verbose)
size_t GetMaxCollectionSize()
~OpImpTimingKey(void)=default
Destructor.
StdRegions::StdExpansionSharedPtr m_exp
bool operator<(const OpImpTimingKey &rhs) const
LibUtilities::ShapeType GetShapeType(void) const
OpImpTimingKey(StdRegions::StdExpansionSharedPtr pExp, int ngeoms, int nbases)
Constructor.
std::map< OperatorType, ImplementationType > OperatorImpMap
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
std::shared_ptr< StdExpansion > StdExpansionSharedPtr