Nektar++
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
Nektar::Collections::IProductWRTBase_SumFac_Pyr Class Referencefinal

Inner Product operator using sum-factorisation (Pyr) More...

Inheritance diagram for Nektar::Collections::IProductWRTBase_SumFac_Pyr:
[legend]

Public Member Functions

 ~IProductWRTBase_SumFac_Pyr () final=default
 
void operator() (const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &output1, Array< OneD, NekDouble > &output2, Array< OneD, NekDouble > &wsp) final
 Perform operation. More...
 
void operator() (int dir, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp) final
 
void CheckFactors (StdRegions::FactorMap factors, int coll_phys_offset) override
 Check the validity of the supplied factor map. More...
 
- Public Member Functions inherited from Nektar::Collections::Operator
 Operator (std::vector< StdRegions::StdExpansionSharedPtr > pCollExp, std::shared_ptr< CoalescedGeomData > GeomData, StdRegions::FactorMap factors)
 Constructor. More...
 
virtual ~Operator ()=default
 
virtual COLLECTIONS_EXPORT void operator() (const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output0, Array< OneD, NekDouble > &output1, Array< OneD, NekDouble > &output2, Array< OneD, NekDouble > &wsp=NullNekDouble1DArray)=0
 Perform operation. More...
 
virtual COLLECTIONS_EXPORT void operator() (int dir, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp=NullNekDouble1DArray)=0
 
virtual COLLECTIONS_EXPORT void CheckFactors (StdRegions::FactorMap factors, int coll_phys_offset)=0
 Check the validity of the supplied factor map. More...
 
unsigned int GetWspSize ()
 Get the size of the required workspace. More...
 
unsigned int GetNumElmt ()
 Get number of elements. More...
 
StdRegions::StdExpansionSharedPtr GetExpSharedPtr ()
 Get expansion pointer. More...
 
unsigned int GetInputSize ()
 
unsigned int GetOutputSize ()
 

Protected Attributes

const int m_nquad0
 
const int m_nquad1
 
const int m_nquad2
 
const int m_nmodes0
 
const int m_nmodes1
 
const int m_nmodes2
 
Array< OneD, const NekDoublem_jacWStdW
 
Array< OneD, const NekDoublem_base0
 
Array< OneD, const NekDoublem_base1
 
Array< OneD, const NekDoublem_base2
 
bool m_sortTopVertex
 
- Protected Attributes inherited from Nektar::Collections::Operator
bool m_isDeformed
 
StdRegions::StdExpansionSharedPtr m_stdExp
 
unsigned int m_numElmt
 number of elements that the operator is applied on More...
 
unsigned int m_nqe
 
unsigned int m_wspSize
 
unsigned int m_inputSize
 number of modes or quadrature points that are passed as input to an operator More...
 
unsigned int m_outputSize
 number of modes or quadrature points that are taken as output from an operator More...
 

Private Member Functions

 IProductWRTBase_SumFac_Pyr (vector< StdRegions::StdExpansionSharedPtr > pCollExp, CoalescedGeomDataSharedPtr pGeomData, StdRegions::FactorMap factors)
 
- Private Member Functions inherited from Nektar::Collections::IProductWRTBase_Helper
 IProductWRTBase_Helper ()
 

Additional Inherited Members

- Protected Member Functions inherited from Nektar::Collections::Operator
virtual int v_GetInputSize ()
 This purely virtual function needs to be set-up for every operator inside Collections. It is responsible for returning the size of input collection, that the operator is applied on either in physical or coefficient space. More...
 
virtual int v_GetOutputSize ()
 This purely virtual function needs to be set-up for every operator inside Collections. It is responsible for returning the output size either in physical or coefficient space of an operator inside Collections. More...
 

Detailed Description

Inner Product operator using sum-factorisation (Pyr)

Definition at line 984 of file IProductWRTBase.cpp.

Constructor & Destructor Documentation

◆ ~IProductWRTBase_SumFac_Pyr()

Nektar::Collections::IProductWRTBase_SumFac_Pyr::~IProductWRTBase_SumFac_Pyr ( )
finaldefault

◆ IProductWRTBase_SumFac_Pyr()

Nektar::Collections::IProductWRTBase_SumFac_Pyr::IProductWRTBase_SumFac_Pyr ( vector< StdRegions::StdExpansionSharedPtr pCollExp,
CoalescedGeomDataSharedPtr  pGeomData,
StdRegions::FactorMap  factors 
)
inlineprivate

Definition at line 1033 of file IProductWRTBase.cpp.

