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 [2026/01/15 11:44] vanhulledoc:user:elements:volumes:hyper_functionbased [2026/07/02 14:15] (current) vanhulle
Line 10: Line 10:
 The strain-energy density function $\psi$ is expressed as the sum of **deviatoric (elastic)** $\psi_{e}$ and **volumetric** $\psi_{vol}$ contributions: The strain-energy density function $\psi$ is expressed as the sum of **deviatoric (elastic)** $\psi_{e}$ and **volumetric** $\psi_{vol}$ contributions:
 $$ $$
-\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)+\psi = \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} + \sum_{i=1}^{N_{vol}}\psi_{vol}^{(i)}
 $$ $$
  
-The deviatoric (elastic) potentials $\psi_{e}^{(i)}$ are defined using hyperelastic potential laws defined in [[doc:user:elements:volumes:hyper_dev_potential]] whilst volumetric potentials $\mathcal{f}^{(i)}(J)$ are defined using volumic potential laws in [[doc:user:elements:volumes:hyper_vol_potential]].+The deviatoric (elastic) potentials $\psi_{e}^{(i)}$ are defined using hyperelastic potential laws defined in [[doc:user:elements:volumes:hyper_dev_potential]] whilst volumetric potentials $\psi_{vol}^{(i)}$ are defined using volumic potential laws in [[doc:user:elements:volumes:hyper_vol_potential]].
  
 It is also possible to add **inelastic** deformations $\mathbf{F}_{in}$ (//e.g.// thermal expansion) by using inelastic potential laws in [[doc:user:elements:volumes:hyper_inel_potential]]. The total deformation gradient $\mathbf{F}$ writes It is also possible to add **inelastic** deformations $\mathbf{F}_{in}$ (//e.g.// thermal expansion) by using inelastic potential laws in [[doc:user:elements:volumes:hyper_inel_potential]]. The total deformation gradient $\mathbf{F}$ writes
Line 28: Line 28:
 ^   Name                                                  ^  Metafor Code  ^ Dependency ^ ^   Name                                                  ^  Metafor Code  ^ Dependency ^
 | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  | | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  |
-| Initial bulk modulus ($k_0$)                            |  ''RUBBER_PENAL''  |  ''TO/TM''  | 
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]              ''HYPER_ELAST_POTENTIAL_NUMS''    -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]              ''HYPER_ELAST_POTENTIAL_NUMS''    -  |
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  |
Line 62: Line 61:
 ^   Name                                                  ^  Metafor Code  ^ Dependency ^ ^   Name                                                  ^  Metafor Code  ^ Dependency ^
 | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  | | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  |
-| Initial bulk modulus ($k_0$)                            |  ''RUBBER_PENAL''  |  ''TO/TM''  | 
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]              ''HYPER_ELAST_POTENTIAL_NUMS''    -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]              ''HYPER_ELAST_POTENTIAL_NUMS''    -  |
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  |
Line 88: Line 86:
 This material is similar to ''FunctionBasedHyperMaterial'' with the addition of **visco-elastic** $\psi_{ve}$ contributions to the strain-energy density function $\psi$ as This material is similar to ''FunctionBasedHyperMaterial'' with the addition of **visco-elastic** $\psi_{ve}$ contributions to the strain-energy density function $\psi$ as
 $$ $$
-\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)+\psi = \sum_{i=1}^{N_{ve}}\psi_{ve}^{(i)} + \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} + \sum_{i=1}^{N_{vol}}\psi_{vol}^{(i)}
 $$ $$
  
Line 98: Line 96:
 ^   Name                                                  ^  Metafor Code  ^ Dependency ^ ^   Name                                                  ^  Metafor Code  ^ Dependency ^
 | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  | | Density                                                  ''MASS_DENSITY''  |  ''TO/TM''  |
