libMesh
Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
NonlinearNeoHookeCurrentConfig Class Reference

This class implements a constitutive formulation for an Neo-Hookean elastic solid in terms of the current configuration. More...

#include <nonlinear_neohooke_cc.h>

Public Member Functions

 NonlinearNeoHookeCurrentConfig (const std::vector< std::vector< RealGradient >> &dphi_in, GetPot &args, bool calculate_linearized_stiffness_in)
 
void init_for_qp (VectorValue< Gradient > &grad_u, unsigned int qp)
 Initialize the class for the given displacement gradient at the specified quadrature point. More...
 
void get_residual (DenseVector< Real > &residuum, unsigned int &i)
 Return the residual vector for the current state. More...
 
void get_linearized_stiffness (DenseMatrix< Real > &stiffness, unsigned int &i, unsigned int &j)
 Return the stiffness matrix for the current state. More...
 

Public Attributes

bool calculate_linearized_stiffness
 Flag to indicate if it is necessary to calculate values for stiffness matrix during initialization. More...
 

Private Member Functions

void build_b_0_mat (int i, DenseMatrix< Real > &b_l_mat)
 
void calculate_stress ()
 
void calculate_tangent ()
 

Static Private Member Functions

static void tensor_to_voigt (const RealTensor &tensor, DenseVector< Real > &vec)
 

Private Attributes

unsigned int current_qp
 
const std::vector< std::vector< RealGradient > > & dphi
 
DenseMatrix< Real > C_mat
 
Real E
 
Real nu
 
RealTensor F
 
RealTensor S
 
RealTensor tau
 
RealTensor sigma
 
DenseMatrix< Real > B_L
 
DenseMatrix< Real > B_K
 

Detailed Description

This class implements a constitutive formulation for an Neo-Hookean elastic solid in terms of the current configuration.

This implementation is suitable for computing large deformations. See e.g. "Nonlinear finite element methods" (P. Wriggers, 2008, Springer) for details.

Definition at line 40 of file nonlinear_neohooke_cc.h.

Constructor & Destructor Documentation

◆ NonlinearNeoHookeCurrentConfig()

NonlinearNeoHookeCurrentConfig::NonlinearNeoHookeCurrentConfig ( const std::vector< std::vector< RealGradient >> &  dphi_in,
GetPot &  args,
bool  calculate_linearized_stiffness_in 
)

Definition at line 43 of file nonlinear_neohooke_cc.h.

45  :
46  calculate_linearized_stiffness(calculate_linearized_stiffness_in),
47  dphi(dphi_in)
48  {
49  E = args("material/neohooke/e_modulus", 10000.0);
50  nu = args("material/neohooke/nu", 0.3);
51  }
bool calculate_linearized_stiffness
Flag to indicate if it is necessary to calculate values for stiffness matrix during initialization...
const std::vector< std::vector< RealGradient > > & dphi

Member Function Documentation

◆ build_b_0_mat()

void NonlinearNeoHookeCurrentConfig::build_b_0_mat ( int  i,
DenseMatrix< Real > &  b_l_mat 
)
private

◆ calculate_stress()

void NonlinearNeoHookeCurrentConfig::calculate_stress ( )
private

◆ calculate_tangent()

void NonlinearNeoHookeCurrentConfig::calculate_tangent ( )
private

◆ get_linearized_stiffness()

void NonlinearNeoHookeCurrentConfig::get_linearized_stiffness ( DenseMatrix< Real > &  stiffness,
unsigned int &  i,
unsigned int &  j 
)

Return the stiffness matrix for the current state.

◆ get_residual()

void NonlinearNeoHookeCurrentConfig::get_residual ( DenseVector< Real > &  residuum,
unsigned int &  i 
)

Return the residual vector for the current state.

◆ init_for_qp()

void NonlinearNeoHookeCurrentConfig::init_for_qp ( VectorValue< Gradient > &  grad_u,
unsigned int  qp 
)

Initialize the class for the given displacement gradient at the specified quadrature point.

◆ tensor_to_voigt()

static void NonlinearNeoHookeCurrentConfig::tensor_to_voigt ( const RealTensor tensor,
DenseVector< Real > &  vec 
)
staticprivate

Member Data Documentation

◆ B_K

DenseMatrix<Real> NonlinearNeoHookeCurrentConfig::B_K
private

Definition at line 93 of file nonlinear_neohooke_cc.h.

◆ B_L

DenseMatrix<Real> NonlinearNeoHookeCurrentConfig::B_L
private

Definition at line 92 of file nonlinear_neohooke_cc.h.

◆ C_mat

DenseMatrix<Real> NonlinearNeoHookeCurrentConfig::C_mat
private

Definition at line 88 of file nonlinear_neohooke_cc.h.

◆ calculate_linearized_stiffness

bool NonlinearNeoHookeCurrentConfig::calculate_linearized_stiffness

Flag to indicate if it is necessary to calculate values for stiffness matrix during initialization.

Definition at line 77 of file nonlinear_neohooke_cc.h.

◆ current_qp

unsigned int NonlinearNeoHookeCurrentConfig::current_qp
private

Definition at line 85 of file nonlinear_neohooke_cc.h.

◆ dphi

const std::vector<std::vector<RealGradient> >& NonlinearNeoHookeCurrentConfig::dphi
private

Definition at line 86 of file nonlinear_neohooke_cc.h.

◆ E

Real NonlinearNeoHookeCurrentConfig::E
private

Definition at line 89 of file nonlinear_neohooke_cc.h.

◆ F

RealTensor NonlinearNeoHookeCurrentConfig::F
private

Definition at line 91 of file nonlinear_neohooke_cc.h.

◆ nu

Real NonlinearNeoHookeCurrentConfig::nu
private

Definition at line 90 of file nonlinear_neohooke_cc.h.

◆ S

RealTensor NonlinearNeoHookeCurrentConfig::S
private

Definition at line 91 of file nonlinear_neohooke_cc.h.

◆ sigma

RealTensor NonlinearNeoHookeCurrentConfig::sigma
private

Definition at line 91 of file nonlinear_neohooke_cc.h.

◆ tau

RealTensor NonlinearNeoHookeCurrentConfig::tau
private

Definition at line 91 of file nonlinear_neohooke_cc.h.


The documentation for this class was generated from the following file: