Intrepid2
Intrepid2_IntegratedLegendreBasis_HGRAD_PYR.hpp File Reference

H(grad) basis on the pyramid based on integrated Legendre polynomials. More...

#include <Kokkos_DynRankView.hpp>
#include <Intrepid2_config.h>
#include "Intrepid2_Basis.hpp"
#include "Intrepid2_DerivedBasis_HGRAD_QUAD.hpp"
#include "Intrepid2_IntegratedLegendreBasis_HGRAD_LINE.hpp"
#include "Intrepid2_IntegratedLegendreBasis_HGRAD_TRI.hpp"
#include "Intrepid2_Polynomials.hpp"
#include "Intrepid2_Utils.hpp"
#include "Teuchos_RCP.hpp"

Go to the source code of this file.

Classes

class  Intrepid2::Hierarchical_HGRAD_PYR_Functor< DeviceType, OutputScalar, PointScalar, OutputFieldType, InputPointsType >
 Functor for computing values for the IntegratedLegendreBasis_HGRAD_PYR class. More...
class  Intrepid2::IntegratedLegendreBasis_HGRAD_PYR< DeviceType, OutputScalar, PointScalar, defineVertexFunctions >
 Basis defining integrated Legendre basis on the line, a polynomial subspace of H(grad) on the line. More...

Functions

template<class PointScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::affinePyramid (Kokkos::Array< PointScalar, 5 > &lambda, Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 5 > &lambdaGrad, Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 2 > &mu, Kokkos::Array< Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 3 >, 2 > &muGrad, Kokkos::Array< Kokkos::Array< PointScalar, 2 >, 3 > &nu, Kokkos::Array< Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 2 >, 3 > &nuGrad, Kokkos::Array< PointScalar, 3 > &coords)
 Compute various affine-like coordinates on the pyramid. See Fuentes et al, Appendix E.9 for definitions.
template<class PointScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::transformToESEASPyramid (PointScalar &x_eseas, PointScalar &y_eseas, PointScalar &z_eseas, const PointScalar &x_int2, const PointScalar &y_int2, const PointScalar &z_int2)
 Transforms from the Intrepid2 pyramid, centered at the origin with base [-1,1]^2 and height 1, to ESEAS pyramid, with base [0,1]^2, height 1, with its top vertex at (0,0,1).
template<class OutputScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::transformFromESEASPyramidGradient (OutputScalar &dx_int2, OutputScalar &dy_int2, OutputScalar &dz_int2, const OutputScalar &dx_eseas, const OutputScalar &dy_eseas, const OutputScalar &dz_eseas)
 Transforms gradients computed on the ESEAS pyramid to gradients on the Intrepid2 pyramid.

Detailed Description

H(grad) basis on the pyramid based on integrated Legendre polynomials.

Author
Created by N.V. Roberts.

Note that although this basis is derived from integrated Legendre polynomials, it is not itself a polynomial basis, but a set of rational functions. The vertex functions are nodal at the vertices; edge functions associated with one edge vanish on all others; face functions associated with a given face vanish on other faces. Similarly, the functions associated with the interior vanish on the boundary of the element.

The construction is also hierarchical, in the sense that the basis for p-1 is included in the basis for p.

Intrepid2 has a pre-existing lowest-order HGRAD basis defined on the pyramid, found in Intrepid2_HGRAD_PYR_C1_FEM.hpp; this agrees precisely with this basis when p=1.

Definition in file Intrepid2_IntegratedLegendreBasis_HGRAD_PYR.hpp.

Function Documentation

◆ affinePyramid()

template<class PointScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::affinePyramid ( Kokkos::Array< PointScalar, 5 > & lambda,
Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 5 > & lambdaGrad,
Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 2 > & mu,
Kokkos::Array< Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 3 >, 2 > & muGrad,
Kokkos::Array< Kokkos::Array< PointScalar, 2 >, 3 > & nu,
Kokkos::Array< Kokkos::Array< Kokkos::Array< PointScalar, 3 >, 2 >, 3 > & nuGrad,
Kokkos::Array< PointScalar, 3 > & coords )

Compute various affine-like coordinates on the pyramid. See Fuentes et al, Appendix E.9 for definitions.

Definition at line 75 of file Intrepid2_IntegratedLegendreBasis_HGRAD_PYR.hpp.

◆ transformFromESEASPyramidGradient()

template<class OutputScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::transformFromESEASPyramidGradient ( OutputScalar & dx_int2,
OutputScalar & dy_int2,
OutputScalar & dz_int2,
const OutputScalar & dx_eseas,
const OutputScalar & dy_eseas,
const OutputScalar & dz_eseas )

Transforms gradients computed on the ESEAS pyramid to gradients on the Intrepid2 pyramid.

Definition at line 186 of file Intrepid2_IntegratedLegendreBasis_HGRAD_PYR.hpp.

◆ transformToESEASPyramid()

template<class PointScalar>
KOKKOS_INLINE_FUNCTION void Intrepid2::transformToESEASPyramid ( PointScalar & x_eseas,
PointScalar & y_eseas,
PointScalar & z_eseas,
const PointScalar & x_int2,
const PointScalar & y_int2,
const PointScalar & z_int2 )

Transforms from the Intrepid2 pyramid, centered at the origin with base [-1,1]^2 and height 1, to ESEAS pyramid, with base [0,1]^2, height 1, with its top vertex at (0,0,1).

Definition at line 175 of file Intrepid2_IntegratedLegendreBasis_HGRAD_PYR.hpp.