Go to the documentation of this file. 1 #ifndef INTREPID_CELTOOLS_HPP
2 #define INTREPID_CELTOOLS_HPP
52 #ifndef INTREPID_CELLTOOLS_HPP
53 #define INTREPID_CELLTOOLS_HPP
58 #include "Intrepid_ConfigDefs.hpp"
63 #include "Intrepid_HGRAD_QUAD_C1_FEM.hpp"
64 #include "Intrepid_HGRAD_TET_C1_FEM.hpp"
65 #include "Intrepid_HGRAD_WEDGE_C1_FEM.hpp"
66 #include "Intrepid_HGRAD_PYR_C1_FEM.hpp"
67 #include "Intrepid_HGRAD_HEX_C1_FEM.hpp"
72 #include "Intrepid_HGRAD_QUAD_C2_FEM.hpp"
81 #include "Shards_CellTopology.hpp"
82 #include "Shards_BasicTopologies.hpp"
84 #include "Teuchos_Assert.hpp"
85 #include "Teuchos_RCP.hpp"
87 #include <Intrepid_KokkosRank.hpp>
88 #ifdef INTREPID_OLD_KOKKOS_CODE
89 #include "Kokkos_Core.hpp"
110 template<
class Scalar>
134 const shards::CellTopology& parentCell);
178 const int subcellDim,
179 const shards::CellTopology& parentCell);
194 template<
class ArrayJac,
class ArrayPo
int,
class ArrayCell>
196 const ArrayPoint & points,
197 const ArrayCell & cellWorkset,
198 const int & whichCell,
199 const shards::CellTopology & cellTopo);
207 template<
class ArrayJacInv,
class ArrayJac>
209 const ArrayJac & jacobian);
217 template<
class ArrayJacDet,
class ArrayJac>
219 const ArrayJac & jacobian);
230 template<
class ArrayPhysPo
int,
class ArrayRefPo
int,
class ArrayCell>
232 const ArrayRefPoint & refPoints,
233 const ArrayCell & cellWorkset,
234 const shards::CellTopology & cellTopo,
235 const int& whichCell);
246 template<
class ArrayRefPo
int,
class ArrayPhysPo
int,
class ArrayCell>
248 const ArrayPhysPoint & physPoints,
249 const ArrayCell & cellWorkset,
250 const shards::CellTopology & cellTopo,
251 const int& whichCell);
263 template<
class ArrayRefPo
int,
class ArrayInitGuess,
class ArrayPhysPo
int,
class ArrayCell>
265 const ArrayInitGuess & initGuess,
266 const ArrayPhysPoint & physPoints,
267 const ArrayCell & cellWorkset,
268 const shards::CellTopology & cellTopo,
269 const int& whichCell);
280 template<
class ArrayIncl,
class ArrayPo
int,
class ArrayCell>
282 const ArrayPoint & physPoints,
283 const ArrayCell & cellWorkset,
284 const int & whichCell,
285 const shards::CellTopology & cell);
366 template<
class ArrayJac,
class ArrayPo
int,
class ArrayCell,
bool typecheck>
376 template<
class ArrayJac,
class ArrayPo
int,
class ArrayCell>
377 static void setJacobian(ArrayJac & jacobian,
378 const ArrayPoint & points,
379 const ArrayCell & cellWorkset,
380 const shards::CellTopology & cellTopo,
381 const int & whichCell = -1);
383 template<
class ArrayJac,
class ArrayPo
int,
class ArrayCell>
384 static void setJacobian(ArrayJac & jacobian,
385 const ArrayPoint & points,
386 const ArrayCell & cellWorkset,
388 const int & whichCell = -1);
403 template<
class ArrayJacInv,
class ArrayJac>
405 const ArrayJac & jacobian);
424 template<
class ArrayJacDet,
class ArrayJac>
426 const ArrayJac & jacobian);
493 template<
class ArrayPhysPo
int,
class ArrayRefPo
int,
class ArrayCell>
495 const ArrayRefPoint & refPoints,
496 const ArrayCell & cellWorkset,
497 const shards::CellTopology & cellTopo,
498 const int & whichCell = -1);
500 template<
class ArrayPhysPo
int,
class ArrayRefPo
int,
class ArrayCell>
502 const ArrayRefPoint & refPoints,
503 const ArrayCell & cellWorkset,
505 const int & whichCell = -1);
569 template<
class ArrayPhysPo
int,
class ArrayRefPo
int,
class ArrayCell,
int refRank,
int phyptsrank>
630 template<
class ArrayRefPo
int,
class ArrayPhysPo
int,
class ArrayCell>
632 const ArrayPhysPoint & physPoints,
633 const ArrayCell & cellWorkset,
634 const shards::CellTopology & cellTopo,
635 const int & whichCell = -1);
638 template<
class ArrayRefPo
int,
class ArrayPhysPo
int,
class ArrayCell>
640 const ArrayPhysPoint & physPoints,
641 const ArrayCell & cellWorkset,
643 const int & whichCell = -1);
691 template<
class ArrayRefPo
int,
class ArrayInitGuess,
class ArrayPhysPo
int,
class ArrayCell>
693 const ArrayInitGuess & initGuess,
694 const ArrayPhysPoint & physPoints,
695 const ArrayCell & cellWorkset,
696 const shards::CellTopology & cellTopo,
697 const int & whichCell = -1);
699 template<
class ArrayRefPo
int,
class ArrayInitGuess,
class ArrayPhysPo
int,
class ArrayCell>
701 const ArrayInitGuess & initGuess,
702 const ArrayPhysPoint & physPoints,
703 const ArrayCell & cellWorkset,
705 const int & whichCell = -1);
759 template<
class ArraySubcellPo
int,
class ArrayParamPo
int>
761 const ArrayParamPoint & paramPoints,
762 const int subcellDim,
763 const int subcellOrd,
764 const shards::CellTopology & parentCell);
793 template<
class ArrayEdgeTangent>
796 const shards::CellTopology & parentCell);
836 template<
class ArrayFaceTangentU,
class ArrayFaceTangentV>
838 ArrayFaceTangentV & refFaceTanV,
840 const shards::CellTopology & parentCell);
906 template<
class ArrayS
ideNormal>
909 const shards::CellTopology & parentCell);
951 template<
class ArrayFaceNormal>
954 const shards::CellTopology & parentCell);
987 template<
class ArrayEdgeTangent,
class ArrayJac>
989 const ArrayJac & worksetJacobians,
990 const int & worksetEdgeOrd,
991 const shards::CellTopology & parentCell);
1038 template<
class ArrayFaceTangentU,
class ArrayFaceTangentV,
class ArrayJac>
1040 ArrayFaceTangentV & faceTanV,
1041 const ArrayJac & worksetJacobians,
1042 const int & worksetFaceOrd,
1043 const shards::CellTopology & parentCell);
1112 template<
class ArrayS
ideNormal,
class ArrayJac>
1114 const ArrayJac & worksetJacobians,
1115 const int & worksetSideOrd,
1116 const shards::CellTopology & parentCell);
1158 template<
class ArrayFaceNormal,
class ArrayJac>
1160 const ArrayJac & worksetJacobians,
1161 const int & worksetFaceOrd,
1162 const shards::CellTopology & parentCell);
1188 const shards::CellTopology & cellTopo,
1189 const double & threshold = INTREPID_THRESHOLD);
1205 template<
class ArrayPo
int>
1207 const shards::CellTopology & cellTopo,
1208 const double & threshold = INTREPID_THRESHOLD);
1238 template<
class ArrayIncl,
class ArrayPo
int>
1240 const ArrayPoint & points,
1241 const shards::CellTopology & cellTopo,
1242 const double & threshold = INTREPID_THRESHOLD);
1281 template<
class ArrayIncl,
class ArrayPo
int,
class ArrayCell>
1283 const ArrayPoint & points,
1284 const ArrayCell & cellWorkset,
1285 const shards::CellTopology & cell,
1286 const int & whichCell = -1,
1287 const double & threshold = INTREPID_THRESHOLD);
1302 const int vertexOrd);
1320 template<
class ArraySubcellVert>
1322 const int subcellDim,
1323 const int subcellOrd,
1324 const shards::CellTopology& parentCell);
1361 template<
class ArraySubcellNode>
1363 const int subcellDim,
1364 const int subcellOrd,
1365 const shards::CellTopology& parentCell);
1391 const int subcellOrd,
1392 const shards::CellTopology & parentCell);
1399 template<
class ArrayCell>
1401 const shards::CellTopology & parentCell,
1402 const int& pCellOrd,
1403 const int& subcellDim,
1404 const int& subcellOrd,
1405 const int& fieldWidth = 3);
1486 template<
class ArrayCVCoord,
class ArrayCellCoord>
1487 static void getSubCVCoords(ArrayCVCoord & subCVcoords,
const ArrayCellCoord & cellCoords,
1488 const shards::CellTopology& primaryCell);
1496 template<
class ArrayCent,
class ArrayCellCoord>
1497 static void getBarycenter(ArrayCent & barycenter,
const ArrayCellCoord & cellCoords);
1505 #ifdef INTREPID_OLD_KOKKOS_CODE
1506 #include <Intrepid_CellTools_Kokkos.hpp>
Header file for the Intrepid::HGRAD_LINE_C1_FEM class.
Header file for the Intrepid::HGRAD_TET_C2_FEM class.
Header file for the Intrepid::HGRAD_HEX_C2_FEM class.
Header file for the Intrepid::HGRAD_PYR_I2_FEM class.
Contains definitions of custom data types in Intrepid.
Header file for the Intrepid::HGRAD_HEX_I2_FEM class.
Header file for the Intrepid::G_WEDGE_C2_FEM class.
Header file for utility class to provide multidimensional containers.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
Header file for the abstract base class Intrepid::Basis.
Header file for the Intrepid::HGRAD_WEDGE_I2_FEM class.
Header file for the Intrepid::HGRAD_TET_COMP12_FEM class.
Header file for the Intrepid::HGRAD_TRI_C1_FEM class.
Header file for the Intrepid::HGRAD_TRI_C2_FEM class.