diff --git a/include/materials/LynxHydroBase.h b/include/materials/LynxHydroBase.h index e9e5f1490a6b0b88e9936c6e93bafce1ea00a978..ffed084bb2b4ab7b452387502bb09d6347a73628 100644 --- a/include/materials/LynxHydroBase.h +++ b/include/materials/LynxHydroBase.h @@ -49,8 +49,8 @@ protected: const MaterialProperty & _K; const MaterialProperty & _tangent_modulus; const MaterialProperty & _strain_increment; - const MaterialProperty & _inelastic_strain; - const MaterialProperty & _inelastic_strain_old; + const MaterialProperty & _viscous_strain_incr; + const MaterialProperty & _plastic_strain_incr; MaterialProperty & _biot; MaterialProperty & _C_d; MaterialProperty & _C_biot; diff --git a/src/kernels/LynxSolidMomentum.C b/src/kernels/LynxSolidMomentum.C index 4c7a3f9dca40aae42d49be38ede02faa640bc3a0..20c6310c3ea69de8ed3c74afc6f461fd71765b8d 100644 --- a/src/kernels/LynxSolidMomentum.C +++ b/src/kernels/LynxSolidMomentum.C @@ -120,7 +120,7 @@ Real LynxSolidMomentum::computeQpResidual() { RealVectorValue stress_row = _stress[_qp].row(_component); - stress_row(_component) += _biot[_qp] * _pf[_qp]; + stress_row(_component) -= _biot[_qp] * _pf[_qp]; RealVectorValue grav_term = -_rho_b[_qp] * _gravity[_qp]; Real residual = stress_row * _grad_test[_i][_qp] + grav_term(_component) * _test[_i][_qp]; diff --git a/src/materials/LynxDeformationBase.C b/src/materials/LynxDeformationBase.C index 619d4dee0cee6526b36830a41640a7905ea996cb..547294826c3a77331c662132e9d00fae1c47c0cf 100644 --- a/src/materials/LynxDeformationBase.C +++ b/src/materials/LynxDeformationBase.C @@ -271,6 +271,9 @@ LynxDeformationBase::computeStrainIncrement() mooseError("Unknown strain model. Specify 'small' or 'finite'!"); } + // Thermal strain correction + _strain_increment[_qp] -= _thermal_strain_incr[_qp]; + if (_vol_locking_correction) vol_strain_incr += _strain_increment[_qp].trace() * _JxW[_qp] * _coord[_qp]; } @@ -351,7 +354,7 @@ LynxDeformationBase::initializeQpDeformation() { // Initialze elastic strain _elastic_strain[_qp] = - spinRotation(_elastic_strain_old[_qp]) + _strain_increment[_qp] - _thermal_strain_incr[_qp]; + spinRotation(_elastic_strain_old[_qp]) + _strain_increment[_qp]; // Initialize inelastic increment _viscous_strain_incr[_qp].zero(); diff --git a/src/materials/LynxHydroBase.C b/src/materials/LynxHydroBase.C index a73342405ea551e373e4936109ef8e85262e5b2f..662b617c4d25200049e85035793b5eec6fa3a475 100644 --- a/src/materials/LynxHydroBase.C +++ b/src/materials/LynxHydroBase.C @@ -36,8 +36,8 @@ LynxHydroBase::LynxHydroBase(const InputParameters & parameters) _K(getDefaultMaterialProperty("bulk_modulus")), _tangent_modulus(getDefaultMaterialProperty("tangent_modulus")), _strain_increment(getDefaultMaterialProperty("strain_increment")), - _inelastic_strain(getDefaultMaterialProperty("inelastic_strain")), - _inelastic_strain_old(getMaterialPropertyOld("inelastic_strain")), + _viscous_strain_incr(getDefaultMaterialProperty("viscous_strain_increment")), + _plastic_strain_incr(getDefaultMaterialProperty("plastic_strain_increment")), _biot(declareProperty("biot_coefficient")), _C_d(declareProperty("bulk_compressibility")), _C_biot(declareProperty("biot_compressibility")), @@ -97,7 +97,7 @@ LynxHydroBase::computeQpPoroMech() { Real K_cto = _tangent_modulus[_qp].sum3x3() / 9.0; RankTwoTensor e_tot = _strain_increment[_qp] / _dt; - RankTwoTensor e_in = (_inelastic_strain[_qp] - _inelastic_strain_old[_qp]) / _dt; + RankTwoTensor e_in = (_viscous_strain_incr[_qp] + _plastic_strain_incr[_qp]) / _dt; _poro_mech[_qp] = _biot[_qp] * e_tot.trace() + (1.0 - _biot[_qp]) * e_in.trace(); _poro_mech_jac[_qp] = _biot[_qp] + (1.0 - _biot[_qp]) * (1.0 - K_cto / _K[_qp]); diff --git a/src/materials/LynxHydroConstant.C b/src/materials/LynxHydroConstant.C index 61dabd67b1284d5728a31969785a316892adb9d5..cb0d4ca0f23e723ce8d0937fbe7af4294ff8b9b3 100644 --- a/src/materials/LynxHydroConstant.C +++ b/src/materials/LynxHydroConstant.C @@ -27,7 +27,7 @@ InputParameters validParams() { InputParameters params = validParams(); - params.addClassDescription("Constant thermal properties."); + params.addClassDescription("Constant hydraulic properties."); params.addRequiredParam>("permeability", "The permeability of the matrix."); params.addRequiredParam>("fluid_viscosity", "The viscosity of the fluid."); params.addParam>("fluid_modulus", "The bulk modulus of the fluid phase."); diff --git a/test/tests/hydro_mech/mandel.i b/test/tests/hydro_mech/mandel.i index e749b780ecab6ce64775516c7766643eb04ca8ad..c5904a6a28a71579ae574b77d2ca1b3fab0cdc18 100644 --- a/test/tests/hydro_mech/mandel.i +++ b/test/tests/hydro_mech/mandel.i @@ -42,21 +42,21 @@ variable = disp_x component = 0 displacements = 'disp_x disp_y disp_z' - fluid_pressure = pf + fluid_pressure = 'pf' [../] [./mech_y] type = LynxSolidMomentum variable = disp_y component = 1 displacements = 'disp_x disp_y disp_z' - fluid_pressure = pf + fluid_pressure = 'pf' [../] [./mech_z] type = LynxSolidMomentum variable = disp_z component = 2 displacements = 'disp_x disp_y disp_z' - fluid_pressure = pf + fluid_pressure = 'pf' [../] [] @@ -147,7 +147,7 @@ [../] [./hydro_mat] type = LynxHydroConstant - porosity = porosity + porosity = 'porosity' fluid_modulus = 8 solid_modulus = 2.5 permeability = 1.5e-03 @@ -276,4 +276,4 @@ interval = 3 type = CSV [../] -[] \ No newline at end of file +[] diff --git a/test/tests/hydro_mech/tests b/test/tests/hydro_mech/tests index c2b88b189cdfd131a5d52cf4b8766fb20f6bb1ed..8eda21fd9c6e228410e7b6c153083c7be6533bfc 100644 --- a/test/tests/hydro_mech/tests +++ b/test/tests/hydro_mech/tests @@ -1,7 +1,7 @@ -#[Tests] -# [./mandel] -# type = 'Exodiff' -# input = 'mandel.i' -# exodiff = 'mandel_out.e' -# [../] -#[] \ No newline at end of file +[Tests] + [./mandel] + type = 'Exodiff' + input = 'mandel.i' + exodiff = 'mandel_out.e' + [../] +[]