# Examples

We provide four examples of material models, each with its own implementation.

## Metal 🤘

The metal material model is designed to capture the elastic-plastic behavior of metallic materials. This model is well-suited for simulating materials such as steel, aluminium, and other common metallic alloys.

##### Command structure

    *MAT_USER_1
    mid, dens, young, pr, did, tid, eos
    idlc, epsf

##### Source code

- `user-material/kernel_mat_metal.cu`
- `user-material/kernel_mat_metal.h`
- `user-material/mat_metal.cpp`
- `user-material/mat_metal.h`

## Concrete

The concrete material model is a simplified version of the Holmquist-Johnson-Cook concrete model. The model includes a pressure dependent yield surface and inelastic compaction of the material.

##### Command structure

    *MAT_USER_2
    mid, dens, G
    A, B, n, f_c, T, epsf_min, p_c, p_l
    epsv_c_l, D1, D2, K

##### Source code

- `user-material/kernel_mat_concrete.cu`
- `user-material/kernel_mat_concrete.h`
- `user-material/mat_concrete.cpp`
- `user-material/mat_concrete.h`

## Rubber

The rubber material model is a hyperelastic implementation that describes the non-linear elastic behavior of rubber-like materials. This is essentially the classical Mooney-Rivlin model.

##### Command structure

    *MAT_USER_3
    mid, dens, bulk
    C1, C2

##### Source code

- `user-material/kernel_mat_rubber.cu`
- `user-material/kernel_mat_rubber.h`
- `user-material/mat_rubber.cpp`
- `user-material/mat_rubber.h`

## Orthotropic

The orthotropic material model is specialised for materials that have different properties in three mutually perpendicular directions. It can be used for composite materials like wood and laminated composites, where directional dependency of mechanical properties is significant.

##### Command structure

    *MAT_USER_4
    mid, dens
    E1, E2, G12, pr12, pr23
    c, cdec, Xt, Xc, Yt, Yc, beta, S
    erode, residual

##### Source code

- `user-material/kernel_mat_orthotropic.cu`
- `user-material/kernel_mat_orthotropic.h`
- `user-material/mat_orthotropic.cpp`
- `user-material/mat_orthotropic.h`