Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
panzer::BasisValues2< Scalar > Class Template Reference

#include <Panzer_BasisValues2.hpp>

Public Types

typedef ArrayTraits< Scalar,
PHX::MDField< Scalar >
>::size_type 
size_type
 
using IntrepidBasis = Intrepid2::Basis< PHX::Device::execution_space, Scalar, Scalar >
 
typedef PHX::MDField< Scalar > ArrayDynamic
 
typedef PHX::MDField< Scalar,
BASIS, IP
Array_BasisIP
 
typedef PHX::MDField< Scalar,
BASIS, IP, Dim
Array_BasisIPDim
 
typedef PHX::MDField< Scalar,
BASIS, Dim
Array_BasisDim
 
typedef PHX::MDField< Scalar,
Cell, BASIS, IP
Array_CellBasisIP
 
typedef PHX::MDField< Scalar,
Cell, BASIS, IP, Dim
Array_CellBasisIPDim
 
typedef PHX::MDField< Scalar,
Cell, BASIS, Dim
Array_CellBasisDim
 
typedef PHX::MDField< const
Scalar > 
ConstArrayDynamic
 
typedef PHX::MDField< const
Scalar, BASIS, IP
ConstArray_BasisIP
 
typedef PHX::MDField< const
Scalar, BASIS, IP, Dim
ConstArray_BasisIPDim
 
typedef PHX::MDField< const
Scalar, BASIS, Dim
ConstArray_BasisDim
 
typedef PHX::MDField< const
Scalar, Cell, BASIS, IP
ConstArray_CellBasisIP
 
typedef PHX::MDField< const
Scalar, Cell, BASIS, IP, Dim
ConstArray_CellBasisIPDim
 
typedef PHX::MDField< const
Scalar, Cell, BASIS, Dim
ConstArray_CellBasisDim
 

Public Member Functions

 BasisValues2 (const std::string &prefix="", const bool allocArrays=false, const bool buildWeighted=false)
 Main constructor. More...
 
void setupArrays (const Teuchos::RCP< const panzer::BasisIRLayout > &basis, bool computeDerivatives=true)
 Sizes/allocates memory for arrays. More...
 
void evaluateValues (const PHX::MDField< Scalar, IP, Dim > &cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv, const int in_num_cells=-1)
 
void evaluateValues (const PHX::MDField< Scalar, IP, Dim > &cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv, const PHX::MDField< Scalar, Cell, IP > &weighted_measure, const PHX::MDField< Scalar, Cell, NODE, Dim > &node_coordinates, bool use_node_coordinates=true, const int in_num_cells=-1)
 
void evaluateValuesCV (const PHX::MDField< Scalar, Cell, IP, Dim > &cell_cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv)
 
void evaluateValuesCV (const PHX::MDField< Scalar, Cell, IP, Dim > &cell_cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv, const PHX::MDField< Scalar, Cell, NODE, Dim > &node_coordinates, bool use_node_coordinates=true, const int in_num_cells=-1)
 
void evaluateValues (const PHX::MDField< Scalar, Cell, IP, Dim > &cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv, const PHX::MDField< Scalar, Cell, IP > &weighted_measure, const PHX::MDField< Scalar, Cell, NODE, Dim > &node_coordinates, bool use_node_coordinates=true, const int in_num_cells=-1)
 
void applyOrientations (const PHX::MDField< const Scalar, Cell, BASIS > &orientations)
 Method to apply orientations to a basis values container. More...
 
void applyOrientations (const std::vector< Intrepid2::Orientation > &orientations, const int in_num_cells=-1)
 
void setExtendedDimensions (const std::vector< PHX::index_size_type > &ddims)
 
PureBasis::EElementSpace getElementSpace () const
 
bool orientationsApplied () const
 
void evaluateBasisCoordinates (const PHX::MDField< Scalar, Cell, NODE, Dim > &node_coordinates, const int in_num_cells=-1)
 