1036 : Operator(pCollExp, pGeomData, factors), IProductWRTBase_Helper(),
1037 m_nquad0(m_stdExp->GetNumPoints(0)),
1038 m_nquad1(m_stdExp->GetNumPoints(1)),
1039 m_nquad2(m_stdExp->GetNumPoints(2)),
1040 m_nmodes0(m_stdExp->GetBasisNumModes(0)),
1041 m_nmodes1(m_stdExp->GetBasisNumModes(1)),
1042 m_nmodes2(m_stdExp->GetBasisNumModes(2)),
1043 m_base0(m_stdExp->GetBasis(0)->GetBdata()),
1044 m_base1(m_stdExp->GetBasis(1)->GetBdata()),
1045 m_base2(m_stdExp->GetBasis(2)->GetBdata())
1046
1047 {
1048 m_jacWStdW = pGeomData->GetJacWithStdWeights(pCollExp);
1049
1051 (max(m_nquad0 * m_nquad1, m_nmodes0 * m_nmodes1)) +
1053
1054 if (m_stdExp->GetBasis(0)->GetBasisType() == LibUtilities::eModified_A)
1055 {
1056 m_sortTopVertex = true;
1057 }
1058 else
1059 {
1060 m_sortTopVertex = false;
1061 }
1062 }
StdRegions::StdExpansionSharedPtr m_stdExp
Definition: Operator.h:188
unsigned int m_numElmt
number of elements that the operator is applied on
Definition: Operator.h:190
Operator(std::vector< StdRegions::StdExpansionSharedPtr > pCollExp, std::shared_ptr< CoalescedGeomData > GeomData, StdRegions::FactorMap factors)
Constructor.
Definition: Operator.cpp:66
@ eModified_A
Principle Modified Functions .
Definition: BasisType.h:48
StdRegions::ConstFactorMap factors

References Nektar::LibUtilities::eModified_A, m_jacWStdW, m_nmodes0, m_nmodes1, m_nquad0, m_nquad1, m_nquad2, Nektar::Collections::Operator::m_numElmt, m_sortTopVertex, Nektar::Collections::Operator::m_stdExp, and Nektar::Collections::Operator::m_wspSize.

Member Function Documentation

◆ CheckFactors()

void Nektar::Collections::IProductWRTBase_SumFac_Pyr::CheckFactors ( StdRegions::FactorMap  factors,
int  coll_phys_offset 
)
inlineoverridevirtual

Check the validity of the supplied factor map.

Implements Nektar::Collections::Operator.

Definition at line 1013 of file IProductWRTBase.cpp.

1015 {
1016 ASSERTL0(false, "Not valid for this operator.");
1017 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:208

References ASSERTL0.

◆ operator()() [1/2]

void Nektar::Collections::IProductWRTBase_SumFac_Pyr::operator() ( const Array< OneD, const NekDouble > &  input,
Array< OneD, NekDouble > &  output0,
Array< OneD, NekDouble > &  output1,
Array< OneD, NekDouble > &  output2,
Array< OneD, NekDouble > &  wsp 
)
inlinefinalvirtual

Perform operation.

Implements Nektar::Collections::Operator.

Definition at line 992 of file IProductWRTBase.cpp.

997 {
998 ASSERTL1(wsp.size() == m_wspSize, "Incorrect workspace size");
999
1002 m_jacWStdW, input, output, wsp);
1003 }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:242
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)
Definition: IProduct.cpp:405

References ASSERTL1, m_base0, m_base1, m_base2, m_jacWStdW, m_nmodes0, m_nmodes1, m_nmodes2, m_nquad0, m_nquad1, m_nquad2, Nektar::Collections::Operator::m_numElmt, m_sortTopVertex, Nektar::Collections::Operator::m_wspSize, and Nektar::Collections::PyrIProduct().

◆ operator()() [2/2]

void Nektar::Collections::IProductWRTBase_SumFac_Pyr::operator() ( int  dir,
const Array< OneD, const NekDouble > &  input,
Array< OneD, NekDouble > &  output,
Array< OneD, NekDouble > &  wsp 
)
inlinefinalvirtual

Implements Nektar::Collections::Operator.

Definition at line 1005 of file IProductWRTBase.cpp.

1009 {
1010 NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
1011 }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:202

References Nektar::ErrorUtil::efatal, and NEKERROR.

Member Data Documentation

◆ m_base0

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_base0
protected

Definition at line 1027 of file IProductWRTBase.cpp.

Referenced by operator()().

◆ m_base1

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_base1
protected

Definition at line 1028 of file IProductWRTBase.cpp.

Referenced by operator()().

◆ m_base2

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_base2
protected

Definition at line 1029 of file IProductWRTBase.cpp.

Referenced by operator()().

◆ m_jacWStdW

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_jacWStdW
protected

Definition at line 1026 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_nmodes0

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nmodes0
protected

Definition at line 1023 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_nmodes1

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nmodes1
protected

Definition at line 1024 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_nmodes2

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nmodes2
protected

Definition at line 1025 of file IProductWRTBase.cpp.

Referenced by operator()().

◆ m_nquad0

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nquad0
protected

Definition at line 1020 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_nquad1

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nquad1
protected

Definition at line 1021 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_nquad2

const int Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_nquad2
protected

Definition at line 1022 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().

◆ m_sortTopVertex

bool Nektar::Collections::IProductWRTBase_SumFac_Pyr::m_sortTopVertex
protected

Definition at line 1030 of file IProductWRTBase.cpp.

Referenced by IProductWRTBase_SumFac_Pyr(), and operator()().