Line data Source code
1 : //* This file is part of the RACCOON application 2 : //* being developed at Dolbow lab at Duke University 3 : //* http://dolbow.pratt.duke.edu 4 : 5 : #include "LargeDeformationNewtonianViscosity.h" 6 : 7 : registerMooseObject("raccoonApp", LargeDeformationNewtonianViscosity); 8 : 9 : InputParameters 10 142 : LargeDeformationNewtonianViscosity::validParams() 11 : { 12 142 : InputParameters params = LargeDeformationViscoelasticityModel::validParams(); 13 142 : params.addClassDescription("Newtonian viscosity."); 14 284 : params.addParam<MaterialPropertyName>("viscosity", "viscosity", "Name of the viscosity material"); 15 284 : params.addParam<MaterialPropertyName>("degradation_function", "g", "The degradation function"); 16 : 17 142 : return params; 18 0 : } 19 : 20 3 : LargeDeformationNewtonianViscosity::LargeDeformationNewtonianViscosity( 21 3 : const InputParameters & parameters) 22 : : LargeDeformationViscoelasticityModel(parameters), 23 9 : _eta(getADMaterialProperty<Real>(prependBaseName("viscosity", true))), 24 9 : _g(getADMaterialProperty<Real>(prependBaseName("degradation_function", true))) 25 : { 26 3 : } 27 : 28 : ADRankTwoTensor 29 62224 : LargeDeformationNewtonianViscosity::computeCauchyStress(const ADRankTwoTensor & Fm, 30 : const RankTwoTensor & Fm_old) 31 : { 32 62224 : ADRankTwoTensor Fm_dot = (Fm - Fm_old) / _dt; 33 62224 : ADRankTwoTensor Fm_inv = Fm.inverse(); 34 62224 : ADRankTwoTensor D = (Fm_dot * Fm_inv + Fm_inv.transpose() * Fm_dot.transpose()) / 2; 35 124448 : return _g[_qp] * _eta[_qp] * D.deviatoric(); 36 : }