11#ifndef __Panzer_Integrator_GradBasisDotVector_decl_hpp__
12#define __Panzer_Integrator_GradBasisDotVector_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>
95 const std::string& resName,
96 const std::string& fluxName,
100 const std::vector<std::string>& fmNames =
101 std::vector<std::string>(),
102 const Teuchos::RCP<PHX::DataLayout>& vecDL = Teuchos::null);
187 template<
int NUM_FIELD_MULT>
195 template<
int NUM_FIELD_MULT>
214 template<
int NUM_FIELD_MULT>
215 KOKKOS_INLINE_FUNCTION
219 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
237 template<
int NUM_FIELD_MULT>
238 KOKKOS_INLINE_FUNCTION
242 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
256 Teuchos::RCP<Teuchos::ParameterList>
265 using scratch_view = Kokkos::View<ScalarT* ,typename PHX::DevLayout<ScalarT>::type,
typename PHX::exec_space::scratch_memory_space,Kokkos::MemoryUnmanaged>;
282 PHX::MDField<ScalarT, panzer::Cell, panzer::BASIS>
field_;
288 PHX::MDField<const ScalarT, panzer::Cell, panzer::IP, panzer::Dim>
301 std::vector<PHX::MDField<const ScalarT, panzer::Cell, panzer::IP>>
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.
PHX::View< ScalarT * > tmp_
Temporary used when shared memory is disabled.
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.
double multiplier_
The scalar multiplier out in front of the integral ( ).
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::IP > > fieldMults_
The (possibly empty) list of fields that are multipliers out in front of the integral ( ,...
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.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > vector_
A field representing the vector-valued function we're integrating ( ).
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
std::string basisName_
The name of the basis we're using.
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > kokkosFieldMults_
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front...
KOKKOS_INLINE_FUNCTION void operator()(const FieldMultTag< NUM_FIELD_MULT > &tag, const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const
Perform the integration.
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP, panzer::Dim > basis_
The gradient vector basis information necessary for integration.
void evaluateFields(typename Traits::EvalData d)
Evaluate Fields.
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
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....