This is an old revision of the document!
Table of Contents
Function Based Materials
FunctionBasedHyperMaterial
Description
Hyperelastic law, using a Cauchy stress tensor $\boldsymbol{\sigma}$, stress in the current configuration.
(Quasi-)incompressibility is treated by a volumetric/deviatoric multiplicative split of the deformation gradient, i.e. $\bar{\mathbf{F}} = J^{-1/3}\mathbf{F}$. Hence the deviatoric potential is based on reduced invariants of $\bar{\mathbf{B}} =\bar{\mathbf{F}}\bar{\mathbf{F}}^T $.
The strain-energy density function $W$ is expressed as the sum of a deviatoric $W_{dev}$ and volumetric $W_{vol}$ contribution: $$ W\left(\bar{I}_1,\bar{I}_2, J, \bar{I}_4, \bar{I}_5 \right) = W_{dev}\left(\bar{I}_1,\bar{I}_2, J, \bar{I}_4, \bar{I}_5 \right) + W_{vol}\left( J \right) = W_{dev}\left(\bar{I}_1,\bar{I}_2, J, \bar{I}_4, \bar{I}_5 \right) + k_0 \mathcal{f}\left( J \right) $$
The deviatoric potential $W_{dev}$ is defined using a hyperelastic potential law defined in Deviatoric Potentials whilst the volumetric potential $\mathcal{f}(J)$ is defined using a volumic potential law in Volumic Potentials.
It is also possible to add inelastic deformations $\mathbf{F}^{in}$ (e.g. thermal expansion) by using an inelastic potential law in Inelastic Potentials. The elastic part of the total deformation gradient $\mathbf{F}^e$ writes $$ \mathbf{F}^e = \mathbf{F}\left(\mathbf{F}^{in}\right)^{-1} $$
Note that all computations are done with respect to the orthotropic axes.
Parameters
| Name | Metafor Code | Dependency |
|---|---|---|
| Density | MASS_DENSITY | TO/TM |
| Initial bulk modulus ($k_0$) | RUBBER_PENAL | TO/TM |
| Number of the hyperelastic potential law | HYPER_ELAST_POTENTIAL_NO | - |
| Number of the volumic potential law (default = QuadraticVolumicPotential) | HYPER_VOL_POTENTIAL_NO | - |
| Number of the inelastic potential law (default = None) | HYPER_INELAST_POTENTIAL_NO | - |
| Material temperature evolution law | TEMP | TM |
| Orthotropic axis | ORTHO_AX1_X | - |
| Orthotropic axis | ORTHO_AX1_Y | - |
| Orthotropic axis | ORTHO_AX1_Z | - |
| Orthotropic axis | ORTHO_AX2_X | - |
| Orthotropic axis | ORTHO_AX2_Y | - |
| Orthotropic axis | ORTHO_AX2_Z | - |
| Orthotropic axis initialized by mesh construction boolean : True - False (default) override OrthoAxis definition | ORTHO_INIT_AS_JACO |
TmFunctionBasedOrthoHyperMaterial
Description
Thermo-mechanical hyperelastic law with orthotropic thermal conduction law, using a Cauchy stress tensor $\boldsymbol{\sigma}$, stress in the current configuration.
Thermal conduction writes in the orthotropic frame $$ \boldsymbol{K}~\nabla T = \left[ \begin{array}{c c c} K_1 & 0 & 0 \\ 0 & K_2 & 0 \\ 0 & 0 & K_3 \end{array} \right] \nabla T, $$ where $\boldsymbol{K}$ is the orthotropic conduction matrix (in material axes) and $\nabla T$ is the temperature gradient.
Parameters
| Name | Metafor Code | Dependency |
|---|---|---|
| Density | MASS_DENSITY | TO/TM |
| Initial bulk modulus ($k_0$) | RUBBER_PENAL | TO/TM |
| Number of the hyperelastic potential law | HYPER_ELAST_POTENTIAL_NO | - |
| Number of the volumic potential law (default = QuadraticVolumicPotential) | HYPER_VOL_POTENTIAL_NO | - |
| Number of the inelastic potential law (default = None) | HYPER_INELAST_POTENTIAL_NO | - |
| Material temperature evolution law | TEMP | TM |
| Orthotropic axis | ORTHO_AX1_X | - |
| Orthotropic axis | ORTHO_AX1_Y | - |
| Orthotropic axis | ORTHO_AX1_Z | - |
| Orthotropic axis | ORTHO_AX2_X | - |
| Orthotropic axis | ORTHO_AX2_Y | - |
| Orthotropic axis | ORTHO_AX2_Z | - |
| Orthotropic axis initialized by mesh construction boolean : True - False (default) override OrthoAxis definition | ORTHO_INIT_AS_JACO | |
| Conductivity $K_1$ | CONDUCTIVITY_1 | TO/TM |
| Conductivity $K_2$ | CONDUCTIVITY_2 | TO/TM |
| Conductivity $K_3$ | CONDUCTIVITY_3 | TO/TM |
| Heat Capacity $C_p$ | HEAT_CAPACITY | TO/TM |
| Dissipated thermoelastic power fraction $\eta_e$ | DISSIP_TE | - |
| Dissipated (visco)plastic power fraction (Taylor-Quinney factor) | DISSIP_TQ | - |
Example Materials
Some example materials from the literature using FunctionBasedHyperMaterial.
Generalized Neo-Hookean Material with Thermal Expansion
Here we create the same material as NeoHookeanHyperMaterial (see Hyperelastic materials)
$$
W = C_1\left(\bar{I_1} - 3\right) + \frac{k_0}{2}\left[ \left(J-1\right)^2 + \ln^2 J\right]
$$
## Neo-Hookean Material materialset.define(1, FunctionBasedHyperMaterial) materialset(1).put(MASS_DENSITY, rho) materialset(1).put(RUBBER_PENAL, k0) materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1) materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2) materialset(1).put(HYPER_INELAST_POTENTIAL_NO, 3)
The elastic deviatoric potential is the NeoHookeanHyperPotential:
## Elastic (deviatoric) potential materlawset = domain.getMaterialLawSet() materlawset.define(1, NeoHookeanHyperPotential) materlawset(1).put(HYPER_C1, C1)
The volumetric potential is the QuadLogVolumicPotential:
## Volumetric potential materlawset.define(2, QuadLogVolumicPotential)
Isotropic thermal expansion is added as an InelasticPotential:
## Inelastic potential materlawset.define(3, ThermalIsotropicExpansion) materlawset(3).put(HYPER_THERM_EXPANSION, alpha)
Holzapfel-Gasser-Ogden Anisotropic Material
Here we create a Holzapfel-Gasser-Ogden hyperelastic material as presented in Holzapfel G., Gasser T., Ogden R., 2004, Comparison of a multi-layer structural model for arterial walls with a Fung-type model, and issues of material stability, Journal of biomechanical engineering, 126, 264-75. Note that before version 3570 of Metafor, this material was implemented as HolzapfelGasserOgdenHyperMaterial.
In this case, the material represents arterial wall tissues with two fiber families. $$ W = C_1\left(\bar{I_1} - 3\right) + \frac{k_1}{2k_2}\sum_{i=1}^2\left[ e^{k_2\left< d\left(\bar{I}_1-3\right) + \left(1-3d\right)\left(\bar{I}_4^{(i)}-1\right)\right>^2}-1 \right] + \frac{k_0}{2}\text{ln}^2 J $$
## HGO Material materialset.define(1, FunctionBasedHyperMaterial) materialset(1).put(MASS_DENSITY, rho) materialset(1).put(RUBBER_PENAL, k0) materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1) materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2)
The elastic deviatoric potential is the sum of the NeoHookeanHyperPotential (isotropic matrix part) and HolzapfelGasserOgdenHyperPotential with two separate fiber directions. The addition between the two potentials is made using the CombinedElasticPotential.
## Elastic (deviatoric) potential materlawset = domain.getMaterialLawSet() materlawset.define(1, CombinedElasticPotential) materlawset(1).put(HYPER_POTENTIAL1_NO, 3) #Neo-Hookean materlawset(1).put(HYPER_POTENTIAL2_NO, 4) #HGO
Isotropic Neo-Hookean potential
materlawset.define(3, NeoHookeanHyperPotential) materlawset(3).put(HYPER_C1, C1)
Anisotropic Holzapfel-Gasser-Ogden potential with two fiber directions
materlawset.define(4, HolzapfelGasserOgdenHyperPotential) materlawset(4).put(HYPER_HGO_K1, k1) materlawset(4).put(HYPER_HGO_K2, k2) materlawset(4).put(HYPER_HGO_DISP, d) # first fiber family with beta orientation materlawset(4).put(HYPER_FIB1_X, np.cos(beta)) materlawset(4).put(HYPER_FIB1_Y, np.sin(beta)) # second fiber family with -beta orientation materlawset(4).put(HYPER_FIB2_X, -np.cos(beta)) materlawset(4).put(HYPER_FIB2_Y, np.sin(beta))
The volumetric potential is the LogarithmicVolumicPotential
## Volumetric potential materlawset.define(2, LogarithmicVolumicPotential)
