![]() |
Karamelo
714599e9
Parallel Material Point Method Simulator
|
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 EOS * | eos |
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. | |
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::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::Mat | ( | string | id_, |
int | type_ | ||
) |
Creates a rigid material.
The arguments are: material ID, material type (see Material::constitutive_model)