35 #ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
36 #define NEKTAR_LIBRARY_COLLECTIONS_COLLECTIONOPTIMISATION_H
53 int ngeoms,
int nbases):
81 if(
m_exp->GetBasis(i)->GetBasisKey() !=
82 rhs.
m_exp->GetBasis(i)->GetBasisKey() )
84 return (
m_exp->GetBasis(i)->GetBasisKey() <
85 rhs.
m_exp->GetBasis(i)->GetBasisKey());
144 std::vector<StdRegions::StdExpansionSharedPtr> pGeom,
146 bool verbose =
true);
154 typedef std::pair<LibUtilities::ShapeType, int>
ElmtOrder;
157 std::map<OperatorType, std::map<ElmtOrder, ImplementationType> >
m_global;
#define COLLECTIONS_EXPORT
~CollectionOptimisation()
COLLECTIONS_EXPORT OperatorImpMap SetWithTimings(std::vector< StdRegions::StdExpansionSharedPtr > pGeom, OperatorImpMap &impTypes, bool verbose=true)
unsigned int GetMaxCollectionSize()
ImplementationType m_defaultType
ImplementationType GetDefaultImplementationType()
std::map< OperatorType, std::map< ElmtOrder, ImplementationType > > m_global
static std::map< OpImpTimingKey, OperatorImpMap > m_opImpMap
COLLECTIONS_EXPORT OperatorImpMap GetOperatorImpMap(StdRegions::StdExpansionSharedPtr pExp)
Get Operator Implementation Map from XMl or using default;.
std::pair< LibUtilities::ShapeType, int > ElmtOrder
COLLECTIONS_EXPORT CollectionOptimisation(LibUtilities::SessionReaderSharedPtr pSession, ImplementationType defaultType=eStdMat)
unsigned int m_maxCollSize
~OpImpTimingKey(void)
Destructor.
StdRegions::StdExpansionSharedPtr m_exp
bool operator<(const OpImpTimingKey &rhs) const
OpImpTimingKey(StdRegions::StdExpansionSharedPtr pExp, int ngeoms, int nbases)
Constructor.
std::map< OperatorType, ImplementationType > OperatorImpMap
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< StdExpansion > StdExpansionSharedPtr
The above copyright notice and this permission notice shall be included.