-| Initial bulk modulus ($k_0$)                            |  ''RUBBER_PENAL''  |  ''TO/TM''  | 
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|visco-hyperelastic potential laws]]  [1, 2,...]              ''HYPER_VE_POTENTIAL_NUMS''    -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|visco-hyperelastic potential laws]]  [1, 2,...]              ''HYPER_VE_POTENTIAL_NUMS''    -  |
 | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]  \\ (default = None)            |  ''HYPER_ELAST_POTENTIAL_NUMS''    -  | | Array of numbers defining the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential laws]]  [1, 2,...]  \\ (default = None)            |  ''HYPER_ELAST_POTENTIAL_NUMS''    -  |
Line 124: 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,  k0) 
   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS,   [1])   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS,   [1])
   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,     [2])   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,     [2])
Line 137: Line 133:
   ## Volumetric potential   ## Volumetric potential
   materlawset.define(2, QuadLogVolumicPotential)   materlawset.define(2, QuadLogVolumicPotential)
 +  materlawset(2).put(HYPER_COMPR_MODULUS, k0)
      
 Isotropic thermal expansion is added using a ''InelasticPotential'': Isotropic thermal expansion is added using a ''InelasticPotential'':
Line 148: Line 145:
   materialset.define(1, VeFunctionBasedHyperMaterial)   materialset.define(1, VeFunctionBasedHyperMaterial)
   materialset(1).put(MASS_DENSITY, rho)   materialset(1).put(MASS_DENSITY, rho)
-  materialset(1).put(RUBBER_PENAL,  k0) 
   materialset(1).put(HYPER_VE_POTENTIAL_NUMS,   [1])   materialset(1).put(HYPER_VE_POTENTIAL_NUMS,   [1])
   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,  [2])   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,  [2])
Line 173: Line 169:
   ## Volumetric potential   ## Volumetric potential
   materlawset.define(2, QuadLogVolumicPotential)   materlawset.define(2, QuadLogVolumicPotential)
 +  materlawset(2).put(HYPER_COMPR_MODULUS, k0)
 +  
 +==== Visco-hyperelastic Three-Network Material (Nonlinear Generalized Maxwell) ====
 +Here we create a Three-Network material as presented in [[https://www.sciencedirect.com/science/chapter/monograph/pii/B978032331150200008X | Jörgen Bergström, 2015, 8 - Viscoplasticity Models, Mechanics of Solid Polymers, William Andrew Publishing, 371-436.]]. This material model can be used to model the "plastic" behavior of thermoplastic polymers.
  
 +The model is represented by a generalized Maxwell with three branches, two of them are nonlinear:
 +{{ :doc:user:references:materials:tnmgrid.png?200 |}}
 +
 +The three springs are ''EightChainHyperPotential''
 +  #spring 'A'
 +  materlawset.define(1, EightChainHyperPotential)
 +  materlawset(1).put(HYPER_MU, muA)
 +  materlawset(1).put(HYPER_LOCK_STRETCH, lambLockA)
 +  #spring 'B'
 +  materlawset.define(2, EightChainHyperPotential)
 +  materlawset(2).put(HYPER_MU, muB)
 +  materlawset(2).put(HYPER_LOCK_STRETCH, lambLockB)
 +  #spring 'C'
 +  materlawset.define(3, EightChainHyperPotential)
 +  materlawset(3).put(HYPER_MU, muC)
 +  materlawset(3).put(HYPER_LOCK_STRETCH, lambLockC)
 +  
 +with the addition of a common ''QuadraticVolumicPotential''
 +  # Volumetric potential
 +  materlawset.define(4, QuadraticVolumicPotential)
 +  materlawset(4).put(HYPER_COMPR_MODULUS, k0)
 +
 +Both dashpots are ''BergstromBoyceDashpot''
 +  #dashpot 'A'
 +  materlawset.define(5, BergstromBoyceDashpot)
 +  materlawset(5).put(DASHPOT_BB_GAMMADOT0, gammaDot0)
 +  materlawset(5).put(DASHPOT_BB_TAUHAT   ,   tauHatA)
 +  materlawset(5).put(DASHPOT_BB_A        ,         a)
 +  materlawset(5).put(DASHPOT_BB_M        ,        mA)
 +  # dependence of spring 'B' wrt dashpot 'A'
 +  materlawset(5).put(DASHPOT_BB_BETA,   beta)
 +  materlawset(5).put(DASHPOT_BB_MU_I,   muBi)
 +  materlawset(5).put(DASHPOT_BB_MU_F,   muBf)
 +  #dashpot 'B'
 +  materlawset.define(6, BergstromBoyceDashpot)
 +  materlawset(6).put(DASHPOT_BB_GAMMADOT0, gammaDot0)
 +  materlawset(6).put(DASHPOT_BB_TAUHAT   ,   tauHatB)
 +  materlawset(6).put(DASHPOT_BB_A        ,         a)
 +  materlawset(6).put(DASHPOT_BB_M        ,        mB)
 +  
 +We assemble the nonlinear branches A and B using ''NonLinearMaxwellBranch''
 +  # Maxwell Branch 'A'
 +  materlawset.define(7, NonLinearMaxwellBranch)
 +  materlawset(7).put(HYPER_MAXWELL_SPRING_NUM, 1)
 +  materlawset(7).put(HYPER_MAXWELL_SPRING_VOL_NUM, 4)
 +  materlawset(7).put(HYPER_MAXWELL_DASHPOT_NUM, 5)
 +  # Maxwell Branch 'B'
 +  materlawset.define(8, NonLinearMaxwellBranch)
 +  materlawset(8).put(HYPER_MAXWELL_SPRING_NUM, 2)
 +  materlawset(8).put(HYPER_MAXWELL_SPRING_VOL_NUM, 4)
 +  materlawset(8).put(HYPER_MAXWELL_DASHPOT_NUM, 6)
 +  # branch 'B' depends on branch 'A'
 +  materlawset(8).put(HYPER_MAXWELL_DEPENDENCE_NUM, 7)
 +
 +We assemble the ''GeneralizedMaxwellHyperPotential''
 +  materlawset.define(9, GeneralizedMaxwellHyperPotential)
 +  # main spring 'C'
 +  materlawset(9).put(HYPER_MAIN_POTENTIAL_NUM, 3)
 +  # Maxwell branches 'A' and 'B'
 +  materlawset(9).append(HYPER_MAXWELL_BRANCH_NUMS, [7, 8])
 +  
 +We create the material ''VeFunctionBasedHyperMaterial''
 +  materialset.define(1, VeFunctionBasedHyperMaterial)
 +  materialset(1).put(MASS_DENSITY, rho)
 +  materialset(1).put(HYPER_VE_POTENTIAL_NUMS,   [9])
 +  materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,  [4])
 +
 +  
 ==== 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''. 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''.
Line 185: Line 253:
   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,  k0) 
   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2])   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2])
   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,      [3])   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,      [3])
