www.mooseframework.org
NewmarkAccelAux.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 
10 #include "NewmarkAccelAux.h"
11 
12 registerMooseObject("TensorMechanicsApp", NewmarkAccelAux);
13 
15 
16 InputParameters
18 {
19  InputParameters params = AuxKernel::validParams();
20  params.addClassDescription("Computes the current acceleration using the Newmark method.");
21  params.addRequiredCoupledVar("displacement", "displacement variable");
22  params.addRequiredCoupledVar("velocity", "velocity variable");
23  params.addRequiredParam<Real>("beta", "beta parameter for Newmark method");
24  return params;
25 }
26 
27 NewmarkAccelAux::NewmarkAccelAux(const InputParameters & parameters)
28  : AuxKernel(parameters),
29  _disp_old(coupledValueOld("displacement")),
30  _disp(coupledValue("displacement")),
31  _vel_old(coupledValueOld("velocity")),
32  _beta(getParam<Real>("beta"))
33 {
34 }
35 
36 Real
38 {
39  if (!isNodal())
40  mooseError("must run on a nodal variable");
41 
42  Real accel_old = _u_old[_qp];
43  if (_dt == 0)
44  return accel_old;
45 
46  // Calculates acceeleration using Newmark time integration method
47  return 1.0 / _beta * ((_disp[_qp] - _disp_old[_qp]) / (_dt * _dt) - _vel_old[_qp] / _dt -
48  accel_old * (0.5 - _beta));
49 }
defineLegacyParams
defineLegacyParams(NewmarkAccelAux)
NewmarkAccelAux.h
NewmarkAccelAux::computeValue
virtual Real computeValue()
Definition: NewmarkAccelAux.C:37
registerMooseObject
registerMooseObject("TensorMechanicsApp", NewmarkAccelAux)
NewmarkAccelAux::_disp_old
const VariableValue & _disp_old
Definition: NewmarkAccelAux.h:34
NewmarkAccelAux::validParams
static InputParameters validParams()
Definition: NewmarkAccelAux.C:17
NewmarkAccelAux
Definition: NewmarkAccelAux.h:19
NewmarkAccelAux::_disp
const VariableValue & _disp
Definition: NewmarkAccelAux.h:35
validParams
InputParameters validParams()
NewmarkAccelAux::_beta
Real _beta
Definition: NewmarkAccelAux.h:37
NewmarkAccelAux::_vel_old
const VariableValue & _vel_old
Definition: NewmarkAccelAux.h:36
NewmarkAccelAux::NewmarkAccelAux
NewmarkAccelAux(const InputParameters &parameters)
Computes Acceleration using Newmark Time integration scheme.
Definition: NewmarkAccelAux.C:27