void PK1_dil_stress_function(TensorValue<double>& PP, const TensorValue<double>& FF, const libMesh::Point& /*X*/, const libMesh::Point& /*s*/, Elem* const /*elem*/, const vector<NumericVector<double>*>& /*system_data*/, double /*time*/, void* /*ctx*/) { PP = -mu * tensor_inverse_transpose(FF, NDIM); return; } // PK1_dil_stress_function
void beam_PK1_dev_stress_function(TensorValue<double>& PP, const TensorValue<double>& FF, const libMesh::Point& /*X*/, const libMesh::Point& /*s*/, Elem* const /*elem*/, const vector<NumericVector<double>*>& /*system_data*/, double /*time*/, void* /*ctx*/) { const TensorValue<double> FF_inv_trans = tensor_inverse_transpose(FF, NDIM); PP = mu_s * (FF - FF_inv_trans); return; } // beam_PK1_dev_stress_function
void beam_PK1_dil_stress_function(TensorValue<double>& PP, const TensorValue<double>& FF, const libMesh::Point& /*X*/, const libMesh::Point& /*s*/, Elem* const /*elem*/, const vector<NumericVector<double>*>& /*system_data*/, double /*time*/, void* /*ctx*/) { double J = FF.det(); J_dil_min = std::min(J, J_dil_min); J_dil_max = std::max(J, J_dil_max); PP.zero(); if (!MathUtilities<double>::equalEps(beta_s, 0.0)) { const TensorValue<double> FF_inv_trans = tensor_inverse_transpose(FF, NDIM); PP -= 2.0 * beta_s * log(FF.det()) * FF_inv_trans; } return; } // beam_PK1_dil_stress_function
void PK1_stress_function(TensorValue<double>& PP, const TensorValue<double>& FF, const libMesh::Point& /*x*/, const libMesh::Point& /*X*/, subdomain_id_type /*subdomain_id*/, std::vector<double>& /*internal_vars*/, double /*time*/, void* /*ctx*/) { const TensorValue<double> FF_inv_trans = tensor_inverse_transpose(FF, NDIM); const TensorValue<double> CC = FF.transpose() * FF; PP = 2.0 * c1_s * FF; if (!MathUtilities<double>::equalEps(p0_s, 0.0)) { PP -= 2.0 * p0_s * FF_inv_trans; } if (!MathUtilities<double>::equalEps(beta_s, 0.0)) { PP += beta_s * log(CC.det()) * FF_inv_trans; } return; } // PK1_stress_function