Serac  0.1
Serac is an implicit thermal strucural mechanics simulation code.
Classes | Functions | Variables
serac::solid_mechanics Namespace Reference

SolidMechanics helper data types. More...

Classes

struct  ParameterizedLinearIsotropicSolid
 Linear isotropic elasticity material model. More...
 
struct  ParameterizedNeoHookeanSolid
 Neo-Hookean material model. More...
 
struct  underlying_scalar
 Infers type resulting from algebraic expressions of a group of variables. More...
 
struct  ParameterizedJ2Nonlinear
 J2 material with Voce hardening, with hardening parameters exposed as differentiable parameters. More...
 
struct  LinearIsotropic
 Linear isotropic elasticity material model. More...
 
struct  StVenantKirchhoff
 St. Venant Kirchhoff hyperelastic model. More...
 
struct  NeoHookean
 Neo-Hookean material model. More...
 
struct  NeoHookeanAdditiveSplit
 Neo-Hookean material version with additive split of deviatoric and volumetric behavior. More...
 
struct  LinearHardening
 Linear isotropic hardening law. More...
 
struct  PowerLawHardening
 Power-law isotropic hardening law. More...
 
struct  VoceHardening
 Voce's isotropic hardening law. More...
 
struct  J2SmallStrain
 J2 material with nonlinear isotropic hardening and linear kinematic hardening. More...
 
struct  J2
 Finite deformation version of J2 material with nonlinear isotropic hardening. More...
 
struct  ConstantBodyForce
 Constant body force model. More...
 
struct  ConstantTraction
 Constant traction boundary condition model. More...
 
struct  NeoHookeanWithFieldDensity
 Neo-Hookean material model This struct differs in style relative to the older materials as it needs to evaluate both stress and density. As a result, we want to clearly name these functions. This is likely going to be a new design going forward, at the moment it works with the SolidResidual class. More...
 

Functions

template<typename T , int dim>
auto greenStrain (const tensor< T, dim, dim > &grad_u)
 Compute Green's strain from the displacement gradient.
 
template<typename T >
auto overstress (double viscosity, T accumulated_plastic_strain_rate)
 
template<typename T1 , typename T2 , int dim>
auto KirchhoffToPiola (const tensor< T1, dim, dim > &kirchhoff_stress, const tensor< T2, dim, dim > &displacement_gradient)
 Transform the Kirchhoff stress to the Piola stress. More...
 
template<typename T1 , typename T2 , int dim>
auto CauchyToPiola (const tensor< T1, dim, dim > &cauchy_stress, const tensor< T2, dim, dim > &displacement_gradient)
 Transform the Cauchy stress to the Piola stress. More...
 

Variables

const LinearSolverOptions default_linear_options
 default method and tolerances for solving the systems of linear equations that show up in implicit solid mechanics simulations More...
 
const LinearSolverOptions direct_linear_options = {.linear_solver = LinearSolver::SuperLU, .print_level = 0}
 the default direct solver option for solving the linear stiffness equations
 
const NonlinearSolverOptions default_nonlinear_options
 default iteration limits, tolerances and verbosity for solving the systems of nonlinear equations that show up in implicit solid mechanics simulations More...
 
const TimesteppingOptions default_quasistatic_options = {TimestepMethod::QuasiStatic}
 default quasistatic timestepping options for solid mechanics
 
const TimesteppingOptions default_timestepping_options
 default implicit dynamic timestepping options for solid mechanics More...
 

Detailed Description

SolidMechanics helper data types.

Function Documentation

◆ CauchyToPiola()

template<typename T1 , typename T2 , int dim>
auto serac::solid_mechanics::CauchyToPiola ( const tensor< T1, dim, dim > &  cauchy_stress,
const tensor< T2, dim, dim > &  displacement_gradient 
)

Transform the Cauchy stress to the Piola stress.

Template Parameters
T1number-like type of the Cauchy stress components
T2number-like type of the displacement gradient components
dimnumber of spatial dimensions
Parameters
displacement_gradientDisplacement gradient
cauchy_stressCauchy stress
Returns
Piola stress

Definition at line 436 of file solid_material.hpp.

◆ KirchhoffToPiola()

template<typename T1 , typename T2 , int dim>
auto serac::solid_mechanics::KirchhoffToPiola ( const tensor< T1, dim, dim > &  kirchhoff_stress,
const tensor< T2, dim, dim > &  displacement_gradient 
)

Transform the Kirchhoff stress to the Piola stress.

Template Parameters
T1number-like type of the displacement gradient components
T1number-like type of the Kirchhoff stress components
dimnumber of spatial dimensions
Parameters
displacement_gradientDisplacement gradient
kirchhoff_stressKirchhoff stress
Returns
Piola stress

Definition at line 419 of file solid_material.hpp.

◆ overstress()

template<typename T >
auto serac::solid_mechanics::overstress ( double  viscosity,
accumulated_plastic_strain_rate 
)

Overstress for linear viscosity

Definition at line 170 of file solid_material.hpp.

Variable Documentation

◆ default_linear_options

const LinearSolverOptions serac::solid_mechanics::default_linear_options
Initial value:
= {.linear_solver = LinearSolver::GMRES,
.preconditioner = serac::ordering == mfem::Ordering::byVDIM
? Preconditioner::HypreAMG
: Preconditioner::HypreJacobi,
.relative_tol = 1.0e-6,
.absolute_tol = 1.0e-16,
.max_iterations = 500,
.print_level = 0}

default method and tolerances for solving the systems of linear equations that show up in implicit solid mechanics simulations

Definition at line 76 of file solid_mechanics.hpp.

◆ default_nonlinear_options

const NonlinearSolverOptions serac::solid_mechanics::default_nonlinear_options
Initial value:
= {.nonlin_solver = NonlinearSolver::Newton,
.relative_tol = 1.0e-4,
.absolute_tol = 1.0e-8,
.max_iterations = 10,
.print_level = 1}

default iteration limits, tolerances and verbosity for solving the systems of nonlinear equations that show up in implicit solid mechanics simulations

Definition at line 97 of file solid_mechanics.hpp.

◆ default_timestepping_options

const TimesteppingOptions serac::solid_mechanics::default_timestepping_options
Initial value:
= {TimestepMethod::Newmark,
DirichletEnforcementMethod::RateControl}

default implicit dynamic timestepping options for solid mechanics

Definition at line 107 of file solid_mechanics.hpp.