Karamelo  714599e9
Parallel Material Point Method Simulator
Mat Class Reference

Detailed Description

This class stores the information concerning a given material.

The simplest material is rigid for which Mat::rigid == true. The other pointers are set to NULL. The corresponding user command is: material(material-ID, rigid).

The second type of material is linear which corresponds to linear elasticity.
The corresponding user command is: material(material-ID, linear, rho, E, nu, optional: damage-ID) where rho is the reference density, E the Young's modulus, nu the Poisson's ratio, and damage-ID. the ID of the optional damage law.

The third type of material is neo-hookean which corresponds to neo-hookean elasticity. The corresponding user command is similar to that for linear elasticiy materials:
material(material-ID, neo-hookean, rho, E, nu, optional: damage-ID).

The fourth and last type of material is eos-strength which corresponds to an elasto-plastic material the hydrostatic pressure is determined using an equation of state (EOS) while the deviatoric stress is determined using the shear modulus and a flow stress model.
The corresponding user command is: material(material-ID, eos-strength, eos-ID, strength-ID, optional: damage-ID, optional: temperature-ID) where eos-ID, strength-ID, damage-ID and temperature-ID are the ID of the EOS, flow stress model, damage law and temperature law, respectively.
The damage and temperature laws are optional.

Public Member Functions

 Mat (string, int, class EOS *, class Strength *, class Damage *, class Temperature *)
 Creates an elasto-plastic material. More...
 
 Mat (string, int, double, double, double)
 Creates a linear or Neo-Hookean material. More...
 
 Mat (string, int)
 Creates a rigid material. More...
 

Public Attributes

class Damage * damage
 Pointer to the Damage law.
 
double E
 Young's modulus.
 
class EOSeos
 Pointer to the EOS.
 
double G
 Shear modulus.
 
string id
 Identification name of the material.
 
double K
 Bulk modulus.
 
double lambda
 1st Lame parameter \(\lambda\)
 
double nu
 Poisson's ratio \(\nu\).
 
double rho0
 Density in the reference state \(\rho_0\).
 
bool rigid
 True if the material is rigid, false otherwise.
 
double signal_velocity
 Signal velocity in the reference state \(c_0 = \sqrt{\frac{\lambda+2G}{\rho_0}}\).
 
class Strength * strength
 Pointer to the Strength (flow stress rule)
 
class Temperature * temp
 Pointer to the Temperature law.
 
int type
 Either RIGID, LINEAR, NEO_HOOKEAN, or SHOCK with values from Material::constitutive_model.
 

Constructor & Destructor Documentation

◆ Mat() [1/3]

Mat::Mat ( string  id_,
int  type_,
class EOS eos_,
class Strength *  strength_,
class Damage *  damage_,
class Temperature *  temp_ 
)

Creates an elasto-plastic material.

The arguments are: material ID, material type (see Material::constitutive_model) a pointer to an EOS, a pointer to a Strength, a pointer to a Damage, and pointer to a Temperature. The last two can be NULL.

◆ Mat() [2/3]

Mat::Mat ( string  id_,
int  type_,
double  rho0_,
double  E_,
double  nu_ 
)

Creates a linear or Neo-Hookean material.

The arguments are: material ID, material type (see Material::constitutive_model) the density in the reference state, the Young's modulus and Poisson's ratio.

◆ Mat() [3/3]

Mat::Mat ( string  id_,
int  type_ 
)

Creates a rigid material.

The arguments are: material ID, material type (see Material::constitutive_model)


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