16#ifndef __INTREPID2_CELLTOOLS_HPP__
17#define __INTREPID2_CELLTOOLS_HPP__
19#include "Intrepid2_ConfigDefs.hpp"
21#include "Shards_CellTopology.hpp"
22#include "Shards_BasicTopologies.hpp"
24#include "Teuchos_RCP.hpp"
75 namespace FunctorCellTools {
79 template<
typename OutputViewType,
80 typename InputViewType,
84 OutputViewType output_;
85 const InputViewType input_;
87 KOKKOS_INLINE_FUNCTION
89 const InputViewType input)
93 KOKKOS_INLINE_FUNCTION
95 operator()(
const ordinal_type cl,
const ordinal_type pt)
const {
96 auto in = Kokkos::subview(input_, cl, pt, Kokkos::ALL());
97 if constexpr(Operator == OPERATOR_VALUE) {
98 auto out = Kokkos::subview(output_, cl, Kokkos::ALL(), pt);
99 ImplBasis::template Serial<OPERATOR_VALUE>::getValues(out, in);
101 else if constexpr (Operator == OPERATOR_GRAD) {
102 auto out = Kokkos::subview(output_, cl, Kokkos::ALL(), pt, Kokkos::ALL());
103 ImplBasis::template Serial<OPERATOR_GRAD>::getValues(out, in);
105 static_assert((Operator != OPERATOR_VALUE) && (Operator != OPERATOR_GRAD),
"Invalid template parameter. Only OPERATOR_VALUE and OPERATOR_GRAD are supported.");
111 template<
typename DeviceType>
113 using ExecSpaceType =
typename DeviceType::execution_space;
114 using MemSpaceType =
typename DeviceType::memory_space;
130 template<
typename outputValueType,
131 typename pointValueType>
132 static Teuchos::RCP<Basis<DeviceType,outputValueType,pointValueType> >
134 Teuchos::RCP<Basis<DeviceType,outputValueType,pointValueType> > r_val;
136 switch (cellTopo.getKey()) {
137 case shards::Line<2>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
138 case shards::Triangle<3>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TRI_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
139 case shards::Quadrilateral<4>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
140 case shards::Tetrahedron<4>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TET_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
141 case shards::Hexahedron<8>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_HEX_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
142 case shards::Wedge<6>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_WEDGE_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
143 case shards::Pyramid<5>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_PYR_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
145 case shards::Line<3>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
146 case shards::Triangle<6>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TRI_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
147 case shards::Quadrilateral<8>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_I2_FEM <DeviceType,outputValueType,pointValueType>());
break;
148 case shards::Quadrilateral<9>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
149 case shards::Tetrahedron<10>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TET_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
151 case shards::Hexahedron<20>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_HEX_I2_FEM <DeviceType,outputValueType,pointValueType>());
break;
152 case shards::Hexahedron<27>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_HEX_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
153 case shards::Wedge<15>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_WEDGE_I2_FEM <DeviceType,outputValueType,pointValueType>());
break;
154 case shards::Wedge<18>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_WEDGE_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
155 case shards::Pyramid<13>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_PYR_I2_FEM <DeviceType,outputValueType,pointValueType>());
break;
157 case shards::Beam<2>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
158 case shards::Beam<3>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
159 case shards::ShellLine<2>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
160 case shards::ShellLine<3>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_LINE_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
161 case shards::ShellTriangle<3>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TRI_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
162 case shards::ShellTriangle<6>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_TRI_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
163 case shards::ShellQuadrilateral<4>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_C1_FEM <DeviceType,outputValueType,pointValueType>());
break;
164 case shards::ShellQuadrilateral<8>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_I2_FEM <DeviceType,outputValueType,pointValueType>());
break;
165 case shards::ShellQuadrilateral<9>::key: r_val = Teuchos::rcp(
new Basis_HGRAD_QUAD_C2_FEM <DeviceType,outputValueType,pointValueType>());
break;
167 INTREPID2_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
168 ">>> ERROR (Intrepid2::CellTools::createHGradBasis): Cell topology not supported.");
183 template<EOperator Operator,
184 typename OutputViewType,
185 typename InputViewType
189 const InputViewType input,
192 using outputValueType =
typename OutputViewType::value_type;
193 using pointValueType =
typename InputViewType::value_type;
194 using range_policy_type = Kokkos::MDRangePolicy<typename DeviceType::execution_space, Kokkos::Rank<2>, Kokkos::IndexType<ordinal_type> >;
195 range_policy_type policy( { 0, 0 }, { input.extent(0), input.extent(1) } );
197 #define KOKKOS_BASIS_PARALLEL_FOR(BasisName) \
199 using FunctorType = FunctorCellTools::F_getValues<OutputViewType, InputViewType, Intrepid2::Impl::BasisName, Operator>; \
200 Kokkos::parallel_for(policy, FunctorType(output, input)); \
241 INTREPID2_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
242 ">>> ERROR (Intrepid2::CellTools::getHGradValues): Basis type not supported.");
254 template<EOperator Operator,
255 typename OutputViewType,
256 typename InputViewType
260 const InputViewType input,
261 const shards::CellTopology cellTopo) {
263 using range_policy_type = Kokkos::MDRangePolicy<typename DeviceType::execution_space, Kokkos::Rank<2>, Kokkos::IndexType<ordinal_type> >;
264 range_policy_type policy( { 0, 0 }, { input.extent(0), input.extent(1) } );
266 #define KOKKOS_BASIS_PARALLEL_FOR(BasisName) \
268 using FunctorType = FunctorCellTools::F_getValues<OutputViewType, InputViewType, Intrepid2::Impl::BasisName, Operator>; \
269 Kokkos::parallel_for(policy, FunctorType(output, input)); \
272 switch (cellTopo.getKey()) {
304 INTREPID2_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
305 ">>> ERROR (Intrepid2::CellTools::getHGradValues): Cell topology not supported.");
361 template<
typename JacobianViewType,
362 typename PointViewType,
363 typename WorksetType,
364 typename HGradBasisType>
367 const PointViewType points,
368 const WorksetType worksetCell,
369 const Teuchos::RCP<HGradBasisType> basis,
370 const int startCell=0,
const int endCell=-1);
406 template<
typename JacobianViewType,
407 typename BasisGradientsType,
408 typename WorksetType>
411 const WorksetType worksetCell,
412 const BasisGradientsType gradients,
413 const int startCell=0,
const int endCell=-1);
449 template<
typename JacobianViewType,
450 typename PointViewType,
451 typename WorksetCellViewType>
454 const PointViewType points,
455 const WorksetCellViewType worksetCell,
456 const shards::CellTopology cellTopo ) {
457 using nonConstPointValueType =
typename PointViewType::non_const_value_type;
458 auto basis = createHGradBasis<nonConstPointValueType,nonConstPointValueType>(cellTopo);
484 template<
typename OutViewType,
485 typename TanViewType,
490 const TanViewType tangents,
491 const InViewType residual,
492 const typename InViewType::value_type scaling);
506 template<
typename JacobianInvViewType,
507 typename JacobianViewType>
510 const JacobianViewType jacobian );
522 template<
typename JacobianDetViewType,
523 typename JacobianViewType>
526 const JacobianViewType jacobian );
533 template<
class Po
intScalar>
541 template<
class Po
intScalar>
549 template<
class Po
intScalar>
558 template<
class Po
intScalar>
567 template<
class Po
intScalar>
577 template<
class Po
intScalar>
598 template<
typename cellCenterValueType,
class ...cellCenterProperties>
601 const shards::CellTopology cell );
611 template<
typename cellVertexValueType,
class ...cellVertexProperties>
613 getReferenceVertex( Kokkos::DynRankView<cellVertexValueType,cellVertexProperties...> cellVertex,
614 const shards::CellTopology cell,
615 const ordinal_type vertexOrd );
632 template<
typename subcellVertexValueType,
class ...subcellVertexProperties>
635 const ordinal_type subcellDim,
636 const ordinal_type subcellOrd,
637 const shards::CellTopology parentCell );
656 template<
typename cellNodeValueType,
class ...cellNodeProperties>
658 getReferenceNode( Kokkos::DynRankView<cellNodeValueType,cellNodeProperties...> cellNode,
659 const shards::CellTopology cell,
660 const ordinal_type nodeOrd );
677 template<
typename SubcellNodeViewType>
680 const ordinal_type subcellDim,
681 const ordinal_type subcellOrd,
682 const shards::CellTopology parentCell );
709 template<
typename RefEdgeTangentViewType>
712 const ordinal_type edgeOrd,
713 const shards::CellTopology parentCell );
751 template<
typename RefFaceTanViewType>
754 RefFaceTanViewType refFaceTanV,
755 const ordinal_type faceOrd,
756 const shards::CellTopology parentCell );
819 template<
typename RefS
ideNormalViewType>
822 const ordinal_type sideOrd,
823 const shards::CellTopology parentCell );
863 template<
typename RefFaceNormalViewType>
866 const ordinal_type faceOrd,
867 const shards::CellTopology parentCell );
898 template<
typename edgeTangentValueType,
class ...edgeTangentProperties,
899 typename worksetJacobianValueType,
class ...worksetJacobianProperties>
902 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
903 const ordinal_type worksetEdgeOrd,
904 const shards::CellTopology parentCell );
918 template<
typename edgeTangentValueType,
class ...edgeTangentProperties,
919 typename worksetJacobianValueType,
class ...worksetJacobianProperties,
920 typename edgeOrdValueType,
class ...edgeOrdProperties>
923 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
924 const Kokkos::DynRankView<edgeOrdValueType,edgeOrdProperties...> worksetEdgeOrds,
925 const shards::CellTopology parentCell );
966 template<
typename faceTanValueType,
class ...faceTanProperties,
967 typename worksetJacobianValueType,
class ...worksetJacobianProperties>
970 Kokkos::DynRankView<faceTanValueType,faceTanProperties...> faceTanV,
971 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
972 const ordinal_type worksetFaceOrd,
973 const shards::CellTopology parentCell );
988 template<
typename faceTanValueType,
class ...faceTanProperties,
989 typename worksetJacobianValueType,
class ...worksetJacobianProperties,
990 typename faceOrdValueType,
class ...faceOrdProperties>
993 Kokkos::DynRankView<faceTanValueType,faceTanProperties...> faceTanV,
994 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
995 const Kokkos::DynRankView<faceOrdValueType,faceOrdProperties...> worksetFaceOrds,
996 const shards::CellTopology parentCell );
1060 template<
typename sideNormalValueType,
class ...sideNormalProperties,
1061 typename worksetJacobianValueType,
class ...worksetJacobianProperties>
1064 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
1065 const ordinal_type worksetSideOrd,
1066 const shards::CellTopology parentCell );
1079 template<
typename sideNormalValueType,
class ...sideNormalProperties,
1080 typename worksetJacobianValueType,
class ...worksetJacobianProperties,
1081 typename edgeOrdValueType,
class ...edgeOrdProperties>
1084 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
1085 const Kokkos::DynRankView<edgeOrdValueType,edgeOrdProperties...> worksetSideOrds,
1086 const shards::CellTopology parentCell );
1126 template<
typename faceNormalValueType,
class ...faceNormalProperties,
1127 typename worksetJacobianValueType,
class ...worksetJacobianProperties>
1130 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
1131 const ordinal_type worksetFaceOrd,
1132 const shards::CellTopology parentCell );
1146 template<
typename faceNormalValueType,
class ...faceNormalProperties,
1147 typename worksetJacobianValueType,
class ...worksetJacobianProperties,
1148 typename faceOrdValueType,
class ...faceOrdProperties>
1151 const Kokkos::DynRankView<worksetJacobianValueType,worksetJacobianProperties...> worksetJacobians,
1152 const Kokkos::DynRankView<faceOrdValueType,faceOrdProperties...> worksetFaceOrds,
1153 const shards::CellTopology parentCell );
1199 template<
typename PhysPointValueType,
1200 typename RefPointValueType,
1201 typename WorksetType,
1202 typename HGradBasisPtrType>
1205 const RefPointValueType refPoints,
1206 const WorksetType worksetCell,
1207 const HGradBasisPtrType basis );
1254 template<
typename PhysPointViewType,
1255 typename RefPointViewType,
1256 typename WorksetCellViewType>
1259 const RefPointViewType refPoints,
1260 const WorksetCellViewType worksetCell,
1261 const shards::CellTopology cellTopo );
1314 template<
typename refSubcellViewType,
1315 typename paramPointViewType>
1318 const paramPointViewType paramPoints,
1319 const ordinal_type subcellDim,
1320 const ordinal_type subcellOrd,
1321 const shards::CellTopology parentCell );
1330 template<
typename refSubcellViewType,
typename paramPo
intViewType>
1333 const paramPointViewType paramPoints,
1334 const typename RefSubcellParametrization<DeviceType>::ConstViewType subcellParametrization,
1335 const ordinal_type subcellOrd);
1342 template<
typename refSubcellViewType,
typename paramPo
intViewType,
typename ordViewType>
1345 const paramPointViewType paramPoints,
1346 const typename RefSubcellParametrization<DeviceType>::ConstViewType subcellParametrization,
1347 const ordViewType subcellOrd);
1402 template<
typename refPointValueType,
class ...refPointProperties,
1403 typename physPointValueType,
class ...physPointProperties,
1404 typename worksetCellValueType,
class ...worksetCellProperties>
1406 mapToReferenceFrame( Kokkos::DynRankView<refPointValueType,refPointProperties...> refPoints,
1407 const Kokkos::DynRankView<physPointValueType,physPointProperties...> physPoints,
1408 const Kokkos::DynRankView<worksetCellValueType,worksetCellProperties...> worksetCell,
1409 const shards::CellTopology cellTopo,
1410 const physPointValueType shellThickness = -1.0 );
1441 template<
typename refPointValueType,
class ...refPointProperties,
1442 typename physPointValueType,
class ...physPointProperties,
1443 typename worksetCellValueType,
class ...worksetCellProperties>
1446 mapToReferenceFrame( Kokkos::DynRankView<refPointValueType,refPointProperties...> refPoints,
1447 const Kokkos::DynRankView<physPointValueType,physPointProperties...> physPoints,
1448 const Kokkos::DynRankView<worksetCellValueType,worksetCellProperties...> worksetCell,
1450 const physPointValueType shellThickness = -1.0 );
1478 template<
typename refPointValueType,
class ...refPointProperties,
1479 typename initGuessValueType,
class ...initGuessProperties,
1480 typename physPointValueType,
class ...physPointProperties,
1481 typename worksetCellValueType,
class ...worksetCellProperties,
1482 typename HGradBasisPtrType>
1483 [[deprecated(
"Deprecated, use mapToReferenceFrame instead with refPoints initialized with initGuess.")]]
1486 const Kokkos::DynRankView<initGuessValueType,initGuessProperties...> initGuess,
1487 const Kokkos::DynRankView<physPointValueType,physPointProperties...> physPoints,
1488 const Kokkos::DynRankView<worksetCellValueType,worksetCellProperties...> worksetCell,
1489 const HGradBasisPtrType basis,
1490 const physPointValueType shellThickness = -1.0 ){
1491 Kokkos::deep_copy(refPoints,initGuess);
1526 template<
typename refPointValueType,
class ...refPointProperties,
1527 typename initGuessValueType,
class ...initGuessProperties,
1528 typename physPointValueType,
class ...physPointProperties,
1529 typename worksetCellValueType,
class ...worksetCellProperties>
1532 const Kokkos::DynRankView<initGuessValueType,initGuessProperties...> initGuess,
1533 const Kokkos::DynRankView<physPointValueType,physPointProperties...> physPoints,
1534 const Kokkos::DynRankView<worksetCellValueType,worksetCellProperties...> worksetCell,
1535 const shards::CellTopology cellTopo,
1536 const physPointValueType shellThickness = -1.0 );
1618 template<
typename subcvCoordValueType,
class ...subcvCoordProperties,
1619 typename cellCoordValueType,
class ...cellCoordProperties>
1621 getSubcvCoords( Kokkos::DynRankView<subcvCoordValueType,subcvCoordProperties...> subcvCoords,
1622 const Kokkos::DynRankView<cellCoordValueType,cellCoordProperties...> cellCoords,
1623 const shards::CellTopology primaryCell );
1645 template<
typename Po
intViewType>
1646 [[deprecated(
"Deprecated, use the templated ParametricDistance struct directly.")]]
1647 static typename ScalarTraits<typename PointViewType::value_type>::scalar_type
1649 const shards::CellTopology cellTopo);
1660 template<
typename Po
intViewType>
1661 [[deprecated(
"Deprecated, use checkPointwiseInclusion, or the templated ParametricDistance struct directly.")]]
1664 const shards::CellTopology cellTopo,
1665 const typename ScalarTraits<typename PointViewType::value_type>::scalar_type thres =
1666 threshold<
typename ScalarTraits<typename PointViewType::value_type>::scalar_type>() );
1679 template<
unsigned cellTopologyKey,
1680 typename OutputViewType,
1681 typename InputViewType>
1683 const InputViewType refPoints,
1684 const typename ScalarTraits<typename InputViewType::value_type>::scalar_type thresh =
1685 threshold<
typename ScalarTraits<typename InputViewType::value_type>::scalar_type>());
1697 template<
typename InCellViewType,
1698 typename PointViewType>
1700 const PointViewType refPoints,
1701 const shards::CellTopology cellTopo,
1702 const typename ScalarTraits<typename PointViewType::value_type>::scalar_type thres =
1703 threshold<
typename ScalarTraits<typename PointViewType::value_type>::scalar_type>() );
1718 template<
typename inCellValueType,
class ...inCellProperties,
1719 typename pointValueType,
class ...pointProperties,
1720 typename cellWorksetValueType,
class ...cellWorksetProperties>
1722 const Kokkos::DynRankView<pointValueType,pointProperties...> points,
1723 const Kokkos::DynRankView<cellWorksetValueType,cellWorksetProperties...> cellWorkset,
1724 const shards::CellTopology cellTopo,
1725 const typename ScalarTraits<pointValueType>::scalar_type thres =
1726 threshold<
typename ScalarTraits<pointValueType>::scalar_type>(),
1727 const typename ScalarTraits<pointValueType>::scalar_type shellThickness = -1.0 );
1772 template<
typename jacobianViewType,
1773 typename PointViewType,
1774 typename worksetCellViewType>
1777 const PointViewType points,
1778 const worksetCellViewType worksetCell,
1779 const shards::CellTopology cellTopo );
1785 template<
typename jacobianInvViewType,
1786 typename jacobianViewType>
1789 const jacobianViewType jacobian );
1796 template<
typename jacobianDetViewType,
1797 typename jacobianViewType>
1800 const jacobianViewType jacobian );
1809 template<
typename physPointViewType,
1810 typename refPointViewType,
1811 typename worksetCellViewType>
1814 const refPointViewType refPoints,
1815 const worksetCellViewType worksetCell,
1816 const shards::CellTopology cellTopo );
1825 template<
typename refPointViewType,
1826 typename physPointViewType,
1827 typename worksetCellViewType>
1830 const physPointViewType physPoints,
1831 const worksetCellViewType worksetCell,
1832 const shards::CellTopology cellTopo );
1843 template<
typename refPointViewType,
1844 typename initGuessViewType,
1845 typename physPointViewType,
1846 typename worksetCellViewType>
1849 const initGuessViewType initGuess,
1850 const physPointViewType physPoints,
1851 const worksetCellViewType worksetCell,
1852 const shards::CellTopology cellTopo );
Header file for the abstract base class Intrepid2::Basis.
Teuchos::RCP< Basis< DeviceType, OutputType, PointType > > BasisPtr
Basis Pointer.
Header file for the classes: Intrepid2::RefSubcellParametrization, Intrepid2::RefCellNodes,...
Defines the Data class, a wrapper around a Kokkos::View that allows data that is constant or repeatin...
Header file for the Intrepid2::Basis_HGRAD_HEX_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_HEX_C2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_LINE_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_LINE_C2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_PYR_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_PYR_I2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_QUAD_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_QUAD_C2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TET_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TET_C2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TET_COMP12_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TRI_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TRI_C2_FEM class.
Header file for the Intrepid2::Basis_HGRAD_WEDGE_C1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_WEDGE_C2_FEM class.
Contains definitions of custom data types in Intrepid2.
Header function for Intrepid2::Util class and other utility functions.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Hexahedron cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Hexahedron cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Line cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Line cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Pyramid cell.
Implementation of an H(grad)-compatible FEM basis of degree 2 on a Pyramid cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Quadrilateral cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Quadrilateral cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Tetrahedron cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Tetrahedron cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Tetrahedron cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Triangle cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Triangle cell.
Implementation of the default H(grad)-compatible FEM basis of degree 1 on Wedge cell.
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Wedge cell.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
Wrapper around a Kokkos::View that allows data that is constant or repeating in various logical dimen...
static bool isSupported(const unsigned cellTopoKey)
Checks if a cell topology has a reference parametrization.