Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #pragma once 11 : 12 : #include "ElementPostprocessor.h" 13 : #include "ExtremeValueBase.h" 14 : 15 : /// A postprocessor for collecting an extreme value for a functor with an element argument 16 : template <bool is_ad> 17 : class ElementExtremeFunctorValueTempl : public ExtremeValueBase<ElementPostprocessor> 18 : { 19 : public: 20 : static InputParameters validParams(); 21 : 22 : ElementExtremeFunctorValueTempl(const InputParameters & parameters); 23 104361 : virtual void execute() override { computeExtremeValue(); } 24 : 25 : protected: 26 : virtual std::pair<Real, Real> getProxyValuePair() override; 27 : 28 : /// Functor to search the extrema for 29 : const Moose::Functor<GenericReal<is_ad>> & _functor; 30 : 31 : /** 32 : * A proxy functor used to find the quadrature point at 33 : * which to evaluate the functor. If not provided, defaults to the functor. 34 : */ 35 : const Moose::Functor<GenericReal<is_ad>> & _proxy_functor; 36 : }; 37 : 38 : typedef ElementExtremeFunctorValueTempl<false> ElementExtremeFunctorValue; 39 : typedef ElementExtremeFunctorValueTempl<true> ADElementExtremeFunctorValue;