www.mooseframework.org
ComputeBeamResultants.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 "ComputeBeamResultants.h"
11 
12 registerMooseObject("TensorMechanicsApp", ComputeBeamResultants);
13 
15 
16 InputParameters
18 {
19  InputParameters params = Material::validParams();
20  params.addClassDescription("Compute forces and moments using elasticity");
21  return params;
22 }
23 
24 ComputeBeamResultants::ComputeBeamResultants(const InputParameters & parameters)
25  : Material(parameters),
26  _disp_strain_increment(
27  getMaterialPropertyByName<RealVectorValue>("mech_disp_strain_increment")),
28  _rot_strain_increment(getMaterialPropertyByName<RealVectorValue>("mech_rot_strain_increment")),
29  _material_stiffness(getMaterialPropertyByName<RealVectorValue>("material_stiffness")),
30  _material_flexure(getMaterialPropertyByName<RealVectorValue>("material_flexure")),
31  _total_rotation(getMaterialPropertyByName<RankTwoTensor>("total_rotation")),
32  _force(declareProperty<RealVectorValue>("forces")),
33  _moment(declareProperty<RealVectorValue>("moments")),
34  _force_old(getMaterialPropertyOld<RealVectorValue>("forces")),
35  _moment_old(getMaterialPropertyOld<RealVectorValue>("moments"))
36 {
37 }
38 
39 void
41 {
42  _force[_qp].zero();
43  _moment[_qp].zero();
44 }
45 
46 void
48 {
49  // force = R^T * _material_stiffness * strain_increment + force_old
50  RealVectorValue force_increment;
51  force_increment(0) = _material_stiffness[_qp](0) * _disp_strain_increment[_qp](0);
52  force_increment(1) = _material_stiffness[_qp](1) * _disp_strain_increment[_qp](1);
53  force_increment(2) = _material_stiffness[_qp](2) * _disp_strain_increment[_qp](2);
54 
55  _force[_qp] = _total_rotation[0].transpose() * force_increment + _force_old[_qp];
56 
57  // moment = R^T * _material_flexure * rotation_increment + moment_old
58  RealVectorValue moment_increment;
59  moment_increment(0) = _material_flexure[_qp](0) * _rot_strain_increment[_qp](0);
60  moment_increment(1) = _material_flexure[_qp](1) * _rot_strain_increment[_qp](1);
61  moment_increment(2) = _material_flexure[_qp](2) * _rot_strain_increment[_qp](2);
62 
63  _moment[_qp] = _total_rotation[0].transpose() * moment_increment + _moment_old[_qp];
64 }
ComputeBeamResultants::_force
MaterialProperty< RealVectorValue > & _force
Current force vector in global coordinate system.
Definition: ComputeBeamResultants.h:51
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeBeamResultants)
ComputeBeamResultants::validParams
static InputParameters validParams()
Definition: ComputeBeamResultants.C:17
ComputeBeamResultants::computeQpProperties
virtual void computeQpProperties() override
Definition: ComputeBeamResultants.C:47
ComputeBeamResultants::_moment
MaterialProperty< RealVectorValue > & _moment
Current moment vector in global coordinate system.
Definition: ComputeBeamResultants.h:54
ComputeBeamResultants.h
ComputeBeamResultants::_total_rotation
const MaterialProperty< RankTwoTensor > & _total_rotation
Rotational transformation from global to current beam local coordinate system.
Definition: ComputeBeamResultants.h:48
ComputeBeamResultants
Definition: ComputeBeamResultants.h:24
ComputeBeamResultants::_material_stiffness
const MaterialProperty< RealVectorValue > & _material_stiffness
Material stiffness vector that relates displacement strain increment to force increment.
Definition: ComputeBeamResultants.h:42
ComputeBeamResultants::ComputeBeamResultants
ComputeBeamResultants(const InputParameters &parameters)
Definition: ComputeBeamResultants.C:24
defineLegacyParams
defineLegacyParams(ComputeBeamResultants)
ComputeBeamResultants::_rot_strain_increment
const MaterialProperty< RealVectorValue > & _rot_strain_increment
Mechanical rotational strain increment in beam local coordinate system.
Definition: ComputeBeamResultants.h:39
ComputeBeamResultants::_disp_strain_increment
const MaterialProperty< RealVectorValue > & _disp_strain_increment
Mechanical displacement strain increment in beam local coordinate system.
Definition: ComputeBeamResultants.h:36
validParams
InputParameters validParams()
ComputeBeamResultants::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ComputeBeamResultants.C:40
RankTwoTensorTempl< Real >
ComputeBeamResultants::_force_old
const MaterialProperty< RealVectorValue > & _force_old
Old force vector in global coordinate system.
Definition: ComputeBeamResultants.h:57
ComputeBeamResultants::_material_flexure
const MaterialProperty< RealVectorValue > & _material_flexure
Material flexure vector that relates rotational strain increment to moment increment.
Definition: ComputeBeamResultants.h:45
ComputeBeamResultants::_moment_old
const MaterialProperty< RealVectorValue > & _moment_old
Old force vector in global coordinate system.
Definition: ComputeBeamResultants.h:60