35#ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
36#define NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
57 std::vector<LocalRegions::ExpansionSharedPtr> pCollExp,
109 return m_ops[op]->GetInputSize();
114 return m_ops[op]->GetOutputSize();
119 return m_ops[op]->GetPhysSize();
124 return m_ops[op]->GetCoeffSize();
130 return m_ops[op]->GetNumElmt();
134 std::unordered_map<OperatorType, OperatorSharedPtr>
m_ops;
138 std::vector<LocalRegions::ExpansionSharedPtr>
m_collExp;
177 (*
m_ops[op])(inarray, output0, output1, output2, wsp);
188 (*
m_ops[op])(dir, inarray, output, wsp);
#define COLLECTIONS_EXPORT
OperatorImpMap m_impTypes
int GetNumElmt(const OperatorType &op)
Return the number of elements in collection attached to.
std::vector< LocalRegions::ExpansionSharedPtr > & GetExpVector()
int GetCoeffSize(const OperatorType &op)
bool HasOperator(const OperatorType &op)
COLLECTIONS_EXPORT void UpdateVarcoeffs(const OperatorType opType, StdRegions::VarCoeffMap &varcoeffs=StdRegions::NullVarCoeffMap)
std::unordered_map< OperatorType, OperatorSharedPtr > m_ops
int GetOutputSize(const OperatorType &op)
COLLECTIONS_EXPORT void Initialise(const OperatorType opType, StdRegions::FactorMap factors=StdRegions::NullFactorMap)
int GetInputSize(const OperatorType &op)
CoalescedGeomDataSharedPtr GetGeomSharedPtr()
OperatorSharedPtr GetOpSharedPtr(const OperatorType &op)
int GetPhysSize(const OperatorType &op)
CoalescedGeomDataSharedPtr m_geomData
std::vector< LocalRegions::ExpansionSharedPtr > m_collExp
void ApplyOperator(const OperatorType &op, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &output)
COLLECTIONS_EXPORT void UpdateFactors(const OperatorType opType, StdRegions::FactorMap factors)
Update the factor map in operator.
std::map< OperatorType, ImplementationType > OperatorImpMap
std::shared_ptr< CollectionVector > CollectionVectorSharedPtr
std::shared_ptr< Operator > OperatorSharedPtr
Shared pointer to an Operator object.
std::shared_ptr< CoalescedGeomData > CoalescedGeomDataSharedPtr
std::vector< Collection > CollectionVector
static FactorMap NullFactorMap
static VarCoeffMap NullVarCoeffMap
std::map< StdRegions::VarCoeffType, VarCoeffEntry > VarCoeffMap
static Array< OneD, NekDouble > NullNekDouble1DArray