https://mooseframework.inl.gov
Loading...
Searching...
No Matches
BoundingValueElementDamper.C
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
11
13
16{
18 params.addClassDescription("This class implements a damper that limits the value of a variable "
19 "to be within user-specified bounds.");
20 params.addParam<Real>("max_value",
21 std::numeric_limits<Real>::max(),
22 "The maximum permissible iterative value for the variable.");
23 params.addParam<Real>("min_value",
24 std::numeric_limits<Real>::lowest(),
25 "The minimum permissible iterative value for the variable.");
26 return params;
27}
28
30 : ElementDamper(parameters),
31 _max_value(parameters.get<Real>("max_value")),
32 _min_value(parameters.get<Real>("min_value"))
33{
35 mooseError("max_value must be greater than min_value");
36}
37
38Real
40{
41 // Note that _u_increment contains the negative of the increment
42 if (_u[_qp] < _min_value)
43 return 1.0 - (_u[_qp] - _min_value) / -_u_increment[_qp];
44 else if (_u[_qp] > _max_value)
45 return 1.0 - (_u[_qp] - _max_value) / -_u_increment[_qp];
46
47 return 1.0;
48}
registerMooseObject("MooseApp", BoundingValueElementDamper)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
This class implements a damper that limits the value of a variable to be within user-specified bounds...
BoundingValueElementDamper(const InputParameters &parameters)
const Real & _min_value
The minimum permissible value of the variable.
const Real & _max_value
The maximum permissible value of the variable.
virtual Real computeQpDamping() override
Compute the damping for the current qp.
static InputParameters validParams()
Base class for deriving element dampers.
const VariableValue & _u
Holds the current solution at the current quadrature point.
unsigned int _qp
Quadrature point index.
static InputParameters validParams()
const VariableValue & _u_increment
The current Newton increment.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.