Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_Normals_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_NORMALS_DECL_HPP
12 #define PANZER_EVALUATOR_NORMALS_DECL_HPP
13 
14 #include <string>
15 #include "Phalanx_Evaluator_Macros.hpp"
16 #include "Phalanx_MDField.hpp"
18 
19 namespace panzer {
20 
38 template<typename EvalT, typename Traits>
39 class Normals
40  :
41  public panzer::EvaluatorWithBaseImpl<Traits>,
42  public PHX::EvaluatorDerived<EvalT, Traits>
43 {
44  public:
45 
46  Normals(
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 
62  int side_id;
64 
65  std::size_t num_qp, num_dim;
66 
68  PHX::View<ScalarT*> scratch;
69  bool normalize;
70 
71 public:
72  // for testing purposes
73  const PHX::FieldTag & getFieldTag() const
74  { return normals.fieldTag(); }
75 
76 }; // end of class Normals
77 
78 
79 }
80 
81 #endif
Normals(const Teuchos::ParameterList &p)
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
PHX::View< ScalarT * > scratch
PHX::MDField< ScalarT, Cell, Point, Dim > normals
typename EvalT::ScalarT ScalarT
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
void evaluateFields(typename Traits::EvalData d)
const PHX::FieldTag & getFieldTag() const