void setup (const Teuchos::RCP< const panzer::BasisIRLayout > &basis, PHX::MDField< const Scalar, Cell, IP, Dim > reference_points, PHX::MDField< const Scalar, Cell, IP, Dim, Dim > point_jacobian, PHX::MDField< const Scalar, Cell, IP > point_jacobian_determinant, PHX::MDField< const Scalar, Cell, IP, Dim, Dim > point_jacobian_inverse, const int num_evaluated_cells=-1)
 Setup for lazy evaluation for non-uniform point layout. More...
 
void setupUniform (const Teuchos::RCP< const panzer::BasisIRLayout > &basis, PHX::MDField< const Scalar, IP, Dim > reference_points, PHX::MDField< const Scalar, Cell, IP, Dim, Dim > point_jacobian, PHX::MDField< const Scalar, Cell, IP > point_jacobian_determinant, PHX::MDField< const Scalar, Cell, IP, Dim, Dim > point_jacobian_inverse, const int num_evaluated_cells=-1)
 Setup for lazy evaluation for uniform point layout. More...
 
void setOrientations (const std::vector< Intrepid2::Orientation > &orientations, const int num_orientations_cells=-1)
 Set the orientations object for applying orientations using the lazy evaluation path - required for certain bases. More...
 
void setWeightedMeasure (PHX::MDField< const Scalar, Cell, IP > weighted_measure)
 Set the cubature weights (weighted measure) for the basis values object - required to get weighted basis objects. More...
 
void setCellVertexCoordinates (PHX::MDField< Scalar, Cell, NODE, Dim > vertex_coordinates)
 
void setCellNodeCoordinates (PHX::MDField< Scalar, Cell, NODE, Dim > node_coordinates)
 Set the cell node coordinates (required for getBasisCoordinates()) More...
 
bool hasUniformReferenceSpace () const
 Check if reference point space is uniform across all cells (faster evaluation) More...
 
panzer::BasisDescriptor getBasisDescriptor () const
 Return the basis descriptor. More...
 
const std::vector
< PHX::index_size_type > & 
getExtendedDimensions () const
 Get the extended dimensions used by sacado AD allocations. More...
 
ConstArray_BasisDim getBasisCoordinatesRef (const bool cache=true, const bool force=false) const
 Get the reference coordinates for basis. More...
 
ConstArray_BasisIP getBasisValuesRef (const bool cache=true, const bool force=false) const
 Get the basis values evaluated at reference points. More...
 
ConstArray_BasisIPDim getVectorBasisValuesRef (const bool cache=true, const bool force=false) const
 Get the vector basis values evaluated at reference points. More...
 
ConstArray_BasisIPDim getGradBasisValuesRef (const bool cache=true, const bool force=false) const
 Get the gradient of the basis evaluated at reference points. More...
 
ConstArray_BasisIP getCurl2DVectorBasisRef (const bool cache=true, const bool force=false) const
 Get the curl of a vector basis evaluated at reference points. More...
 
ConstArray_BasisIPDim getCurlVectorBasisRef (const bool cache=true, const bool force=false) const
 Get the curl of a vector basis evaluated at reference points. More...
 
ConstArray_BasisIP getDivVectorBasisRef (const bool cache=true, const bool force=false) const
 Get the divergence of a vector basis evaluated at reference points. More...
 
ConstArray_CellBasisDim getBasisCoordinates (const bool cache=true, const bool force=false) const
 Carterisan coordinates for basis coefficients in mesh space. More...
 
ConstArray_CellBasisIP getBasisValues (const bool weighted, const bool cache=true, const bool force=false) const
 Get the basis values evaluated at mesh points. More...
 
ConstArray_CellBasisIPDim getVectorBasisValues (const bool weighted, const bool cache=true, const bool force=false) const
 Get the vector basis values evaluated at mesh points. More...
 
ConstArray_CellBasisIPDim getGradBasisValues (const bool weighted, const bool cache=true, const bool force=false) const
 Get the gradient of the basis evaluated at mesh points. More...
 
ConstArray_CellBasisIP getCurl2DVectorBasis (const bool weighted, const bool cache=true, const bool force=false) const
 Get the curl of a 2D vector basis evaluated at mesh points. More...
 
ConstArray_CellBasisIPDim getCurlVectorBasis (const bool weighted, const bool cache=true, const bool force=false) const
 Get the curl of a 3D vector basis evaluated at mesh points. More...
 
