43#ifndef __Panzer_Integrator_GradBasisDotTensorTimesVector_decl_hpp__
44#define __Panzer_Integrator_GradBasisDotTensorTimesVector_decl_hpp__
60#include "Phalanx_Evaluator_Derived.hpp"
61#include "Phalanx_MDField.hpp"
77 template<
typename EvalT,
typename Traits>
81 public PHX::EvaluatorDerived<EvalT, Traits>
121 const std::string& resName,
122 const std::string& fluxName,
125 const std::string& tensorName,
126 const Teuchos::RCP<PHX::DataLayout>& vecDL = Teuchos::null);
169 const Teuchos::ParameterList& p);
231 KOKKOS_INLINE_FUNCTION
235 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
254 KOKKOS_INLINE_FUNCTION
258 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
272 Teuchos::RCP<Teuchos::ParameterList>
281 using scratch_view = Kokkos::View<ScalarT* ,typename PHX::DevLayout<ScalarT>::type,
typename PHX::exec_space::scratch_memory_space,Kokkos::MemoryUnmanaged>;
298 PHX::MDField<ScalarT, panzer::Cell, panzer::BASIS>
field_;
304 PHX::MDField<const ScalarT, panzer::Cell, panzer::IP, panzer::Dim>
310 PHX::MDField<const ScalarT, panzer::Cell, panzer::IP, panzer::Dim, panzer::Dim>
panzer::EvaluatorStyle evalStyle
The EvaluatorStyle of the parent Integrator_CurlBasisDotVector object.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
void evaluateFields(typename Traits::EvalData d)
Evaluate Fields.
PHX::MDField< ScalarT, panzer::Cell, panzer::BASIS > field_
A field to which we'll contribute, or in which we'll store, the result of computing this integral.
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
PHX::View< ScalarT * > tmp_
Temporary used when shared memory is disabled.
KOKKOS_INLINE_FUNCTION void operator()(const FieldMultTag &tag, const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const
Perform the integration.
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
Kokkos::View< ScalarT *,typename PHX::DevLayout< ScalarT >::type, typename PHX::exec_space::scratch_memory_space, Kokkos::MemoryUnmanaged > scratch_view
Type for shared memory.
typename EvalT::ScalarT ScalarT
The scalar type.
PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim, panzer::Dim > tensor_
The tensor field( ).
PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > vector_
A field representing the vector-valued function we're integrating ( ).
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
PHX::View< const ScalarT **** > kokkosTensor_
The PHX::View representation of the tensor fields that are multiplied out in front of the integral ( ...
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP, panzer::Dim > basis_
The gradient vector basis information necessary for integration.
std::string basisName_
The name of the basis we're using.
EvaluatorStyle
An indication of how an Evaluator will behave.
This empty struct allows us to optimize operator()() depending on the number of field multipliers....
This empty struct allows us to optimize operator()() depending on the number of field multipliers....