Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 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 "ComputeRSphericalSmallStrain.h" 11 : #include "Assembly.h" 12 : 13 : #include "libmesh/quadrature.h" 14 : 15 : registerMooseObject("SolidMechanicsApp", ComputeRSphericalSmallStrain); 16 : 17 : InputParameters 18 72 : ComputeRSphericalSmallStrain::validParams() 19 : { 20 72 : InputParameters params = ComputeSmallStrain::validParams(); 21 72 : params.addClassDescription("Compute a small strain 1D spherical symmetry case."); 22 72 : return params; 23 0 : } 24 : 25 54 : ComputeRSphericalSmallStrain::ComputeRSphericalSmallStrain(const InputParameters & parameters) 26 54 : : ComputeSmallStrain(parameters) 27 : { 28 54 : } 29 : 30 : void 31 536 : ComputeRSphericalSmallStrain::computeProperties() 32 : { 33 1588 : for (_qp = 0; _qp < _qrule->n_points(); ++_qp) 34 : { 35 1052 : _total_strain[_qp](0, 0) = (*_grad_disp[0])[_qp](0); 36 : 37 1052 : if (_q_point[_qp](0) != 0.0) 38 1052 : _total_strain[_qp](1, 1) = (*_disp[0])[_qp] / _q_point[_qp](0); 39 : 40 : else 41 0 : _total_strain[_qp](1, 1) = 0.0; 42 : 43 : // \epsilon_{\theta \theta} = \epsilon{\phi \phi} in this 1D spherical system 44 1052 : _total_strain[_qp](2, 2) = _total_strain[_qp](1, 1); 45 : 46 1052 : _mechanical_strain[_qp] = _total_strain[_qp]; 47 : 48 : // Remove the eigenstrains 49 1052 : for (auto es : _eigenstrains) 50 0 : _mechanical_strain[_qp] -= (*es)[_qp]; 51 : } 52 536 : }