11#ifndef __Panzer_Integrator_GradBasisDotTensorTimesVector_decl_hpp__
12#define __Panzer_Integrator_GradBasisDotTensorTimesVector_decl_hpp__
28#include "Phalanx_Evaluator_Derived.hpp"
29#include "Phalanx_MDField.hpp"
45 template<
typename EvalT,
typename Traits>
49 public PHX::EvaluatorDerived<EvalT, Traits>
89 const std::string& resName,
90 const std::string& fluxName,
93 const std::string& tensorName,
94 const Teuchos::RCP<PHX::DataLayout>& vecDL = Teuchos::null);
137 const Teuchos::ParameterList& p);
199 KOKKOS_INLINE_FUNCTION
203 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
222 KOKKOS_INLINE_FUNCTION
226 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
240 Teuchos::RCP<Teuchos::ParameterList>
249 using scratch_view = Kokkos::View<ScalarT* ,typename PHX::DevLayout<ScalarT>::type,
typename PHX::exec_space::scratch_memory_space,Kokkos::MemoryUnmanaged>;
266 PHX::MDField<ScalarT, panzer::Cell, panzer::BASIS>
field_;
272 PHX::MDField<const ScalarT, panzer::Cell, panzer::IP, panzer::Dim>
278 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....