Nektar++
|
Classes | |
class | BwdTrans_Helper |
Backward transform help class to calculate the size of the collection that is given as an input and as an output to the BwdTrans Operator. The size evaluation takes into account the conversion from the coefficient space to the physical space. More... | |
class | BwdTrans_IterPerExp |
Backward transform operator using default StdRegions operator. More... | |
class | BwdTrans_MatrixFree |
Backward transform operator using matrix free operators. More... | |
class | BwdTrans_NoCollection |
Backward transform operator using LocalRegions implementation. More... | |
class | BwdTrans_StdMat |
Backward transform operator using standard matrix approach. More... | |
class | BwdTrans_SumFac_Hex |
Backward transform operator using sum-factorisation (Hex) More... | |
class | BwdTrans_SumFac_Prism |
Backward transform operator using sum-factorisation (Prism) More... | |
class | BwdTrans_SumFac_Pyr |
Backward transform operator using sum-factorisation (Pyr) More... | |
class | BwdTrans_SumFac_Quad |
Backward transform operator using sum-factorisation (Quad) More... | |
class | BwdTrans_SumFac_Seg |
Backward transform operator using sum-factorisation (Segment) More... | |
class | BwdTrans_SumFac_Tet |
Backward transform operator using sum-factorisation (Tet) More... | |
class | BwdTrans_SumFac_Tri |
Backward transform operator using sum-factorisation (Tri) More... | |
class | CoalescedGeomData |
class | Collection |
Collection. More... | |
class | CollectionOptimisation |
class | Helmholtz_Helper |
Helmholtz help class to calculate the size of the collection that is given as an input and as an output to the Helmholtz Operator. The size evaluation takes into account that the evaluation of the Helmholtz operator takes input from the coeff space and gives the output in the coeff space too. More... | |
class | Helmholtz_IterPerExp |
Helmholtz operator using LocalRegions implementation. More... | |
class | Helmholtz_MatrixFree |
Helmholtz operator using matrix free operators. More... | |
class | Helmholtz_NoCollection |
Helmholtz operator using LocalRegions implementation. More... | |
class | IProductWRTBase_Helper |
Inner product help class to calculate the size of the collection that is given as an input and as an output to the IProductWRTBase Operator. The size evaluation takes into account the conversion from the physical space to the coefficient space. More... | |
class | IProductWRTBase_IterPerExp |
Inner product operator using element-wise operation. More... | |
class | IProductWRTBase_MatrixFree |
Inner product operator using operator using matrix free operators. More... | |
class | IProductWRTBase_NoCollection |
Inner product operator using original MultiRegions implementation. More... | |
class | IProductWRTBase_StdMat |
Inner product operator using standard matrix approach. More... | |
class | IProductWRTBase_SumFac_Hex |
Inner Product operator using sum-factorisation (Hex) More... | |
class | IProductWRTBase_SumFac_Prism |
Inner Product operator using sum-factorisation (Prism) More... | |
class | IProductWRTBase_SumFac_Pyr |
Inner Product operator using sum-factorisation (Pyr) More... | |
class | IProductWRTBase_SumFac_Quad |
Inner product operator using sum-factorisation (Quad) More... | |
class | IProductWRTBase_SumFac_Seg |
Inner product operator using sum-factorisation (Segment) More... | |
class | IProductWRTBase_SumFac_Tet |
Inner product operator using sum-factorisation (Tet) More... | |
class | IProductWRTBase_SumFac_Tri |
Inner product operator using sum-factorisation (Tri) More... | |
class | IProductWRTDerivBase_Helper |
Inner product deriv base help class to calculate the size of the collection that is given as an input and as an output to the IProductWRTDerivBase Operator. The size evaluation takes into account the conversion from the physical space to the coefficient space. More... | |
class | IProductWRTDerivBase_IterPerExp |
Inner product WRT deriv base operator using element-wise operation. More... | |
class | IProductWRTDerivBase_MatrixFree |
Inner product operator using operator using matrix free operators. More... | |
class | IProductWRTDerivBase_NoCollection |
Inner product WRT deriv base operator using LocalRegions implementation. More... | |
class | IProductWRTDerivBase_StdMat |
Inner product WRT deriv base operator using standard matrix approach. More... | |
class | IProductWRTDerivBase_SumFac_Hex |
Inner product WRT deriv base operator using sum-factorisation (Hex) More... | |
class | IProductWRTDerivBase_SumFac_Prism |
Inner product WRT deriv base operator using sum-factorisation (Prism) More... | |
class | IProductWRTDerivBase_SumFac_Pyr |
Inner product WRT deriv base operator using sum-factorisation (Pyr) More... | |
class | IProductWRTDerivBase_SumFac_Quad |
Inner product WRT deriv base operator using sum-factorisation (Quad) More... | |
class | IProductWRTDerivBase_SumFac_Seg |
Inner product WRT deriv base operator using sum-factorisation (Segment) More... | |
class | IProductWRTDerivBase_SumFac_Tet |
Inner product WRT deriv base operator using sum-factorisation (Tet) More... | |
class | IProductWRTDerivBase_SumFac_Tri |
Inner product WRT deriv base operator using sum-factorisation (Tri) More... | |
class | LinearAdvectionDiffusionReaction_Helper |
LinearAdvectionDiffusionReaction help class to calculate the size of the collection that is given as an input and as an output to the LinearAdvectionDiffusionReaction Operator. The size evaluation takes into account that the evaluation of the LinearAdvectionDiffusionReaction operator takes input from the coeff space and gives the output in the coeff space too. More... | |
class | LinearAdvectionDiffusionReaction_IterPerExp |
LinearAdvectionDiffusionReaction operator using LocalRegions implementation. More... | |
class | LinearAdvectionDiffusionReaction_MatrixFree |
class | LinearAdvectionDiffusionReaction_NoCollection |
LinearAdvectionDiffusionReaction operator using LocalRegions implementation. More... | |
class | MatrixFreeBase |
class | Operator |
Base class for operators on a collection of elements. More... | |
class | OpImpTimingKey |
class | PhysDeriv_Helper |
Physical Derivative help class to calculate the size of the collection that is given as an input and as an output to the PhysDeriv Operator. The Operator evaluation is happenning in the physical space and the output is expected to be part of the physical space too. More... | |
class | PhysDeriv_IterPerExp |
Phys deriv operator using element-wise operation. More... | |
class | PhysDeriv_MatrixFree |
Phys deriv operator using matrix free operators. More... | |
class | PhysDeriv_NoCollection |
Phys deriv operator using original LocalRegions implementation. More... | |
class | PhysDeriv_StdMat |
Phys deriv operator using standard matrix approach. More... | |
class | PhysDeriv_SumFac_Hex |
Phys deriv operator using sum-factorisation (Hex) More... | |
class | PhysDeriv_SumFac_Prism |
Phys deriv operator using sum-factorisation (Prism) More... | |
class | PhysDeriv_SumFac_Pyr |
Phys deriv operator using sum-factorisation (Pyramid) More... | |
class | PhysDeriv_SumFac_Quad |
Phys deriv operator using sum-factorisation (Quad) More... | |
class | PhysDeriv_SumFac_Seg |
Phys deriv operator using sum-factorisation (Segment) More... | |
class | PhysDeriv_SumFac_Tet |
Phys deriv operator using sum-factorisation (Tet) More... | |
class | PhysDeriv_SumFac_Tri |
Phys deriv operator using sum-factorisation (Tri) More... | |
class | PhysInterp1DScaled_Helper |
PhysInterp1DScaled help class to calculate the size of the collection that is given as an input and as an output to the PhysInterp1DScaled Operator. The size evaluation takes into account that both the input and the output array belong to the physical space and that the output array can have either a larger, or a smaller size than the input array. More... | |
class | PhysInterp1DScaled_MatrixFree |
PhysInterp1DScaled operator using matrix free implementation. More... | |
class | PhysInterp1DScaled_NoCollection |
PhysInterp1DScaled operator using LocalRegions implementation. More... | |
Typedefs | |
using | vec_t = simd< NekDouble > |
typedef std::vector< vec_t, tinysimd::allocator< vec_t > > | VecVec_t |
typedef std::shared_ptr< CoalescedGeomData > | CoalescedGeomDataSharedPtr |
typedef std::vector< Collection > | CollectionVector |
typedef std::shared_ptr< CollectionVector > | CollectionVectorSharedPtr |
typedef bool | ExpansionIsNodal |
typedef std::tuple< LibUtilities::ShapeType, OperatorType, ImplementationType, ExpansionIsNodal > | OperatorKey |
Key for describing an Operator. More... | |
typedef Nektar::LibUtilities::NekFactory< OperatorKey, Operator, std::vector< StdRegions::StdExpansionSharedPtr >, CoalescedGeomDataSharedPtr, StdRegions::FactorMap > | OperatorFactory |
Operator factory definition. More... | |
typedef std::map< OperatorType, ImplementationType > | OperatorImpMap |
typedef std::shared_ptr< Operator > | OperatorSharedPtr |
Shared pointer to an Operator object. More... | |
Enumerations | |
enum | GeomData { eJac , eJacWithStdWeights , eDerivFactors } |
enum | OperatorType { eBwdTrans , eHelmholtz , eLinearAdvectionDiffusionReaction , eIProductWRTBase , eIProductWRTDerivBase , ePhysDeriv , ePhysInterp1DScaled , SIZE_OperatorType } |
enum | ImplementationType { eNoImpType , eNoCollection , eIterPerExp , eStdMat , eSumFac , eMatrixFree , SIZE_ImplementationType } |
Functions | |
void | QuadIProduct (bool colldir0, bool colldir1, int numElmt, int nquad0, int nquad1, int nmodes0, int nmodes1, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
void | TriIProduct (bool sortTopVertex, int numElmt, int nquad0, int nquad1, int nmodes0, int nmodes1, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
void | HexIProduct (bool colldir0, bool colldir1, bool colldir2, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
void | PrismIProduct (bool sortTopVert, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
void | PyrIProduct (bool sortTopVert, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
void | TetIProduct (bool sortTopEdge, int numElmt, int nquad0, int nquad1, int nquad2, int nmodes0, int nmodes1, int nmodes2, const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &jac, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) |
OperatorFactory & | GetOperatorFactory () |
Returns the singleton Operator factory object. More... | |
OperatorImpMap | SetFixedImpType (ImplementationType defaultType) |
simple Operator Implementation Map generator More... | |
bool | operator< (OperatorKey const &p1, OperatorKey const &p2) |
Less-than comparison operator for OperatorKey objects. More... | |
std::ostream & | operator<< (std::ostream &os, OperatorKey const &p) |
Stream output operator for OperatorKey objects. More... | |
Variables | |
static CoalescedGeomDataSharedPtr | GeomDataNull |
const char *const | OperatorTypeMap [] |
const char *const | OperatorTypeMap1 [] |
const char *const | ImplementationTypeMap [] |
const char *const | ImplementationTypeMap1 [] |
typedef std::shared_ptr< CoalescedGeomData > Nektar::Collections::CoalescedGeomDataSharedPtr |
Definition at line 88 of file CoalescedGeomData.h.
typedef std::vector<Collection> Nektar::Collections::CollectionVector |
Definition at line 128 of file Collection.h.
typedef std::shared_ptr<CollectionVector> Nektar::Collections::CollectionVectorSharedPtr |
Definition at line 129 of file Collection.h.
typedef bool Nektar::Collections::ExpansionIsNodal |
Definition at line 113 of file Operator.h.
Operator factory definition.
Definition at line 126 of file Operator.h.
typedef std::map<OperatorType, ImplementationType> Nektar::Collections::OperatorImpMap |
Definition at line 131 of file Operator.h.
typedef std::tuple<LibUtilities::ShapeType, OperatorType, ImplementationType, ExpansionIsNodal> Nektar::Collections::OperatorKey |
Key for describing an Operator.
Definition at line 120 of file Operator.h.
typedef std::shared_ptr<Operator> Nektar::Collections::OperatorSharedPtr |
Shared pointer to an Operator object.
Definition at line 235 of file Operator.h.
using Nektar::Collections::vec_t = typedef simd<NekDouble> |
Definition at line 47 of file CoalescedGeomData.h.
typedef std::vector<vec_t, tinysimd::allocator<vec_t> > Nektar::Collections::VecVec_t |
Definition at line 48 of file CoalescedGeomData.h.
Enumerator | |
---|---|
eJac | |
eJacWithStdWeights | |
eDerivFactors |
Definition at line 50 of file CoalescedGeomData.h.
Enumerator | |
---|---|
eNoImpType | |
eNoCollection | |
eIterPerExp | |
eStdMat | |
eSumFac | |
eMatrixFree | |
SIZE_ImplementationType |
Definition at line 86 of file Operator.h.
Enumerator | |
---|---|
eBwdTrans | |
eHelmholtz | |
eLinearAdvectionDiffusionReaction | |
eIProductWRTBase | |
eIProductWRTDerivBase | |
ePhysDeriv | |
ePhysInterp1DScaled | |
SIZE_OperatorType |
Definition at line 62 of file Operator.h.
OperatorFactory & Nektar::Collections::GetOperatorFactory | ( | ) |
Returns the singleton Operator factory object.
Definition at line 44 of file Operator.cpp.
Referenced by Nektar::Collections::BwdTrans_MatrixFree::BwdTrans_MatrixFree(), Nektar::Collections::Helmholtz_MatrixFree::Helmholtz_MatrixFree(), Nektar::Collections::Collection::Initialise(), Nektar::Collections::IProductWRTBase_MatrixFree::IProductWRTBase_MatrixFree(), Nektar::Collections::IProductWRTDerivBase_MatrixFree::IProductWRTDerivBase_MatrixFree(), Nektar::Collections::LinearAdvectionDiffusionReaction_MatrixFree::LinearAdvectionDiffusionReaction_MatrixFree(), Nektar::Collections::PhysDeriv_MatrixFree::PhysDeriv_MatrixFree(), Nektar::Collections::PhysInterp1DScaled_MatrixFree::PhysInterp1DScaled_MatrixFree(), and Nektar::Collections::CollectionOptimisation::SetWithTimings().
void Nektar::Collections::HexIProduct | ( | bool | colldir0, |
bool | colldir1, | ||
bool | colldir2, | ||
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nquad2, | ||
int | nmodes0, | ||
int | nmodes1, | ||
int | nmodes2, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | base2, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 170 of file IProduct.cpp.
References Blas::Dgemm(), Vmath::Vcopy(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Hex::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Hex::operator()().
bool Nektar::Collections::operator< | ( | OperatorKey const & | p1, |
OperatorKey const & | p2 | ||
) |
Less-than comparison operator for OperatorKey objects.
Definition at line 78 of file Operator.cpp.
std::ostream & Nektar::Collections::operator<< | ( | std::ostream & | os, |
OperatorKey const & | p | ||
) |
Stream output operator for OperatorKey objects.
Definition at line 120 of file Operator.cpp.
References ImplementationTypeMap, OperatorTypeMap, and CellMLToNektar.cellml_metadata::p.
void Nektar::Collections::PrismIProduct | ( | bool | sortTopVert, |
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nquad2, | ||
int | nmodes0, | ||
int | nmodes1, | ||
int | nmodes2, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | base2, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 338 of file IProduct.cpp.
References Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdPrismData::getNumberOfCoefficients(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Prism::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Prism::operator()().
void Nektar::Collections::PyrIProduct | ( | bool | sortTopVert, |
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nquad2, | ||
int | nmodes0, | ||
int | nmodes1, | ||
int | nmodes2, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | base2, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 405 of file IProduct.cpp.
References ASSERTL1, Blas::Ddot(), Blas::Dgemm(), Nektar::LibUtilities::StdPyrData::getNumberOfCoefficients(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Pyr::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Pyr::operator()().
void Nektar::Collections::QuadIProduct | ( | bool | colldir0, |
bool | colldir1, | ||
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nmodes0, | ||
int | nmodes1, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 46 of file IProduct.cpp.
References Blas::Dgemm(), Vmath::Vcopy(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Quad::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Quad::operator()().
OperatorImpMap Nektar::Collections::SetFixedImpType | ( | ImplementationType | defaultType | ) |
simple Operator Implementation Map generator
Definition at line 51 of file Operator.cpp.
References SIZE_OperatorType.
void Nektar::Collections::TetIProduct | ( | bool | sortTopEdge, |
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nquad2, | ||
int | nmodes0, | ||
int | nmodes1, | ||
int | nmodes2, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | base2, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 496 of file IProduct.cpp.
References Blas::Ddot(), Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdTetData::getNumberOfCoefficients(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Tet::operator()().
void Nektar::Collections::TriIProduct | ( | bool | sortTopVertex, |
int | numElmt, | ||
int | nquad0, | ||
int | nquad1, | ||
int | nmodes0, | ||
int | nmodes1, | ||
const Array< OneD, const NekDouble > & | base0, | ||
const Array< OneD, const NekDouble > & | base1, | ||
const Array< OneD, const NekDouble > & | jac, | ||
const Array< OneD, const NekDouble > & | input, | ||
Array< OneD, NekDouble > & | output, | ||
Array< OneD, NekDouble > & | wsp | ||
) |
Definition at line 128 of file IProduct.cpp.
References Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdTriData::getNumberOfCoefficients(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Tri::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Tri::operator()().
|
static |
Definition at line 90 of file CoalescedGeomData.h.
const char* const Nektar::Collections::ImplementationTypeMap[] |
Definition at line 97 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::CollectionOptimisation(), operator<<(), Nektar::Collections::CollectionOptimisation::ReadCollOps(), and Nektar::Collections::CollectionOptimisation::UpdateOptFile().
const char* const Nektar::Collections::ImplementationTypeMap1[] |
Definition at line 104 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::SetWithTimings().
const char* const Nektar::Collections::OperatorTypeMap[] |
Definition at line 74 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::CollectionOptimisation(), Nektar::Collections::Collection::Initialise(), operator<<(), Nektar::Collections::CollectionOptimisation::ReadCollOps(), and Nektar::Collections::CollectionOptimisation::UpdateOptFile().
const char* const Nektar::Collections::OperatorTypeMap1[] |
Definition at line 82 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::SetWithTimings().