Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_DOFDiv.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_DOF_DIV_DECL_HPP
12 #define PANZER_EVALUATOR_DOF_DIV_DECL_HPP
13 
15 #include "Phalanx_Evaluator_Derived.hpp"
16 #include "Phalanx_MDField.hpp"
17 
18 namespace panzer {
19 
21 template<typename EvalT, typename TRAITS>
22 class DOFDiv : public panzer::EvaluatorWithBaseImpl<TRAITS>,
23  public PHX::EvaluatorDerived<EvalT, TRAITS> {
24 public:
25 
27 
35  DOFDiv(const PHX::FieldTag & input,
36  const PHX::FieldTag & output,
37  const panzer::BasisDescriptor & bd,
39 
40  void postRegistrationSetup(typename TRAITS::SetupData d,
42 
43  void evaluateFields(typename TRAITS::EvalData d);
44 
45 private:
46 
47  typedef typename EvalT::ScalarT ScalarT;
48 
52 
55 
56  std::string basis_name;
57  std::size_t basis_index;
58 };
59 
60 // Specitialization for the Jacobian
61 template<typename TRAITS>
62 class DOFDiv<panzer::Traits::Jacobian,TRAITS> :
63  public panzer::EvaluatorWithBaseImpl<TRAITS>,
64  public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS> {
65 public:
66 
68 
69  DOFDiv(const PHX::FieldTag & input,
70  const PHX::FieldTag & output,
71  const panzer::BasisDescriptor & bd,
73 
74  void postRegistrationSetup(typename TRAITS::SetupData d,
76 
77  void evaluateFields(typename TRAITS::EvalData d);
78 
79 private:
80 
82 
86 
89 
90  std::string basis_name;
91  std::size_t basis_index;
92 
94  std::vector<int> offsets;
95 };
96 
97 }
98 
99 #endif
std::size_t basis_index
panzer::BasisDescriptor bd_
panzer::IntegrationDescriptor id_
DOFDiv(const Teuchos::ParameterList &p)
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Interpolates basis DOF values to IP DOF Div values.
panzer::Traits::Jacobian::ScalarT ScalarT
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
PHX::MDField< ScalarT, Cell, IP > dof_div
PHX::MDField< const ScalarT, Cell, Point > dof_value
PHX::MDField< const ScalarT, Cell, Point > dof_value
EvalT::ScalarT ScalarT
void evaluateFields(typename TRAITS::EvalData d)
std::string basis_name
PHX::MDField< ScalarT, Cell, IP > dof_div