12#include "libmesh/quadrature.h"
16 ComputeIncrementalSmallStrain,
25 "Compute a strain increment and rotation increment for small strains.");
37 Real volumetric_strain = 0.0;
38 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
46 volumetric_strain += total_strain_increment.
trace() * _JxW[_qp] * _coord[_qp];
51 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
88 auto Fbar = RankTwoTensor ::initializeFromRows(
96 total_strain_increment = 0.5 * (
A +
A.transpose());
registerMooseObject("SolidMechanicsApp", ComputeIncrementalStrain)
registerMooseObjectRenamed("SolidMechanicsApp", ComputeIncrementalSmallStrain, "04/01/2025 00:00", ComputeIncrementalStrain)
ComputeIncrementalStrainBase is the base class for strain tensors using incremental formulations.
MaterialProperty< RankTwoTensor > & _strain_rate
std::vector< const VariableGradient * > _grad_disp_old
const MaterialProperty< RankTwoTensor > & _mechanical_strain_old
void subtractEigenstrainIncrementFromStrain(RankTwoTensor &strain)
MaterialProperty< RankTwoTensor > & _rotation_increment
MaterialProperty< RankTwoTensor > & _strain_increment
MaterialProperty< RankTwoTensor > & _deformation_gradient
static InputParameters validParams()
const MaterialProperty< RankTwoTensor > & _total_strain_old
ComputeIncrementalStrain defines a strain increment and rotation increment (=1), for small strains.
ComputeIncrementalStrain(const InputParameters ¶meters)
virtual void computeProperties() override
virtual void computeTotalStrainIncrement(RankTwoTensor &total_strain_increment)
Computes the current and old deformation gradients and passes back the total strain increment tensor.
static InputParameters validParams()
std::vector< const VariableGradient * > _grad_disp
Gradient of displacements.
MaterialProperty< RankTwoTensor > & _mechanical_strain
const Real & _current_elem_volume
MaterialProperty< RankTwoTensor > & _total_strain
const bool _volumetric_locking_correction
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< T > &row0, const libMesh::TypeVector< T > &row1, const libMesh::TypeVector< T > &row2)