void
RecomputeRadialReturnHyperbolicViscoplasticity::computeStressInitialize(Real effectiveTrialStress)
{
  _shear_modulus = getIsotropicShearModulus();

  _yield_condition = effectiveTrialStress - _hardening_variable_old[_qp] - _yield_stress;
  _hardening_variable[_qp] = _hardening_variable_old[_qp];
  _plastic_strain[_qp] = _plastic_strain_old[_qp];
}
void
TemperatureDependentHardeningStressUpdate::computeStressInitialize(Real effectiveTrialStress)
{
  _shear_modulus = getIsotropicShearModulus();
  initializeHardeningFunctions();
  computeYieldStress();
  _yield_condition = effectiveTrialStress - _hardening_variable_old[_qp] - _yield_stress;
  _hardening_variable[_qp] = _hardening_variable_old[_qp];
  _plastic_strain[_qp] = _plastic_strain_old[_qp];
}
예제 #3
0
Real
getIsotropicBulkModulus(const RankFourTensor & elasticity_tensor)
{
  const Real shear_modulus = getIsotropicShearModulus(elasticity_tensor);
  // dilatational modulus is defined as lambda plus two mu
  const Real dilatational_modulus = elasticity_tensor(0, 0, 0, 0);
  const Real lambda = dilatational_modulus - 2.0 * shear_modulus;
  const Real bulk_modulus = lambda + 2.0 * shear_modulus / 3.0;
  return bulk_modulus;
}
예제 #4
0
Real
getIsotropicYoungsModulus(const RankFourTensor & elasticity_tensor)
{
  const Real shear_modulus = getIsotropicShearModulus(elasticity_tensor);
  // dilatational modulus is defined as lambda plus two mu
  const Real dilatational_modulus = elasticity_tensor(0, 0, 0, 0);
  const Real lambda = dilatational_modulus - 2.0 * shear_modulus;
  const Real youngs_modulus =
      shear_modulus * (3.0 * lambda + 2.0 * shear_modulus) / (lambda + shear_modulus);
  return youngs_modulus;
}
예제 #5
0
Real
RecomputeRadialReturn::getIsotropicBulkModulus()
{
  const Real shear_modulus = getIsotropicShearModulus();
  // dilatational modulus is defined as lambda plus two mu
  const Real dilatational_modulus = _elasticity_tensor[_qp](0,0,0,0);
  if (_mesh.dimension() == 3 && dilatational_modulus != _elasticity_tensor[_qp](2,2,2,2))
    mooseError("Check to ensure that your Elasticity Tensor is truly Isotropic");
  const Real lambda = dilatational_modulus - 2.0 * shear_modulus;
  const Real bulk_modulus = lambda + 2.0 * shear_modulus / 3.0;
  return bulk_modulus;
}
예제 #6
0
void PowerLawCreepStressUpdate::computeStressInitialize(Real /*effectiveTrialStress*/)
{
  _shear_modulus = getIsotropicShearModulus();

  if (_has_temp)
    _exponential = std::exp(-_activation_energy / (_gas_constant * _temperature[_qp]));
  else
    _exponential = 1;

  _exp_time = std::pow(_t - _start_time, _m_exponent);

  _creep_strain[_qp] = _creep_strain_old[_qp];
}