www.mooseframework.org
ElementJacobianDamper.h
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 
10 #pragma once
11 
12 // Moose Includes
13 #include "GeneralDamper.h"
14 #include "MooseVariable.h"
15 
16 // Forward Declarations
18 class FEProblemBase;
19 class MooseMesh;
20 class DisplacedProblem;
21 
22 template <>
23 InputParameters validParams<ElementJacobianDamper>();
24 
28 class ElementJacobianDamper : public GeneralDamper
29 {
30 public:
31  static InputParameters validParams();
32 
33  ElementJacobianDamper(const InputParameters & parameters);
34 
35  virtual void initialSetup() override;
36 
40  virtual Real computeDamping(const NumericVector<Number> & /* solution */,
41  const NumericVector<Number> & update) override;
42 
43 protected:
45  THREAD_ID _tid;
46  Assembly & _assembly;
47 
49  const QBase * const & _qrule;
50 
52  const MooseArray<Real> & _JxW;
53 
55  FEProblemBase & _fe_problem;
56 
58  MooseSharedPointer<DisplacedProblem> _displaced_problem;
59 
61  MooseMesh * _mesh;
62 
64  std::vector<MooseVariable *> _disp_var;
65 
67  unsigned int _ndisp;
68 
70  std::vector<VariableValue> _disp_incr;
71 
73  const Real _max_jacobian_diff;
74 };
ElementJacobianDamper
This class implements a damper that limits the change in the Jacobian of elements.
Definition: ElementJacobianDamper.h:28
ElementJacobianDamper::_displaced_problem
MooseSharedPointer< DisplacedProblem > _displaced_problem
The displaced problem.
Definition: ElementJacobianDamper.h:58
ElementJacobianDamper::_JxW
const MooseArray< Real > & _JxW
Transformed Jacobian weights.
Definition: ElementJacobianDamper.h:52
ElementJacobianDamper::_qrule
const QBase *const & _qrule
Quadrature rule.
Definition: ElementJacobianDamper.h:49
ElementJacobianDamper::computeDamping
virtual Real computeDamping(const NumericVector< Number > &, const NumericVector< Number > &update) override
Computes this Damper's damping.
Definition: ElementJacobianDamper.C:68
ElementJacobianDamper::_ndisp
unsigned int _ndisp
The number of displacement variables.
Definition: ElementJacobianDamper.h:67
ElementJacobianDamper::initialSetup
virtual void initialSetup() override
Definition: ElementJacobianDamper.C:63
ElementJacobianDamper::validParams
static InputParameters validParams()
Definition: ElementJacobianDamper.C:23
ElementJacobianDamper::_assembly
Assembly & _assembly
Definition: ElementJacobianDamper.h:46
ElementJacobianDamper::ElementJacobianDamper
ElementJacobianDamper(const InputParameters &parameters)
Definition: ElementJacobianDamper.C:37
validParams< ElementJacobianDamper >
InputParameters validParams< ElementJacobianDamper >()
ElementJacobianDamper::_tid
THREAD_ID _tid
Thread ID.
Definition: ElementJacobianDamper.h:45
ElementJacobianDamper::_mesh
MooseMesh * _mesh
The displaced mesh.
Definition: ElementJacobianDamper.h:61
ElementJacobianDamper::_disp_var
std::vector< MooseVariable * > _disp_var
The displacement variables.
Definition: ElementJacobianDamper.h:64
ElementJacobianDamper::_max_jacobian_diff
const Real _max_jacobian_diff
Maximum allowed relative increment in Jacobian.
Definition: ElementJacobianDamper.h:73
ElementJacobianDamper::_fe_problem
FEProblemBase & _fe_problem
The FE problem.
Definition: ElementJacobianDamper.h:55
ElementJacobianDamper::_disp_incr
std::vector< VariableValue > _disp_incr
The current Newton increment in the displacement variables.
Definition: ElementJacobianDamper.h:70