ConstArray_CellBasisIP getDivVectorBasis (const bool weighted, const bool cache=true, const bool force=false) const
 Get the divergence of a vector basis evaluated at mesh points. More...
 

Public Attributes

Array_BasisIP basis_ref_scalar
 
Array_CellBasisIP basis_scalar
 
Array_BasisIPDim basis_ref_vector
 
Array_CellBasisIPDim basis_vector
 
Array_BasisIPDim grad_basis_ref
 
Array_CellBasisIPDim grad_basis
 
Array_BasisIP curl_basis_ref_scalar
 
Array_CellBasisIP curl_basis_scalar
 
Array_BasisIPDim curl_basis_ref_vector
 
Array_CellBasisIPDim curl_basis_vector
 
Array_BasisIP div_basis_ref
 
Array_CellBasisIP div_basis
 
Array_CellBasisIP weighted_basis_scalar
 
Array_CellBasisIPDim weighted_basis_vector
 
Array_CellBasisIPDim weighted_grad_basis
 
Array_CellBasisIP weighted_curl_basis_scalar
 
Array_CellBasisIPDim weighted_curl_basis_vector
 
Array_CellBasisIP weighted_div_basis
 
Array_BasisDim basis_coordinates_ref
 
Array_CellBasisDim basis_coordinates
 
Teuchos::RCP< const
panzer::BasisIRLayout
basis_layout
 
Teuchos::RCP< IntrepidBasisintrepid_basis
 
bool compute_derivatives
 
bool build_weighted
 
bool alloc_arrays
 
std::string prefix
 
std::vector< PHX::index_size_type > ddims_
 

Protected Member Functions

void resetArrays ()
 

Protected Attributes

int num_cells_
 
int num_evaluate_cells_
 
bool is_uniform_
 
PHX::MDField< const Scalar, IP,
Dim
cubature_points_uniform_ref_
 
PHX::MDField< const Scalar,
Cell, IP, Dim
cubature_points_ref_
 
PHX::MDField< const Scalar,
Cell, IP, Dim, Dim
cubature_jacobian_
 
PHX::MDField< const Scalar,
Cell, IP
cubature_jacobian_determinant_
 
PHX::MDField< const Scalar,
Cell, IP, Dim, Dim
cubature_jacobian_inverse_
 
PHX::MDField< const Scalar,
Cell, IP
cubature_weights_
 
PHX::MDField< const Scalar,
Cell, NODE, Dim
cell_node_coordinates_
 
Teuchos::RCP< const
shards::CellTopology > 
cell_topology_
 
int num_orientations_cells_
 
std::vector
< Intrepid2::Orientation > 
orientations_
 
bool basis_ref_scalar_evaluated_
 Used to check if arrays have been cached. More...
 
bool basis_scalar_evaluated_
 
bool basis_ref_vector_evaluated_
 
bool basis_vector_evaluated_
 
bool grad_basis_ref_evaluated_
 
bool grad_basis_evaluated_
 
bool curl_basis_ref_scalar_evaluated_
 
bool curl_basis_scalar_evaluated_
 
bool curl_basis_ref_vector_evaluated_
 
bool curl_basis_vector_evaluated_
 
bool div_basis_ref_evaluated_
 
bool div_basis_evaluated_
 
bool weighted_basis_scalar_evaluated_
 
bool weighted_basis_vector_evaluated_
 
bool weighted_grad_basis_evaluated_
 
bool weighted_curl_basis_scalar_evaluated_
 
bool weighted_curl_basis_vector_evaluated_
 
bool weighted_div_basis_evaluated_
 
bool basis_coordinates_ref_evaluated_
 
bool basis_coordinates_evaluated_
 

Private Attributes

bool references_evaluated
 
bool orientations_applied_
 

Detailed Description

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

Data structure that holds all evaluated fields associated with a basis function and integration rule. This class will allocate the memory and evaluate the basis functions. The orientations must be applied using the applyOrientations method.

Lazy evaluation path:

BasisValues can be defined in standard or uniform forms. Uniform means that the reference space is the same for all cells, while standard means that there is a different reference space per cell. If the standard method is used, all get*Ref calls will throw errors.

