35#ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
36#define NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
57 std::vector<StdRegions::StdExpansionSharedPtr> pCollExp,
105 return m_ops[op]->GetInputSize(defaultIn);
110 return m_ops[op]->GetOutputSize(defaultOut);
116 return m_ops[op]->GetNumElmt();
120 std::unordered_map<OperatorType, OperatorSharedPtr, EnumHash>
m_ops;
124 std::vector<StdRegions::StdExpansionSharedPtr>
m_collExp;
163 (*
m_ops[op])(inarray, output0, output1, output2, wsp);
174 (*
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.
COLLECTIONS_EXPORT Collection(std::vector< StdRegions::StdExpansionSharedPtr > pCollExp, OperatorImpMap &impTypes)
bool HasOperator(const OperatorType &op)
std::vector< StdRegions::StdExpansionSharedPtr > m_collExp
std::unordered_map< OperatorType, OperatorSharedPtr, EnumHash > m_ops
COLLECTIONS_EXPORT void UpdateVarcoeffs(const OperatorType opType, StdRegions::VarCoeffMap &varcoeffs=StdRegions::NullVarCoeffMap)
COLLECTIONS_EXPORT void Initialise(const OperatorType opType, StdRegions::FactorMap factors=StdRegions::NullFactorMap)
CoalescedGeomDataSharedPtr GetGeomSharedPtr()
OperatorSharedPtr GetOpSharedPtr(const OperatorType &op)
CoalescedGeomDataSharedPtr m_geomData
void ApplyOperator(const OperatorType &op, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &output)
int GetInputSize(const OperatorType &op, bool defaultIn=true)
COLLECTIONS_EXPORT void UpdateFactors(const OperatorType opType, StdRegions::FactorMap factors)
Update the factor map in operator.
int GetOutputSize(const OperatorType &op, bool defaultOut=true)
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
StdRegions::ConstFactorMap factors
static Array< OneD, NekDouble > NullNekDouble1DArray