35#ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
36#define NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
65 return m_exp->DetShapeType();
70 return m_exp->GetBasis(0)->GetNumModes();
93 if (
m_exp->GetBasis(i)->GetBasisKey() !=
94 rhs.
m_exp->GetBasis(i)->GetBasisKey())
96 return (
m_exp->GetBasis(i)->GetBasisKey() <
97 rhs.
m_exp->GetBasis(i)->GetBasisKey());
154 SetWithTimings(std::vector<StdRegions::StdExpansionSharedPtr> pGeom,
162 typedef std::pair<LibUtilities::ShapeType, int>
ElmtOrder;
163 typedef std::map<OperatorType, std::map<ElmtOrder, ImplementationType>>
165 static std::map<size_t, std::map<OpImpTimingKey, OperatorImpMap>>
#define COLLECTIONS_EXPORT
~CollectionOptimisation()
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)
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)
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
The above copyright notice and this permission notice shall be included.