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

Inner product WRT deriv base operator using sum-factorisation (Tet) More...

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

Public Member Functions

void operator() (const Array< OneD, const NekDouble > &entry0, Array< OneD, NekDouble > &entry1, Array< OneD, NekDouble > &entry2, Array< OneD, NekDouble > &entry3, Array< OneD, NekDouble > &wsp) final
 
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
 
Array< OneD, const NekDoublem_derbase0
 
Array< OneD, const NekDoublem_derbase1
 
Array< OneD, const NekDoublem_derbase2
 
Array< TwoD, const NekDoublem_derivFac
 
Array< OneD, NekDoublem_fac0
 
Array< OneD, NekDoublem_fac1
 
Array< OneD, NekDoublem_fac2
 
Array< OneD, NekDoublem_fac3
 
bool m_sortTopEdge
 
- 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

 IProductWRTDerivBase_SumFac_Tet (vector< StdRegions::StdExpansionSharedPtr > pCollExp, CoalescedGeomDataSharedPtr pGeomData, StdRegions::FactorMap factors)
 
- Private Member Functions inherited from Nektar::Collections::IProductWRTDerivBase_Helper
 IProductWRTDerivBase_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 WRT deriv base operator using sum-factorisation (Tet)

Definition at line 1390 of file IProductWRTDerivBase.cpp.

Constructor & Destructor Documentation

◆ IProductWRTDerivBase_SumFac_Tet()

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

Definition at line 1587 of file IProductWRTDerivBase.cpp.

