|
Nektar++
|
Specialisation of the NodalUtil class to support nodal prismatic elements. More...
#include <NodalUtil.h>


Public Member Functions | |
| NodalUtilPrism (int degree, Array< OneD, NekDouble > r, Array< OneD, NekDouble > s, Array< OneD, NekDouble > t) | |
| Construct the nodal utility class for a prism. More... | |
| virtual | ~NodalUtilPrism () |
Public Member Functions inherited from Nektar::LibUtilities::NodalUtil | |
| NekVector< NekDouble > | GetWeights () |
| Obtain the integration weights for the given nodal distribution. More... | |
| SharedMatrix | GetVandermonde () |
| Return the Vandermonde matrix for the nodal distribution. More... | |
| SharedMatrix | GetVandermondeForDeriv (int dir) |
| Return the Vandermonde matrix of the derivative of the basis functions for the nodal distribution. More... | |
| SharedMatrix | GetDerivMatrix (int dir) |
| Return the derivative matrix for the nodal distribution. More... | |
| SharedMatrix | GetInterpolationMatrix (Array< OneD, Array< OneD, NekDouble > > &xi) |
Construct the interpolation matrix used to evaluate the basis at the points xi inside the element. More... | |
Protected Member Functions | |
| virtual NekVector< NekDouble > | v_OrthoBasis (const int mode) |
| Return the value of the modal functions for the prismatic element at the nodal points m_xi for a given mode. More... | |
| virtual NekVector< NekDouble > | v_OrthoBasisDeriv (const int dir, const int mode) |
| Return the value of the derivative of the modal functions for the prismatic element at the nodal points m_xi for a given mode. More... | |
| virtual boost::shared_ptr < NodalUtil > | v_CreateUtil (Array< OneD, Array< OneD, NekDouble > > &xi) |
| Construct a NodalUtil object of the appropriate element type for a given set of points. More... | |
| virtual NekDouble | v_ModeZeroIntegral () |
| Return the value of the integral of the zero-th mode for this element. More... | |
| virtual int | v_NumModes () |
| Calculate the number of degrees of freedom for this element. More... | |
Protected Member Functions inherited from Nektar::LibUtilities::NodalUtil | |
| NodalUtil (int degree, int dim) | |
| Set up the NodalUtil object. More... | |
Protected Attributes | |
| std::vector< Mode > | m_ordering |
Mapping from the indexing of the basis to a continuous ordering. More... | |
| Array< OneD, Array< OneD, NekDouble > > | m_eta |
Collapsed coordinates of the nodal points. More... | |
Protected Attributes inherited from Nektar::LibUtilities::NodalUtil | |
| int | m_dim |
| Dimension of the nodal element. More... | |
| int | m_degree |
| Degree of the nodal element. More... | |
| int | m_numPoints |
| Total number of nodal points. More... | |
| Array< OneD, Array< OneD, NekDouble > > | m_xi |
| Coordinates of the nodal points defining the basis. More... | |
Private Types | |
| typedef boost::tuple< int, int, int > | Mode |
Specialisation of the NodalUtil class to support nodal prismatic elements.
Definition at line 264 of file NodalUtil.h.
|
private |
Definition at line 266 of file NodalUtil.h.
| Nektar::LibUtilities::NodalUtilPrism::NodalUtilPrism | ( | int | degree, |
| Array< OneD, NekDouble > | r, | ||
| Array< OneD, NekDouble > | s, | ||
| Array< OneD, NekDouble > | t | ||
| ) |
Construct the nodal utility class for a prism.
The constructor of this class sets up two member variables used in the evaluation of the orthogonal basis:
inside the cube
on which the orthogonal basis functions are defined.
to an ordering
that defines the monomials
that span the prismatic space. This is then used to calculate which
triple (represented as a boost tuple) corresponding to a column of the Vandermonde matrix when calculating the orthogonal polynomials.| degree | Polynomial order of this nodal tetrahedron |
| r | -coordinates of nodal points in the standard element. |
| s | -coordinates of nodal points in the standard element. |
| t | -coordinates of nodal points in the standard element. |
Definition at line 655 of file NodalUtil.cpp.
References Nektar::NekConstants::kNekZeroTol, Nektar::LibUtilities::NodalUtil::m_degree, m_eta, Nektar::LibUtilities::NodalUtil::m_numPoints, m_ordering, and Nektar::LibUtilities::NodalUtil::m_xi.
|
inlinevirtual |
Definition at line 274 of file NodalUtil.h.
|
inlineprotectedvirtual |
Construct a NodalUtil object of the appropriate element type for a given set of points.
This function is used inside NodalUtil::GetInterpolationMatrix so that the (potentially non-square) Vandermonde matrix can be constructed to create the interpolation matrix at an arbitrary set of points in the domain.
| xi | Distribution of nodal points to create utility with. |
Implements Nektar::LibUtilities::NodalUtil.
Definition at line 291 of file NodalUtil.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::LibUtilities::NodalUtil::m_degree.
|
inlineprotectedvirtual |
Return the value of the integral of the zero-th mode for this element.
Note that for the orthogonal basis under consideration, all modes integrate to zero asides from the zero-th mode. This function is used in NodalUtil::GetWeights to determine integration weights.
Implements Nektar::LibUtilities::NodalUtil.
Definition at line 298 of file NodalUtil.h.
|
inlineprotectedvirtual |
Calculate the number of degrees of freedom for this element.
Implements Nektar::LibUtilities::NodalUtil.
Definition at line 303 of file NodalUtil.h.
References Nektar::LibUtilities::NodalUtil::m_degree.
|
protectedvirtual |
Return the value of the modal functions for the prismatic element at the nodal points m_xi for a given mode.
In a prism, we use the orthogonal basis
where
is the mapping defined in m_ordering and
denotes the standard Jacobi polynomial.
| mode | The mode of the orthogonal basis to evaluate. |
Implements Nektar::LibUtilities::NodalUtil.
Definition at line 718 of file NodalUtil.cpp.
References Polylib::jacobfd(), m_eta, Nektar::LibUtilities::NodalUtil::m_numPoints, m_ordering, and CG_Iterations::modes.
|
protectedvirtual |
Return the value of the derivative of the modal functions for the prismatic element at the nodal points m_xi for a given mode.
Note that this routine must use the chain rule combined with the collapsed coordinate derivatives as described in Sherwin & Karniadakis (2nd edition), pg 152.
| mode | The mode of the orthogonal basis to evaluate. |
| dir | Coordinate direction in which to evaluate the derivative. |
Implements Nektar::LibUtilities::NodalUtil.
Definition at line 760 of file NodalUtil.cpp.
References Polylib::jacobd(), Polylib::jacobfd(), m_eta, Nektar::LibUtilities::NodalUtil::m_numPoints, m_ordering, and CG_Iterations::modes.
Collapsed coordinates
of the nodal points.
Definition at line 285 of file NodalUtil.h.
Referenced by NodalUtilPrism(), v_OrthoBasis(), and v_OrthoBasisDeriv().
|
protected |
Mapping from the
indexing of the basis to a continuous ordering.
Definition at line 281 of file NodalUtil.h.
Referenced by NodalUtilPrism(), v_OrthoBasis(), and v_OrthoBasisDeriv().
1.8.8