Panzer  Version of the Day
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
panzer::IntegrationValues2< Scalar > Class Template Reference

#include <Panzer_IntegrationValues2.hpp>

Public Types

typedef ArrayTraits< Scalar, PHX::MDField< Scalar > >::size_type size_type
 
typedef PHX::MDField< Scalar > ArrayDynamic
 
typedef PHX::MDField< double > DblArrayDynamic
 
typedef PHX::MDField< Scalar, IPArray_IP
 
typedef PHX::MDField< Scalar, IP, DimArray_IPDim
 
typedef PHX::MDField< Scalar, PointArray_Point
 
typedef PHX::MDField< Scalar, Cell, IPArray_CellIP
 
typedef PHX::MDField< Scalar, Cell, IP, DimArray_CellIPDim
 
typedef PHX::MDField< Scalar, Cell, IP, Dim, DimArray_CellIPDimDim
 
typedef PHX::MDField< Scalar, Cell, BASIS, DimArray_CellBASISDim
 

Public Member Functions

 IntegrationValues2 (const std::string &pre="", bool allocArrays=false)
 
void setupArrays (const Teuchos::RCP< const panzer::IntegrationRule > &ir)
 Sizes/allocates memory for arrays. More...
 
void setupArraysForNodeRule (const Teuchos::RCP< const panzer::IntegrationRule > &ir)
 
void evaluateValues (const PHX::MDField< Scalar, Cell, NODE, Dim > &vertex_coordinates, const int num_cells=-1, const Teuchos::RCP< const SubcellConnectivity > &face_connectivity=Teuchos::null)
 Evaluate basis values. More...
 
void evaluateValues (const PHX::MDField< Scalar, Cell, NODE, Dim > &vertex_coordinates, const PHX::MDField< Scalar, Cell, IP, Dim > &other_ip_coordinates, const int num_cells=-1)
 Match IP. More...
 