The construction path for the lazy evaluation form of the BasisValues2 object is as follows:

auto basis_values = Teuchos::rcp(new BasisValues<Scalar>("prefix"));

(Required) Main setup call for lazy evaluation

basis_values->setup[Uniform](basis, reference_points, jacobian, jacobian_determinant, jacobian_inverse);

(Optional) Some basis (HCurl/HDiv) require orientations

basis_values->setOrientations(orientations);

(Optional) If Scalar is a Sacado::Fad type, we need to know the dimension

basis_values->setExtendedDimensions(ddims);

(Optional) If you are going to integrate quantities, you'll need the weighted measure (see IntegrationValues2)

basis_values->setWeightedMeasure(weighted_measure);

basis_values is now ready for lazy evaluation

Note that the above optional/required calls should happen in this order, but all must happen before any 'get' calls can be called.

Definition at line 68 of file Panzer_BasisValues2.hpp.

Member Typedef Documentation

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

Definition at line 70 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
using panzer::BasisValues2< Scalar >::IntrepidBasis = Intrepid2::Basis<PHX::Device::execution_space,Scalar,Scalar>

Definition at line 71 of file Panzer_BasisValues2.hpp.

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

Definition at line 73 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,BASIS,IP> panzer::BasisValues2< Scalar >::Array_BasisIP

Definition at line 74 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,BASIS,IP,Dim> panzer::BasisValues2< Scalar >::Array_BasisIPDim

Definition at line 75 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,BASIS,Dim> panzer::BasisValues2< Scalar >::Array_BasisDim

Definition at line 76 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,BASIS,IP> panzer::BasisValues2< Scalar >::Array_CellBasisIP

Definition at line 77 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,BASIS,IP,Dim> panzer::BasisValues2< Scalar >::Array_CellBasisIPDim

Definition at line 78 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<Scalar,Cell,BASIS,Dim> panzer::BasisValues2< Scalar >::Array_CellBasisDim

Definition at line 79 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar> panzer::BasisValues2< Scalar >::ConstArrayDynamic

Definition at line 81 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,BASIS,IP> panzer::BasisValues2< Scalar >::ConstArray_BasisIP

Definition at line 82 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,BASIS,IP,Dim> panzer::BasisValues2< Scalar >::ConstArray_BasisIPDim

Definition at line 83 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,BASIS,Dim> panzer::BasisValues2< Scalar >::ConstArray_BasisDim

Definition at line 84 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,Cell,BASIS,IP> panzer::BasisValues2< Scalar >::ConstArray_CellBasisIP

Definition at line 85 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,Cell,BASIS,IP,Dim> panzer::BasisValues2< Scalar >::ConstArray_CellBasisIPDim

Definition at line 86 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
typedef PHX::MDField<const Scalar,Cell,BASIS,Dim> panzer::BasisValues2< Scalar >::ConstArray_CellBasisDim

Definition at line 87 of file Panzer_BasisValues2.hpp.

Constructor & Destructor Documentation

template<typename Scalar >
panzer::BasisValues2< Scalar >::BasisValues2 ( const std::string &  prefix = "",
const bool  allocArrays = false,
const bool  buildWeighted = false 
)

Main constructor.

Note
This call must be followed with setupArrays
Parameters
[in]prefixName to prefix all arrays with
[in]allocArraysIf true we will allocate all arrays in the setupArrays call
[in]buildWeightedBuilds the weighted components for the basis (i.e. multiplied by weighted measure for integration purposes)

Definition at line 85 of file Panzer_BasisValues2_impl.hpp.

Member Function Documentation

template<typename Scalar >
void panzer::BasisValues2< Scalar >::setupArrays ( const Teuchos::RCP< const panzer::BasisIRLayout > &  basis,
bool  computeDerivatives = true 
)

Sizes/allocates memory for arrays.

Definition at line 415 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateValues ( const PHX::MDField< Scalar, IP, Dim > &  cub_points,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac,
const PHX::MDField< Scalar, Cell, IP > &  jac_det,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac_inv,
const int  in_num_cells = -1 
)

