Panzer Version of the Day
Loading...
Searching...
No Matches
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
22namespace panzer {
23
38template<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
62 PHX::MDField<ScalarT> extreme; // result
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
75public:
76 // for testing purposes
77 const PHX::FieldTag & getFieldTag() const
78 { return extreme.fieldTag(); }
79
80private:
81 Teuchos::RCP<Teuchos::ParameterList> getValidParameters() const;
82
83}; // end of class CellExtreme
84
85
86}
87
88#endif
PHX::MDField< ScalarT > extreme
const PHX::FieldTag & getFieldTag() const
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
typename EvalT::ScalarT ScalarT
std::vector< PHX::MDField< const ScalarT, Cell, IP > > field_multipliers
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
PHX::MDField< const ScalarT, Cell, IP > scalar
void evaluateFields(typename Traits::EvalData d)
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.