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<LocalRegions::ExpansionSharedPtr> 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 GetOperatorImpMap(LocalRegions::ExpansionSharedPtr pExp)
Get Operator Implementation Map from XMl or using default;.
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
~CollectionOptimisation()=default
std::map< OperatorType, std::map< ElmtOrder, ImplementationType > > GlobalOpMap
std::pair< LibUtilities::ShapeType, int > ElmtOrder
COLLECTIONS_EXPORT OperatorImpMap SetWithTimings(std::vector< LocalRegions::ExpansionSharedPtr > pGeom, OperatorImpMap &impTypes, bool verbose=true)
void ReadCollOps(TiXmlElement *xmlCol, GlobalOpMap &global, bool verbose)
size_t GetMaxCollectionSize()
LocalRegions::ExpansionSharedPtr m_exp
~OpImpTimingKey(void)=default
Destructor.
bool operator<(const OpImpTimingKey &rhs) const
LibUtilities::ShapeType GetShapeType(void) const
OpImpTimingKey(LocalRegions::ExpansionSharedPtr 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< Expansion > ExpansionSharedPtr