Definition at line 126 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateValues ( const PHX::MDField< Scalar, IP, Dim > &  cub_points,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac,
const PHX::MDField< Scalar, Cell, IP > &  jac_det,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac_inv,
const PHX::MDField< Scalar, Cell, IP > &  weighted_measure,
const PHX::MDField< Scalar, Cell, NODE, Dim > &  node_coordinates,
bool  use_node_coordinates = true,
const int  in_num_cells = -1 
)

Definition at line 189 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateValuesCV ( const PHX::MDField< Scalar, Cell, IP, Dim > &  cell_cub_points,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac,
const PHX::MDField< Scalar, Cell, IP > &  jac_det,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac_inv 
)

Definition at line 305 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateValuesCV ( const PHX::MDField< Scalar, Cell, IP, Dim > &  cell_cub_points,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac,
const PHX::MDField< Scalar, Cell, IP > &  jac_det,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac_inv,
const PHX::MDField< Scalar, Cell, NODE, Dim > &  node_coordinates,
bool  use_node_coordinates = true,
const int  in_num_cells = -1 
)

Definition at line 319 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateValues ( const PHX::MDField< Scalar, Cell, IP, Dim > &  cub_points,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac,
const PHX::MDField< Scalar, Cell, IP > &  jac_det,
const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &  jac_inv,
const PHX::MDField< Scalar, Cell, IP > &  weighted_measure,
const PHX::MDField< Scalar, Cell, NODE, Dim > &  node_coordinates,
bool  use_node_coordinates = true,
const int  in_num_cells = -1 
)

Definition at line 243 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::applyOrientations ( const PHX::MDField< const Scalar, Cell, BASIS > &  orientations)

Method to apply orientations to a basis values container.

Definition at line 404 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::applyOrientations ( const std::vector< Intrepid2::Orientation > &  orientations,
const int  in_num_cells = -1 
)

Definition at line 346 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setExtendedDimensions ( const std::vector< PHX::index_size_type > &  ddims)
inline

Definition at line 157 of file Panzer_BasisValues2.hpp.

template<typename Scalar >
PureBasis::EElementSpace panzer::BasisValues2< Scalar >::getElementSpace ( ) const

Definition at line 410 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::orientationsApplied ( ) const
inline

Definition at line 211 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::evaluateBasisCoordinates ( const PHX::MDField< Scalar, Cell, NODE, Dim > &  node_coordinates,
const int  in_num_cells = -1 
)

Definition at line 334 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
void panzer::BasisValues2< Scalar >::resetArrays ( )
protected

Definition at line 668 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setup ( const Teuchos::RCP< const panzer::BasisIRLayout > &  basis,
PHX::MDField< const Scalar, Cell, IP, Dim reference_points,
PHX::MDField< const Scalar, Cell, IP, Dim, Dim point_jacobian,
PHX::MDField< const Scalar, Cell, IP point_jacobian_determinant,
PHX::MDField< const Scalar, Cell, IP, Dim, Dim point_jacobian_inverse,
const int  num_evaluated_cells = -1 
)

Setup for lazy evaluation for non-uniform point layout.

Note
This call is used when there are different reference points per cell
Parameters
[in]basisBasis layout - contains information for intrepid
[in]reference_pointsPoints (e.g. cubature points) in the reference space of the cell
[in]point_jacobianCell jacobian evaluated at the reference points
[in]point_jacobian_determinantDeterminant of point_jacobian array
[in]point_jacobian_inverseInverse of point_jacobian array
[in]num_evaluated_cellsUsed to force evaluation of arrays over subset of cells (default: all cells)

Definition at line 578 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setupUniform ( const Teuchos::RCP< const panzer::BasisIRLayout > &  basis,
PHX::MDField< const Scalar, IP, Dim reference_points,
PHX::MDField< const Scalar, Cell, IP, Dim, Dim point_jacobian,
PHX::MDField< const Scalar, Cell, IP point_jacobian_determinant,
PHX::MDField< const Scalar, Cell, IP, Dim, Dim point_jacobian_inverse,
const int  num_evaluated_cells = -1 
)

Setup for lazy evaluation for uniform point layout.

