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 "Compute1DFiniteStrain.h" 11 : 12 : #include "libmesh/quadrature.h" 13 : 14 : InputParameters 15 80 : Compute1DFiniteStrain::validParams() 16 : { 17 80 : InputParameters params = ComputeFiniteStrain::validParams(); 18 80 : params.addClassDescription("Compute strain increment for finite strain in 1D problem"); 19 : 20 80 : return params; 21 0 : } 22 : 23 60 : Compute1DFiniteStrain::Compute1DFiniteStrain(const InputParameters & parameters) 24 60 : : ComputeFiniteStrain(parameters) 25 : { 26 60 : } 27 : 28 : void 29 6200 : Compute1DFiniteStrain::computeProperties() 30 : { 31 18600 : for (_qp = 0; _qp < _qrule->n_points(); ++_qp) 32 : { 33 : // Deformation gradient 34 : auto A = RankTwoTensor::initializeFromRows( 35 12400 : (*_grad_disp[0])[_qp], (*_grad_disp[1])[_qp], (*_grad_disp[2])[_qp]); 36 : 37 : // Old Deformation gradient 38 : auto Fbar = RankTwoTensor::initializeFromRows( 39 12400 : (*_grad_disp_old[0])[_qp], (*_grad_disp_old[1])[_qp], (*_grad_disp_old[2])[_qp]); 40 : 41 : // Compute the displacement gradient dUy/dy and dUz/dz value for 1D problems 42 12400 : A(1, 1) = computeGradDispYY(); 43 12400 : A(2, 2) = computeGradDispZZ(); 44 : 45 12400 : Fbar(1, 1) = computeGradDispYYOld(); 46 12400 : Fbar(2, 2) = computeGradDispZZOld(); 47 : 48 : // Gauss point deformation gradient 49 12400 : _deformation_gradient[_qp] = A; 50 12400 : _deformation_gradient[_qp].addIa(1.0); 51 : 52 12400 : A -= Fbar; // very nearly A = gradU - gradUold, adapted to cylindrical coords 53 : 54 12400 : Fbar.addIa(1.0); // Fbar = ( I + gradUold) 55 : 56 : // Incremental deformation gradient _Fhat = I + A Fbar^-1 57 12400 : _Fhat[_qp] = A * Fbar.inverse(); 58 12400 : _Fhat[_qp].addIa(1.0); 59 : } 60 : 61 18600 : for (_qp = 0; _qp < _qrule->n_points(); ++_qp) 62 12400 : computeQpStrain(); 63 6200 : }