Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_Integrator_Scalar_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Panzer: A partial differential equation assembly
4 // engine for strongly coupled complex multiphysics systems
5 //
6 // Copyright 2011 NTESS and the Panzer contributors.
7 // SPDX-License-Identifier: BSD-3-Clause
8 // *****************************************************************************
9 // @HEADER
10 
11 #ifndef PANZER_EVALUATOR_SCALAR_DECL_HPP
12 #define PANZER_EVALUATOR_SCALAR_DECL_HPP
13 
14 #include <string>
15 #include "Panzer_Dimension.hpp"
16 #include "Phalanx_Evaluator_Macros.hpp"
17 #include "Phalanx_MDField.hpp"
18 #include "Kokkos_DynRankView.hpp"
19 
21 
22 namespace panzer {
23 
37 template<typename EvalT, typename Traits>
39  :
40  public panzer::EvaluatorWithBaseImpl<Traits>,
41  public PHX::EvaluatorDerived<EvalT, Traits>
42 {
43  public:
44 
46  const Teuchos::ParameterList& p);
47 
48  void
50  typename Traits::SetupData d,
52 
53  void
55  typename Traits::EvalData d);
56 
57  private:
58 
59  using ScalarT = typename EvalT::ScalarT;
60 
62 
63  PHX::MDField<const ScalarT,Cell,IP> scalar; // function to be integrated
64 
65  typename PHX::View<PHX::UnmanagedView<const ScalarT**>* >::HostMirror field_multipliers_h;
66  PHX::View<PHX::UnmanagedView<const ScalarT**>* > field_multipliers;
67 
68  std::size_t num_qp;
69  std::size_t quad_index;
71 
72  double multiplier;
73 
74  Kokkos::DynRankView<ScalarT,typename PHX::DevLayout<ScalarT>::type,PHX::Device> tmp;
75 
76 public:
77  // for testing purposes
78  const PHX::FieldTag & getFieldTag() const
79  { return integral.fieldTag(); }
80 
81 private:
83 
84 }; // end of class Integrator_Scalar
85 
86 
87 }
88 
89 #endif
Kokkos::DynRankView< ScalarT, typename PHX::DevLayout< ScalarT >::type, PHX::Device > tmp
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
PHX::View< PHX::UnmanagedView< const ScalarT ** > * >::HostMirror field_multipliers_h
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
const PHX::FieldTag & getFieldTag() const
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > field_multipliers
Integrator_Scalar(const Teuchos::ParameterList &p)
PHX::MDField< const ScalarT, Cell, IP > scalar
void evaluateFields(typename Traits::EvalData d)
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)