1590 : Operator(pCollExp, pGeomData, factors), IProductWRTDerivBase_Helper(),
1591 m_nquad0(m_stdExp->GetNumPoints(0)),
1592 m_nquad1(m_stdExp->GetNumPoints(1)),
1593 m_nquad2(m_stdExp->GetNumPoints(2)),
1594 m_nmodes0(m_stdExp->GetBasisNumModes(0)),
1595 m_nmodes1(m_stdExp->GetBasisNumModes(1)),
1596 m_nmodes2(m_stdExp->GetBasisNumModes(2)),
1597 m_base0(m_stdExp->GetBasis(0)->GetBdata()),
1598 m_base1(m_stdExp->GetBasis(1)->GetBdata()),
1599 m_base2(m_stdExp->GetBasis(2)->GetBdata()),
1600 m_derbase0(m_stdExp->GetBasis(0)->GetDbdata()),
1601 m_derbase1(m_stdExp->GetBasis(1)->GetDbdata()),
1602 m_derbase2(m_stdExp->GetBasis(2)->GetDbdata())
1603
1604 {
1605 m_jacWStdW = pGeomData->GetJacWithStdWeights(pCollExp);
1606 m_wspSize = 6 * m_numElmt *
1607 (max(m_nquad0 * m_nquad1 * m_nquad2,
1609 m_derivFac = pGeomData->GetDerivFactors(pCollExp);
1610
1611 const Array<OneD, const NekDouble> &z0 = m_stdExp->GetBasis(0)->GetZ();
1612 const Array<OneD, const NekDouble> &z1 = m_stdExp->GetBasis(1)->GetZ();
1613 const Array<OneD, const NekDouble> &z2 = m_stdExp->GetBasis(2)->GetZ();
1614
1615 m_fac0 = Array<OneD, NekDouble>(m_nquad0 * m_nquad1 * m_nquad2);
1616 m_fac1 = Array<OneD, NekDouble>(m_nquad0 * m_nquad1 * m_nquad2);
1617 m_fac2 = Array<OneD, NekDouble>(m_nquad0 * m_nquad1 * m_nquad2);
1618 m_fac3 = Array<OneD, NekDouble>(m_nquad0 * m_nquad1 * m_nquad2);
1619 // calculate 2.0/((1-eta_1)(1-eta_2))
1620 for (int i = 0; i < m_nquad0; ++i)
1621 {
1622 for (int j = 0; j < m_nquad1; ++j)
1623 {
1624 for (int k = 0; k < m_nquad2; ++k)
1625 {
1626 m_fac0[i + j * m_nquad0 + k * m_nquad0 * m_nquad1] =
1627 4.0 / ((1 - z1[j]) * (1 - z2[k]));
1628 m_fac1[i + j * m_nquad0 + k * m_nquad0 * m_nquad1] =
1629 (1 + z0[i]) * 0.5;
1630 m_fac2[i + j * m_nquad0 + k * m_nquad0 * m_nquad1] =
1631 2.0 / (1 - z2[k]);
1632 m_fac3[i + j * m_nquad0 + k * m_nquad0 * m_nquad1] =
1633 (1 + z1[j]) * 0.5;
1634 }
1635 }
1636 }
1637
1638 if (m_stdExp->GetBasis(0)->GetBasisType() == LibUtilities::eModified_A)
1639 {
1640 m_sortTopEdge = true;
1641 }
1642 else
1643 {
1644 m_sortTopEdge = false;
1645 }
1646 }
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_derivFac, m_fac0, m_fac1, m_fac2, m_fac3, m_jacWStdW, m_nmodes0, m_nmodes1, m_nmodes2, m_nquad0, m_nquad1, m_nquad2, Nektar::Collections::Operator::m_numElmt, m_sortTopEdge, Nektar::Collections::Operator::m_stdExp, and Nektar::Collections::Operator::m_wspSize.

Member Function Documentation

◆ CheckFactors()

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

Check the validity of the supplied factor map.

Implements Nektar::Collections::Operator.

Definition at line 1559 of file IProductWRTDerivBase.cpp.

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

References ASSERTL0.

◆ operator()() [1/2]

void Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::operator() ( const Array< OneD, const NekDouble > &  entry0,
Array< OneD, NekDouble > &  entry1,
Array< OneD, NekDouble > &  entry2,
Array< OneD, NekDouble > &  entry3,
Array< OneD, NekDouble > &  wsp 
)
inlinefinalvirtual

This method calculates:

\[ (d\phi/dx,in[0]) + (d\phi/dy,in[1]) + (d\phi/dz,in[2]) \]

which can be represented in terms of local cartesian derivaties as:

\[ ((d\phi/d\xi_0\, d\xi_0/dx + d\phi/d\xi_1\, d\xi_1/dx + d\phi/d\xi_2\, d\xi_2/dx),in[0]) + \]

\[ ((d\phi/d\xi_0\, d\xi_0/dy + d\phi/d\xi_1\, d\xi_1/dy + d\phi/d\xi_2\, d\xi_2/dy),in[1]) + \]

\[ ((d\phi/d\xi_0\, d\xi_0/dz + d\phi/d\xi_1\, d\xi_1/dz + d\phi/d\xi_2\, d\xi_2/dz),in[2]) \, \]

where we note that

\[ d\phi/d\xi_0 = d\phi/d\eta_0 4/((1-\eta_1)(1-\eta_2)) \]

\[ d\phi/d\xi_1 = d\phi/d\eta_0 2(1+\eta_0)/((1-\eta_1)(1-\eta_2)) + d\phi/d\eta_1 2/(1-\eta_2) \]

\[ d\phi/d\xi_2 = d\phi/d\eta_0 2(1+\eta_0)/((1-\eta_1)(1-\eta_2)) + d\phi/d\eta_1 (1+\eta_1)/(1-\eta_2) + d\phi/d\eta_2 \]

and so the full inner products are

\[ (d\phi/dx,in[0]) + (d\phi/dy,in[1]) + (d\phi/dz,in[2]) = \]

\[ (d\phi/d\eta_0, fac0 (tmp0 + fac1(tmp1 + tmp2))) + (d\phi/d\eta_1, fac2 (tmp1 + fac3 tmp2)) + (d\phi/d\eta_2, tmp2) \]

where

\[ \begin{array}{lcl} tmp0 &=& (d\xi_0/dx in[0] + d\xi_0/dy in[1] + d\xi_0/dz in[2]) \\ tmp1 &=& (d\xi_1/dx in[0] + d\xi_1/dy in[1] + d\xi_1/dz in[2]) \\ tmp2 &=& (d\xi_2/dx in[0] + d\xi_2/dy in[1] + d\xi_2/dz in[2]) \end{array} \]

\[ \begin{array}{lcl} fac0 &= & 4/((1-\eta_1)(1-\eta_2)) \\ fac1 &= & (1+\eta_0)/2 \\ fac2 &= & 2/(1-\eta_2) \\ fac3 &= & (1+\eta_1)/2 \end{array} \]

Implements Nektar::Collections::Operator.

Definition at line 1449 of file IProductWRTDerivBase.cpp.

1454 {
1455 unsigned int nPhys = m_stdExp->GetTotPoints();
1456 unsigned int ntot = m_numElmt * nPhys;
1457 unsigned int nmodes = m_stdExp->GetNcoeffs();
1458 unsigned int nmax = max(ntot, m_numElmt * nmodes);
1459 Array<OneD, Array<OneD, const NekDouble>> in(3);
1460 Array<OneD, NekDouble> output, wsp1;
1461 Array<OneD, Array<OneD, NekDouble>> tmp(3);
1462
1463 in[0] = entry0;
1464 in[1] = entry1;
1465 in[2] = entry2;
1466
1467 output = entry3;
1468
1469 for (int i = 0; i < 3; ++i)
1470 {
1471 tmp[i] = wsp + i * nmax;
1472 }
1473
1474 if (m_isDeformed)
1475 {
1476 // calculate dx/dxi in[0] + dy/dxi in[1] + dz/dxi in[2]
1477 for (int i = 0; i < 3; ++i)
1478 {
1479 Vmath::Vmul(ntot, m_derivFac[i], 1, in[0], 1, tmp[i], 1);
1480 for (int j = 1; j < 3; ++j)
1481 {
1482 Vmath::Vvtvp(ntot, m_derivFac[i + 3 * j], 1, in[j], 1,
1483 tmp[i], 1, tmp[i], 1);
1484 }
1485 }
1486 }
1487 else
1488 {
1489 Array<OneD, NekDouble> t;
1490 for (int e = 0; e < m_numElmt; ++e)
1491 {
1492 // calculate dx/dxi in[0] + dy/dxi in[1] + dz/dxi in[2]
1493 for (int i = 0; i < 3; ++i)
1494 {
1495 Vmath::Smul(m_nqe, m_derivFac[i][e], in[0] + e * m_nqe, 1,
1496 t = tmp[i] + e * m_nqe, 1);
1497 for (int j = 1; j < 3; ++j)
1498 {
1499 Vmath::Svtvp(m_nqe, m_derivFac[i + 3 * j][e],
1500 in[j] + e * m_nqe, 1, tmp[i] + e * m_nqe,
1501 1, t = tmp[i] + e * m_nqe, 1);
1502 }
1503 }
1504 }
1505 }
1506
1507 wsp1 = wsp + 3 * nmax;
1508
1509 // Sort into eta factors
1510 for (int i = 0; i < m_numElmt; ++i)
1511 {
1512 // add tmp[1] + tmp[2]
1513 Vmath::Vadd(nPhys, tmp[1].get() + i * nPhys, 1,
1514 tmp[2].get() + i * nPhys, 1, wsp1.get(), 1);
1515
1516 // scale wsp1 by fac1 and add to tmp0
1517 Vmath::Vvtvp(nPhys, &m_fac1[0], 1, wsp1.get(), 1,
1518 tmp[0].get() + i * nPhys, 1, tmp[0].get() + i * nPhys,
1519 1);
1520
1521 // scale tmp[0] by fac0
1522 Vmath::Vmul(nPhys, &m_fac0[0], 1, tmp[0].get() + i * nPhys, 1,
1523 tmp[0].get() + i * nPhys, 1);
1524
1525 // scale tmp[2] by fac3 and add to tmp1
1526 Vmath::Vvtvp(nPhys, &m_fac3[0], 1, tmp[2].get() + i * nPhys, 1,
1527 tmp[1].get() + i * nPhys, 1, tmp[1].get() + i * nPhys,
1528 1);
1529
1530 // scale tmp[1] by fac2
1531 Vmath::Vmul(nPhys, &m_fac2[0], 1, tmp[1].get() + i * nPhys, 1,
1532 tmp[1].get() + i * nPhys, 1);
1533 }
1534
1535 // calculate Iproduct WRT Std Deriv
1538 m_base2, m_jacWStdW, tmp[0], output, wsp1);
1539
1542 m_base2, m_jacWStdW, tmp[1], tmp[0], wsp1);
1543 Vmath::Vadd(m_numElmt * nmodes, tmp[0], 1, output, 1, output, 1);
1544
1547 m_derbase2, m_jacWStdW, tmp[2], tmp[0], wsp1);
1548 Vmath::Vadd(m_numElmt * nmodes, tmp[0], 1, output, 1, output, 1);
1549 }
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)
Definition: IProduct.cpp:496
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
Definition: Vmath.hpp:72
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Svtvp (scalar times vector plus vector): z = alpha*x + y.
Definition: Vmath.hpp:396
void Vvtvp(int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
vvtvp (vector times vector plus vector): z = w*x + y
Definition: Vmath.hpp:366
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
Definition: Vmath.hpp:180
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.
Definition: Vmath.hpp:100

References m_base0, m_base1, m_base2, m_derbase0, m_derbase1, m_derbase2, m_derivFac, m_fac0, m_fac1, m_fac2, m_fac3, Nektar::Collections::Operator::m_isDeformed, m_jacWStdW, m_nmodes0, m_nmodes1, m_nmodes2, Nektar::Collections::Operator::m_nqe, m_nquad0, m_nquad1, m_nquad2, Nektar::Collections::Operator::m_numElmt, m_sortTopEdge, Nektar::Collections::Operator::m_stdExp, Vmath::Smul(), Vmath::Svtvp(), Nektar::Collections::TetIProduct(), Vmath::Vadd(), Vmath::Vmul(), and Vmath::Vvtvp().

◆ operator()() [2/2]

void Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::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 1551 of file IProductWRTDerivBase.cpp.

1555 {
1556 NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
1557 }
#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::IProductWRTDerivBase_SumFac_Tet::m_base0
protected

Definition at line 1573 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_base1

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

Definition at line 1574 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_base2

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

Definition at line 1575 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_derbase0

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_derbase0
protected

Definition at line 1576 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_derbase1

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_derbase1
protected

Definition at line 1577 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_derbase2

Array<OneD, const NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_derbase2
protected

Definition at line 1578 of file IProductWRTDerivBase.cpp.

Referenced by operator()().

◆ m_derivFac

Array<TwoD, const NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_derivFac
protected

Definition at line 1579 of file IProductWRTDerivBase.cpp.

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

◆ m_fac0

Array<OneD, NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_fac0
protected

Definition at line 1580 of file IProductWRTDerivBase.cpp.

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

◆ m_fac1

Array<OneD, NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_fac1
protected

Definition at line 1581 of file IProductWRTDerivBase.cpp.

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

◆ m_fac2

Array<OneD, NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_fac2
protected

Definition at line 1582 of file IProductWRTDerivBase.cpp.

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

◆ m_fac3

Array<OneD, NekDouble> Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_fac3
protected

Definition at line 1583 of file IProductWRTDerivBase.cpp.

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

◆ m_jacWStdW

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

Definition at line 1572 of file IProductWRTDerivBase.cpp.

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

◆ m_nmodes0

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nmodes0
protected

Definition at line 1569 of file IProductWRTDerivBase.cpp.

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

◆ m_nmodes1

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nmodes1
protected

Definition at line 1570 of file IProductWRTDerivBase.cpp.

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

◆ m_nmodes2

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nmodes2
protected

Definition at line 1571 of file IProductWRTDerivBase.cpp.

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

◆ m_nquad0

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nquad0
protected

Definition at line 1566 of file IProductWRTDerivBase.cpp.

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

◆ m_nquad1

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nquad1
protected

Definition at line 1567 of file IProductWRTDerivBase.cpp.

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

◆ m_nquad2

const int Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_nquad2
protected

Definition at line 1568 of file IProductWRTDerivBase.cpp.

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

◆ m_sortTopEdge

bool Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::m_sortTopEdge
protected

Definition at line 1584 of file IProductWRTDerivBase.cpp.

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