Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_CellExtreme.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_CellExtreme_hpp__
12 #define __Panzer_CellExtreme_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 
38 template<typename EvalT, typename Traits>
40  :
41  public panzer::EvaluatorWithBaseImpl<Traits>,
42  public PHX::EvaluatorDerived<EvalT, Traits>
43 {
44  public:
45 
47  const Teuchos::ParameterList& p);
48 
49  void
51  typename Traits::SetupData d,
53 
54  void
56  typename Traits::EvalData d);
57 
58  private:
59 
60  using ScalarT = typename EvalT::ScalarT;
61 
63 
64  PHX::MDField<const ScalarT,Cell,IP> scalar; // function to be integrated
65 
66  std::vector<PHX::MDField<const ScalarT,Cell,IP> > field_multipliers;
67  double multiplier;
68 
69  std::size_t num_qp;
70  std::size_t quad_index;
72 
73  bool use_max; // true ... if false then this is a "min"
74 
75 public:
76  // for testing purposes
77  const PHX::FieldTag & getFieldTag() const
78  { return extreme.fieldTag(); }
79 
80 private:
82 
83 }; // end of class CellExtreme
84 
85 
86 }
87 
88 #endif
void evaluateFields(typename Traits::EvalData d)
const PHX::FieldTag & getFieldTag() const
typename EvalT::ScalarT ScalarT
CellExtreme(const Teuchos::ParameterList &p)
std::vector< PHX::MDField< const ScalarT, Cell, IP > > field_multipliers
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
PHX::MDField< ScalarT > extreme
PHX::MDField< const ScalarT, Cell, IP > scalar