Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_DOFCurl.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_CURL_DECL_HPP
12 #define PANZER_EVALUATOR_DOF_CURL_DECL_HPP
13 
14 #include "Phalanx_Evaluator_Macros.hpp"
15 #include "Phalanx_MDField.hpp"
17 
18 namespace panzer {
19 
21 template<typename EvalT, typename TRAITS>
22 class DOFCurl : public panzer::EvaluatorWithBaseImpl<TRAITS>,
23  public PHX::EvaluatorDerived<EvalT, TRAITS> {
24 public:
25 
27 
36  DOFCurl(const PHX::FieldTag & input,
37  const PHX::FieldTag & output,
38  const panzer::BasisDescriptor & bd,
40  int basis_dim);
41 
42  void postRegistrationSetup(typename TRAITS::SetupData d,
44 
45  void evaluateFields(typename TRAITS::EvalData d);
46 
47 private:
48 
49  typedef typename EvalT::ScalarT ScalarT;
50 
54 
56 
59 
60  std::string basis_name;
61  std::size_t basis_index;
63 };
64 
65 // Specitialization for the Jacobian
66 template<typename TRAITS>
67 class DOFCurl<typename TRAITS::Jacobian,TRAITS> :
68  public panzer::EvaluatorWithBaseImpl<TRAITS>,
69  public PHX::EvaluatorDerived<typename TRAITS::Jacobian, TRAITS> {
70 public:
71 
73 
74  DOFCurl(const PHX::FieldTag & input,
75  const PHX::FieldTag & output,
76  const panzer::BasisDescriptor & bd,
78  int basis_dim);
79 
80  void postRegistrationSetup(typename TRAITS::SetupData d,
82 
83  void evaluateFields(typename TRAITS::EvalData d);
84 
85 private:
86 
88 
92 
94 
97 
98  PHX::View<const int*> offsets_array;
99  std::vector<int> offsets;
100 
101  std::string basis_name;
102  std::size_t basis_index;
104 
106 };
107 
108 
109 
110 }
111 
112 #endif
std::string basis_name
PHX::MDField< ScalarT, Cell, Point, Dim > dof_curl_vector
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
panzer::BasisDescriptor bd_
PHX::MDField< ScalarT, Cell, Point > dof_curl_scalar
PHX::MDField< ScalarT, Cell, Point, Dim > dof_curl_vector
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Interpolates basis DOF values to IP DOF Curl values.
std::size_t basis_index
EvalT::ScalarT ScalarT
DOFCurl(const Teuchos::ParameterList &p)
panzer::IntegrationDescriptor id_
PHX::MDField< const ScalarT, Cell, Point > dof_value
PHX::MDField< ScalarT, Cell, Point > dof_curl_scalar
void evaluateFields(typename TRAITS::EvalData d)
PHX::MDField< const ScalarT, Cell, Point > dof_value