void evaluateRemainingValues (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 This should be a private method, but using lambdas on cuda forces this to be public. More...
 
void getCubatureCV (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 This should be a private method, but using lambdas on cuda forces this to be public. More...
 
void generateSurfaceCubatureValues (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells, const SubcellConnectivity &face_connectivity)
 This should be a private method, but using lambdas on cuda forces this to be public. More...
 

Public Attributes

Array_IPDim cub_points
 
Array_IPDim side_cub_points
 
Array_IP cub_weights
 
Array_CellBASISDim node_coordinates
 
Array_CellIPDimDim jac
 
Array_CellIPDimDim jac_inv
 
Array_CellIP jac_det
 
Array_CellIP weighted_measure
 
Array_CellIPDim weighted_normals
 
Array_CellIPDim surface_normals
 
Array_CellIPDimDim surface_rotation_matrices
 
Teuchos::RCP< const panzer::IntegrationRuleint_rule
 
Teuchos::RCP< Intrepid2::Cubature< PHX::Device::execution_space, double, double > > intrepid_cubature
 
Array_CellIPDimDim covarient
 
Array_CellIPDimDim contravarient
 
Array_CellIP norm_contravarient
 
Array_CellIPDim ip_coordinates
 
Array_CellIPDim ref_ip_coordinates
 
DblArrayDynamic dyn_cub_points
 
DblArrayDynamic dyn_side_cub_points
 
DblArrayDynamic dyn_cub_weights
 
DblArrayDynamic dyn_phys_cub_points
 
DblArrayDynamic dyn_phys_cub_weights
 
DblArrayDynamic dyn_phys_cub_norms
 
DblArrayDynamic dyn_node_coordinates
 
Array_Point scratch_for_compute_side_measure
 

Protected Member Functions

Teuchos::RCP< Intrepid2::Cubature< PHX::Device::execution_space, double, double > > getIntrepidCubature (const panzer::IntegrationRule &ir) const
 

Private Member Functions

void getCubature (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 
void evaluateValuesCV (const PHX::MDField< Scalar, Cell, NODE, Dim > &vertex_coordinates, const int in_num_cells)
 

Private Attributes

bool alloc_arrays
 
std::string prefix
 
std::vector< PHX::index_size_type > ddims_
 

Detailed Description

template<typename Scalar>
class panzer::IntegrationValues2< Scalar >

Definition at line 86 of file Panzer_IntegrationValues2.hpp.

Member Typedef Documentation

◆ size_type

template<typename Scalar>
typedef ArrayTraits<Scalar,PHX::MDField<Scalar> >::size_type panzer::IntegrationValues2< Scalar >::size_type

Definition at line 88 of file Panzer_IntegrationValues2.hpp.

◆ ArrayDynamic

template<typename Scalar>
typedef PHX::MDField<Scalar> panzer::IntegrationValues2< Scalar >::ArrayDynamic

Definition at line 90 of file Panzer_IntegrationValues2.hpp.

◆ DblArrayDynamic

template<typename Scalar>
typedef PHX::MDField<double> panzer::IntegrationValues2< Scalar >::DblArrayDynamic

Definition at line 91 of file Panzer_IntegrationValues2.hpp.

◆ Array_IP

template<typename Scalar>
typedef PHX::MDField<Scalar,IP> panzer::IntegrationValues2< Scalar >::Array_IP

Definition at line 93 of file Panzer_IntegrationValues2.hpp.

◆ Array_IPDim

template<typename Scalar>
typedef PHX::MDField<Scalar,IP,Dim> panzer::IntegrationValues2< Scalar >::Array_IPDim

Definition at line 94 of file Panzer_IntegrationValues2.hpp.

◆ Array_Point

template<typename Scalar>
typedef PHX::MDField<Scalar,Point> panzer::IntegrationValues2< Scalar >::Array_Point

Definition at line 96 of file Panzer_IntegrationValues2.hpp.

◆ Array_CellIP

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,IP> panzer::IntegrationValues2< Scalar >::Array_CellIP

Definition at line 97 of file Panzer_IntegrationValues2.hpp.

◆ Array_CellIPDim

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,IP,Dim> panzer::IntegrationValues2< Scalar >::Array_CellIPDim

Definition at line 98 of file Panzer_IntegrationValues2.hpp.

◆ Array_CellIPDimDim

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,IP,Dim,Dim> panzer::IntegrationValues2< Scalar >::Array_CellIPDimDim

Definition at line 99 of file Panzer_IntegrationValues2.hpp.

◆ Array_CellBASISDim

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,BASIS,Dim> panzer::IntegrationValues2< Scalar >::Array_CellBASISDim

Definition at line 101 of file Panzer_IntegrationValues2.hpp.

Constructor & Destructor Documentation

◆ IntegrationValues2()

template<typename Scalar>
panzer::IntegrationValues2< Scalar >::IntegrationValues2 ( const std::string &  pre = "",
bool  allocArrays = false 
)
inline

Definition at line 103 of file Panzer_IntegrationValues2.hpp.

Member Function Documentation

◆ setupArrays()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::setupArrays ( const Teuchos::RCP< const panzer::IntegrationRule > &  ir)

Sizes/allocates memory for arrays.

Definition at line 136 of file Panzer_IntegrationValues2.cpp.

◆ setupArraysForNodeRule()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::setupArraysForNodeRule ( const Teuchos::RCP< const panzer::IntegrationRule > &  ir)

Definition at line 74 of file Panzer_IntegrationValues2.cpp.

◆ evaluateValues() [1/2]

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::evaluateValues ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  vertex_coordinates,
const int  num_cells = -1,
const Teuchos::RCP< const SubcellConnectivity > &  face_connectivity = Teuchos::null 
)

Evaluate basis values.

Parameters
vertex_coordinates[in] Cell vertex coordinates, not basis coordinates.
num_cells[in] (optional) number of cells in the workset. This can be less than the workset size. If set to zero, extent(0) of the evaluated array is used which equates to the workset size.
face_connectivity[in] (optional) connectivity used to enforce quadrature alignment for surface integration.

Definition at line 268 of file Panzer_IntegrationValues2.cpp.

◆ evaluateValues() [2/2]

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::evaluateValues ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  vertex_coordinates,
const PHX::MDField< Scalar, Cell, IP, Dim > &  other_ip_coordinates,
const int  num_cells = -1 
)

Match IP.

Optionally provide IP coordinates for an element 'other' that shares the same side. If provided, a permutation of the cubature points is calculated so that the integration values are ordered according to the other element's. This permutation is then applied so that all fields are ordered accordingly in their IP dimension.

Parameters
num_cells[in] (optional) number of cells in the workset. This can be less than the workset size. If set to zero, extent(0) of the evaluated array is used which equates to the workset size.

Definition at line 1001 of file Panzer_IntegrationValues2.cpp.

◆ evaluateRemainingValues()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::evaluateRemainingValues ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  in_node_coordinates,
const int  in_num_cells 
)