Note
This call is used when the same reference points are used for each cell
Parameters
[in]basisBasis layout - contains information for intrepid
[in]reference_pointsPoints (e.g. cubature points) in the reference space of the cell
[in]point_jacobianCell jacobian evaluated at the reference points
[in]point_jacobian_determinantDeterminant of point_jacobian array
[in]point_jacobian_inverseInverse of point_jacobian array
[in]num_evaluated_cellsUsed to force evaluation of arrays over subset of cells (default: all cells)

Definition at line 605 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
void panzer::BasisValues2< Scalar >::setOrientations ( const std::vector< Intrepid2::Orientation > &  orientations,
const int  num_orientations_cells = -1 
)

Set the orientations object for applying orientations using the lazy evaluation path - required for certain bases.

Definition at line 632 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setWeightedMeasure ( PHX::MDField< const Scalar, Cell, IP weighted_measure)

Set the cubature weights (weighted measure) for the basis values object - required to get weighted basis objects.

Definition at line 721 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setCellVertexCoordinates ( PHX::MDField< Scalar, Cell, NODE, Dim vertex_coordinates)

TO BE DEPRECATED..... Set the cell vertex coordinates (required for getBasisCoordinates())

template<typename Scalar>
void panzer::BasisValues2< Scalar >::setCellNodeCoordinates ( PHX::MDField< Scalar, Cell, NODE, Dim node_coordinates)

Set the cell node coordinates (required for getBasisCoordinates())

Definition at line 653 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::hasUniformReferenceSpace ( ) const
inline

Check if reference point space is uniform across all cells (faster evaluation)

Definition at line 352 of file Panzer_BasisValues2.hpp.

template<typename Scalar >
panzer::BasisDescriptor panzer::BasisValues2< Scalar >::getBasisDescriptor ( ) const

Return the basis descriptor.

Definition at line 659 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar>
const std::vector<PHX::index_size_type>& panzer::BasisValues2< Scalar >::getExtendedDimensions ( ) const
inline

Get the extended dimensions used by sacado AD allocations.

Definition at line 360 of file Panzer_BasisValues2.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisDim panzer::BasisValues2< Scalar >::getBasisCoordinatesRef ( const bool  cache = true,
const bool  force = false 
) const

Get the reference coordinates for basis.

Exceptions
Ifreference points are not uniform
Ifbasis does not support a coordinate space
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array

return Array <basis, dim>

Definition at line 747 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIP panzer::BasisValues2< Scalar >::getBasisValuesRef ( const bool  cache = true,
const bool  force = false 
) const

Get the basis values evaluated at reference points.

Exceptions
Ifnot a scalar basis
Ifreference points are not uniform
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point>

Definition at line 775 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIPDim panzer::BasisValues2< Scalar >::getVectorBasisValuesRef ( const bool  cache = true,
const bool  force = false 
) const

Get the vector basis values evaluated at reference points.

Exceptions
Ifnot a vector basis
Ifreference points are not uniform
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point, dim>

Definition at line 811 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIPDim panzer::BasisValues2< Scalar >::getGradBasisValuesRef ( const bool  cache = true,
const bool  force = false 
) const

Get the gradient of the basis evaluated at reference points.

Exceptions
Ifnot a scalar basis
Ifreference points are not uniform
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point, dim>

Definition at line 848 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIP panzer::BasisValues2< Scalar >::getCurl2DVectorBasisRef ( const bool  cache = true,
const bool  force = false 
) const

Get the curl of a vector basis evaluated at reference points.

Exceptions
Ifreference points are not uniform
Ifnot a 2D space
Ifnot a HCurl basis
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point>

Definition at line 885 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIPDim panzer::BasisValues2< Scalar >::getCurlVectorBasisRef ( const bool  cache = true,
const bool  force = false 
) const

Get the curl of a vector basis evaluated at reference points.

Exceptions
Ifreference points are not uniform
Ifnot a 3D space
Ifnot a HCurl basis
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point, dim>

Definition at line 922 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_BasisIP panzer::BasisValues2< Scalar >::getDivVectorBasisRef ( const bool  cache = true,
const bool  force = false 
) const