Line 199: Line 266:
   materlawset(2).put(HYPER_HGO_DISP, d)   materlawset(2).put(HYPER_HGO_DISP, d)
   # 2 fiber orientations in the xy-plane (+-beta)   # 2 fiber orientations in the xy-plane (+-beta)
-  materlawset(2).put(HYPER_FIBS_THETAS, [beta, -beta]) +  materlawset(2).put(HYPER_FIBS_THETA, [beta, -beta]) 
-  materlawset(2).put(HYPER_FIBS_DELTA,  [  0.,    0.]) # NB: facultative if 0+  materlawset(2).put(HYPER_FIBS_DELTA, [  0.,    0.]) # NB: facultative if 0
    
      
Line 206: Line 273:
   ## Volumetric potential   ## Volumetric potential
   materlawset.define(3, LogarithmicVolumicPotential)   materlawset.define(3, LogarithmicVolumicPotential)
 +  materlawset(3).put(HYPER_COMPR_MODULUS, k0)
  
  
Line 231: Line 299:
   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, lambda) 
   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2])   materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS, [1, 2])
   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,      [3])   materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,      [3])
Line 252: Line 319:
   ## Volumetric potential   ## Volumetric potential
   materlawset.define(3, QuadraticVolumicPotential)   materlawset.define(3, QuadraticVolumicPotential)
 +  materlawset(3).put(HYPER_COMPR_MODULUS, lambda)
  
doc/user/elements/volumes/hyper_functionbased.1768473848.txt.gz · Last modified: by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki