Panzer Version of the Day
Loading...
Searching...
No Matches
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
18namespace panzer {
19
21template<typename EvalT, typename TRAITS>
23 public PHX::EvaluatorDerived<EvalT, TRAITS> {
24public:
25
26 DOFDiv(const Teuchos::ParameterList& p);
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
45private:
46
47 typedef typename EvalT::ScalarT ScalarT;
48
52
53 PHX::MDField<const ScalarT,Cell,Point> dof_value;
54 PHX::MDField<ScalarT,Cell,IP> dof_div;
55
56 std::string basis_name;
57 std::size_t basis_index;
58};
59
60// Specitialization for the Jacobian
61template<typename TRAITS>
63 public panzer::EvaluatorWithBaseImpl<TRAITS>,
64 public PHX::EvaluatorDerived<panzer::Traits::Jacobian, TRAITS> {
65public:
66
67 DOFDiv(const Teuchos::ParameterList& p);
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
79private:
80
82
86
87 PHX::MDField<const ScalarT,Cell,Point> dof_value;
88 PHX::MDField<ScalarT,Cell,IP> dof_div;
89
90 std::string basis_name;
91 std::size_t basis_index;
92
94 std::vector<int> offsets;
95};
96
97}
98
99#endif
PHX::MDField< const ScalarT, Cell, Point > dof_value
Interpolates basis DOF values to IP DOF Div values.
PHX::MDField< const ScalarT, Cell, Point > dof_value
std::string basis_name
void evaluateFields(typename TRAITS::EvalData d)
panzer::BasisDescriptor bd_
std::size_t basis_index
panzer::IntegrationDescriptor id_
EvalT::ScalarT ScalarT
PHX::MDField< ScalarT, Cell, IP > dof_div
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &fm)
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.