11#ifndef PANZER_POINT_VALUES2_HPP
12#define PANZER_POINT_VALUES2_HPP
14#include "PanzerDiscFE_config.hpp"
20#include "Teuchos_RCP.hpp"
24 template <
typename Scalar>
29 template<
typename SourceScalar>
34 bool allocArrays=
false)
38 const std::vector<PHX::index_size_type> & ddims,
39 bool allocArrays=
false)
43 void setupArrays(
const Teuchos::RCP<const panzer::PointRule>& pr);
51 template <
typename CoordinateArray,
typename Po
intArray>
53 const PointArray & in_point_coords,
54 const int in_num_cells = -1)
66 template <
typename Po
intArray>
68 const PointArray & in_point_coords,
69 bool shallow_copy_nodes,
70 const int in_num_cells = -1)
71 {
if(shallow_copy_nodes)
98 PHX::MDField<Scalar,Cell,IP,Dim,Dim>
jac;
99 PHX::MDField<Scalar,Cell,IP,Dim,Dim>
jac_inv;
108 template <
typename CoordinateArray>
111 template <
typename CoordinateArray>
116 std::vector<PHX::index_size_type>
ddims_;
120 template <
typename Scalar>
121 template<
typename SourceScalar>
129 static_assert(std::is_same<typename std::decay<Scalar>::type,
typename std::decay<SourceScalar>::type>::value,
130 "ERROR: PointValues assignment requires consistent scalar types!");
const PHX::MDField< Scalar, IP, Dim > & getRefCoordinates() const
Return reference cell coordinates this class uses (IP,Dim) sized.
PointValues2(const std::string &pre, const std::vector< PHX::index_size_type > &ddims, bool allocArrays=false)
ArrayTraits< Scalar, PHX::MDField< Scalar > >::size_type size_type
PHX::MDField< Scalar, IP, Dim > coords_ref
void copyPointCoords(const CoordinateArray &in_point_coords)
void evaluateValues(const CoordinateArray &node_coords, const PointArray &in_point_coords, const int in_num_cells=-1)
std::vector< PHX::index_size_type > ddims_
const PHX::MDField< Scalar, Cell, NODE, Dim > & getVertexCoordinates() const
PHX::MDField< Scalar, Cell, NODE, Dim > node_coordinates
void copyNodeCoords(const CoordinateArray &in_node_coords)
PointValues2(const std::string &pre="", bool allocArrays=false)
PointValues2< Scalar > & operator=(const PointValues2< SourceScalar > &source)
PHX::MDField< Scalar, Cell, IP, Dim, Dim > jac
PHX::MDField< Scalar, Cell, IP, Dim > point_coords
Teuchos::RCP< const panzer::PointRule > point_rule
PHX::MDField< Scalar, Cell, IP > jac_det
const PHX::MDField< Scalar, Cell, NODE, Dim > & getNodeCoordinates() const
Return the node coordinates this class uses (Cell,NODE,Dim) sized.
void setupArrays(const Teuchos::RCP< const panzer::PointRule > &pr)
Sizes/allocates memory for arrays.
PHX::MDField< Scalar, Cell, IP, Dim, Dim > jac_inv
void evaluateValues(const PHX::MDField< Scalar, Cell, NODE, Dim > &node_coords, const PointArray &in_point_coords, bool shallow_copy_nodes, const int in_num_cells=-1)