This should be a private method, but using lambdas on cuda forces this to be public.

Definition at line 834 of file Panzer_IntegrationValues2.cpp.

◆ getCubatureCV()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::getCubatureCV ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  in_node_coordinates,
const int  in_num_cells 
)

This should be a private method, but using lambdas on cuda forces this to be public.

Definition at line 1146 of file Panzer_IntegrationValues2.cpp.

◆ generateSurfaceCubatureValues()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::generateSurfaceCubatureValues ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  in_node_coordinates,
const int  in_num_cells,
const SubcellConnectivity face_connectivity 
)

This should be a private method, but using lambdas on cuda forces this to be public.

Definition at line 330 of file Panzer_IntegrationValues2.cpp.

◆ getIntrepidCubature()

template<typename Scalar >
Teuchos::RCP< Intrepid2::Cubature< PHX::Device::execution_space, double, double > > panzer::IntegrationValues2< Scalar >::getIntrepidCubature ( const panzer::IntegrationRule ir) const
protected

Definition at line 234 of file Panzer_IntegrationValues2.cpp.

◆ getCubature()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::getCubature ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  in_node_coordinates,
const int  in_num_cells 
)
private

Definition at line 293 of file Panzer_IntegrationValues2.cpp.

◆ evaluateValuesCV()

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::evaluateValuesCV ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  vertex_coordinates,
const int  in_num_cells 
)
private

Definition at line 1212 of file Panzer_IntegrationValues2.cpp.

Member Data Documentation

◆ cub_points

template<typename Scalar>
Array_IPDim panzer::IntegrationValues2< Scalar >::cub_points

Definition at line 144 of file Panzer_IntegrationValues2.hpp.

◆ side_cub_points

template<typename Scalar>
Array_IPDim panzer::IntegrationValues2< Scalar >::side_cub_points

Definition at line 145 of file Panzer_IntegrationValues2.hpp.

◆ cub_weights

template<typename Scalar>
Array_IP panzer::IntegrationValues2< Scalar >::cub_weights

Definition at line 146 of file Panzer_IntegrationValues2.hpp.

◆ node_coordinates

template<typename Scalar>
Array_CellBASISDim panzer::IntegrationValues2< Scalar >::node_coordinates

Definition at line 147 of file Panzer_IntegrationValues2.hpp.

◆ jac

template<typename Scalar>
Array_CellIPDimDim panzer::IntegrationValues2< Scalar >::jac

Definition at line 148 of file Panzer_IntegrationValues2.hpp.

◆ jac_inv

template<typename Scalar>
Array_CellIPDimDim panzer::IntegrationValues2< Scalar >::jac_inv

Definition at line 149 of file Panzer_IntegrationValues2.hpp.

◆ jac_det

template<typename Scalar>
Array_CellIP panzer::IntegrationValues2< Scalar >::jac_det

Definition at line 150 of file Panzer_IntegrationValues2.hpp.

◆ weighted_measure

template<typename Scalar>
Array_CellIP panzer::IntegrationValues2< Scalar >::weighted_measure

Definition at line 151 of file Panzer_IntegrationValues2.hpp.

◆ weighted_normals

template<typename Scalar>
Array_CellIPDim panzer::IntegrationValues2< Scalar >::weighted_normals

