https://mooseframework.inl.gov
ElementExtremeMaterialPropertyReporter.h
Go to the documentation of this file.
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 "ElementReporter.h"
13 
17 template <bool is_ad>
19 {
20 public:
22 
24  enum class ExtremeType
25  {
26  MAX,
27  MIN
28  };
29 
31 
32  virtual void initialize() override;
33  virtual void execute() override;
34  virtual void finalize() override;
35  virtual void threadJoin(const UserObject & uo) override;
36 
37 protected:
43  void computeQpValue();
44 
47 
50 
53 
55  Point & _coordinates;
56 
58  std::vector<const GenericMaterialProperty<Real, is_ad> *> _additional_reported_properties;
59 
62 
64  unsigned int _qp;
65 };
66 
virtual void threadJoin(const UserObject &uo) override
Must override.
std::vector< const GenericMaterialProperty< Real, is_ad > * > _additional_reported_properties
Pointers to other reported material property objects.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
const ExtremeType _type
Type of extreme value to compute.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
Point & _coordinates
Coordinates of point with extreme value.
ElementExtremeMaterialPropertyReporterTempl(const InputParameters &parameters)
Determines the location of the extreme (minimum or maximum) value of a material property, as well as values of a specified set of properties at that location.
ElementExtremeMaterialPropertyReporterTempl< true > ADElementExtremeMaterialPropertyReporter
void computeQpValue()
Check a given quadrature point for the extreme value, and capture the extreme value as well as the ot...
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
ElementExtremeMaterialPropertyReporterTempl< false > ElementExtremeMaterialPropertyReporter
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const GenericMaterialProperty< Real, is_ad > & _mat_prop
Material property for which to find extreme.
Base class for user-specific data.
Definition: UserObject.h:19
std::vector< Real * > _additional_reported_property_values
Values of other reported material properties.