www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FiniteStrainCPSlipRateRes Class Reference

#include <FiniteStrainCPSlipRateRes.h>

Inheritance diagram for FiniteStrainCPSlipRateRes:
[legend]

Public Member Functions

 FiniteStrainCPSlipRateRes (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void solveStatevar ()
 This function solves internal variables. More...
 
virtual void preSolveStress ()
 This function sets variable for internal variable solve. More...
 
virtual void solveStress ()
 This function solves for stress, updates plastic deformation gradient. More...
 
virtual void calcResidJacobSlipRate ()
 This function calculates residual and jacobian of slip rate. More...
 
virtual void calcResidualSlipRate ()
 This function calculates residual of slip rate. More...
 
virtual void calcJacobianSlipRate ()
 This function calculates jacobian of slip rate. More...
 
virtual void getSlipIncrements ()
 This function updates the slip system resistances. More...
 
virtual void calcDtauDsliprate ()
 This function calculates partial derivative of resolved shear stress with respect to split rate. More...
 
virtual void calcDgssDsliprate ()
 This function calculates partial derivative of slip system resistances with respect to split rate. More...
 
void calcUpdate ()
 This function calculates and updates the residual of slip rate. More...
 
virtual Real calcResidNorm ()
 This function calculates the residual norm. More...
 
bool lineSearchUpdateSlipRate (const Real, const DenseVector< Real > &)
 This function performs the line search update. More...
 
Real calcResidDotProdUpdate (const DenseVector< Real > &)
 This function calculates the dot product of residual and update. More...
 
virtual void computeQpStress ()
 This function updates the stress at a quadrature point. More...
 
virtual void computeQpElasticityTensor ()
 This function updates the elasticity tensor at a quadrature point. More...
 
virtual void initQpStatefulProperties ()
 This function initializes the stateful properties such as stress, plastic deformation gradient, slip system resistances, etc. More...
 
virtual void calc_resid_jacob (RankTwoTensor &, RankFourTensor &)
 This function calls the residual and jacobian functions used in the stress update algorithm. More...
 
virtual void update_slip_system_resistance ()
 This function updates the slip system resistances. More...
 
virtual void updateGss ()
 This function updates the slip system resistances. More...
 
virtual void getSlipSystems ()
 This function reads slip system from file - see test. More...
 
virtual void assignSlipSysRes ()
 This function assign initial values of slip system resistances/internal variables read from getSlipSystems(). More...
 
virtual void readFileInitSlipSysRes ()
 This function read slip system resistances from file - see test. More...
 
virtual void getInitSlipSysRes ()
 This function assign slip system resistances - see test. More...
 
virtual void readFileFlowRateParams ()
 This function read flow rate parameters from file - see test. More...
 
virtual void getFlowRateParams ()
 This function assign flow rate parameters - see test. More...
 
virtual void readFileHardnessParams ()
 This function read hardness parameters from file. More...
 
virtual void getHardnessParams ()
 This function assign flow rate parameters from .i file - see test. More...
 
virtual void initSlipSysProps ()
 This function initializes slip system resistances. More...
 
virtual void initAdditionalProps ()
 This function initializes additional parameters. More...
 
virtual void preSolveQp ()
 This function set variables for stress and internal variable solve. More...
 
virtual void solveQp ()
 This function solves stress and internal variables. More...
 
virtual void postSolveQp ()
 This function update stress and internal variable after solve. More...
 
virtual void preSolveStatevar ()
 This function set variables for internal variable solve. More...
 
virtual void postSolveStatevar ()
 This function update internal variable after solve. More...
 
virtual void postSolveStress ()
 This function update stress and plastic deformation gradient after solve. More...
 
virtual void calcResidual (RankTwoTensor &)
 This function calculate stress residual. More...
 
virtual void calcJacobian (RankFourTensor &)
 This function calculate jacobian. More...
 
virtual RankFourTensor calcTangentModuli ()
 This function calculate the tangent moduli for preconditioner. More...
 
virtual RankFourTensor elasticTangentModuli ()
 This function calculate the elastic tangent moduli for preconditioner. More...
 
virtual RankFourTensor elastoPlasticTangentModuli ()
 This function calculate the exact tangent moduli for preconditioner. More...
 
RankTwoTensor get_current_rotation (const RankTwoTensor &a)
 This function perform RU decomposition to obtain the rotation tensor. More...
 
RankTwoTensor getMatRot (const RankTwoTensor &a)
 This function perform RU decomposition to obtain the rotation tensor. More...
 
void calc_schmid_tensor ()
 This function calculate the Schmid tensor. More...
 
bool line_search_update (const Real rnorm_prev, const RankTwoTensor)
 This function performs the line search update. More...
 
void internalVariableUpdateNRiteration ()
 This function updates internal variables after each NewTon Raphson iteration (_fp_inv) More...
 
virtual void computeQpProperties () override
 

Protected Attributes

DenseVector< Real > _resid
 
DenseVector< Real > _slip_rate
 
DenseVector< Real > _dsliprate_dgss
 
DenseMatrix< Real > _jacob
 
DenseMatrix< Real > _dsliprate_dsliprate
 
const unsigned int _nss
 Number of slip system resistance. More...
 
std::vector< Real > _gprops
 
std::vector< Real > _hprops
 
std::vector< Real > _flowprops
 
std::string _slip_sys_file_name
 File should contain slip plane normal and direction. See test. More...
 
std::string _slip_sys_res_prop_file_name
 File should contain initial values of the slip system resistances. More...
 
std::string _slip_sys_flow_prop_file_name
 File should contain values of the flow rate equation parameters. More...
 
std::string _slip_sys_hard_prop_file_name
 The hardening parameters in this class are read from .i file. The user can override to read from file. More...
 
Real _rtol
 Stress residual equation relative tolerance. More...
 
Real _abs_tol
 Stress residual equation absolute tolerance. More...
 
Real _gtol
 Internal variable update equation tolerance. More...
 
Real _slip_incr_tol
 Slip increment tolerance. More...
 
unsigned int _maxiter
 Maximum number of iterations for stress update. More...
 
unsigned int _maxiterg
 Maximum number of iterations for internal variable update. More...
 
unsigned int _num_slip_sys_flowrate_props
 Number of slip system flow rate parameters. More...
 
MooseEnum _tan_mod_type
 Type of tangent moduli calculation. More...
 
MooseEnum _intvar_read_type
 Read from options for initial values of internal variables. More...
 
unsigned int _num_slip_sys_props
 Number of slip system specific properties provided in the file containing slip system normals and directions. More...
 
bool _gen_rndm_stress_flag
 
bool _input_rndm_scale_var
 Input option for scaling variable to generate random stress when convergence fails. More...
 
Real _rndm_scale_var
 Scaling value. More...
 
unsigned int _rndm_seed
 Seed value. More...
 
unsigned int _max_substep_iter
 Maximum number of substep iterations. More...
 
bool _use_line_search
 Flag to activate line serach. More...
 
Real _min_lsrch_step
 Minimum line search step size. More...
 
Real _lsrch_tol
 Line search bisection method tolerance. More...
 
unsigned int _lsrch_max_iter
 Line search bisection method maximum iteration number. More...
 
MooseEnum _lsrch_method
 
MaterialProperty< RankTwoTensor > & _fp
 
const MaterialProperty< RankTwoTensor > & _fp_old
 
MaterialProperty< RankTwoTensor > & _pk2
 
const MaterialProperty< RankTwoTensor > & _pk2_old
 
MaterialProperty< RankTwoTensor > & _lag_e
 
const MaterialProperty< RankTwoTensor > & _lag_e_old
 
MaterialProperty< std::vector< Real > > & _gss
 
const MaterialProperty< std::vector< Real > > & _gss_old
 
MaterialProperty< Real > & _acc_slip
 
const MaterialProperty< Real > & _acc_slip_old
 
MaterialProperty< RankTwoTensor > & _update_rot
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient
 
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
 
const std::string _elasticity_tensor_name
 Name of the elasticity tensor material property. More...
 
const MaterialProperty< RankFourTensor > & _elasticity_tensor
 Elasticity tensor material property. More...
 
const MaterialProperty< RankTwoTensor > & _crysrot
 
DenseVector< Real > _mo
 
DenseVector< Real > _no
 
DenseVector< Real > _a0
 
DenseVector< Real > _xm
 
Real _h0
 
Real _tau_sat
 
Real _tau_init
 
Real _r
 
RankTwoTensor _dfgrd_tmp
 
RankTwoTensor _fe
 
RankTwoTensor _fp_old_inv
 
RankTwoTensor _fp_inv
 
RankTwoTensor _fp_prev_inv
 
DenseVector< Real > _slip_incr
 
DenseVector< Real > _tau
 
DenseVector< Real > _dslipdtau
 
std::vector< RankTwoTensor_s0
 
RankTwoTensor _pk2_tmp
 
RankTwoTensor _pk2_tmp_old
 
Real _accslip_tmp
 
Real _accslip_tmp_old
 
std::vector< Real > _gss_tmp
 
std::vector< Real > _gss_tmp_old
 
DenseVector< Real > _slip_sys_props
 
DenseMatrix< Real > _dgss_dsliprate
 
bool _read_from_slip_sys_file
 
bool _err_tol
 
RankTwoTensor _delta_dfgrd
 Flag to check whether convergence is achieved. More...
 
RankTwoTensor _dfgrd_tmp_old
 
Real _dfgrd_scale_factor
 Scales the substepping increment to obtain deformation gradient at a substep iteration. More...
 
bool _first_step_iter
 Flags to reset variables and reinitialize variables. More...
 
bool _last_step_iter
 
bool _first_substep
 
const std::string _base_name
 Base name prepended to all material property names to allow for multi-material systems. More...
 
const MaterialProperty< RankTwoTensor > & _mechanical_strain
 Mechanical strain material property. More...
 
MaterialProperty< RankTwoTensor > & _stress
 Stress material property. More...
 
MaterialProperty< RankTwoTensor > & _elastic_strain
 Elastic strain material property. More...
 
const MaterialProperty< RankTwoTensor > & _extra_stress
 Extra stress tensor. More...
 
std::vector< const Function * > _initial_stress_fcn
 initial stress components More...
 
MaterialProperty< RankFourTensor > & _Jacobian_mult
 derivative of stress w.r.t. strain (_dstress_dstrain) More...
 

Detailed Description

Definition at line 19 of file FiniteStrainCPSlipRateRes.h.

Constructor & Destructor Documentation

◆ FiniteStrainCPSlipRateRes()

FiniteStrainCPSlipRateRes::FiniteStrainCPSlipRateRes ( const InputParameters &  parameters)

Definition at line 24 of file FiniteStrainCPSlipRateRes.C.

25  : FiniteStrainCrystalPlasticity(parameters),
26  _resid(_nss),
29  _jacob(_nss, _nss),
31 {
32 }

Member Function Documentation

◆ assignSlipSysRes()

void FiniteStrainCrystalPlasticity::assignSlipSysRes ( )
protectedvirtualinherited

This function assign initial values of slip system resistances/internal variables read from getSlipSystems().

Definition at line 233 of file FiniteStrainCrystalPlasticity.C.

234 {
235  _gss[_qp].resize(_nss);
236 
237  for (unsigned int i = 0; i < _nss; ++i)
238  _gss[_qp][i] = _slip_sys_props(i);
239 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ calc_resid_jacob()

void FiniteStrainCrystalPlasticity::calc_resid_jacob ( RankTwoTensor resid,
RankFourTensor jac 
)
protectedvirtualinherited

This function calls the residual and jacobian functions used in the stress update algorithm.

Definition at line 880 of file FiniteStrainCrystalPlasticity.C.

881 {
882  calcResidual(resid);
883  if (_err_tol)
884  return;
885  calcJacobian(jac);
886 }

Referenced by FiniteStrainCrystalPlasticity::solveStress().

◆ calc_schmid_tensor()

void FiniteStrainCrystalPlasticity::calc_schmid_tensor ( )
protectedinherited

This function calculate the Schmid tensor.

Definition at line 1048 of file FiniteStrainCrystalPlasticity.C.

1049 {
1050  DenseVector<Real> mo(LIBMESH_DIM * _nss), no(LIBMESH_DIM * _nss);
1051 
1052  // Update slip direction and normal with crystal orientation
1053  for (unsigned int i = 0; i < _nss; ++i)
1054  {
1055  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1056  {
1057  mo(i * LIBMESH_DIM + j) = 0.0;
1058  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
1059  mo(i * LIBMESH_DIM + j) =
1060  mo(i * LIBMESH_DIM + j) + _crysrot[_qp](j, k) * _mo(i * LIBMESH_DIM + k);
1061  }
1062 
1063  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1064  {
1065  no(i * LIBMESH_DIM + j) = 0.0;
1066  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
1067  no(i * LIBMESH_DIM + j) =
1068  no(i * LIBMESH_DIM + j) + _crysrot[_qp](j, k) * _no(i * LIBMESH_DIM + k);
1069  }
1070  }
1071 
1072  // Calculate Schmid tensor and resolved shear stresses
1073  for (unsigned int i = 0; i < _nss; ++i)
1074  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1075  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
1076  _s0[i](j, k) = mo(i * LIBMESH_DIM + j) * no(i * LIBMESH_DIM + k);
1077 }

Referenced by FiniteStrainCrystalPlasticity::preSolveQp().

◆ calcDgssDsliprate()

void FiniteStrainCPSlipRateRes::calcDgssDsliprate ( )
protectedvirtual

This function calculates partial derivative of slip system resistances with respect to split rate.

Definition at line 223 of file FiniteStrainCPSlipRateRes.C.

224 {
225  for (unsigned int i = 0; i < _nss; ++i)
226  for (unsigned int j = 0; j < _nss; ++j)
228 }

Referenced by calcJacobianSlipRate().

◆ calcDtauDsliprate()

void FiniteStrainCPSlipRateRes::calcDtauDsliprate ( )
protectedvirtual

This function calculates partial derivative of resolved shear stress with respect to split rate.

Definition at line 188 of file FiniteStrainCPSlipRateRes.C.

189 {
190  RankFourTensor dfedfpinv, deedfe, dfpinvdpk2;
191  std::vector<RankTwoTensor> dtaudpk2(_nss), dfpinvdsliprate(_nss);
192 
193  for (unsigned int i = 0; i < _nss; ++i)
194  {
195  dtaudpk2[i] = _s0[i];
196  dfpinvdsliprate[i] = -_fp_old_inv * _s0[i] * _dt;
197  }
198 
199  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
200  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
201  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
202  dfedfpinv(i, j, k, j) = _dfgrd_tmp(i, k);
203 
204  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
205  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
206  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
207  {
208  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
209  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
210  }
211 
212  RankFourTensor dpk2dfpinv;
213 
214  dpk2dfpinv = _elasticity_tensor[_qp] * deedfe * dfedfpinv;
215 
216  for (unsigned int i = 0; i < _nss; ++i)
217  for (unsigned int j = 0; j < _nss; ++j)
218  _dsliprate_dsliprate(i, j) =
219  _dslipdtau(i) * dtaudpk2[i].doubleContraction(dpk2dfpinv * dfpinvdsliprate[j]);
220 }

Referenced by calcJacobianSlipRate().

◆ calcJacobian()

void FiniteStrainCrystalPlasticity::calcJacobian ( RankFourTensor jac)
protectedvirtualinherited

This function calculate jacobian.

Definition at line 926 of file FiniteStrainCrystalPlasticity.C.

927 {
928  RankFourTensor dfedfpinv, deedfe, dfpinvdpk2;
929 
930  std::vector<RankTwoTensor> dtaudpk2(_nss), dfpinvdslip(_nss);
931 
932  for (unsigned int i = 0; i < _nss; ++i)
933  {
934  dtaudpk2[i] = _s0[i];
935  dfpinvdslip[i] = -_fp_old_inv * _s0[i];
936  }
937 
938  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
939  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
940  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
941  dfedfpinv(i, j, k, j) = _dfgrd_tmp(i, k);
942 
943  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
944  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
945  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
946  {
947  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
948  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
949  }
950 
951  for (unsigned int i = 0; i < _nss; ++i)
952  dfpinvdpk2 += (dfpinvdslip[i] * _dslipdtau(i)).outerProduct(dtaudpk2[i]);
953 
954  jac =
955  RankFourTensor::IdentityFour() - (_elasticity_tensor[_qp] * deedfe * dfedfpinv * dfpinvdpk2);
956 }

Referenced by FiniteStrainCrystalPlasticity::calc_resid_jacob().

◆ calcJacobianSlipRate()

void FiniteStrainCPSlipRateRes::calcJacobianSlipRate ( )
protectedvirtual

This function calculates jacobian of slip rate.

Definition at line 171 of file FiniteStrainCPSlipRateRes.C.

172 {
173  //_dsliprate_dsliprate not reinitialized to zero, hence order is important
176 
177  for (unsigned int i = 0; i < _nss; ++i)
178  for (unsigned int j = 0; j < _nss; ++j)
179  {
180  _jacob(i, j) = 0.0;
181  if (i == j)
182  _jacob(i, j) += 1.0;
183  _jacob(i, j) -= _dsliprate_dsliprate(i, j);
184  }
185 }

Referenced by calcResidJacobSlipRate(), and solveStress().

◆ calcResidDotProdUpdate()

Real FiniteStrainCPSlipRateRes::calcResidDotProdUpdate ( const DenseVector< Real > &  update)
protected

This function calculates the dot product of residual and update.

Definition at line 369 of file FiniteStrainCPSlipRateRes.C.

370 {
371  Real dotprod = 0.0;
372  for (unsigned int i = 0; i < _nss; ++i)
373  dotprod += _resid(i) * update(i);
374  return dotprod;
375 }

Referenced by lineSearchUpdateSlipRate().

◆ calcResidJacobSlipRate()

void FiniteStrainCPSlipRateRes::calcResidJacobSlipRate ( )
protectedvirtual

This function calculates residual and jacobian of slip rate.

Definition at line 126 of file FiniteStrainCPSlipRateRes.C.

127 {
129  if (_err_tol)
130  return;
132 }

Referenced by solveStress().

◆ calcResidNorm()

Real FiniteStrainCPSlipRateRes::calcResidNorm ( )
protectedvirtual

This function calculates the residual norm.

Definition at line 261 of file FiniteStrainCPSlipRateRes.C.

262 {
263  Real rnorm = 0.0;
264  for (unsigned int i = 0; i < _nss; ++i)
265  rnorm += Utility::pow<2>(_resid(i));
266  rnorm = std::sqrt(rnorm) / _nss;
267 
268  return rnorm;
269 }

Referenced by lineSearchUpdateSlipRate(), and solveStress().

◆ calcResidual()

void FiniteStrainCrystalPlasticity::calcResidual ( RankTwoTensor resid)
protectedvirtualinherited

This function calculate stress residual.

Definition at line 889 of file FiniteStrainCrystalPlasticity.C.

890 {
891  RankTwoTensor iden(RankTwoTensor::initIdentity), ce, ee, ce_pk2, eqv_slip_incr, pk2_new;
892 
893  _fe = _dfgrd_tmp * _fp_prev_inv; // _fp_inv ==> _fp_prev_inv
894 
895  ce = _fe.transpose() * _fe;
896  ce_pk2 = ce * _pk2_tmp;
897  ce_pk2 = ce_pk2 / _fe.det();
898 
899  // Calculate Schmid tensor and resolved shear stresses
900  for (unsigned int i = 0; i < _nss; ++i)
901  _tau(i) = ce_pk2.doubleContraction(_s0[i]);
902 
903  getSlipIncrements(); // Calculate dslip,dslipdtau
904 
905  if (_err_tol)
906  return;
907 
908  eqv_slip_incr.zero();
909  for (unsigned int i = 0; i < _nss; ++i)
910  eqv_slip_incr += _s0[i] * _slip_incr(i);
911 
912  eqv_slip_incr = iden - eqv_slip_incr;
913  _fp_inv = _fp_old_inv * eqv_slip_incr;
914  _fe = _dfgrd_tmp * _fp_inv;
915 
916  ce = _fe.transpose() * _fe;
917  ee = ce - iden;
918  ee *= 0.5;
919 
920  pk2_new = _elasticity_tensor[_qp] * ee;
921 
922  resid = _pk2_tmp - pk2_new;
923 }

Referenced by FiniteStrainCrystalPlasticity::calc_resid_jacob(), and FiniteStrainCrystalPlasticity::line_search_update().

◆ calcResidualSlipRate()

void FiniteStrainCPSlipRateRes::calcResidualSlipRate ( )
protectedvirtual

This function calculates residual of slip rate.

Definition at line 135 of file FiniteStrainCPSlipRateRes.C.

136 {
137  RankTwoTensor eqv_slip_incr, ce, ee;
138  const RankTwoTensor iden(RankTwoTensor::initIdentity);
139 
141  _slip_incr *= _dt;
142 
143  for (unsigned int i = 0; i < _nss; ++i)
144  eqv_slip_incr += _s0[i] * _slip_incr(i);
145 
146  eqv_slip_incr = iden - eqv_slip_incr;
147 
148  _fp_inv = _fp_old_inv * eqv_slip_incr;
149  _fe = _dfgrd_tmp * _fp_inv;
150 
151  ce = _fe.transpose() * _fe;
152  ee = ce - iden;
153  ee *= 0.5;
154 
155  _pk2_tmp = _elasticity_tensor[_qp] * ee;
156 
157  for (unsigned int i = 0; i < _nss; ++i)
158  _tau(i) = _pk2_tmp.doubleContraction(_s0[i]);
159 
162 
163  if (_err_tol)
164  return;
165 
166  for (unsigned int i = 0; i < _nss; ++i)
167  _resid(i) = _slip_rate(i) - _slip_incr(i) / _dt;
168 }

Referenced by calcResidJacobSlipRate(), lineSearchUpdateSlipRate(), and solveStress().

◆ calcTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::calcTangentModuli ( )
protectedvirtualinherited

This function calculate the tangent moduli for preconditioner.

Default is the elastic stiffness matrix. Exact jacobian is currently implemented. tan_mod_type can be modified to exact in .i file to turn it on.

Definition at line 1031 of file FiniteStrainCrystalPlasticity.C.

1032 {
1033  RankFourTensor tan_mod;
1034 
1035  switch (_tan_mod_type)
1036  {
1037  case 0:
1038  tan_mod = elastoPlasticTangentModuli();
1039  break;
1040  default:
1041  tan_mod = elasticTangentModuli();
1042  }
1043 
1044  return tan_mod;
1045 }

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ calcUpdate()

void FiniteStrainCPSlipRateRes::calcUpdate ( )
protected

This function calculates and updates the residual of slip rate.

Definition at line 247 of file FiniteStrainCPSlipRateRes.C.

248 {
249  DenseMatrix<Real> A = _jacob;
250  DenseVector<Real> r(_nss);
251  DenseVector<Real> x(_nss);
252 
253  r = _resid;
254 
255  A.lu_solve(r, x);
256 
257  _resid = x;
258 }

Referenced by solveStress().

◆ computeQpElasticityTensor()

void FiniteStrainCrystalPlasticity::computeQpElasticityTensor ( )
protectedvirtualinherited

This function updates the elasticity tensor at a quadrature point.

Presently void.

Definition at line 1026 of file FiniteStrainCrystalPlasticity.C.

1027 {
1028 }

◆ computeQpProperties()

void ComputeStressBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 50 of file ComputeStressBase.C.

51 {
53 
54  // Add in extra stress
55  _stress[_qp] += _extra_stress[_qp];
56 }

◆ computeQpStress()

void FiniteStrainCrystalPlasticity::computeQpStress ( )
protectedvirtualinherited

This function updates the stress at a quadrature point.

Solves stress residual equation using NR.

Updates slip system resistances iteratively.

Implements ComputeStressBase.

Definition at line 492 of file FiniteStrainCrystalPlasticity.C.

493 {
494  unsigned int substep_iter = 1; // Depth of substepping; Limited to maximum substep iteration
495  unsigned int num_substep = 1; // Calculated from substep_iter as 2^substep_iter
496  Real dt_original = _dt; // Stores original _dt; Reset at the end of solve
497  _first_substep = true; // Initialize variables at substep_iter = 1
498 
499  if (_max_substep_iter > 1)
500  {
502  if (_dfgrd_tmp_old.det() == 0)
503  _dfgrd_tmp_old.addIa(1.0);
504 
506  _err_tol = true; // Indicator to continue substepping
507  }
508 
509  // Substepping loop
510  while (_err_tol && _max_substep_iter > 1)
511  {
512  _dt = dt_original / num_substep;
513 
514  for (unsigned int istep = 0; istep < num_substep; ++istep)
515  {
516  _first_step_iter = false;
517  if (istep == 0)
518  _first_step_iter = true;
519 
520  _last_step_iter = false;
521  if (istep == num_substep - 1)
522  _last_step_iter = true;
523 
524  _dfgrd_scale_factor = (static_cast<Real>(istep) + 1) / num_substep;
525 
526  preSolveQp();
527  solveQp();
528 
529  if (_err_tol)
530  {
531  substep_iter++;
532  num_substep *= 2;
533  break;
534  }
535  }
536 
537  _first_substep = false; // Prevents reinitialization
538  _dt = dt_original; // Resets dt
539 
540 #ifdef DEBUG
541  if (substep_iter > _max_substep_iter)
542  mooseWarning("FiniteStrainCrystalPlasticity: Failure with substepping");
543 #endif
544 
545  if (!_err_tol || substep_iter > _max_substep_iter)
546  postSolveQp(); // Evaluate variables after successful solve or indicate failure
547  }
548 
549  // No substepping
550  if (_max_substep_iter == 1)
551  {
552  preSolveQp();
553  solveQp();
554  postSolveQp();
555  }
556 }

◆ elasticTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::elasticTangentModuli ( )
protectedvirtualinherited

This function calculate the elastic tangent moduli for preconditioner.

Definition at line 1119 of file FiniteStrainCrystalPlasticity.C.

1120 {
1121  return _elasticity_tensor[_qp]; // update jacobian_mult
1122 }

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

◆ elastoPlasticTangentModuli()

RankFourTensor FiniteStrainCrystalPlasticity::elastoPlasticTangentModuli ( )
protectedvirtualinherited

This function calculate the exact tangent moduli for preconditioner.

Definition at line 1080 of file FiniteStrainCrystalPlasticity.C.

1081 {
1082  RankFourTensor tan_mod;
1083  RankTwoTensor pk2fet, fepk2;
1084  RankFourTensor deedfe, dsigdpk2dfe;
1085 
1086  // Fill in the matrix stiffness material property
1087 
1088  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1089  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1090  for (unsigned int k = 0; k < LIBMESH_DIM; ++k)
1091  {
1092  deedfe(i, j, k, i) = deedfe(i, j, k, i) + _fe(k, j) * 0.5;
1093  deedfe(i, j, k, j) = deedfe(i, j, k, j) + _fe(k, i) * 0.5;
1094  }
1095 
1096  dsigdpk2dfe = _fe.mixedProductIkJl(_fe) * _elasticity_tensor[_qp] * deedfe;
1097 
1098  pk2fet = _pk2_tmp * _fe.transpose();
1099  fepk2 = _fe * _pk2_tmp;
1100 
1101  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1102  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1103  for (unsigned int l = 0; l < LIBMESH_DIM; ++l)
1104  {
1105  tan_mod(i, j, i, l) = tan_mod(i, j, i, l) + pk2fet(l, j);
1106  tan_mod(i, j, j, l) = tan_mod(i, j, j, l) + fepk2(i, l);
1107  }
1108 
1109  tan_mod += dsigdpk2dfe;
1110 
1111  Real je = _fe.det();
1112  if (je > 0.0)
1113  tan_mod /= je;
1114 
1115  return tan_mod;
1116 }

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

◆ get_current_rotation()

RankTwoTensor FiniteStrainCrystalPlasticity::get_current_rotation ( const RankTwoTensor a)
protectedinherited

This function perform RU decomposition to obtain the rotation tensor.

Definition at line 984 of file FiniteStrainCrystalPlasticity.C.

985 {
986  return getMatRot(a);
987 }

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ getFlowRateParams()

void FiniteStrainCrystalPlasticity::getFlowRateParams ( )
protectedvirtualinherited

This function assign flow rate parameters - see test.

.i input file format start_slip_sys_num, end_slip_sys_num, value1, value2

Definition at line 343 of file FiniteStrainCrystalPlasticity.C.

344 {
345  if (_flowprops.size() <= 0)
346  mooseError("FiniteStrainCrystalPLasticity: Error in reading flow rate properties: Specify "
347  "input in .i file or a slip_sys_flow_prop_file_name");
348 
349  _a0.resize(_nss);
350  _xm.resize(_nss);
351 
352  unsigned int num_data_grp = 2 + _num_slip_sys_flowrate_props; // Number of data per group e.g.
353  // start_slip_sys, end_slip_sys,
354  // value1, value2, ..
355 
356  for (unsigned int i = 0; i < _flowprops.size() / num_data_grp; ++i)
357  {
358  Real vs, ve;
359  unsigned int is, ie;
360 
361  vs = _flowprops[i * num_data_grp];
362  ve = _flowprops[i * num_data_grp + 1];
363 
364  if (vs <= 0 || ve <= 0)
365  mooseError("FiniteStrainCrystalPLasticity: Indices in flow rate parameter read must be "
366  "positive integers: is = ",
367  vs,
368  " ie = ",
369  ve);
370 
371  if (vs != floor(vs) || ve != floor(ve))
372  mooseError("FiniteStrainCrystalPLasticity: Error in reading flow props: Values specifying "
373  "start and end number of slip system groups should be integer");
374 
375  is = static_cast<unsigned int>(vs);
376  ie = static_cast<unsigned int>(ve);
377 
378  if (is > ie)
379  mooseError("FiniteStrainCrystalPLasticity: Start index is = ",
380  is,
381  " should be greater than end index ie = ",
382  ie,
383  " in flow rate parameter read");
384 
385  for (unsigned int j = is; j <= ie; ++j)
386  {
387  _a0(j - 1) = _flowprops[i * num_data_grp + 2];
388  _xm(j - 1) = _flowprops[i * num_data_grp + 3];
389  }
390  }
391 
392  for (unsigned int i = 0; i < _nss; ++i)
393  {
394  if (!(_a0(i) > 0.0 && _xm(i) > 0.0))
395  {
396  mooseWarning(
397  "FiniteStrainCrystalPlasticity: Non-positive flow rate parameters ", _a0(i), ",", _xm(i));
398  break;
399  }
400  }
401 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ getHardnessParams()

void FiniteStrainCrystalPlasticity::getHardnessParams ( )
protectedvirtualinherited

This function assign flow rate parameters from .i file - see test.

Definition at line 411 of file FiniteStrainCrystalPlasticity.C.

412 {
413  if (_hprops.size() <= 0)
414  mooseError("FiniteStrainCrystalPLasticity: Error in reading hardness properties: Specify input "
415  "in .i file or a slip_sys_hard_prop_file_name");
416 
417  _r = _hprops[0];
418  _h0 = _hprops[1];
419  _tau_init = _hprops[2];
420  _tau_sat = _hprops[3];
421 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ getInitSlipSysRes()

void FiniteStrainCrystalPlasticity::getInitSlipSysRes ( )
protectedvirtualinherited

This function assign slip system resistances - see test.

.i input file format start_slip_sys_num, end_slip_sys_num, value.

Definition at line 261 of file FiniteStrainCrystalPlasticity.C.

262 {
263  if (_gprops.size() <= 0)
264  mooseError("FiniteStrainCrystalPLasticity: Error in reading slip system resistance properties: "
265  "Specify input in .i file or in slip_sys_res_prop_file or in slip_sys_file");
266 
267  _gss[_qp].resize(_nss, 0.0);
268 
269  unsigned int num_data_grp = 3; // Number of data per group e.g. start_slip_sys, end_slip_sys,
270  // value
271 
272  for (unsigned int i = 0; i < _gprops.size() / num_data_grp; ++i)
273  {
274  Real vs, ve;
275  unsigned int is, ie;
276 
277  vs = _gprops[i * num_data_grp];
278  ve = _gprops[i * num_data_grp + 1];
279 
280  if (vs <= 0 || ve <= 0)
281  mooseError("FiniteStrainCrystalPLasticity: Indices in gss property read must be positive "
282  "integers: is = ",
283  vs,
284  " ie = ",
285  ve);
286 
287  if (vs != floor(vs) || ve != floor(ve))
288  mooseError("FiniteStrainCrystalPLasticity: Error in reading slip system resistances: Values "
289  "specifying start and end number of slip system groups should be integer");
290 
291  is = static_cast<unsigned int>(vs);
292  ie = static_cast<unsigned int>(ve);
293 
294  if (is > ie)
295  mooseError("FiniteStrainCrystalPLasticity: Start index is = ",
296  is,
297  " should be greater than end index ie = ",
298  ie,
299  " in slip system resistance property read");
300 
301  for (unsigned int j = is; j <= ie; ++j)
302  _gss[_qp][j - 1] = _gprops[i * num_data_grp + 2];
303  }
304 
305  for (unsigned int i = 0; i < _nss; ++i)
306  if (_gss[_qp][i] <= 0.0)
307  mooseError("FiniteStrainCrystalPLasticity: Value of resistance for slip system ",
308  i + 1,
309  " non positive");
310 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ getMatRot()

RankTwoTensor FiniteStrainCrystalPlasticity::getMatRot ( const RankTwoTensor a)
protectedinherited

This function perform RU decomposition to obtain the rotation tensor.

Definition at line 991 of file FiniteStrainCrystalPlasticity.C.

992 {
993  RankTwoTensor rot;
994  RankTwoTensor c, diag, evec;
995  PetscScalar cmat[LIBMESH_DIM][LIBMESH_DIM], work[10];
996  PetscReal w[LIBMESH_DIM];
997  PetscBLASInt nd = LIBMESH_DIM, lwork = 10, info;
998 
999  c = a.transpose() * a;
1000 
1001  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1002  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1003  cmat[i][j] = c(i, j);
1004 
1005  LAPACKsyev_("V", "U", &nd, &cmat[0][0], &nd, w, work, &lwork, &info);
1006 
1007  if (info != 0)
1008  mooseError("FiniteStrainCrystalPLasticity: DSYEV function call in getMatRot function failed");
1009 
1010  diag.zero();
1011 
1012  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1013  diag(i, i) = std::sqrt(w[i]);
1014 
1015  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
1016  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
1017  evec(i, j) = cmat[i][j];
1018 
1019  rot = a * ((evec.transpose() * diag * evec).inverse());
1020 
1021  return rot;
1022 }

Referenced by FiniteStrainCrystalPlasticity::get_current_rotation().

◆ getSlipIncrements()

void FiniteStrainCPSlipRateRes::getSlipIncrements ( )
protectedvirtual

This function updates the slip system resistances.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 231 of file FiniteStrainCPSlipRateRes.C.

232 {
234 
235  if (_err_tol)
236  return;
237 
238  _dslipdtau *= 1.0 / _dt;
239 
240  for (unsigned int i = 0; i < _nss; ++i)
241  _dsliprate_dgss(i) = -_a0(i) / _xm(i) *
242  std::pow(std::abs(_tau(i) / _gss_tmp[i]), 1.0 / _xm(i) - 1.0) * _tau(i) /
243  std::pow(_gss_tmp[i], 2.0);
244 }

Referenced by calcResidualSlipRate().

◆ getSlipSystems()

void FiniteStrainCrystalPlasticity::getSlipSystems ( )
protectedvirtualinherited

This function reads slip system from file - see test.

Definition at line 425 of file FiniteStrainCrystalPlasticity.C.

426 {
427  Real vec[LIBMESH_DIM];
428  std::ifstream fileslipsys;
429 
430  MooseUtils::checkFileReadable(_slip_sys_file_name);
431 
432  fileslipsys.open(_slip_sys_file_name.c_str());
433 
434  for (unsigned int i = 0; i < _nss; ++i)
435  {
436  // Read the slip normal
437  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
438  if (!(fileslipsys >> vec[j]))
439  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file \n");
440 
441  // Normalize the vectors
442  Real mag;
443  mag = Utility::pow<2>(vec[0]) + Utility::pow<2>(vec[1]) + Utility::pow<2>(vec[2]);
444  mag = std::sqrt(mag);
445 
446  for (unsigned j = 0; j < LIBMESH_DIM; ++j)
447  _no(i * LIBMESH_DIM + j) = vec[j] / mag;
448 
449  // Read the slip direction
450  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
451  if (!(fileslipsys >> vec[j]))
452  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file \n");
453 
454  // Normalize the vectors
455  mag = Utility::pow<2>(vec[0]) + Utility::pow<2>(vec[1]) + Utility::pow<2>(vec[2]);
456  mag = std::sqrt(mag);
457 
458  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
459  _mo(i * LIBMESH_DIM + j) = vec[j] / mag;
460 
461  mag = 0.0;
462  for (unsigned int j = 0; j < LIBMESH_DIM; ++j)
463  mag += _mo(i * LIBMESH_DIM + j) * _no(i * LIBMESH_DIM + j);
464 
465  if (std::abs(mag) > 1e-8)
466  mooseError(
467  "Crystal Plasicity Error: Slip direction and normal not orthonormal, System number = ",
468  i,
469  "\n");
470 
472  for (unsigned int j = 0; j < _num_slip_sys_props; ++j)
473  if (!(fileslipsys >> _slip_sys_props(i * _num_slip_sys_props + j)))
474  mooseError("Crystal Plasticity Error: Premature end of file reading slip system file - "
475  "check in slip system file read input options/values\n");
476  }
477 
478  fileslipsys.close();
479 }

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity().

◆ initAdditionalProps()

void FiniteStrainCrystalPlasticity::initAdditionalProps ( )
protectedvirtualinherited

This function initializes additional parameters.

Definition at line 483 of file FiniteStrainCrystalPlasticity.C.

484 {
485 }

Referenced by FiniteStrainCrystalPlasticity::initQpStatefulProperties().

◆ initQpStatefulProperties()

void FiniteStrainCrystalPlasticity::initQpStatefulProperties ( )
protectedvirtualinherited

This function initializes the stateful properties such as stress, plastic deformation gradient, slip system resistances, etc.

Reimplemented from ComputeStressBase.

Definition at line 190 of file FiniteStrainCrystalPlasticity.C.

191 {
192  _stress[_qp].zero();
193 
194  _fp[_qp].setToIdentity();
195 
196  _pk2[_qp].zero();
197  _acc_slip[_qp] = 0.0;
198  _lag_e[_qp].zero();
199 
200  _update_rot[_qp].setToIdentity();
201 
202  initSlipSysProps(); // Initializes slip system related properties
204 }

◆ initSlipSysProps()

void FiniteStrainCrystalPlasticity::initSlipSysProps ( )
protectedvirtualinherited

This function initializes slip system resistances.

Definition at line 207 of file FiniteStrainCrystalPlasticity.C.

208 {
209  switch (_intvar_read_type)
210  {
211  case 0:
213  break;
214  case 1:
216  break;
217  default:
219  }
220 
221  if (_slip_sys_flow_prop_file_name.length() != 0)
223  else
225 
226  if (_slip_sys_hard_prop_file_name.length() != 0)
228  else
230 }

Referenced by FiniteStrainCrystalPlasticity::initQpStatefulProperties().

◆ internalVariableUpdateNRiteration()

void FiniteStrainCrystalPlasticity::internalVariableUpdateNRiteration ( )
protectedinherited

This function updates internal variables after each NewTon Raphson iteration (_fp_inv)

Definition at line 1208 of file FiniteStrainCrystalPlasticity.C.

1209 {
1210  _fp_prev_inv = _fp_inv; // update _fp_prev_inv
1211 }

Referenced by FiniteStrainCrystalPlasticity::solveStress().

◆ line_search_update()

bool FiniteStrainCrystalPlasticity::line_search_update ( const Real  rnorm_prev,
const RankTwoTensor  dpk2 
)
protectedinherited

This function performs the line search update.

Definition at line 1125 of file FiniteStrainCrystalPlasticity.C.

1126 {
1127  if (_lsrch_method == "CUT_HALF")
1128  {
1129  Real rnorm;
1130  RankTwoTensor resid;
1131  Real step = 1.0;
1132 
1133  do
1134  {
1135  _pk2_tmp = _pk2_tmp - step * dpk2;
1136  step /= 2.0;
1137  _pk2_tmp = _pk2_tmp + step * dpk2;
1138 
1139  calcResidual(resid);
1140  rnorm = resid.L2norm();
1141  } while (rnorm > rnorm_prev && step > _min_lsrch_step);
1142 
1143  if (rnorm > rnorm_prev && step <= _min_lsrch_step)
1144  return false;
1145 
1146  return true;
1147  }
1148  else if (_lsrch_method == "BISECTION")
1149  {
1150  unsigned int count = 0;
1151  Real step_a = 0.0;
1152  Real step_b = 1.0;
1153  Real step = 1.0;
1154  Real s_m = 1000.0;
1155  Real rnorm = 1000.0;
1156 
1157  RankTwoTensor resid;
1158  calcResidual(resid);
1159  Real s_b = resid.doubleContraction(dpk2);
1160  Real rnorm1 = resid.L2norm();
1161  _pk2_tmp = _pk2_tmp - dpk2;
1162  calcResidual(resid);
1163  Real s_a = resid.doubleContraction(dpk2);
1164  Real rnorm0 = resid.L2norm();
1165  _pk2_tmp = _pk2_tmp + dpk2;
1166 
1167  if ((rnorm1 / rnorm0) < _lsrch_tol || s_a * s_b > 0)
1168  {
1169  calcResidual(resid);
1170  return true;
1171  }
1172 
1173  while ((rnorm / rnorm0) > _lsrch_tol && count < _lsrch_max_iter)
1174  {
1175  _pk2_tmp = _pk2_tmp - step * dpk2;
1176  step = 0.5 * (step_b + step_a);
1177  _pk2_tmp = _pk2_tmp + step * dpk2;
1178  calcResidual(resid);
1179  s_m = resid.doubleContraction(dpk2);
1180  rnorm = resid.L2norm();
1181 
1182  if (s_m * s_a < 0.0)
1183  {
1184  step_b = step;
1185  s_b = s_m;
1186  }
1187  if (s_m * s_b < 0.0)
1188  {
1189  step_a = step;
1190  s_a = s_m;
1191  }
1192  count++;
1193  }
1194 
1195  if ((rnorm / rnorm0) < _lsrch_tol && count < _lsrch_max_iter)
1196  return true;
1197 
1198  return false;
1199  }
1200  else
1201  {
1202  mooseError("Line search meothod is not provided.");
1203  return false;
1204  }
1205 }

Referenced by FiniteStrainCrystalPlasticity::solveStress().

◆ lineSearchUpdateSlipRate()

bool FiniteStrainCPSlipRateRes::lineSearchUpdateSlipRate ( const Real  rnorm_prev,
const DenseVector< Real > &  update 
)
protected

This function performs the line search update.

Definition at line 272 of file FiniteStrainCPSlipRateRes.C.

274 {
275  if (_lsrch_method == "CUT_HALF")
276  {
277  Real rnorm;
278  Real step = 1.0;
279  do
280  {
281  for (unsigned int i = 0; i < update.size(); ++i)
282  _slip_rate(i) += step * update(i);
283 
284  step /= 2.0;
285 
286  for (unsigned int i = 0; i < update.size(); ++i)
287  _slip_rate(i) -= step * update(i);
288 
290  if (_err_tol)
291  return false;
292  rnorm = calcResidNorm();
293  } while (rnorm > rnorm_prev && step > _min_lsrch_step);
294 
295  if (rnorm > rnorm_prev && step <= _min_lsrch_step)
296  return false;
297 
298  return true;
299  }
300  else if (_lsrch_method == "BISECTION")
301  {
302  unsigned int count = 0;
303  Real step_a = 0.0;
304  Real step_b = 1.0;
305  Real step = 1.0;
306  Real s_m = 1000.0;
307  Real rnorm = 1000.0;
308 
309  Real s_b = calcResidDotProdUpdate(update);
310  Real rnorm1 = calcResidNorm();
311 
312  for (unsigned int i = 0; i < update.size(); ++i)
313  _slip_rate(i) += update(i);
314 
316  Real s_a = calcResidDotProdUpdate(update);
317  Real rnorm0 = calcResidNorm();
318 
319  for (unsigned int i = 0; i < update.size(); ++i)
320  _slip_rate(i) -= update(i);
321 
322  if ((rnorm1 / rnorm0) < _lsrch_tol || s_a * s_b > 0)
323  {
325  return true;
326  }
327 
328  while ((rnorm / rnorm0) > _lsrch_tol && count < _lsrch_max_iter)
329  {
330 
331  for (unsigned int i = 0; i < update.size(); ++i)
332  _slip_rate(i) += step * update(i);
333 
334  step = 0.5 * (step_a + step_b);
335 
336  for (unsigned int i = 0; i < update.size(); ++i)
337  _slip_rate(i) -= step * update(i);
338 
340  s_m = calcResidDotProdUpdate(update);
341  rnorm = calcResidNorm();
342 
343  if (s_m * s_a < 0.0)
344  {
345  step_b = step;
346  s_b = s_m;
347  }
348  if (s_m * s_b < 0.0)
349  {
350  step_a = step;
351  s_a = s_m;
352  }
353  count++;
354  }
355 
356  if ((rnorm / rnorm0) < _lsrch_tol && count < _lsrch_max_iter)
357  return true;
358 
359  return false;
360  }
361  else
362  {
363  mooseError("Line search meothod is not provided.");
364  return false;
365  }
366 }

Referenced by solveStress().

◆ postSolveQp()

void FiniteStrainCrystalPlasticity::postSolveQp ( )
protectedvirtualinherited

This function update stress and internal variable after solve.

Definition at line 587 of file FiniteStrainCrystalPlasticity.C.

588 {
589  if (_err_tol)
590  {
591  _err_tol = false;
593  {
595  _rndm_scale_var = _elasticity_tensor[_qp](0, 0, 0, 0);
596 
597  _stress[_qp] = RankTwoTensor::genRandomSymmTensor(_rndm_scale_var, 1.0);
598  }
599  else
600  mooseError("FiniteStrainCrystalPlasticity: Constitutive failure");
601  }
602  else
603  {
604  _stress[_qp] = _fe * _pk2[_qp] * _fe.transpose() / _fe.det();
605 
606  _Jacobian_mult[_qp] += calcTangentModuli(); // Calculate jacobian for preconditioner
607 
608  RankTwoTensor iden(RankTwoTensor::initIdentity);
609 
610  _lag_e[_qp] = _deformation_gradient[_qp].transpose() * _deformation_gradient[_qp] - iden;
611  _lag_e[_qp] = _lag_e[_qp] * 0.5;
612 
613  RankTwoTensor rot;
614  rot = get_current_rotation(_deformation_gradient[_qp]); // Calculate material rotation
615  _update_rot[_qp] = rot * _crysrot[_qp];
616  }
617 }

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

◆ postSolveStatevar()

void FiniteStrainCrystalPlasticity::postSolveStatevar ( )
protectedvirtualinherited

This function update internal variable after solve.

Definition at line 682 of file FiniteStrainCrystalPlasticity.C.

683 {
684  if (_max_substep_iter == 1) // No substepping
685  {
686  _gss[_qp] = _gss_tmp;
687  _acc_slip[_qp] = _accslip_tmp;
688  }
689  else
690  {
691  if (_last_step_iter)
692  {
693  _gss[_qp] = _gss_tmp;
694  _acc_slip[_qp] = _accslip_tmp;
695  }
696  else
697  {
700  }
701  }
702 }

Referenced by FiniteStrainCrystalPlasticity::solveQp().

◆ postSolveStress()

void FiniteStrainCrystalPlasticity::postSolveStress ( )
protectedvirtualinherited

This function update stress and plastic deformation gradient after solve.

Definition at line 801 of file FiniteStrainCrystalPlasticity.C.

802 {
803  if (_max_substep_iter == 1) // No substepping
804  {
805  _fp[_qp] = _fp_inv.inverse();
806  _pk2[_qp] = _pk2_tmp;
807  }
808  else
809  {
810  if (_last_step_iter)
811  {
812  _fp[_qp] = _fp_inv.inverse();
813  _pk2[_qp] = _pk2_tmp;
814  }
815  else
816  {
819  }
820  }
821 }

Referenced by solveStatevar(), and FiniteStrainCrystalPlasticity::solveStatevar().

◆ preSolveQp()

void FiniteStrainCrystalPlasticity::preSolveQp ( )
protectedvirtualinherited

This function set variables for stress and internal variable solve.

Definition at line 559 of file FiniteStrainCrystalPlasticity.C.

560 {
561  // Initialize variable
562  if (_first_substep)
563  {
564  _Jacobian_mult[_qp].zero(); // Initializes jacobian for preconditioner
566  }
567 
568  if (_max_substep_iter == 1)
569  _dfgrd_tmp = _deformation_gradient[_qp]; // Without substepping
570  else
572 
573  _err_tol = false;
574 }

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

◆ preSolveStatevar()

void FiniteStrainCrystalPlasticity::preSolveStatevar ( )
protectedvirtualinherited

This function set variables for internal variable solve.

Definition at line 620 of file FiniteStrainCrystalPlasticity.C.

621 {
622  if (_max_substep_iter == 1) // No substepping
623  {
624  _gss_tmp = _gss_old[_qp];
626  }
627  else
628  {
629  if (_first_step_iter)
630  {
631  _gss_tmp = _gss_tmp_old = _gss_old[_qp];
633  }
634  else
636  }
637 }

Referenced by FiniteStrainCrystalPlasticity::solveQp().

◆ preSolveStress()

void FiniteStrainCPSlipRateRes::preSolveStress ( )
protectedvirtual

This function sets variable for internal variable solve.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 45 of file FiniteStrainCPSlipRateRes.C.

Referenced by solveStatevar().

◆ readFileFlowRateParams()

void FiniteStrainCrystalPlasticity::readFileFlowRateParams ( )
protectedvirtualinherited

This function read flow rate parameters from file - see test.

Definition at line 314 of file FiniteStrainCrystalPlasticity.C.

315 {
316  _a0.resize(_nss);
317  _xm.resize(_nss);
318 
319  MooseUtils::checkFileReadable(_slip_sys_flow_prop_file_name);
320 
321  std::ifstream file;
322  file.open(_slip_sys_flow_prop_file_name.c_str());
323 
324  std::vector<Real> vec;
325  vec.resize(_num_slip_sys_flowrate_props);
326 
327  for (unsigned int i = 0; i < _nss; ++i)
328  {
329  for (unsigned int j = 0; j < _num_slip_sys_flowrate_props; ++j)
330  if (!(file >> vec[j]))
331  mooseError(
332  "Error FiniteStrainCrystalPlasticity: Premature end of slip_sys_flow_rate_param file");
333 
334  _a0(i) = vec[0];
335  _xm(i) = vec[1];
336  }
337 
338  file.close();
339 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ readFileHardnessParams()

void FiniteStrainCrystalPlasticity::readFileHardnessParams ( )
protectedvirtualinherited

This function read hardness parameters from file.

Definition at line 405 of file FiniteStrainCrystalPlasticity.C.

406 {
407 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ readFileInitSlipSysRes()

void FiniteStrainCrystalPlasticity::readFileInitSlipSysRes ( )
protectedvirtualinherited

This function read slip system resistances from file - see test.

Definition at line 243 of file FiniteStrainCrystalPlasticity.C.

244 {
245  _gss[_qp].resize(_nss);
246 
247  MooseUtils::checkFileReadable(_slip_sys_res_prop_file_name);
248 
249  std::ifstream file;
250  file.open(_slip_sys_res_prop_file_name.c_str());
251 
252  for (unsigned int i = 0; i < _nss; ++i)
253  if (!(file >> _gss[_qp][i]))
254  mooseError("Error FiniteStrainCrystalPlasticity: Premature end of slip_sys_res_prop file");
255 
256  file.close();
257 }

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ solveQp()

void FiniteStrainCrystalPlasticity::solveQp ( )
protectedvirtualinherited

This function solves stress and internal variables.

Definition at line 577 of file FiniteStrainCrystalPlasticity.C.

578 {
580  solveStatevar();
581  if (_err_tol)
582  return;
584 }

Referenced by FiniteStrainCrystalPlasticity::computeQpStress().

◆ solveStatevar()

void FiniteStrainCPSlipRateRes::solveStatevar ( )
protectedvirtual

This function solves internal variables.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 35 of file FiniteStrainCPSlipRateRes.C.

36 {
38  solveStress();
39  if (_err_tol)
40  return;
42 }

◆ solveStress()

void FiniteStrainCPSlipRateRes::solveStress ( )
protectedvirtual

This function solves for stress, updates plastic deformation gradient.

Reimplemented from FiniteStrainCrystalPlasticity.

Definition at line 52 of file FiniteStrainCPSlipRateRes.C.

53 {
54  Real rnorm, rnorm0, rnorm_prev;
55  unsigned int iter = 0;
56 
57 #ifdef DEBUG
58  std::vector<Real> rnormst(_maxiter + 1), slipratest(_maxiter + 1); // Use for Debugging
59 #endif
60 
62  if (_err_tol)
63  return;
64  rnorm = calcResidNorm();
65  rnorm0 = rnorm;
66 
67 #ifdef DEBUG
68  rnormst[iter] = rnorm;
69  Real slipratemax = 0.0;
70  for (unsigned int i = 0; i < _nss; ++i)
71  if (std::abs(_slip_rate(i)) > slipratemax)
72  slipratemax = std::abs(_slip_rate(i));
73  slipratest[iter] = slipratemax;
74 #endif
75 
76  while (rnorm > _rtol * rnorm0 && rnorm0 > _abs_tol && iter < _maxiter)
77  {
78  calcUpdate();
79 
80  DenseVector<Real> update = _resid;
81 
82  _slip_rate -= update;
83 
85  if (_err_tol)
86  return;
87  rnorm_prev = rnorm;
88  rnorm = calcResidNorm();
89 
90  if (_use_line_search && rnorm > rnorm_prev && !lineSearchUpdateSlipRate(rnorm_prev, update))
91  {
92 #ifdef DEBUG
93  mooseWarning("FiniteStrainCrystalPLasticity: Failed with line search");
94 #endif
95  _err_tol = true;
96  return;
97  }
98 
100 
101  if (_use_line_search)
102  rnorm = calcResidNorm();
103  iter++;
104 
105 #ifdef DEBUG
106  slipratemax = 0.0;
107  for (unsigned int i = 0; i < _nss; ++i)
108  if (std::abs(_slip_rate(i)) > slipratemax)
109  slipratemax = std::abs(_slip_rate(i));
110  rnormst[iter] = rnorm;
111  slipratest[iter] = slipratemax;
112 #endif
113  }
114 
115  if (iter == _maxiter)
116  {
117 #ifdef DEBUG
118  mooseWarning("FiniteStrainCPSlipRateRes: NR exceeds maximum iteration ", iter, " ", rnorm);
119 #endif
120  _err_tol = true;
121  return;
122  }
123 }

Referenced by solveStatevar().

◆ update_slip_system_resistance()

void FiniteStrainCrystalPlasticity::update_slip_system_resistance ( )
protectedvirtualinherited

This function updates the slip system resistances.

Definition at line 825 of file FiniteStrainCrystalPlasticity.C.

826 {
827  updateGss();
828 }

Referenced by calcResidualSlipRate(), and FiniteStrainCrystalPlasticity::solveStatevar().

◆ updateGss()

void FiniteStrainCrystalPlasticity::updateGss ( )
protectedvirtualinherited

This function updates the slip system resistances.

Old function to update slip system resistances.

Kept to avoid code break at computeQpstress

Definition at line 835 of file FiniteStrainCrystalPlasticity.C.

836 {
837  DenseVector<Real> hb(_nss);
838  Real qab;
839 
840  Real a = _hprops[4]; // Kalidindi
841 
843  for (unsigned int i = 0; i < _nss; ++i)
844  _accslip_tmp += std::abs(_slip_incr(i));
845 
846  // Real val = std::cosh(_h0 * _accslip_tmp / (_tau_sat - _tau_init)); // Karthik
847  // val = _h0 * std::pow(1.0/val,2.0); // Kalidindi
848 
849  for (unsigned int i = 0; i < _nss; ++i)
850  // hb(i)=val;
851  hb(i) = _h0 * std::pow(std::abs(1.0 - _gss_tmp[i] / _tau_sat), a) *
852  std::copysign(1.0, 1.0 - _gss_tmp[i] / _tau_sat);
853 
854  for (unsigned int i = 0; i < _nss; ++i)
855  {
856  if (_max_substep_iter == 1) // No substepping
857  _gss_tmp[i] = _gss_old[_qp][i];
858  else
859  _gss_tmp[i] = _gss_tmp_old[i];
860 
861  for (unsigned int j = 0; j < _nss; ++j)
862  {
863  unsigned int iplane, jplane;
864  iplane = i / 3;
865  jplane = j / 3;
866 
867  if (iplane == jplane) // Kalidindi
868  qab = 1.0;
869  else
870  qab = _r;
871 
872  _gss_tmp[i] += qab * hb(j) * std::abs(_slip_incr(j));
873  _dgss_dsliprate(i, j) = qab * hb(j) * std::copysign(1.0, _slip_incr(j)) * _dt;
874  }
875  }
876 }

Referenced by FiniteStrainCrystalPlasticity::update_slip_system_resistance().

◆ validParams()

InputParameters FiniteStrainCPSlipRateRes::validParams ( )
static

Definition at line 18 of file FiniteStrainCPSlipRateRes.C.

19 {
20  InputParameters params = FiniteStrainCrystalPlasticity::validParams();
21  return params;
22 }

Member Data Documentation

◆ _a0

DenseVector<Real> FiniteStrainCrystalPlasticity::_a0
protectedinherited

◆ _abs_tol

Real FiniteStrainCrystalPlasticity::_abs_tol
protectedinherited

Stress residual equation absolute tolerance.

Definition at line 252 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _acc_slip

MaterialProperty<Real>& FiniteStrainCrystalPlasticity::_acc_slip
protectedinherited

◆ _acc_slip_old

const MaterialProperty<Real>& FiniteStrainCrystalPlasticity::_acc_slip_old
protectedinherited

◆ _accslip_tmp

Real FiniteStrainCrystalPlasticity::_accslip_tmp
protectedinherited

◆ _accslip_tmp_old

Real FiniteStrainCrystalPlasticity::_accslip_tmp_old
protectedinherited

◆ _base_name

const std::string ComputeStressBase::_base_name
protectedinherited

Base name prepended to all material property names to allow for multi-material systems.

Definition at line 45 of file ComputeStressBase.h.

Referenced by ComputeLinearElasticStress::initialSetup(), and ComputeCosseratLinearElasticStress::initialSetup().

◆ _crysrot

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_crysrot
protectedinherited

◆ _deformation_gradient

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_deformation_gradient
protectedinherited

◆ _deformation_gradient_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_deformation_gradient_old
protectedinherited

◆ _delta_dfgrd

RankTwoTensor FiniteStrainCrystalPlasticity::_delta_dfgrd
protectedinherited

Flag to check whether convergence is achieved.

Used for substepping; Uniformly divides the increment in deformation gradient

Definition at line 354 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress(), FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::preSolveQp().

◆ _dfgrd_scale_factor

Real FiniteStrainCrystalPlasticity::_dfgrd_scale_factor
protectedinherited

Scales the substepping increment to obtain deformation gradient at a substep iteration.

Definition at line 356 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::computeQpStress(), and FiniteStrainCrystalPlasticity::preSolveQp().

◆ _dfgrd_tmp

RankTwoTensor FiniteStrainCrystalPlasticity::_dfgrd_tmp
protectedinherited

◆ _dfgrd_tmp_old

RankTwoTensor FiniteStrainCrystalPlasticity::_dfgrd_tmp_old
protectedinherited

◆ _dgss_dsliprate

DenseMatrix<Real> FiniteStrainCrystalPlasticity::_dgss_dsliprate
protectedinherited

◆ _dslipdtau

DenseVector<Real> FiniteStrainCrystalPlasticity::_dslipdtau
protectedinherited

◆ _dsliprate_dgss

DenseVector<Real> FiniteStrainCPSlipRateRes::_dsliprate_dgss
protected

Definition at line 96 of file FiniteStrainCPSlipRateRes.h.

Referenced by calcDgssDsliprate(), and getSlipIncrements().

◆ _dsliprate_dsliprate

DenseMatrix<Real> FiniteStrainCPSlipRateRes::_dsliprate_dsliprate
protected

◆ _elastic_strain

MaterialProperty<RankTwoTensor>& ComputeStressBase::_elastic_strain
protectedinherited

◆ _elasticity_tensor

const MaterialProperty<RankFourTensor>& FiniteStrainCrystalPlasticity::_elasticity_tensor
protectedinherited

◆ _elasticity_tensor_name

const std::string FiniteStrainCrystalPlasticity::_elasticity_tensor_name
protectedinherited

Name of the elasticity tensor material property.

Definition at line 319 of file FiniteStrainCrystalPlasticity.h.

◆ _err_tol

bool FiniteStrainCrystalPlasticity::_err_tol
protectedinherited

◆ _extra_stress

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_extra_stress
protectedinherited

Extra stress tensor.

Definition at line 55 of file ComputeStressBase.h.

Referenced by ComputeStressBase::computeQpProperties().

◆ _fe

RankTwoTensor FiniteStrainCrystalPlasticity::_fe
protectedinherited

◆ _first_step_iter

bool FiniteStrainCrystalPlasticity::_first_step_iter
protectedinherited

◆ _first_substep

bool FiniteStrainCrystalPlasticity::_first_substep
protectedinherited

◆ _flowprops

std::vector<Real> FiniteStrainCrystalPlasticity::_flowprops
protectedinherited

◆ _fp

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_fp
protectedinherited

◆ _fp_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_inv
protectedinherited

◆ _fp_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_fp_old
protectedinherited

◆ _fp_old_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_old_inv
protectedinherited

◆ _fp_prev_inv

RankTwoTensor FiniteStrainCrystalPlasticity::_fp_prev_inv
protectedinherited

◆ _gen_rndm_stress_flag

bool FiniteStrainCrystalPlasticity::_gen_rndm_stress_flag
protectedinherited

◆ _gprops

std::vector<Real> FiniteStrainCrystalPlasticity::_gprops
protectedinherited

◆ _gss

MaterialProperty<std::vector<Real> >& FiniteStrainCrystalPlasticity::_gss
protectedinherited

◆ _gss_old

const MaterialProperty<std::vector<Real> >& FiniteStrainCrystalPlasticity::_gss_old
protectedinherited

◆ _gss_tmp

std::vector<Real> FiniteStrainCrystalPlasticity::_gss_tmp
protectedinherited

◆ _gss_tmp_old

std::vector<Real> FiniteStrainCrystalPlasticity::_gss_tmp_old
protectedinherited

◆ _gtol

Real FiniteStrainCrystalPlasticity::_gtol
protectedinherited

Internal variable update equation tolerance.

Definition at line 254 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::solveStatevar().

◆ _h0

Real FiniteStrainCrystalPlasticity::_h0
protectedinherited

◆ _hprops

std::vector<Real> FiniteStrainCrystalPlasticity::_hprops
protectedinherited

◆ _initial_stress_fcn

std::vector<const Function *> ComputeStressBase::_initial_stress_fcn
protectedinherited

initial stress components

Definition at line 58 of file ComputeStressBase.h.

◆ _input_rndm_scale_var

bool FiniteStrainCrystalPlasticity::_input_rndm_scale_var
protectedinherited

Input option for scaling variable to generate random stress when convergence fails.

Definition at line 278 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ _intvar_read_type

MooseEnum FiniteStrainCrystalPlasticity::_intvar_read_type
protectedinherited

Read from options for initial values of internal variables.

Definition at line 270 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ _jacob

DenseMatrix<Real> FiniteStrainCPSlipRateRes::_jacob
protected

Definition at line 97 of file FiniteStrainCPSlipRateRes.h.

Referenced by calcJacobianSlipRate(), and calcUpdate().

◆ _Jacobian_mult

MaterialProperty<RankFourTensor>& ComputeStressBase::_Jacobian_mult
protectedinherited

◆ _lag_e

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_lag_e
protectedinherited

◆ _lag_e_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_lag_e_old
protectedinherited

Definition at line 309 of file FiniteStrainCrystalPlasticity.h.

◆ _last_step_iter

bool FiniteStrainCrystalPlasticity::_last_step_iter
protectedinherited

◆ _lsrch_max_iter

unsigned int FiniteStrainCrystalPlasticity::_lsrch_max_iter
protectedinherited

Line search bisection method maximum iteration number.

Definition at line 299 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _lsrch_method

MooseEnum FiniteStrainCrystalPlasticity::_lsrch_method
protectedinherited

◆ _lsrch_tol

Real FiniteStrainCrystalPlasticity::_lsrch_tol
protectedinherited

Line search bisection method tolerance.

Definition at line 296 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _max_substep_iter

unsigned int FiniteStrainCrystalPlasticity::_max_substep_iter
protectedinherited

◆ _maxiter

unsigned int FiniteStrainCrystalPlasticity::_maxiter
protectedinherited

Maximum number of iterations for stress update.

Definition at line 259 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _maxiterg

unsigned int FiniteStrainCrystalPlasticity::_maxiterg
protectedinherited

Maximum number of iterations for internal variable update.

Definition at line 261 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::solveStatevar().

◆ _mechanical_strain

const MaterialProperty<RankTwoTensor>& ComputeStressBase::_mechanical_strain
protectedinherited

◆ _min_lsrch_step

Real FiniteStrainCrystalPlasticity::_min_lsrch_step
protectedinherited

Minimum line search step size.

Definition at line 293 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::line_search_update(), and lineSearchUpdateSlipRate().

◆ _mo

DenseVector<Real> FiniteStrainCrystalPlasticity::_mo
protectedinherited

◆ _no

DenseVector<Real> FiniteStrainCrystalPlasticity::_no
protectedinherited

◆ _nss

const unsigned int FiniteStrainCrystalPlasticity::_nss
protectedinherited

◆ _num_slip_sys_flowrate_props

unsigned int FiniteStrainCrystalPlasticity::_num_slip_sys_flowrate_props
protectedinherited

Number of slip system flow rate parameters.

Definition at line 264 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getFlowRateParams(), and FiniteStrainCrystalPlasticity::readFileFlowRateParams().

◆ _num_slip_sys_props

unsigned int FiniteStrainCrystalPlasticity::_num_slip_sys_props
protectedinherited

Number of slip system specific properties provided in the file containing slip system normals and directions.

Definition at line 273 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity(), and FiniteStrainCrystalPlasticity::getSlipSystems().

◆ _pk2

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_pk2
protectedinherited

◆ _pk2_old

const MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_pk2_old
protectedinherited

◆ _pk2_tmp

RankTwoTensor FiniteStrainCrystalPlasticity::_pk2_tmp
protectedinherited

◆ _pk2_tmp_old

RankTwoTensor FiniteStrainCrystalPlasticity::_pk2_tmp_old
protectedinherited

◆ _r

Real FiniteStrainCrystalPlasticity::_r
protectedinherited

◆ _read_from_slip_sys_file

bool FiniteStrainCrystalPlasticity::_read_from_slip_sys_file
protectedinherited

◆ _resid

DenseVector<Real> FiniteStrainCPSlipRateRes::_resid
protected

◆ _rndm_scale_var

Real FiniteStrainCrystalPlasticity::_rndm_scale_var
protectedinherited

Scaling value.

Definition at line 281 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::postSolveQp().

◆ _rndm_seed

unsigned int FiniteStrainCrystalPlasticity::_rndm_seed
protectedinherited

◆ _rtol

Real FiniteStrainCrystalPlasticity::_rtol
protectedinherited

Stress residual equation relative tolerance.

Definition at line 250 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _s0

std::vector<RankTwoTensor> FiniteStrainCrystalPlasticity::_s0
protectedinherited

◆ _slip_incr

DenseVector<Real> FiniteStrainCrystalPlasticity::_slip_incr
protectedinherited

◆ _slip_incr_tol

Real FiniteStrainCrystalPlasticity::_slip_incr_tol
protectedinherited

Slip increment tolerance.

Definition at line 256 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getSlipIncrements().

◆ _slip_rate

DenseVector<Real> FiniteStrainCPSlipRateRes::_slip_rate
protected

◆ _slip_sys_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_file_name
protectedinherited

File should contain slip plane normal and direction. See test.

Definition at line 235 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::getSlipSystems().

◆ _slip_sys_flow_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_flow_prop_file_name
protectedinherited

File should contain values of the flow rate equation parameters.

Values for every slip system must be provided. Should have the same order of slip systens as in slip_sys_file. See test. The option of reading all the properties from .i is still present.

Definition at line 244 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps(), and FiniteStrainCrystalPlasticity::readFileFlowRateParams().

◆ _slip_sys_hard_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_hard_prop_file_name
protectedinherited

The hardening parameters in this class are read from .i file. The user can override to read from file.

Definition at line 247 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::initSlipSysProps().

◆ _slip_sys_props

DenseVector<Real> FiniteStrainCrystalPlasticity::_slip_sys_props
protectedinherited

◆ _slip_sys_res_prop_file_name

std::string FiniteStrainCrystalPlasticity::_slip_sys_res_prop_file_name
protectedinherited

File should contain initial values of the slip system resistances.

Definition at line 238 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::readFileInitSlipSysRes().

◆ _stress

MaterialProperty<RankTwoTensor>& ComputeStressBase::_stress
protectedinherited

Stress material property.

Definition at line 50 of file ComputeStressBase.h.

Referenced by ComputeMultipleInelasticCosseratStress::computeAdmissibleState(), ComputeMultipleInelasticStress::computeAdmissibleState(), ComputeStressBase::computeQpProperties(), ComputeStrainIncrementBasedStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeDamageStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeMultiPlasticityStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), ComputeMultipleInelasticStress::finiteStrainRotation(), ComputeStressBase::initQpStatefulProperties(), FiniteStrainCrystalPlasticity::initQpStatefulProperties(), FiniteStrainUObasedCP::initQpStatefulProperties(), FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties(), ComputeMultiPlasticityStress::postReturnMap(), FiniteStrainUObasedCP::postSolveQp(), FiniteStrainHyperElasticViscoPlastic::postSolveQp(), FiniteStrainCrystalPlasticity::postSolveQp(), ComputeSmearedCrackingStress::updateCrackingStateAndStress(), ComputeMultipleInelasticStress::updateQpState(), and ComputeMultipleInelasticStress::updateQpStateSingleModel().

◆ _tan_mod_type

MooseEnum FiniteStrainCrystalPlasticity::_tan_mod_type
protectedinherited

Type of tangent moduli calculation.

Definition at line 267 of file FiniteStrainCrystalPlasticity.h.

Referenced by FiniteStrainCrystalPlasticity::calcTangentModuli().

◆ _tau

DenseVector<Real> FiniteStrainCrystalPlasticity::_tau
protectedinherited

◆ _tau_init

Real FiniteStrainCrystalPlasticity::_tau_init
protectedinherited

◆ _tau_sat

Real FiniteStrainCrystalPlasticity::_tau_sat
protectedinherited

◆ _update_rot

MaterialProperty<RankTwoTensor>& FiniteStrainCrystalPlasticity::_update_rot
protectedinherited

◆ _use_line_search

bool FiniteStrainCrystalPlasticity::_use_line_search
protectedinherited

Flag to activate line serach.

Definition at line 290 of file FiniteStrainCrystalPlasticity.h.

Referenced by solveStress(), and FiniteStrainCrystalPlasticity::solveStress().

◆ _xm

DenseVector<Real> FiniteStrainCrystalPlasticity::_xm
protectedinherited

The documentation for this class was generated from the following files:
FiniteStrainCrystalPlasticity::preSolveQp
virtual void preSolveQp()
This function set variables for stress and internal variable solve.
Definition: FiniteStrainCrystalPlasticity.C:559
FiniteStrainCrystalPlasticity::_min_lsrch_step
Real _min_lsrch_step
Minimum line search step size.
Definition: FiniteStrainCrystalPlasticity.h:293
FiniteStrainCrystalPlasticity::_input_rndm_scale_var
bool _input_rndm_scale_var
Input option for scaling variable to generate random stress when convergence fails.
Definition: FiniteStrainCrystalPlasticity.h:278
FiniteStrainCPSlipRateRes::_slip_rate
DenseVector< Real > _slip_rate
Definition: FiniteStrainCPSlipRateRes.h:95
FiniteStrainCrystalPlasticity::_h0
Real _h0
Definition: FiniteStrainCrystalPlasticity.h:330
FiniteStrainCPSlipRateRes::_resid
DenseVector< Real > _resid
Definition: FiniteStrainCPSlipRateRes.h:94
FiniteStrainCPSlipRateRes::calcDtauDsliprate
virtual void calcDtauDsliprate()
This function calculates partial derivative of resolved shear stress with respect to split rate.
Definition: FiniteStrainCPSlipRateRes.C:188
FiniteStrainCrystalPlasticity::_err_tol
bool _err_tol
Definition: FiniteStrainCrystalPlasticity.h:351
FiniteStrainCrystalPlasticity::readFileInitSlipSysRes
virtual void readFileInitSlipSysRes()
This function read slip system resistances from file - see test.
Definition: FiniteStrainCrystalPlasticity.C:243
FiniteStrainCrystalPlasticity::_fp_prev_inv
RankTwoTensor _fp_prev_inv
Definition: FiniteStrainCrystalPlasticity.h:336
FiniteStrainCrystalPlasticity::_pk2_tmp
RankTwoTensor _pk2_tmp
Definition: FiniteStrainCrystalPlasticity.h:340
FiniteStrainCrystalPlasticity::_gss_old
const MaterialProperty< std::vector< Real > > & _gss_old
Definition: FiniteStrainCrystalPlasticity.h:311
FiniteStrainCrystalPlasticity::_slip_sys_flow_prop_file_name
std::string _slip_sys_flow_prop_file_name
File should contain values of the flow rate equation parameters.
Definition: FiniteStrainCrystalPlasticity.h:244
FiniteStrainCrystalPlasticity::getSlipIncrements
virtual void getSlipIncrements()
This function updates the slip increments.
Definition: FiniteStrainCrystalPlasticity.C:960
FiniteStrainCrystalPlasticity::calcJacobian
virtual void calcJacobian(RankFourTensor &)
This function calculate jacobian.
Definition: FiniteStrainCrystalPlasticity.C:926
FiniteStrainCrystalPlasticity::get_current_rotation
RankTwoTensor get_current_rotation(const RankTwoTensor &a)
This function perform RU decomposition to obtain the rotation tensor.
Definition: FiniteStrainCrystalPlasticity.C:984
FiniteStrainCPSlipRateRes::calcResidualSlipRate
virtual void calcResidualSlipRate()
This function calculates residual of slip rate.
Definition: FiniteStrainCPSlipRateRes.C:135
FiniteStrainCrystalPlasticity::_deformation_gradient
const MaterialProperty< RankTwoTensor > & _deformation_gradient
Definition: FiniteStrainCrystalPlasticity.h:316
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
FiniteStrainCrystalPlasticity::update_slip_system_resistance
virtual void update_slip_system_resistance()
This function updates the slip system resistances.
Definition: FiniteStrainCrystalPlasticity.C:825
FiniteStrainCrystalPlasticity::getHardnessParams
virtual void getHardnessParams()
This function assign flow rate parameters from .i file - see test.
Definition: FiniteStrainCrystalPlasticity.C:411
ComputeStressBase::_extra_stress
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
Definition: ComputeStressBase.h:55
FiniteStrainCPSlipRateRes::lineSearchUpdateSlipRate
bool lineSearchUpdateSlipRate(const Real, const DenseVector< Real > &)
This function performs the line search update.
Definition: FiniteStrainCPSlipRateRes.C:272
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
ComputeStressBase::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition: ComputeStressBase.h:61
FiniteStrainCPSlipRateRes::_jacob
DenseMatrix< Real > _jacob
Definition: FiniteStrainCPSlipRateRes.h:97
FiniteStrainCPSlipRateRes::calcJacobianSlipRate
virtual void calcJacobianSlipRate()
This function calculates jacobian of slip rate.
Definition: FiniteStrainCPSlipRateRes.C:171
FiniteStrainCrystalPlasticity::_rtol
Real _rtol
Stress residual equation relative tolerance.
Definition: FiniteStrainCrystalPlasticity.h:250
FiniteStrainCrystalPlasticity::FiniteStrainCrystalPlasticity
FiniteStrainCrystalPlasticity(const InputParameters &parameters)
Definition: FiniteStrainCrystalPlasticity.C:101
FiniteStrainCrystalPlasticity::_slip_sys_hard_prop_file_name
std::string _slip_sys_hard_prop_file_name
The hardening parameters in this class are read from .i file. The user can override to read from file...
Definition: FiniteStrainCrystalPlasticity.h:247
FiniteStrainCPSlipRateRes::solveStress
virtual void solveStress()
This function solves for stress, updates plastic deformation gradient.
Definition: FiniteStrainCPSlipRateRes.C:52
FiniteStrainCrystalPlasticity::_last_step_iter
bool _last_step_iter
Definition: FiniteStrainCrystalPlasticity.h:358
FiniteStrainCrystalPlasticity::_num_slip_sys_flowrate_props
unsigned int _num_slip_sys_flowrate_props
Number of slip system flow rate parameters.
Definition: FiniteStrainCrystalPlasticity.h:264
FiniteStrainCrystalPlasticity::assignSlipSysRes
virtual void assignSlipSysRes()
This function assign initial values of slip system resistances/internal variables read from getSlipSy...
Definition: FiniteStrainCrystalPlasticity.C:233
FiniteStrainCrystalPlasticity::_fp_inv
RankTwoTensor _fp_inv
Definition: FiniteStrainCrystalPlasticity.h:336
FiniteStrainCPSlipRateRes::preSolveStress
virtual void preSolveStress()
This function sets variable for internal variable solve.
Definition: FiniteStrainCPSlipRateRes.C:45
FiniteStrainCrystalPlasticity::_use_line_search
bool _use_line_search
Flag to activate line serach.
Definition: FiniteStrainCrystalPlasticity.h:290
FiniteStrainCrystalPlasticity::_pk2_tmp_old
RankTwoTensor _pk2_tmp_old
Definition: FiniteStrainCrystalPlasticity.h:340
FiniteStrainCrystalPlasticity::_pk2
MaterialProperty< RankTwoTensor > & _pk2
Definition: FiniteStrainCrystalPlasticity.h:306
FiniteStrainCrystalPlasticity::readFileHardnessParams
virtual void readFileHardnessParams()
This function read hardness parameters from file.
Definition: FiniteStrainCrystalPlasticity.C:405
FiniteStrainCrystalPlasticity::elastoPlasticTangentModuli
virtual RankFourTensor elastoPlasticTangentModuli()
This function calculate the exact tangent moduli for preconditioner.
Definition: FiniteStrainCrystalPlasticity.C:1080
FiniteStrainCrystalPlasticity::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
Definition: FiniteStrainCrystalPlasticity.h:321
FiniteStrainCrystalPlasticity::elasticTangentModuli
virtual RankFourTensor elasticTangentModuli()
This function calculate the elastic tangent moduli for preconditioner.
Definition: FiniteStrainCrystalPlasticity.C:1119
FiniteStrainCPSlipRateRes::calcUpdate
void calcUpdate()
This function calculates and updates the residual of slip rate.
Definition: FiniteStrainCPSlipRateRes.C:247
FiniteStrainCrystalPlasticity::_fe
RankTwoTensor _fe
Definition: FiniteStrainCrystalPlasticity.h:336
FiniteStrainCrystalPlasticity::calcResidual
virtual void calcResidual(RankTwoTensor &)
This function calculate stress residual.
Definition: FiniteStrainCrystalPlasticity.C:889
ComputeStressBase::computeQpStress
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point.
FiniteStrainCrystalPlasticity::updateGss
virtual void updateGss()
This function updates the slip system resistances.
Definition: FiniteStrainCrystalPlasticity.C:835
FiniteStrainCrystalPlasticity::_delta_dfgrd
RankTwoTensor _delta_dfgrd
Flag to check whether convergence is achieved.
Definition: FiniteStrainCrystalPlasticity.h:354
FiniteStrainCrystalPlasticity::solveStatevar
virtual void solveStatevar()
This function solves internal variables.
Definition: FiniteStrainCrystalPlasticity.C:640
FiniteStrainCrystalPlasticity::_flowprops
std::vector< Real > _flowprops
Definition: FiniteStrainCrystalPlasticity.h:232
FiniteStrainCrystalPlasticity::_crysrot
const MaterialProperty< RankTwoTensor > & _crysrot
Definition: FiniteStrainCrystalPlasticity.h:322
FiniteStrainCrystalPlasticity::_dfgrd_scale_factor
Real _dfgrd_scale_factor
Scales the substepping increment to obtain deformation gradient at a substep iteration.
Definition: FiniteStrainCrystalPlasticity.h:356
FiniteStrainCrystalPlasticity::postSolveStatevar
virtual void postSolveStatevar()
This function update internal variable after solve.
Definition: FiniteStrainCrystalPlasticity.C:682
FiniteStrainCrystalPlasticity::validParams
static InputParameters validParams()
Definition: FiniteStrainCrystalPlasticity.C:22
FiniteStrainCrystalPlasticity::_acc_slip
MaterialProperty< Real > & _acc_slip
Definition: FiniteStrainCrystalPlasticity.h:312
FiniteStrainCrystalPlasticity::_xm
DenseVector< Real > _xm
Definition: FiniteStrainCrystalPlasticity.h:328
FiniteStrainCrystalPlasticity::getMatRot
RankTwoTensor getMatRot(const RankTwoTensor &a)
This function perform RU decomposition to obtain the rotation tensor.
Definition: FiniteStrainCrystalPlasticity.C:991
FiniteStrainCrystalPlasticity::_mo
DenseVector< Real > _mo
Definition: FiniteStrainCrystalPlasticity.h:324
FiniteStrainCrystalPlasticity::_tau_sat
Real _tau_sat
Definition: FiniteStrainCrystalPlasticity.h:331
FiniteStrainCPSlipRateRes::_dsliprate_dgss
DenseVector< Real > _dsliprate_dgss
Definition: FiniteStrainCPSlipRateRes.h:96
FiniteStrainCrystalPlasticity::postSolveQp
virtual void postSolveQp()
This function update stress and internal variable after solve.
Definition: FiniteStrainCrystalPlasticity.C:587
FiniteStrainCrystalPlasticity::_first_substep
bool _first_substep
Definition: FiniteStrainCrystalPlasticity.h:358
FiniteStrainCrystalPlasticity::calc_schmid_tensor
void calc_schmid_tensor()
This function calculate the Schmid tensor.
Definition: FiniteStrainCrystalPlasticity.C:1048
FiniteStrainCrystalPlasticity::_slip_sys_props
DenseVector< Real > _slip_sys_props
Definition: FiniteStrainCrystalPlasticity.h:345
FiniteStrainCrystalPlasticity::_maxiter
unsigned int _maxiter
Maximum number of iterations for stress update.
Definition: FiniteStrainCrystalPlasticity.h:259
FiniteStrainCrystalPlasticity::_fp
MaterialProperty< RankTwoTensor > & _fp
Definition: FiniteStrainCrystalPlasticity.h:304
FiniteStrainCrystalPlasticity::_nss
const unsigned int _nss
Number of slip system resistance.
Definition: FiniteStrainCrystalPlasticity.h:228
FiniteStrainCrystalPlasticity::_a0
DenseVector< Real > _a0
Definition: FiniteStrainCrystalPlasticity.h:327
FiniteStrainCrystalPlasticity::_slip_sys_res_prop_file_name
std::string _slip_sys_res_prop_file_name
File should contain initial values of the slip system resistances.
Definition: FiniteStrainCrystalPlasticity.h:238
FiniteStrainCrystalPlasticity::preSolveStress
virtual void preSolveStress()
This function set variables for stress solve.
Definition: FiniteStrainCrystalPlasticity.C:705
FiniteStrainCrystalPlasticity::_gen_rndm_stress_flag
bool _gen_rndm_stress_flag
Definition: FiniteStrainCrystalPlasticity.h:275
FiniteStrainCrystalPlasticity::_lsrch_max_iter
unsigned int _lsrch_max_iter
Line search bisection method maximum iteration number.
Definition: FiniteStrainCrystalPlasticity.h:299
FiniteStrainCPSlipRateRes::_dsliprate_dsliprate
DenseMatrix< Real > _dsliprate_dsliprate
Definition: FiniteStrainCPSlipRateRes.h:98
FiniteStrainCrystalPlasticity::_s0
std::vector< RankTwoTensor > _s0
Definition: FiniteStrainCrystalPlasticity.h:338
FiniteStrainCrystalPlasticity::_gss
MaterialProperty< std::vector< Real > > & _gss
Definition: FiniteStrainCrystalPlasticity.h:310
FiniteStrainCrystalPlasticity::_accslip_tmp
Real _accslip_tmp
Definition: FiniteStrainCrystalPlasticity.h:341
FiniteStrainCPSlipRateRes::calcResidDotProdUpdate
Real calcResidDotProdUpdate(const DenseVector< Real > &)
This function calculates the dot product of residual and update.
Definition: FiniteStrainCPSlipRateRes.C:369
FiniteStrainCrystalPlasticity::_no
DenseVector< Real > _no
Definition: FiniteStrainCrystalPlasticity.h:325
FiniteStrainCrystalPlasticity::_dslipdtau
DenseVector< Real > _dslipdtau
Definition: FiniteStrainCrystalPlasticity.h:337
FiniteStrainCrystalPlasticity::postSolveStress
virtual void postSolveStress()
This function update stress and plastic deformation gradient after solve.
Definition: FiniteStrainCrystalPlasticity.C:801
FiniteStrainCrystalPlasticity::calcTangentModuli
virtual RankFourTensor calcTangentModuli()
This function calculate the tangent moduli for preconditioner.
Definition: FiniteStrainCrystalPlasticity.C:1031
FiniteStrainCPSlipRateRes::calcResidNorm
virtual Real calcResidNorm()
This function calculates the residual norm.
Definition: FiniteStrainCPSlipRateRes.C:261
FiniteStrainCPSlipRateRes::calcResidJacobSlipRate
virtual void calcResidJacobSlipRate()
This function calculates residual and jacobian of slip rate.
Definition: FiniteStrainCPSlipRateRes.C:126
FiniteStrainCrystalPlasticity::initAdditionalProps
virtual void initAdditionalProps()
This function initializes additional parameters.
Definition: FiniteStrainCrystalPlasticity.C:483
FiniteStrainCrystalPlasticity::getInitSlipSysRes
virtual void getInitSlipSysRes()
This function assign slip system resistances - see test.
Definition: FiniteStrainCrystalPlasticity.C:261
FiniteStrainCrystalPlasticity::_deformation_gradient_old
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
Definition: FiniteStrainCrystalPlasticity.h:317
FiniteStrainCrystalPlasticity::_lsrch_tol
Real _lsrch_tol
Line search bisection method tolerance.
Definition: FiniteStrainCrystalPlasticity.h:296
FiniteStrainCrystalPlasticity::preSolveStatevar
virtual void preSolveStatevar()
This function set variables for internal variable solve.
Definition: FiniteStrainCrystalPlasticity.C:620
FiniteStrainCrystalPlasticity::_update_rot
MaterialProperty< RankTwoTensor > & _update_rot
Definition: FiniteStrainCrystalPlasticity.h:314
FiniteStrainCrystalPlasticity::getFlowRateParams
virtual void getFlowRateParams()
This function assign flow rate parameters - see test.
Definition: FiniteStrainCrystalPlasticity.C:343
FiniteStrainCrystalPlasticity::_r
Real _r
Definition: FiniteStrainCrystalPlasticity.h:333
FiniteStrainCrystalPlasticity::_dgss_dsliprate
DenseMatrix< Real > _dgss_dsliprate
Definition: FiniteStrainCrystalPlasticity.h:347
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
FiniteStrainCrystalPlasticity::_gss_tmp
std::vector< Real > _gss_tmp
Definition: FiniteStrainCrystalPlasticity.h:342
FiniteStrainCrystalPlasticity::readFileFlowRateParams
virtual void readFileFlowRateParams()
This function read flow rate parameters from file - see test.
Definition: FiniteStrainCrystalPlasticity.C:314
FiniteStrainCrystalPlasticity::_dfgrd_tmp
RankTwoTensor _dfgrd_tmp
Definition: FiniteStrainCrystalPlasticity.h:335
FiniteStrainCrystalPlasticity::initSlipSysProps
virtual void initSlipSysProps()
This function initializes slip system resistances.
Definition: FiniteStrainCrystalPlasticity.C:207
FiniteStrainCrystalPlasticity::solveQp
virtual void solveQp()
This function solves stress and internal variables.
Definition: FiniteStrainCrystalPlasticity.C:577
FiniteStrainCrystalPlasticity::_lsrch_method
MooseEnum _lsrch_method
Definition: FiniteStrainCrystalPlasticity.h:302
FiniteStrainCrystalPlasticity::_slip_incr
DenseVector< Real > _slip_incr
Definition: FiniteStrainCrystalPlasticity.h:337
FiniteStrainCrystalPlasticity::_intvar_read_type
MooseEnum _intvar_read_type
Read from options for initial values of internal variables.
Definition: FiniteStrainCrystalPlasticity.h:270
FiniteStrainCrystalPlasticity::_tan_mod_type
MooseEnum _tan_mod_type
Type of tangent moduli calculation.
Definition: FiniteStrainCrystalPlasticity.h:267
FiniteStrainCrystalPlasticity::_tau_init
Real _tau_init
Definition: FiniteStrainCrystalPlasticity.h:332
FiniteStrainCrystalPlasticity::_dfgrd_tmp_old
RankTwoTensor _dfgrd_tmp_old
Definition: FiniteStrainCrystalPlasticity.h:354
FiniteStrainCrystalPlasticity::_gprops
std::vector< Real > _gprops
Definition: FiniteStrainCrystalPlasticity.h:230
FiniteStrainCrystalPlasticity::_num_slip_sys_props
unsigned int _num_slip_sys_props
Number of slip system specific properties provided in the file containing slip system normals and dir...
Definition: FiniteStrainCrystalPlasticity.h:273
RankTwoTensorTempl< Real >
FiniteStrainCrystalPlasticity::_accslip_tmp_old
Real _accslip_tmp_old
Definition: FiniteStrainCrystalPlasticity.h:341
FiniteStrainCrystalPlasticity::_lag_e
MaterialProperty< RankTwoTensor > & _lag_e
Definition: FiniteStrainCrystalPlasticity.h:308
FiniteStrainCPSlipRateRes::calcDgssDsliprate
virtual void calcDgssDsliprate()
This function calculates partial derivative of slip system resistances with respect to split rate.
Definition: FiniteStrainCPSlipRateRes.C:223
FiniteStrainCrystalPlasticity::_rndm_scale_var
Real _rndm_scale_var
Scaling value.
Definition: FiniteStrainCrystalPlasticity.h:281
FiniteStrainCrystalPlasticity::_read_from_slip_sys_file
bool _read_from_slip_sys_file
Definition: FiniteStrainCrystalPlasticity.h:349
FiniteStrainCrystalPlasticity::_first_step_iter
bool _first_step_iter
Flags to reset variables and reinitialize variables.
Definition: FiniteStrainCrystalPlasticity.h:358
FiniteStrainCrystalPlasticity::_gss_tmp_old
std::vector< Real > _gss_tmp_old
Definition: FiniteStrainCrystalPlasticity.h:343
FiniteStrainCPSlipRateRes::getSlipIncrements
virtual void getSlipIncrements()
This function updates the slip system resistances.
Definition: FiniteStrainCPSlipRateRes.C:231
FiniteStrainCrystalPlasticity::_slip_sys_file_name
std::string _slip_sys_file_name
File should contain slip plane normal and direction. See test.
Definition: FiniteStrainCrystalPlasticity.h:235
FiniteStrainCrystalPlasticity::_abs_tol
Real _abs_tol
Stress residual equation absolute tolerance.
Definition: FiniteStrainCrystalPlasticity.h:252
FiniteStrainCrystalPlasticity::_fp_old_inv
RankTwoTensor _fp_old_inv
Definition: FiniteStrainCrystalPlasticity.h:336
FiniteStrainCrystalPlasticity::_hprops
std::vector< Real > _hprops
Definition: FiniteStrainCrystalPlasticity.h:231
FiniteStrainCrystalPlasticity::_tau
DenseVector< Real > _tau
Definition: FiniteStrainCrystalPlasticity.h:337
FiniteStrainCrystalPlasticity::_max_substep_iter
unsigned int _max_substep_iter
Maximum number of substep iterations.
Definition: FiniteStrainCrystalPlasticity.h:287
FiniteStrainCrystalPlasticity::_acc_slip_old
const MaterialProperty< Real > & _acc_slip_old
Definition: FiniteStrainCrystalPlasticity.h:313