www.mooseframework.org
BoundingValueElementDamper.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
15 
18 {
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 {
34  if (_min_value > _max_value)
35  mooseError("max_value must be greater than min_value");
36 }
37 
38 Real
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 }
MooseObject::mooseError
void mooseError(Args &&... args) const
Definition: MooseObject.h:141
defineLegacyParams
defineLegacyParams(BoundingValueElementDamper)
ElementDamper
Base class for deriving element dampers.
Definition: ElementDamper.h:33
BoundingValueElementDamper.h
InputParameters::addParam
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an option parameter and a documentation string to the InputParameters object.
Definition: InputParameters.h:1198
registerMooseObject
registerMooseObject("MooseApp", BoundingValueElementDamper)
BoundingValueElementDamper::BoundingValueElementDamper
BoundingValueElementDamper(const InputParameters &parameters)
Definition: BoundingValueElementDamper.C:29
BoundingValueElementDamper
This class implements a damper that limits the value of a variable to be within user-specified bounds...
Definition: BoundingValueElementDamper.h:25
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
BoundingValueElementDamper::_max_value
const Real & _max_value
The maximum permissible value of the variable.
Definition: BoundingValueElementDamper.h:34
BoundingValueElementDamper::validParams
static InputParameters validParams()
Definition: BoundingValueElementDamper.C:17
BoundingValueElementDamper::_min_value
const Real & _min_value
The minimum permissible value of the variable.
Definition: BoundingValueElementDamper.h:36
ElementDamper::_qp
unsigned int _qp
Quadrature point index.
Definition: ElementDamper.h:72
BoundingValueElementDamper::computeQpDamping
virtual Real computeQpDamping() override
Compute the damping for the current qp.
Definition: BoundingValueElementDamper.C:39
ElementDamper::_u_increment
const VariableValue & _u_increment
The current Newton increment.
Definition: ElementDamper.h:81
ElementDamper::validParams
static InputParameters validParams()
Definition: ElementDamper.C:24
ElementDamper::_u
const VariableValue & _u
Holds the current solution at the current quadrature point.
Definition: ElementDamper.h:83