www.mooseframework.org
ElementJacobianDamper.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 
15 #ifndef ELEMENTJACOBIANDAMPER_H
16 #define ELEMENTJACOBIANDAMPER_H
17 
18 // Moose Includes
19 #include "GeneralDamper.h"
20 #include "MooseVariable.h"
21 
22 // Forward Declarations
24 class FEProblemBase;
25 class MooseMesh;
26 class DisplacedProblem;
27 
28 template <>
29 InputParameters validParams<ElementJacobianDamper>();
30 
34 class ElementJacobianDamper : public GeneralDamper
35 {
36 public:
37  ElementJacobianDamper(const InputParameters & parameters);
38 
39  virtual void initialSetup() override;
40 
44  virtual Real computeDamping(const NumericVector<Number> & /* solution */,
45  const NumericVector<Number> & update) override;
46 
47 protected:
49  THREAD_ID _tid;
50  Assembly & _assembly;
51 
53  QBase *& _qrule;
54 
56  const MooseArray<Real> & _JxW;
57 
59  FEProblemBase & _fe_problem;
60 
62  MooseSharedPointer<DisplacedProblem> _displaced_problem;
63 
65  MooseMesh * _mesh;
66 
68  std::vector<MooseVariable *> _disp_var;
69 
71  unsigned int _ndisp;
72 
74  std::vector<VariableValue> _disp_incr;
75 
77  const Real _max_jacobian_diff;
78 };
79 
80 #endif // ELEMENTJACOBIANDAMPER_H
QBase *& _qrule
Quadrature rule.
This class implements a damper that limits the change in the Jacobian of elements.
unsigned int _ndisp
The number of displacement variables.
MooseSharedPointer< DisplacedProblem > _displaced_problem
The displaced problem.
std::vector< VariableValue > _disp_incr
The current Newton increment in the displacement variables.
MooseMesh * _mesh
The displaced mesh.
const Real _max_jacobian_diff
Maximum allowed relative increment in Jacobian.
const MooseArray< Real > & _JxW
Transformed Jacobian weights.
FEProblemBase & _fe_problem
The FE problem.
ElementJacobianDamper(const InputParameters &parameters)
virtual Real computeDamping(const NumericVector< Number > &, const NumericVector< Number > &update) override
Computes this Damper&#39;s damping.
std::vector< MooseVariable * > _disp_var
The displacement variables.
THREAD_ID _tid
Thread ID.
virtual void initialSetup() override
InputParameters validParams< ElementJacobianDamper >()