NodesAndModes

NodesAndModes.abctorstMethod
abctorst(elem::Pyr,a,b,c)

Converts from Stroud coordinates (a,b,c) on [-1,1]^3 to reference element coordinates (r,s,t).

source
NodesAndModes.abtorsMethod
abtors(Tri(), r, s, tol = 1e-12)

Converts from polynomial basis evaluation coordinates (a,b) on the domain [-1,1]^2 to reference bi-unit right triangle coordinate (r,s).

source
NodesAndModes.basisFunction
basis(elem::Pyr,N,r,s,t,tol=1e-12)

Computes orthonormal semi-nodal basis on the biunit pyramid element.

Warning: nodal derivative matrices may contain errors for nodes at t = 1. A way to avoid this is to use weak differentiation matrices computed using quadrature rules with only interior nodes.

source
NodesAndModes.basisMethod
basis(elem::AbstractElemShape, N, rst...)

Computes orthonormal basis of degree N at tuple of coordinate arrays (r,s,t).

source
NodesAndModes.basisMethod
basis(elem::Line,N,r)

Computes the generalized Vandermonde matrix V of degree N (along with the derivative matrix Vr) at points r.

source
NodesAndModes.build_warped_nodesMethod
build_warped_nodes(elem::AbstractElemShape, N, r1D)

Computes degree N warp-and-blend interpolation nodes for elem = Tri(), Pyr(), or Tet() based on the 1D node set "r1D". Returns a tuple "rst" containing arrays of interpolation points.

source
NodesAndModes.edge_basisMethod
edge_basis(elem::AbstractElemShape, N, rst...)

Returns the generalized Vandermonde matrix evaluated using an edge basis (e.g., degree N polynomials over an edge, but linearly blended into the interior). The dimension of the resulting space is simply the number of total nodes on edges of a degree N element.

source
NodesAndModes.edge_basisMethod
edge_basis(N, vertices, edges, basis, vertex_functions, rst...)

Computes edge basis given vertex functions and 1D basis.

source
NodesAndModes.find_face_nodesFunction
function find_face_nodes(elem, r, s, tol=50*eps())
function find_face_nodes(elem, r, s, t, tol=50*eps())

Given volume nodes r, s, t, finds face nodes. Note that this function implicitly defines an ordering on the faces.

source
NodesAndModes.get_edge_listMethod
get_edge_list(elem::AbstractElemShape)

Returns list of edges for a specific element (elem = Tri(), Pyr(), Hex(), or Tet()).

source
NodesAndModes.grad_vandermondeMethod
grad_vandermonde(elem::AbstractElemShape, N, rst...)

Computes the generalized Vandermonde derivative matrix V of degree N at points (r,s,t).

source
NodesAndModes.jaskowiec_sukumar_quad_nodesMethod
jaskowiek_sukumar_quad_nodes(elem::Tet)

Symmetric quadrature rules on the tetrahedron of degree up to 20 from:

Jaśkowiec, J, Sukumar, N., "High-order symmetric cubature rules for tetrahedra and pyramids." Int J Numer Methods Eng. 122(1): 148-171, 2021.

source
NodesAndModes.meshgridMethod

meshgrid(vx) Computes an (x,y)-grid from the vectors (vx,vx). For more information, see the MATLAB documentation.

Copied and pasted directly from VectorizedRoutines.jl. Using VectorizedRoutines.jl directly causes Pkg versioning issues with SpecialFunctions.jl

source
NodesAndModes.meshgridMethod

meshgrid(vx,vy,vz) Computes an (x,y,z)-grid from the vectors (vx,vy,vz). For more information, see the MATLAB documentation.

Copied and pasted directly from VectorizedRoutines.jl. Using VectorizedRoutines.jl directly causes Pkg versioning issues with SpecialFunctions.jl

source
NodesAndModes.meshgridMethod

meshgrid(vx,vy) Computes an (x,y)-grid from the vectors (vx,vy). For more information, see the MATLAB documentation.

Copied and pasted directly from VectorizedRoutines.jl. Using VectorizedRoutines.jl directly causes Pkg versioning issues with SpecialFunctions.jl

source
NodesAndModes.nodesMethod
nodes(elem::AbstractElemShape,N)

Computes interpolation nodes of degree N. Edge nodes coincide with (N+1)-point Lobatto points. Default routine for elem = Tet(), Pyr(), Tri().

For Quad(), Hex(), Wedge() elements, nodes(...) returns interpolation points constructed using a tensor product of lower-dimensional nodes.

source
NodesAndModes.nodesMethod
nodes(elem::Pyr,N)

Computes interpolation nodes of degree N. Edge nodes coincide with (N+1)-point Lobatto points. Triangular face nodes coincide with Tri.nodes(N), quadrilateral face nodes coincide with tensor product (N+1)-point Lobatto points.

source
NodesAndModes.quad_nodesMethod
quad_nodes(elem::AbstractElemShape, N)

Compute quadrature nodes and weights exact for (at least) degree 2N polynomials.

source
NodesAndModes.rstoabFunction
rstoab(r, s, tol = 1e-12)

Converts from reference bi-unit right triangle coordinate (r,s) to polynomial basis evaluation coordinates (a,b) on the domain [-1,1]^2

source
NodesAndModes.rsttoabcMethod
rsttoabc(elem::Pyr,a,b,c)

Converts from reference element coordinates (r,s,t) to Stroud coordinates (a,b,c) on [-1,1]^3.

source
NodesAndModes.stroud_quad_nodesMethod
stroud_quad_nodes(elem::AbstractElemShape,N)

Returns Stroud-type quadrature nodes and weights constructed from the tensor product of (N+1)-point Gauss-Jacobi rules. Exact for degree 2N polynomials

source
NodesAndModes.vandermondeMethod
vandermonde(elem::AbstractElemShape, N, rst...)

Computes the generalized Vandermonde matrix V of degree N at points (r,s,t).

source