43 #ifndef __Panzer_Integrator_DivBasisTimesScalar_hpp__
44 #define __Panzer_Integrator_DivBasisTimesScalar_hpp__
56 #include "Kokkos_DynRankView.hpp"
63 #include "Phalanx_Evaluator_Derived.hpp"
64 #include "Phalanx_MDField.hpp"
80 template<
typename EvalT,
typename Traits>
124 const std::string& resName,
125 const std::string& valName,
129 const std::vector<std::string>& fmNames =
130 std::vector<std::string>());
210 template<
int NUM_FIELD_MULT>
219 template<
int NUM_FIELD_MULT>
239 template<
int NUM_FIELD_MULT>
240 KOKKOS_INLINE_FUNCTION
244 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
261 template<
int NUM_FIELD_MULT>
262 KOKKOS_INLINE_FUNCTION
266 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
364 #endif // __Panzer_Integrator_DivBasisTimesScalar_hpp__
bool use_shared_memory
If set to true, device shared memory will be used.
PHX::View< ScalarT * > tmp_
Temporary for non-shared calculations.
double multiplier_
The scalar multiplier out in front of the integral ( ).
void evaluateFields(typename Traits::EvalData d)
Evaluate Fields.
typename EvalT::ScalarT ScalarT
The scalar type.
EvaluatorStyle
An indication of how an Evaluator will behave.
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
double multiplier
The scalar multiplier out in front of the integral ( ).
std::size_t numQP_
The number of quadrature points for each cell.
PHX::MDField< const ScalarT, Cell, IP > scalar_
A field representing the scalar function we're integrating ( ).
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
panzer::EvaluatorStyle evalStyle
The EvaluatorStyle of the parent Integrator_CurlBasisDotVector object.
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
This empty struct allows us to optimize operator()() depending on the number of field multipliers...
KOKKOS_INLINE_FUNCTION void operator()(const FieldMultTag< NUM_FIELD_MULT > &tag, const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const
Perform the integration. Main memory version.
PHX::MDField< ScalarT, Cell, BASIS > field_
A field to which we'll contribute, or in which we'll store, the result of computing this integral...
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
Integrator_DivBasisTimesScalar(const panzer::EvaluatorStyle &evalStyle, const std::string &resName, const std::string &valName, const panzer::BasisIRLayout &basis, const panzer::IntegrationRule &ir, const double &multiplier=1, const std::vector< std::string > &fmNames=std::vector< std::string >())
Main Constructor.
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP > basis_
The scalar basis information necessary for integration.
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > kokkosFieldMults_
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front...
This empty struct allows us to optimize operator()() depending on the number of field multipliers...
std::string basisName_
The name of the basis we're using.
std::vector< PHX::MDField< const ScalarT, Cell, IP > > fieldMults_
The (possibly empty) list of fields that are multipliers out in front of the integral ( ...