Nektar++
|
Classes | |
class | BwdTrans_StdMat |
Backward transform operator using standard matrix approach. More... | |
class | BwdTrans_MatrixFree |
Backward transform operator using matrix free operators. More... | |
class | BwdTrans_IterPerExp |
Backward transform operator using default StdRegions operator. More... | |
class | BwdTrans_NoCollection |
Backward transform operator using LocalRegions implementation. More... | |
class | BwdTrans_SumFac_Seg |
Backward transform operator using sum-factorisation (Segment) More... | |
class | BwdTrans_SumFac_Quad |
Backward transform operator using sum-factorisation (Quad) More... | |
class | BwdTrans_SumFac_Tri |
Backward transform operator using sum-factorisation (Tri) More... | |
class | BwdTrans_SumFac_Hex |
Backward transform operator using sum-factorisation (Hex) More... | |
class | BwdTrans_SumFac_Tet |
Backward transform operator using sum-factorisation (Tet) 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 | CoalescedGeomData |
class | Collection |
Collection. More... | |
class | OpImpTimingKey |
class | CollectionOptimisation |
class | Helmholtz_NoCollection |
Helmholtz operator using LocalRegions implementation. More... | |
class | Helmholtz_IterPerExp |
Helmholtz operator using LocalRegions implementation. More... | |
class | Helmholtz_MatrixFree |
Helmholtz operator using matrix free operators. More... | |
class | IProductWRTBase_StdMat |
Inner product operator using standard matrix approach. More... | |
class | IProductWRTBase_MatrixFree |
Inner product operator using operator using matrix free operators. More... | |
class | IProductWRTBase_IterPerExp |
Inner product operator using element-wise operation. More... | |
class | IProductWRTBase_NoCollection |
Inner product operator using original MultiRegions implementation. More... | |
class | IProductWRTBase_SumFac_Seg |
Inner product operator using sum-factorisation (Segment) More... | |
class | IProductWRTBase_SumFac_Quad |
Inner product operator using sum-factorisation (Quad) More... | |
class | IProductWRTBase_SumFac_Tri |
Inner product operator using sum-factorisation (Tri) More... | |
class | IProductWRTBase_SumFac_Hex |
Inner Product operator using sum-factorisation (Hex) More... | |
class | IProductWRTBase_SumFac_Tet |
Inner product operator using sum-factorisation (Tet) 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 | IProductWRTDerivBase_StdMat |
Inner product WRT deriv base operator using standard matrix approach. More... | |
class | IProductWRTDerivBase_MatrixFree |
Inner product operator using operator using matrix free operators. More... | |
class | IProductWRTDerivBase_IterPerExp |
Inner product WRT deriv base operator using element-wise operation. More... | |
class | IProductWRTDerivBase_NoCollection |
Inner product WRT deriv base operator using LocalRegions implementation. More... | |
class | IProductWRTDerivBase_SumFac_Seg |
Inner product WRT deriv base operator using sum-factorisation (Segment) More... | |
class | IProductWRTDerivBase_SumFac_Quad |
Inner product WRT deriv base operator using sum-factorisation (Quad) More... | |
class | IProductWRTDerivBase_SumFac_Tri |
Inner product WRT deriv base operator using sum-factorisation (Tri) More... | |
class | IProductWRTDerivBase_SumFac_Hex |
Inner product WRT deriv base operator using sum-factorisation (Hex) More... | |
class | IProductWRTDerivBase_SumFac_Tet |
Inner product WRT deriv base operator using sum-factorisation (Tet) 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 | MatrixFreeBase |
class | MatrixFreeOneInOneOut |
class | MatrixFreeMultiInOneOut |
class | MatrixFreeOneInMultiOut |
class | Operator |
Base class for operators on a collection of elements. More... | |
class | PhysDeriv_StdMat |
Phys deriv operator using standard matrix approach. More... | |
class | PhysDeriv_MatrixFree |
Phys deriv operator using matrix free operators. More... | |
class | PhysDeriv_IterPerExp |
Phys deriv operator using element-wise operation. More... | |
class | PhysDeriv_NoCollection |
Phys deriv operator using original LocalRegions implementation. More... | |
class | PhysDeriv_SumFac_Seg |
Phys deriv operator using sum-factorisation (Segment) More... | |
class | PhysDeriv_SumFac_Quad |
Phys deriv operator using sum-factorisation (Quad) More... | |
class | PhysDeriv_SumFac_Tri |
Phys deriv operator using sum-factorisation (Tri) More... | |
class | PhysDeriv_SumFac_Hex |
Phys deriv operator using sum-factorisation (Hex) More... | |
class | PhysDeriv_SumFac_Tet |
Phys deriv operator using sum-factorisation (Tet) 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... | |
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::map< OperatorType, ImplementationType > | OperatorImpMap |
typedef std::shared_ptr< Operator > | OperatorSharedPtr |
Shared pointer to an Operator object. More... | |
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... | |
Enumerations | |
enum | GeomData { eJac , eJacWithStdWeights , eDerivFactors } |
enum | OperatorType { eBwdTrans , eHelmholtz , eIProductWRTBase , eIProductWRTDerivBase , ePhysDeriv , 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) |
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... | |
OperatorFactory & | GetOperatorFactory () |
Returns the singleton Operator factory object. More... | |
OperatorImpMap | SetFixedImpType (ImplementationType defaultType) |
simple Operator Implementation Map generator 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 92 of file CoalescedGeomData.h.
typedef std::vector<Collection> Nektar::Collections::CollectionVector |
Definition at line 110 of file Collection.h.
typedef std::shared_ptr<CollectionVector> Nektar::Collections::CollectionVectorSharedPtr |
Definition at line 111 of file Collection.h.
typedef bool Nektar::Collections::ExpansionIsNodal |
Definition at line 110 of file Operator.h.
Operator factory definition.
Definition at line 189 of file Operator.h.
typedef std::map<OperatorType, ImplementationType> Nektar::Collections::OperatorImpMap |
Definition at line 112 of file Operator.h.
typedef std::tuple<LibUtilities::ShapeType, OperatorType, ImplementationType, ExpansionIsNodal> Nektar::Collections::OperatorKey |
Key for describing an Operator.
Definition at line 177 of file Operator.h.
typedef std::shared_ptr<Operator> Nektar::Collections::OperatorSharedPtr |
Shared pointer to an Operator object.
Definition at line 172 of file Operator.h.
using Nektar::Collections::vec_t = typedef simd<NekDouble> |
Definition at line 49 of file CoalescedGeomData.h.
typedef std::vector<vec_t, tinysimd::allocator<vec_t> > Nektar::Collections::VecVec_t |
Definition at line 50 of file CoalescedGeomData.h.
Enumerator | |
---|---|
eNoImpType | |
eNoCollection | |
eIterPerExp | |
eStdMat | |
eSumFac | |
eMatrixFree | |
SIZE_ImplementationType |
Definition at line 83 of file Operator.h.
Enumerator | |
---|---|
eBwdTrans | |
eHelmholtz | |
eIProductWRTBase | |
eIProductWRTDerivBase | |
ePhysDeriv | |
SIZE_OperatorType |
Definition at line 66 of file Operator.h.
OperatorFactory & Nektar::Collections::GetOperatorFactory | ( | ) |
Returns the singleton Operator factory object.
Definition at line 117 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::PhysDeriv_MatrixFree::PhysDeriv_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 173 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 | ||
) |
std::ostream & Nektar::Collections::operator<< | ( | std::ostream & | os, |
OperatorKey const & | p | ||
) |
Stream output operator for OperatorKey objects.
Definition at line 98 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 342 of file IProduct.cpp.
References Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdSegData::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 409 of file IProduct.cpp.
References ASSERTL1, Blas::Ddot(), Blas::Dgemm(), Nektar::LibUtilities::StdSegData::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 48 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 124 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 500 of file IProduct.cpp.
References Blas::Ddot(), Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdSegData::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 131 of file IProduct.cpp.
References Blas::Dgemm(), Blas::Dgemv(), Nektar::LibUtilities::StdSegData::getNumberOfCoefficients(), and Vmath::Vmul().
Referenced by Nektar::Collections::IProductWRTDerivBase_SumFac_Tri::operator()(), and Nektar::Collections::IProductWRTBase_SumFac_Tri::operator()().
|
static |
Definition at line 94 of file CoalescedGeomData.h.
const char* const Nektar::Collections::ImplementationTypeMap[] |
Definition at line 94 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 101 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::SetWithTimings().
const char* const Nektar::Collections::OperatorTypeMap[] |
Definition at line 76 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 80 of file Operator.h.
Referenced by Nektar::Collections::CollectionOptimisation::SetWithTimings().