Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:hyper_functionbased

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:elements:volumes:hyper_functionbased [2025/11/14 16:12] vanhulledoc:user:elements:volumes:hyper_functionbased [2025/11/14 17:04] (current) – [Bonet-Burton Transversely-Isotropic Material] vanhulle
Line 111: Line 111:
  
 ==== Holzapfel-Gasser-Ogden Anisotropic Material ==== ==== Holzapfel-Gasser-Ogden Anisotropic Material ====
-Here we create a Holzapfel-Gasser-Ogden hyperelastic material as presented in [[https://pubmed.ncbi.nlm.nih.gov/15179858/ | 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''.+Here we create a Holzapfel-Gasser-Ogden anisotropic hyperelastic material as presented in [[https://pubmed.ncbi.nlm.nih.gov/15179858/ | 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. In this case, the material represents arterial wall tissues with two fiber families.
Line 121: Line 121:
   materialset.define(1, FunctionBasedHyperMaterial)   materialset.define(1, FunctionBasedHyperMaterial)
   materialset(1).put(MASS_DENSITY, rho)   materialset(1).put(MASS_DENSITY, rho)
-  materialset(1).put(RUBBER_PENAL, K)+  materialset(1).put(RUBBER_PENAL, k0)
   materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1)   materialset(1).put(HYPER_ELAST_POTENTIAL_NO, 1)
   materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2)   materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2)
Line 154: Line 154:
  
 ==== Bonet-Burton Transversely-Isotropic Material ==== ==== Bonet-Burton Transversely-Isotropic Material ====
 +Here we create a Bonet-Burton transversely isotropic hyperelastic material as presented in [[https://www.sciencedirect.com/science/article/pii/S0045782597003393 | Bonet J., Burton A. J., 1998, A simple orthotropic, transversely isotropic hyperelastic constitutive equation for large strain computations,
 +Computer Methods in Applied Mechanics and Engineering, 162, 151-164.]]
 +
 +For this material, the strain-energy density function writes
 +$$
 +W = \frac{\mu}{2}\left(\bar{I}_1 - 3\right) + \left[\alpha + \beta \left( \bar{I}_1-3 \right) + \gamma \left( \bar{I}^{(i)}_4 -1\right)\right]\left(\bar{I}^{(i)}_4 - 1\right) - \frac{1}{2}\alpha \left(\bar{I}^{(i)}_5 -1\right) + \frac{\lambda}{2}(J-1)^2
 +$$
 +
 +The different constants from $W$ are related to the engineering material constants from the matrix ($E$, $\nu$, $G$) and from the fibers ($E_a$, $G_a$, $\nu_a$) as
 +$$
 +n = \frac{E_a}{E} ~~~~|~~~~ m=1-\nu-2\nu^2
 +$$
 +$$
 +\mu = G = 2C_1 = \frac{E}{2(1+\nu)} ~~~~|~~~~ \lambda = k_0 = \frac{E(\nu+n\nu^2)}{m(1+\nu)}
 +$$
 +$$
 +\alpha = \mu - G_a = \mu - \frac{E_a}{2(1+\nu_a)} ~~~~|~~~~ \beta= \frac{E\nu^2(1-n)}{4m(1+\nu)} ~~~~|~~~~ \gamma=\frac{E_a(1-\nu)}{8m}-\frac{\lambda+2\mu}{8}+\frac{\alpha}{2}-\beta
 +$$
 +
 +  ## Bonet-Burton Material
 +  materialset.define(1, FunctionBasedHyperMaterial)
 +  materialset(1).put(MASS_DENSITY, rho)
 +  materialset(1).put(RUBBER_PENAL, lambda)
 +  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 BonetBurtonHyperPotential with one 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) #Bonet-Burton
 +
 +Isotropic Neo-Hookean potential
 +  materlawset.define(3, NeoHookeanHyperPotential)
 +  materlawset(3).put(HYPER_C1, mu/2.) #mu=2C1
 + 
 +Transversely isotropic Bonet-Burton potential with one fiber family
 +  materlawset.define(4, BonetBurtonHyperPotential)
 +  materlawset(4).put(HYPER_BB_ALPHA, alpha)
 +  materlawset(4).put(HYPER_BB_BETA, beta)
 +  materlawset(4).put(HYPER_BB_GAMMA, gamma)
 +  materlawset(4).put(HYPER_BB_USE_LNJ, false)
 +  # first fiber family with beta orientation
 +  materlawset(4).put(HYPER_FIB1_X, np.cos(beta))
 +  materlawset(4).put(HYPER_FIB1_Y, np.sin(beta))
 +  
 +The volumetric potential is the ''QuadraticVolumicPotential''
 +  ## Volumetric potential
 +  materlawset.define(2, QuadraticVolumicPotential)
  
doc/user/elements/volumes/hyper_functionbased.1763133130.txt.gz · Last modified: by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki