https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputePlaneFiniteStrainNOSPD.C
Go to the documentation of this file.
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
11
13
16{
19 "Class for computing nodal quantities for residual and jacobian calculation "
20 "for peridynamic correspondence models under planar finite strain "
21 "assumptions");
22
23 params.addCoupledVar("scalar_out_of_plane_strain",
24 "Scalar out-of-plane strain variable for generalized plane strain");
25 params.addCoupledVar("out_of_plane_strain",
26 "Nonlinear out-of-plane strain variable for plane stress condition");
27
28 return params;
29}
30
32 : ComputeFiniteStrainNOSPD(parameters),
33 _scalar_out_of_plane_strain_coupled(isCoupledScalar("scalar_out_of_plane_strain")),
34 _scalar_out_of_plane_strain(_scalar_out_of_plane_strain_coupled
35 ? coupledScalarValue("scalar_out_of_plane_strain")
36 : _zero),
37 _scalar_out_of_plane_strain_old(_scalar_out_of_plane_strain_coupled
38 ? coupledScalarValueOld("scalar_out_of_plane_strain")
39 : _zero),
40 _out_of_plane_strain_coupled(isCoupled("out_of_plane_strain")),
41 _out_of_plane_strain(_out_of_plane_strain_coupled ? coupledValue("out_of_plane_strain")
42 : _zero),
43 _out_of_plane_strain_old(_out_of_plane_strain_coupled ? coupledValueOld("out_of_plane_strain")
44 : _zero)
45{
46}
47
48void
50{
52
53 RankTwoTensor deformation_gradient_old = _deformation_gradient_old[_qp];
54 deformation_gradient_old(2, 2) = computeQpOutOfPlaneDeformationGradientOld();
55
56 // Incremental deformation gradient of current step w.r.t previous step:
57 // _Fhat = deformation_gradient * inv(deformation_gradient_old)
58 _Fhat[_qp] = _deformation_gradient[_qp] * deformation_gradient_old.inverse();
59}
60
61Real
63{
64 // This is consistent with the approximation of stretch rate tensor
65 // D = log(sqrt(Fhat^T * Fhat)) / dt
66
68 return std::exp(_scalar_out_of_plane_strain[0]);
69 else
70 return std::exp(_out_of_plane_strain[_qp]);
71}
72
73Real
registerMooseObject("PeridynamicsApp", ComputePlaneFiniteStrainNOSPD)
Material class for peridynamic correspondence model for finite strain.
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
Material properties to fetch.
static InputParameters validParams()
std::vector< RankTwoTensor > _Fhat
'Incremental' deformation gradient
Material class for 2D correspondence material model for finite strain: plane strain,...
const bool _scalar_out_of_plane_strain_coupled
Scalar out-of-plane strain for generalized plane strain.
virtual Real computeQpOutOfPlaneDeformationGradient()
Functions to compute the out-of-plane component of deformation gradient for generalized plane strain ...
ComputePlaneFiniteStrainNOSPD(const InputParameters &parameters)
const VariableValue & _scalar_out_of_plane_strain_old
MaterialProperty< RankTwoTensor > & _deformation_gradient
void addClassDescription(const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
RankTwoTensorTempl< T > inverse() const