Get the divergence of a vector basis evaluated at reference points.

Exceptions
Ifreference points are not uniform
Ifnot a 3D space
Ifnot a HDiv basis
Parameters
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <basis, point>

Definition at line 960 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisDim panzer::BasisValues2< Scalar >::getBasisCoordinates ( const bool  cache = true,
const bool  force = false 
) const

Carterisan coordinates for basis coefficients in mesh space.

Exceptions
Ifbasis does not support a coordinate space

return Array <cell, basis, dim>

Definition at line 996 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIP panzer::BasisValues2< Scalar >::getBasisValues ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the basis values evaluated at mesh points.

Exceptions
Ifnot a scalar basis
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point>

Definition at line 1035 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIPDim panzer::BasisValues2< Scalar >::getVectorBasisValues ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the vector basis values evaluated at mesh points.

Exceptions
Ifnot a vector basis
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point, dim>

Definition at line 1202 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIPDim panzer::BasisValues2< Scalar >::getGradBasisValues ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the gradient of the basis evaluated at mesh points.

Exceptions
Ifnot a scalar basis
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point, dim>

Definition at line 1377 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIP panzer::BasisValues2< Scalar >::getCurl2DVectorBasis ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the curl of a 2D vector basis evaluated at mesh points.

Exceptions
Ifnot a HCurl basis
Ifnot a 2D space
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point>

Definition at line 1531 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIPDim panzer::BasisValues2< Scalar >::getCurlVectorBasis ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the curl of a 3D vector basis evaluated at mesh points.

Exceptions
Ifnot a HCurl basis
Ifnot a 3D space
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point, dim>

Definition at line 1689 of file Panzer_BasisValues2_impl.hpp.

template<typename Scalar >
BasisValues2< Scalar >::ConstArray_CellBasisIP panzer::BasisValues2< Scalar >::getDivVectorBasis ( const bool  weighted,
const bool  cache = true,
const bool  force = false 
) const

Get the divergence of a vector basis evaluated at mesh points.

Exceptions
Ifnot a HDiv basis
Ifnot a 3D space
Parameters
[in]weightedAdd cubature weighting for integration purposes
[in]cacheIf true, the returned object will be cached for later use
[in]forceForce re-evaluation of cached array
Returns
Array <cell, basis, point>

Definition at line 1842 of file Panzer_BasisValues2_impl.hpp.

Member Data Documentation

template<typename Scalar>
Array_BasisIP panzer::BasisValues2< Scalar >::basis_ref_scalar
mutable

Definition at line 162 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::basis_scalar
mutable

Definition at line 163 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisIPDim panzer::BasisValues2< Scalar >::basis_ref_vector
mutable

Definition at line 165 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::basis_vector
mutable

Definition at line 166 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisIPDim panzer::BasisValues2< Scalar >::grad_basis_ref
mutable

Definition at line 168 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::grad_basis
mutable

Definition at line 169 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisIP panzer::BasisValues2< Scalar >::curl_basis_ref_scalar
mutable

Definition at line 171 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::curl_basis_scalar
mutable

Definition at line 172 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisIPDim panzer::BasisValues2< Scalar >::curl_basis_ref_vector
mutable

Definition at line 174 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::curl_basis_vector
mutable

Definition at line 175 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisIP panzer::BasisValues2< Scalar >::div_basis_ref
mutable

Definition at line 177 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::div_basis
mutable

Definition at line 178 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::weighted_basis_scalar
mutable

Definition at line 180 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::weighted_basis_vector
mutable

Definition at line 181 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::weighted_grad_basis
mutable

Definition at line 182 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::weighted_curl_basis_scalar
mutable

Definition at line 183 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIPDim panzer::BasisValues2< Scalar >::weighted_curl_basis_vector
mutable

Definition at line 184 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisIP panzer::BasisValues2< Scalar >::weighted_div_basis
mutable

Definition at line 185 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_BasisDim panzer::BasisValues2< Scalar >::basis_coordinates_ref
mutable

Carterisan coordinates for basis coefficients

NOTE: This quantity is not always available. Certain bases may not have a corresponding coordiante value

Definition at line 192 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Array_CellBasisDim panzer::BasisValues2< Scalar >::basis_coordinates
mutable

