43#ifndef PANZER_EVALUATOR_GRADBASISTIMESSCALAR_DECL_HPP
44#define PANZER_EVALUATOR_GRADBASISTIMESSCALAR_DECL_HPP
56#include "Kokkos_DynRankView.hpp"
63#include "Phalanx_Evaluator_Derived.hpp"
64#include "Phalanx_MDField.hpp"
79 template<
typename EvalT,
typename Traits>
83 public PHX::EvaluatorDerived<EvalT, Traits>
125 const std::vector<std::string>& resNames,
126 const std::string& scalar,
130 const std::vector<std::string>& fmNames =
131 std::vector<std::string>());
177 const Teuchos::ParameterList& p);
211 template<
int NUM_FIELD_MULT>
232 template<
int NUM_FIELD_MULT>
233 KOKKOS_INLINE_FUNCTION
237 const std::size_t& cell)
const;
251 Teuchos::RCP<Teuchos::ParameterList>
282 PHX::MDField<const ScalarT, Cell, IP>
scalar_;
panzer::EvaluatorStyle evalStyle
The EvaluatorStyle of the parent Integrator_CurlBasisDotVector object.
double multiplier
The scalar multiplier out in front of the integral ( ).
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
std::string basisName_
The name of the basis we're using.
std::vector< PHX::MDField< ScalarT, Cell, BASIS > > fields_host_
The fields to which we'll contribute, or in which we'll store, the result of computing this integral.
PHX::View< InnerView * > OuterView
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
int numDims_
The number of dimensions associated with the gradient.
PHX::MDField< const ScalarT, Cell, IP > scalar_
A field representing the scalar function we're integrating ( ).
typename EvalT::ScalarT ScalarT
The scalar type.
ScalarT multiplier_
The scalar multiplier out in front of the integral ( ).
PHX::UnmanagedView< ScalarT ** > InnerView
KOKKOS_INLINE_FUNCTION void operator()(const FieldMultTag< NUM_FIELD_MULT > &tag, const std::size_t &cell) const
Perform the integration.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
std::vector< PHX::MDField< const ScalarT, Cell, IP > > fieldMults_
The scalar multiplier out in front of the integral ( ).
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > kokkosFieldMults_
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front...
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP, panzer::Dim > basis_
The gradient vector basis information necessary for integration.
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
void evaluateFields(typename Traits::EvalData d)
Evaluate Fields.
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
EvaluatorStyle
An indication of how an Evaluator will behave.
This empty struct allows us to optimize operator()() depending on the number of field multipliers.