23#ifndef NONLINEAR_NEOHOOKE_CC_H_
24#define NONLINEAR_NEOHOOKE_CC_H_
26#include "libmesh/dense_vector.h"
27#include "libmesh/dense_matrix.h"
28#include "libmesh/vector_value.h"
29#include "libmesh/tensor_value.h"
30#include "libmesh/getpot.h"
45 bool calculate_linearized_stiffness_in) :
49 E = args(
"material/neohooke/e_modulus", 10000.0);
50 nu = args(
"material/neohooke/nu", 0.3);
86 const std::vector<std::vector<RealGradient>> &
dphi;
This class implements a constitutive formulation for an Neo-Hookean elastic solid in terms of the cur...
void get_linearized_stiffness(DenseMatrix< Real > &stiffness, unsigned int &i, unsigned int &j)
Return the stiffness matrix for the current state.
bool calculate_linearized_stiffness
Flag to indicate if it is necessary to calculate values for stiffness matrix during initialization.
NonlinearNeoHookeCurrentConfig(const std::vector< std::vector< RealGradient > > &dphi_in, GetPot &args, bool calculate_linearized_stiffness_in)
void build_b_0_mat(int i, DenseMatrix< Real > &b_l_mat)
void init_for_qp(VectorValue< Gradient > &grad_u, unsigned int qp)
Initialize the class for the given displacement gradient at the specified quadrature point.
const std::vector< std::vector< RealGradient > > & dphi
void get_residual(DenseVector< Real > &residuum, unsigned int &i)
Return the residual vector for the current state.
DenseMatrix< Real > C_mat
static void tensor_to_voigt(const RealTensor &tensor, DenseVector< Real > &vec)
Defines a dense matrix for use in Finite Element-type computations.
Defines a dense vector for use in Finite Element-type computations.
This class defines a tensor in LIBMESH_DIM dimensional Real or Complex space.
This class defines a vector in LIBMESH_DIM dimensional Real or Complex space.
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real