43 #ifndef PANZER_POINT_VALUES2_IMPL_HPP 44 #define PANZER_POINT_VALUES2_IMPL_HPP 46 #include "Intrepid2_CellTools.hpp" 54 template <
typename Scalar,
55 template <
typename DataT,
56 typename Tag0,
typename Tag1,
typename Tag2,
57 typename Tag3,
typename Tag4,
typename Tag5,
58 typename Tag6,
typename Tag7>
class Array >
59 template <typename ArrayFactory>
60 void PointValues2<Scalar,Array>::
61 setupArrays(const Teuchos::RCP<const PointRule> & pr, const ArrayFactory & af)
65 int num_nodes = point_rule->topology->getNodeCount();
66 int num_cells = point_rule->workset_size;
67 int num_space_dim = point_rule->spatial_dimension;
69 if (point_rule->isSide()) {
70 TEUCHOS_ASSERT(
false);
73 int num_points = point_rule->num_points;
75 coords_ref = af.template buildStaticArray<Scalar,IP,Dim>(
"coords_ref",num_points, num_space_dim);
77 node_coordinates = af.template buildStaticArray<Scalar,Cell,NODE,Dim>(
"node_coordinates",num_cells,
num_nodes, num_space_dim);
79 jac = af.template buildStaticArray<Scalar,Cell,IP,Dim,Dim>(
"jac",num_cells, num_points, num_space_dim,num_space_dim);
80 jac_inv = af.template buildStaticArray<Scalar,Cell,IP,Dim,Dim>(
"jac_inv",num_cells, num_points, num_space_dim,num_space_dim);
81 jac_det = af.template buildStaticArray<Scalar,Cell,IP>(
"jac_det",num_cells, num_points);
83 point_coords = af.template buildStaticArray<Scalar,Cell,IP,Dim>(
"point_coords",num_cells, num_points, num_space_dim);
86 template <
typename Scalar,
87 template <
typename DataT,
88 typename Tag0,
typename Tag1,
typename Tag2,
89 typename Tag3,
typename Tag4,
typename Tag5,
90 typename Tag6,
typename Tag7>
class Array >
91 template <typename CoordinateArray>
93 copyNodeCoords(const CoordinateArray& in_node_coords)
97 size_type num_cells = in_node_coords.dimension(0);
99 size_type num_dims = in_node_coords.dimension(2);
101 for (
size_type cell = 0; cell < num_cells; ++cell)
103 for (
size_type dim = 0; dim < num_dims; ++dim)
104 node_coordinates(cell,node,dim) = in_node_coords(cell,node,dim);
108 template <
typename Scalar,
109 template <
typename DataT,
110 typename Tag0,
typename Tag1,
typename Tag2,
111 typename Tag3,
typename Tag4,
typename Tag5,
112 typename Tag6,
typename Tag7>
class Array >
113 template <typename CoordinateArray>
115 copyPointCoords(const CoordinateArray& in_point_coords)
119 size_type num_points = in_point_coords.dimension(0);
120 size_type num_dims = in_point_coords.dimension(1);
122 for (
size_type point = 0; point < num_points; ++point)
123 for (
size_type dim = 0; dim < num_dims; ++dim)
124 coords_ref(point,dim) = in_point_coords(point,dim);
ArrayTraits< ScalarT, PHX::MDField< ScalarT, void, void, void, void, void, void, void, void > >::size_type size_type