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 15:44] – [Generalized Neo-Hookean Material with Thermal Expansion] vanhulledoc:user:elements:volumes:hyper_functionbased [2025/11/14 17:04] (current) – [Bonet-Burton Transversely-Isotropic Material] vanhulle
Line 83: Line 83:
 ==== Generalized Neo-Hookean Material with Thermal Expansion ==== ==== Generalized Neo-Hookean Material with Thermal Expansion ====
  
 +Here we create the same material as ''NeoHookeanHyperMaterial'' (see [[doc:user:elements:volumes:hyper_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   ## Neo-Hookean Material
   materialset.define(1, FunctionBasedHyperMaterial)   materialset.define(1, FunctionBasedHyperMaterial)
Line 92: Line 95:
   materialset(1).put(HYPER_INELAST_POTENTIAL_NO, 3)   materialset(1).put(HYPER_INELAST_POTENTIAL_NO, 3)
      
 +The elastic deviatoric potential is the ''NeoHookeanHyperPotential'':
   ## Elastic (deviatoric) potential   ## Elastic (deviatoric) potential
   materlawset = domain.getMaterialLawSet()   materlawset = domain.getMaterialLawSet()
Line 97: Line 101:
   materlawset(1).put(HYPER_C1, C1)   materlawset(1).put(HYPER_C1, C1)
      
 +The volumetric potential is the ''QuadLogVolumicPotential'':
   ## Volumetric potential   ## Volumetric potential
   materlawset.define(2, QuadLogVolumicPotential)   materlawset.define(2, QuadLogVolumicPotential)
      
 +Isotropic thermal expansion is added as an ''InelasticPotential'':
   ## Inelastic potential   ## Inelastic potential
   materlawset.define(3, ThermalIsotropicExpansion)   materlawset.define(3, ThermalIsotropicExpansion)
Line 105: Line 111:
  
 ==== Holzapfel-Gasser-Ogden Anisotropic Material ==== ==== Holzapfel-Gasser-Ogden Anisotropic Material ====
 +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.
 +$$
 +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)
 +
  
 ==== 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.1763131448.txt.gz · Last modified: by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki