Intrepid2
Intrepid2_LagrangianInterpolation.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Intrepid2 Package
4//
5// Copyright 2007 NTESS and the Intrepid2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
14#ifndef __INTREPID2_LAGRANGIANINTERPOLATION_HPP__
15#define __INTREPID2_LAGRANGIANINTERPOLATION_HPP__
16
17#include "Intrepid2_ConfigDefs.hpp"
18#include "Intrepid2_Types.hpp"
19#include "Intrepid2_Utils.hpp"
20
21#include "Shards_CellTopology.hpp"
22#include "Shards_BasicTopologies.hpp"
23
25
26#include "Intrepid2_Basis.hpp"
27
28// -- HGRAD family
32
35
36// -- HCURL family
39
43
44// -- HDIV family
47
51
52// -- Lower order family
55
58
62
66
67#include "Teuchos_LAPACK.hpp"
69
70
71namespace Intrepid2 {
72
96template<typename DeviceType>
98public:
99
118 template<typename basisCoeffsViewType,
119 typename funcViewType,
120 typename BasisType,
121 typename ortViewType>
122 static void
123 getBasisCoeffs(basisCoeffsViewType basisCoeffs,
124 const funcViewType functionAtDofCoords,
125 const BasisType* cellBasis,
126 const ortViewType orts);
127 };
128
141template<typename DeviceType>
143public:
144
159 template<typename BasisType,
160 class ...coordsProperties,
161 typename ortValueType, class ...ortProperties>
162 static void
164 Kokkos::DynRankView<typename BasisType::scalarType, coordsProperties...> dofCoords,
165 const BasisType* cellBasis,
166 const Kokkos::DynRankView<ortValueType, ortProperties...> cellOrientations
167 );
168
184 template<typename BasisType,
185 class ...coeffsProperties,
186 typename ortValueType, class ...ortProperties>
187 static void
189 Kokkos::DynRankView<typename BasisType::scalarType, coeffsProperties...> dofCoeffs,
190 const BasisType* cellBasis,
191 const Kokkos::DynRankView<ortValueType, ortProperties...> cellOrientations
192 );
193};
194
195} // Intrepid2 namespace
196
197// include templated function definitions
199
200#endif
201
202
203
204
205
Header file for the abstract base class Intrepid2::Basis.
Header file for the Intrepid2::Basis_HCURL_HEX_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_HEX_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_QUAD_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_QUAD_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_TET_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_TET_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_TRI_I1_FEM class.
Header file for the Intrepid2::Basis_HCURL_TRI_In_FEM class.
Header file for the Intrepid2::Basis_HCURL_WEDGE_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_HEX_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_HEX_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_QUAD_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_QUAD_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_TET_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_TET_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_TRI_I1_FEM class.
Header file for the Intrepid2::Basis_HDIV_TRI_In_FEM class.
Header file for the Intrepid2::Basis_HDIV_WEDGE_I1_FEM class.
Header file for the Intrepid2::Basis_HGRAD_HEX_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_LINE_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_QUAD_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TET_Cn_FEM class.
Header file for the Intrepid2::Basis_HGRAD_TRI_Cn_FEM class.
Header file for the Intrepid2::Basis_HVOL_LINE_Cn_FEM class.
Header file for the Intrepid2::Basis_HVOL_TRI_Cn_FEM class.
Header file for the Intrepid2::LagrangianInterpolation containing definitions.
Header file for the Intrepid2::OrientationTools and Intrepid2::Impl::OrientationTools classes.
Header file for Intrepid2::PointTools class to provide utilities for barycentric coordinates,...
Contains definitions of custom data types in Intrepid2.
Header function for Intrepid2::Util class and other utility functions.
A class providing static members to perform Lagrangian interpolation on a finite element.
static void getBasisCoeffs(basisCoeffsViewType basisCoeffs, const funcViewType functionAtDofCoords, const BasisType *cellBasis, const ortViewType orts)
Computes the basis weights of the function interpolation.
A class providing tools for Lagrangian elements as static members.
static void getOrientedDofCoords(Kokkos::DynRankView< typename BasisType::scalarType, coordsProperties... > dofCoords, const BasisType *cellBasis, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations)
Computes the coordinates associated with the basis DOFs for the reference oriented element.
static void getOrientedDofCoeffs(Kokkos::DynRankView< typename BasisType::scalarType, coeffsProperties... > dofCoeffs, const BasisType *cellBasis, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations)
Computes the coefficients associated with the basis DOFs for the reference oriented element.