Definition at line 152 of file Panzer_IntegrationValues2.hpp.

◆ surface_normals

template<typename Scalar>
Array_CellIPDim panzer::IntegrationValues2< Scalar >::surface_normals

Definition at line 154 of file Panzer_IntegrationValues2.hpp.

◆ surface_rotation_matrices

template<typename Scalar>
Array_CellIPDimDim panzer::IntegrationValues2< Scalar >::surface_rotation_matrices

Definition at line 155 of file Panzer_IntegrationValues2.hpp.

◆ int_rule

template<typename Scalar>
Teuchos::RCP<const panzer::IntegrationRule> panzer::IntegrationValues2< Scalar >::int_rule

Definition at line 159 of file Panzer_IntegrationValues2.hpp.

◆ intrepid_cubature

template<typename Scalar>
Teuchos::RCP<Intrepid2::Cubature<PHX::Device::execution_space,double,double> > panzer::IntegrationValues2< Scalar >::intrepid_cubature

Definition at line 161 of file Panzer_IntegrationValues2.hpp.

◆ covarient

template<typename Scalar>
Array_CellIPDimDim panzer::IntegrationValues2< Scalar >::covarient

Definition at line 164 of file Panzer_IntegrationValues2.hpp.

◆ contravarient

template<typename Scalar>
Array_CellIPDimDim panzer::IntegrationValues2< Scalar >::contravarient

Definition at line 165 of file Panzer_IntegrationValues2.hpp.

◆ norm_contravarient

template<typename Scalar>
Array_CellIP panzer::IntegrationValues2< Scalar >::norm_contravarient

Definition at line 166 of file Panzer_IntegrationValues2.hpp.

◆ ip_coordinates

template<typename Scalar>
Array_CellIPDim panzer::IntegrationValues2< Scalar >::ip_coordinates

Definition at line 169 of file Panzer_IntegrationValues2.hpp.

◆ ref_ip_coordinates

template<typename Scalar>
Array_CellIPDim panzer::IntegrationValues2< Scalar >::ref_ip_coordinates

Definition at line 170 of file Panzer_IntegrationValues2.hpp.

◆ dyn_cub_points

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_cub_points

Definition at line 172 of file Panzer_IntegrationValues2.hpp.

◆ dyn_side_cub_points

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_side_cub_points

Definition at line 172 of file Panzer_IntegrationValues2.hpp.

◆ dyn_cub_weights

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_cub_weights

Definition at line 172 of file Panzer_IntegrationValues2.hpp.

◆ dyn_phys_cub_points

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_phys_cub_points

Definition at line 173 of file Panzer_IntegrationValues2.hpp.

◆ dyn_phys_cub_weights

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_phys_cub_weights

Definition at line 173 of file Panzer_IntegrationValues2.hpp.

◆ dyn_phys_cub_norms

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_phys_cub_norms

Definition at line 173 of file Panzer_IntegrationValues2.hpp.

◆ dyn_node_coordinates

template<typename Scalar>
DblArrayDynamic panzer::IntegrationValues2< Scalar >::dyn_node_coordinates

Definition at line 173 of file Panzer_IntegrationValues2.hpp.

◆ scratch_for_compute_side_measure

template<typename Scalar>
Array_Point panzer::IntegrationValues2< Scalar >::scratch_for_compute_side_measure

Definition at line 175 of file Panzer_IntegrationValues2.hpp.

◆ alloc_arrays

template<typename Scalar>
bool panzer::IntegrationValues2< Scalar >::alloc_arrays
private

Definition at line 192 of file Panzer_IntegrationValues2.hpp.

◆ prefix

template<typename Scalar>
std::string panzer::IntegrationValues2< Scalar >::prefix
private

Definition at line 193 of file Panzer_IntegrationValues2.hpp.

◆ ddims_

template<typename Scalar>
std::vector<PHX::index_size_type> panzer::IntegrationValues2< Scalar >::ddims_
private

Definition at line 194 of file Panzer_IntegrationValues2.hpp.


The documentation for this class was generated from the following files: