35 for (
unsigned int i = 0; i < 3; ++i)
36 for (
unsigned int j = 0; j < 3; ++j)
39 F.add(invF.inverse());
60 for (
unsigned int i = 0; i < 3; ++i) {
61 for (
unsigned int j = 0; j < 3; ++j) {
63 C_mat(i, j) = 2 * mu + lambda;
64 C_mat(i + 3, j + 3) = mu - 0.5 * lambda * (detF * detF - 1);
66 C_mat(i, j) = lambda * detF * detF;
75 Real mu =
E / (2.0 * (1.0 +
nu));
84 identity(0, 0) = 1.0; identity(1, 1) = 1.0; identity(2, 2) = 1.0;
87 S = 0.5 * lambda * (detF * detF - 1) * invC + mu * (identity - invC);
122 stiffness.resize(3, 3);
125 stiffness(0, 0) += G_IK;
126 stiffness(1, 1) += G_IK;
127 stiffness(2, 2) += G_IK;
143 for (
unsigned int ii = 0; ii < 3; ++ii)
void init_for_qp(VectorValue< Gradient > &grad_u, unsigned int qp)
Initialize the class for the given displacement gradient at the specified quadrature point...
bool calculate_linearized_stiffness
Flag to indicate if it is necessary to calculate values for stiffness matrix during initialization...
template class LIBMESH_EXPORT DenseVector< Real >
static constexpr Real TOLERANCE
void get_residual(DenseVector< Real > &residuum, unsigned int &i)
Return the residual vector for the current state.
void zero()
Set all entries of the tensor to 0.
void build_b_0_mat(int i, DenseMatrix< Real > &b_l_mat)
RealTensorValue RealTensor
DenseMatrix< Real > C_mat
void get_linearized_stiffness(DenseMatrix< Real > &stiffness, unsigned int &i, unsigned int &j)
Return the stiffness matrix for the current state.
template class LIBMESH_EXPORT DenseMatrix< Real >
static void tensor_to_voigt(const RealTensor &tensor, DenseVector< Real > &vec)
void right_multiply_transpose(const DenseMatrix< T > &A)
Right multiplies by the transpose of the matrix A.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
TypeTensor< T > inverse() const
virtual void right_multiply(const DenseMatrixBase< T > &M2) override final
Performs the operation: (*this) <- (*this) * M3.
void resize(const unsigned int new_m, const unsigned int new_n)
Resizes the matrix to the specified size and calls zero().
const std::vector< std::vector< RealGradient > > & dphi
void vector_mult(DenseVector< T > &dest, const DenseVector< T > &arg) const
Performs the matrix-vector multiplication, dest := (*this) * arg.