doc:user:elements:volumes:hyper_functionbased
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:user:elements:volumes:hyper_functionbased [2025/11/28 14:43] – [Bonet-Burton Transversely-Isotropic Material] vanhulle | doc:user:elements:volumes:hyper_functionbased [2026/01/15 13:15] (current) – [Holzapfel-Gasser-Ogden Anisotropic Material] vanhulle | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| (Quasi-)incompressibility is treated by a volumetric/ | (Quasi-)incompressibility is treated by a volumetric/ | ||
| - | The strain-energy density function $W$ is expressed as the sum of a **deviatoric** $W_{dev}$ and **volumetric** $W_{vol}$ | + | The strain-energy density function $\psi$ is expressed as the sum of **deviatoric |
| $$ | $$ | ||
| - | 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) | + | \psi = \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} + \sum_{i=1}^{N_{vol}}\psi_{vol}^{(i)} = \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} + k_0 \sum_{i=1}^{N_{vol}}\mathcal{f}^{(i)}\left( J \right) |
| $$ | $$ | ||
| - | The deviatoric | + | The deviatoric |
| - | It is also possible to add inelastic deformations $\mathbf{F}^{in}$ (//e.g.// thermal expansion) by using an inelastic potential | + | It is also possible to add **inelastic** deformations $\mathbf{F}_{in}$ (//e.g.// thermal expansion) by using inelastic potential |
| $$ | $$ | ||
| - | \mathbf{F}^e = \mathbf{F}\left(\mathbf{F}^{in}\right)^{-1} | + | \mathbf{F} = \mathbf{F}_e\prod_{i=1}^{N_{in}}\mathbf{F}_{in}^{(i)} |
| $$ | $$ | ||
| + | |||
| + | This material can be summarized into the following analogous rheological model: | ||
| + | {{ : | ||
| Note that all computations are done with respect to the **orthotropic axes**. | Note that all computations are done with respect to the **orthotropic axes**. | ||
| Line 26: | Line 29: | ||
| | Density | | Density | ||
| | Initial bulk modulus ($k_0$) | | Initial bulk modulus ($k_0$) | ||
| - | | Number | + | | Array of numbers defining |
| - | | Number | + | | Array of numbers defining |
| - | | Number | + | | Array of numbers defining |
| | Material temperature evolution law | '' | | Material temperature evolution law | '' | ||
| | Orthotropic axis | '' | | Orthotropic axis | '' | ||
| Line 60: | Line 63: | ||
| | Density | | Density | ||
| | Initial bulk modulus ($k_0$) | | Initial bulk modulus ($k_0$) | ||
| - | | Number | + | | Array of numbers defining |
| - | | Number | + | | Array of numbers defining |
| - | | Number | + | | Array of numbers defining |
| | Material temperature evolution law | '' | | Material temperature evolution law | '' | ||
| | Orthotropic axis | '' | | Orthotropic axis | '' | ||
| Line 76: | Line 79: | ||
| | Heat Capacity $C_p$ | '' | | Heat Capacity $C_p$ | '' | ||
| | Dissipated thermoelastic power fraction $\eta_e$ | | Dissipated thermoelastic power fraction $\eta_e$ | ||
| - | | Dissipated (visco)plastic power fraction (Taylor-Quinney factor) | + | | Dissipated (visco)plastic power fraction (Taylor-Quinney factor) |
| + | |||
| + | ===== VeFunctionBasedHyperMaterial ===== | ||
| + | |||
| + | === Description === | ||
| + | Visco-hyperelastic law, using a '' | ||
| + | |||
| + | This material is similar to '' | ||
| + | $$ | ||
| + | \psi = \sum_{i=1}^{N_{ve}}\psi_{ve}^{(i)} + \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} + k_0 \sum_{i=1}^{N_{vol}}\mathcal{f}^{(i)}\left( J \right) | ||
| + | $$ | ||
| + | |||
| + | The deviatoric visco-elastic potentials $\psi_{ve}^{(i)}$ are defined using visco-hyperelastic potential laws defined in [[doc: | ||
| + | |||
| + | Note that with this material, it is not mandatory to define any $\psi_{e}^{(i)}$. | ||
| + | |||
| + | === Parameters === | ||
| + | ^ | ||
| + | | Density | ||
| + | | Initial bulk modulus ($k_0$) | ||
| + | | Array of numbers defining the [[doc: | ||
| + | | Array of numbers defining the [[doc: | ||
| + | | Array of numbers defining the [[doc: | ||
| + | | Array of numbers defining the [[doc: | ||
| + | | Material temperature evolution law | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis | '' | ||
| + | | Orthotropic axis initialized by mesh construction \\ boolean : True - False (default) \\ override OrthoAxis definition | ||
| ===== Example Materials ====== | ===== Example Materials ====== | ||
| - | Some example materials from the literature using '' | + | Some example materials from the literature using '' |
| ==== Generalized Neo-Hookean Material with Thermal Expansion ==== | ==== Generalized Neo-Hookean Material with Thermal Expansion ==== | ||
| Line 90: | Line 124: | ||
| materialset.define(1, | materialset.define(1, | ||
| materialset(1).put(MASS_DENSITY, | materialset(1).put(MASS_DENSITY, | ||
| - | materialset(1).put(RUBBER_PENAL, | + | materialset(1).put(RUBBER_PENAL, |
| - | materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1) | + | materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1]) |
| - | materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2) | + | materialset(1).put(HYPER_VOL_POTENTIAL_NUMS, [2]) |
| - | materialset(1).put(HYPER_INELAST_POTENTIAL_NO, 3) | + | materialset(1).put(HYPER_INELAST_POTENTIAL_NUMS, [3]) |
| | | ||
| The elastic deviatoric potential is the '' | The elastic deviatoric potential is the '' | ||
| ## Elastic (deviatoric) potential | ## Elastic (deviatoric) potential | ||
| - | materlawset = domain.getMaterialLawSet() | ||
| materlawset.define(1, | materlawset.define(1, | ||
| materlawset(1).put(HYPER_C1, | materlawset(1).put(HYPER_C1, | ||
| Line 105: | Line 138: | ||
| materlawset.define(2, | materlawset.define(2, | ||
| | | ||
| - | Isotropic thermal expansion is added as an '' | + | Isotropic thermal expansion is added using a '' |
| ## Inelastic potential | ## Inelastic potential | ||
| materlawset.define(3, | materlawset.define(3, | ||
| materlawset(3).put(HYPER_THERM_EXPANSION, | materlawset(3).put(HYPER_THERM_EXPANSION, | ||
| + | | ||
| + | ==== Visco-hyperelastic Neo-Hookean Material (Generalized Maxwell) ==== | ||
| + | |||
| + | ## Visco-elastic Neo-Hookean with n Maxwell branches | ||
| + | materialset.define(1, | ||
| + | materialset(1).put(MASS_DENSITY, | ||
| + | materialset(1).put(RUBBER_PENAL, | ||
| + | materialset(1).put(HYPER_VE_POTENTIAL_NUMS, | ||
| + | materialset(1).put(HYPER_VOL_POTENTIAL_NUMS, | ||
| + | |||
| + | We create the '' | ||
| + | ## Generalized Maxwell Potential | ||
| + | materlawset.define(1, | ||
| + | |||
| + | The main spring of the grid is the '' | ||
| + | ### Main spring is Neo-Hookean | ||
| + | materlawset.define(101, | ||
| + | materlawset(101).put(HYPER_C1, | ||
| + | materlawset(1).put(HYPER_MAIN_POTENTIAL_NO, | ||
| + | | ||
| + | We add n parallel '' | ||
| + | ### n Maxwell Branches | ||
| + | for i in range(0, n): | ||
| + | materlawset.define(102+i, | ||
| + | materlawset(102+i).put(HYPER_MAXWELL_GAMMA, | ||
| + | materlawset(102+i).put(HYPER_VE_TAU, | ||
| + | materlawset(1).append(HYPER_MAXWELL_BRANCH_NUMS, | ||
| + | | ||
| + | The volumetric potential is the '' | ||
| + | ## Volumetric potential | ||
| + | materlawset.define(2, | ||
| ==== Holzapfel-Gasser-Ogden Anisotropic Material ==== | ==== Holzapfel-Gasser-Ogden Anisotropic Material ==== | ||
| Line 121: | Line 185: | ||
| materialset.define(1, | materialset.define(1, | ||
| materialset(1).put(MASS_DENSITY, | materialset(1).put(MASS_DENSITY, | ||
| - | materialset(1).put(RUBBER_PENAL, | + | materialset(1).put(RUBBER_PENAL, |
| - | materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1) | + | materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2]) |
| - | materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2) | + | materialset(1).put(HYPER_VOL_POTENTIAL_NUMS, [3]) |
| | | ||
| - | The elastic deviatoric potential is the sum of the '' | + | The elastic deviatoric potential is the sum of the '' |
| - | ## Elastic (deviatoric) potential | + | materlawset.define(1, |
| - | materlawset = domain.getMaterialLawSet() | + | materlawset(1).put(HYPER_C1, |
| - | materlawset.define(1, | + | |
| - | materlawset(1).put(HYPER_POTENTIAL1_NO, | + | |
| - | materlawset(1).put(HYPER_POTENTIAL2_NO, | + | |
| - | + | ||
| - | Isotropic Neo-Hookean potential | + | |
| - | materlawset.define(3, | + | |
| - | materlawset(3).put(HYPER_C1, | + | |
| | | ||
| - | Anisotropic Holzapfel-Gasser-Ogden potential | + | and '' |
| - | materlawset.define(4, HolzapfelGasserOgdenHyperPotential) | + | materlawset.define(2, HolzapfelGasserOgdenHyperPotential) |
| - | materlawset(4).put(HYPER_HGO_K1, | + | materlawset(2).put(HYPER_HGO_K1, |
| - | materlawset(4).put(HYPER_HGO_K2, | + | materlawset(2).put(HYPER_HGO_K2, |
| - | materlawset(4).put(HYPER_HGO_DISP, | + | materlawset(2).put(HYPER_HGO_DISP, |
| - | # first fiber family with beta orientation | + | # 2 fiber orientations in the xy-plane |
| - | materlawset(4).put(HYPER_FIB1_X, | + | materlawset(2).put(HYPER_FIBS_THETA, [beta, -beta]) |
| - | materlawset(4).put(HYPER_FIB1_Y, np.sin(beta)) | + | materlawset(2).put(HYPER_FIBS_DELTA, [ 0., 0.]) # NB: facultative if 0 |
| - | # 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 '' | The volumetric potential is the '' | ||
| ## Volumetric potential | ## Volumetric potential | ||
| - | materlawset.define(2, LogarithmicVolumicPotential) | + | materlawset.define(3, LogarithmicVolumicPotential) |
| Line 175: | Line 230: | ||
| ## Bonet-Burton Material | ## Bonet-Burton Material | ||
| materialset.define(1, | materialset.define(1, | ||
| - | materialset(1).put(MASS_DENSITY, | + | materialset(1).put(MASS_DENSITY, |
| materialset(1).put(RUBBER_PENAL, | materialset(1).put(RUBBER_PENAL, | ||
| - | materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1) | + | materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2]) |
| - | materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2) | + | materialset(1).put(HYPER_VOL_POTENTIAL_NUMS, [3]) |
| | | ||
| - | The elastic deviatoric potential is the sum of the '' | + | The elastic deviatoric potential is the sum of the '' |
| - | + | materlawset.define(1, | |
| - | ## Elastic (deviatoric) potential | + | materlawset(1).put(HYPER_C1, |
| - | materlawset = domain.getMaterialLawSet() | + | |
| - | materlawset.define(1, | + | |
| - | materlawset(1).put(HYPER_POTENTIAL1_NO, | + | |
| - | materlawset(1).put(HYPER_POTENTIAL2_NO, | + | |
| - | + | ||
| - | Isotropic Neo-Hookean potential | + | |
| - | materlawset.define(3, | + | |
| - | materlawset(3).put(HYPER_C1, | + | |
| - | Transversely isotropic Bonet-Burton potential | + | and '' |
| - | materlawset.define(4, BonetBurtonHyperPotential) | + | materlawset.define(2, BonetBurtonHyperPotential) |
| - | materlawset(4).put(HYPER_BB_ALPHA, | + | materlawset(2).put(HYPER_BB_ALPHA, |
| - | materlawset(4).put(HYPER_BB_BETA, | + | materlawset(2).put(HYPER_BB_BETA, |
| - | materlawset(4).put(HYPER_BB_GAMMA, | + | materlawset(2).put(HYPER_BB_GAMMA, |
| - | materlawset(4).put(HYPER_BB_USE_LNJ, | + | materlawset(2).put(HYPER_BB_USE_LNJ, |
| - | # first fiber family with beta orientation | + | # 1 fiber orientation |
| - | materlawset(4).put(HYPER_FIB1_X, np.cos(beta)) | + | materlawset(2).put(HYPER_FIBS_THETA, [beta]) |
| - | materlawset(4).put(HYPER_FIB1_Y, np.sin(beta)) | + | materlawset(2).put(HYPER_FIBS_DELTA, [0.]) |
| | | ||
| The volumetric potential is the '' | The volumetric potential is the '' | ||
| ## Volumetric potential | ## Volumetric potential | ||
| - | materlawset.define(2, QuadraticVolumicPotential) | + | materlawset.define(3, QuadraticVolumicPotential) |
doc/user/elements/volumes/hyper_functionbased.1764337435.txt.gz · Last modified: by vanhulle
