Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static 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, Dim
Array_IPDim
 
typedef PHX::MDField< Scalar,
Point
Array_Point
 
typedef PHX::MDField< Scalar,
Cell, IP
Array_CellIP
 
typedef PHX::MDField< Scalar,
Cell, IP, Dim
Array_CellIPDim
 
typedef PHX::MDField< Scalar,
Cell, IP, Dim, Dim
Array_CellIPDimDim
 
typedef PHX::MDField< Scalar,
Cell, BASIS, Dim
Array_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)
 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 swapQuadraturePoints (int cell, int a, int b)
 Swap the ordering of quadrature points in a specified cell. More...
 

Static Public Member Functions

static void uniqueCoordOrdering (Array_CellIPDim &coords, int cell, int offset, std::vector< int > &order)
 Using coordinate build an arrray that specifies a unique ordering. More...
 
static void convertNormalToRotationMatrix (const Scalar normal[3], Scalar transverse[3], Scalar binormal[3])
 

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::IntegrationRule
int_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 generateSurfaceCubatureValues (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 
void getCubature (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 
void getCubatureCV (const PHX::MDField< Scalar, Cell, NODE, Dim > &in_node_coordinates, const int in_num_cells)
 
void evaluateRemainingValues (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 59 of file Panzer_IntegrationValues2.hpp.

Member Typedef Documentation

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

Definition at line 61 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 63 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 64 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 66 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 67 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 69 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 70 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 71 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 72 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 74 of file Panzer_IntegrationValues2.hpp.

Constructor & Destructor Documentation

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

Definition at line 76 of file Panzer_IntegrationValues2.hpp.

Member Function Documentation

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

Sizes/allocates memory for arrays.

Definition at line 131 of file Panzer_IntegrationValues2.cpp.

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

Definition at line 69 of file Panzer_IntegrationValues2.cpp.

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

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.

Definition at line 263 of file Panzer_IntegrationValues2.cpp.

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 999 of file Panzer_IntegrationValues2.cpp.

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::uniqueCoordOrdering ( Array_CellIPDim coords,
int  cell,
int  offset,
std::vector< int > &  order 
)
static

Using coordinate build an arrray that specifies a unique ordering.

Used for side integration points. Compute a unique ordering in a cell and point offset.

Parameters
[in]coordsCoordinates array (cell,IP,Dim)
[in]cellCell index
[in]offsetOffset into the points
[out]orderOrdering array on output, correctly sized on input (offset + order.size() <= coords.extent(1))

Definition at line 551 of file Panzer_IntegrationValues2.cpp.

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::swapQuadraturePoints ( int  cell,
int  a,
int  b 
)

Swap the ordering of quadrature points in a specified cell.

Parameters
[in]cellCell index
[in]aQuadrature point a
[in]bQuadrature point b

Definition at line 503 of file Panzer_IntegrationValues2.cpp.

template<typename Scalar >
void panzer::IntegrationValues2< Scalar >::convertNormalToRotationMatrix ( const Scalar  normal[3],
Scalar  transverse[3],
Scalar  binormal[3] 
)
static

Definition at line 451 of file Panzer_IntegrationValues2.cpp.

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 229 of file Panzer_IntegrationValues2.cpp.

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

Definition at line 569 of file Panzer_IntegrationValues2.cpp.

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 285 of file Panzer_IntegrationValues2.cpp.

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

Definition at line 1113 of file Panzer_IntegrationValues2.cpp.

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

Definition at line 844 of file Panzer_IntegrationValues2.cpp.

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 1172 of file Panzer_IntegrationValues2.cpp.

Member Data Documentation

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

Definition at line 114 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 115 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 116 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 117 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 118 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 119 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 120 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 121 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 122 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 124 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 125 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 129 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 131 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 134 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 135 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 136 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 139 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 140 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 142 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 142 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 142 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 143 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 143 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 143 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 143 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 145 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 185 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 186 of file Panzer_IntegrationValues2.hpp.

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

Definition at line 187 of file Panzer_IntegrationValues2.hpp.


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