Carterisan coordinates for basis coefficients

NOTE: This quantity is not always available. Certain bases may not have a corresponding coordiante value

Definition at line 199 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Teuchos::RCP<const panzer::BasisIRLayout> panzer::BasisValues2< Scalar >::basis_layout

Definition at line 201 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Teuchos::RCP<IntrepidBasis> panzer::BasisValues2< Scalar >::intrepid_basis

Definition at line 203 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::compute_derivatives

Definition at line 205 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::build_weighted

Definition at line 206 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::alloc_arrays

Definition at line 207 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
std::string panzer::BasisValues2< Scalar >::prefix

Definition at line 208 of file Panzer_BasisValues2.hpp.

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

Definition at line 209 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::references_evaluated
private

Definition at line 219 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::orientations_applied_
private

Definition at line 222 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
int panzer::BasisValues2< Scalar >::num_cells_
protected

Definition at line 233 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
int panzer::BasisValues2< Scalar >::num_evaluate_cells_
protected

Definition at line 236 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::is_uniform_
protected

Definition at line 239 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,IP,Dim> panzer::BasisValues2< Scalar >::cubature_points_uniform_ref_
protected

Definition at line 242 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,IP,Dim> panzer::BasisValues2< Scalar >::cubature_points_ref_
protected

Definition at line 245 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,IP,Dim,Dim> panzer::BasisValues2< Scalar >::cubature_jacobian_
protected

Definition at line 248 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,IP> panzer::BasisValues2< Scalar >::cubature_jacobian_determinant_
protected

Definition at line 249 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,IP,Dim,Dim> panzer::BasisValues2< Scalar >::cubature_jacobian_inverse_
protected

Definition at line 250 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,IP> panzer::BasisValues2< Scalar >::cubature_weights_
protected

Definition at line 251 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
PHX::MDField<const Scalar,Cell,NODE,Dim> panzer::BasisValues2< Scalar >::cell_node_coordinates_
protected

Definition at line 254 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
Teuchos::RCP<const shards::CellTopology> panzer::BasisValues2< Scalar >::cell_topology_
protected

Definition at line 257 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
int panzer::BasisValues2< Scalar >::num_orientations_cells_
protected

Definition at line 260 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
std::vector<Intrepid2::Orientation> panzer::BasisValues2< Scalar >::orientations_
protected

Definition at line 263 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_ref_scalar_evaluated_
mutableprotected

Used to check if arrays have been cached.

Definition at line 266 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_scalar_evaluated_
mutableprotected

Definition at line 267 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_ref_vector_evaluated_
mutableprotected

Definition at line 268 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_vector_evaluated_
mutableprotected

Definition at line 269 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::grad_basis_ref_evaluated_
mutableprotected

Definition at line 270 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::grad_basis_evaluated_
mutableprotected

Definition at line 271 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::curl_basis_ref_scalar_evaluated_
mutableprotected

Definition at line 272 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::curl_basis_scalar_evaluated_
mutableprotected

Definition at line 273 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::curl_basis_ref_vector_evaluated_
mutableprotected

Definition at line 274 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::curl_basis_vector_evaluated_
mutableprotected

Definition at line 275 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::div_basis_ref_evaluated_
mutableprotected

Definition at line 276 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::div_basis_evaluated_
mutableprotected

Definition at line 277 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_basis_scalar_evaluated_
mutableprotected

Definition at line 278 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_basis_vector_evaluated_
mutableprotected

Definition at line 279 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_grad_basis_evaluated_
mutableprotected

Definition at line 280 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_curl_basis_scalar_evaluated_
mutableprotected

Definition at line 281 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_curl_basis_vector_evaluated_
mutableprotected

Definition at line 282 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::weighted_div_basis_evaluated_
mutableprotected

Definition at line 283 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_coordinates_ref_evaluated_
mutableprotected

Definition at line 284 of file Panzer_BasisValues2.hpp.

template<typename Scalar>
bool panzer::BasisValues2< Scalar >::basis_coordinates_evaluated_
mutableprotected

Definition at line 285 of file Panzer_BasisValues2.hpp.


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