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 17:04] – [Bonet-Burton Transversely-Isotropic Material] vanhulledoc:user:elements:volumes:hyper_functionbased [2026/07/02 14:15] (current) vanhulle
Line 8: Line 8:
 (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 $. (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 **deviatoric** $W_{dev}$ and **volumetric** $W_{vol}$ contribution:+The strain-energy density function $\psi$ is expressed as the sum of **deviatoric (elastic)** $\psi_{e}$ and **volumetric** $\psi_{vol}$ contributions:
 $$ $$
-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}\leftJ \right= W_{dev}\left(\bar{I}_1,\bar{I}_2, J, \bar{I}_4, \bar{I}_5 \right) + k_0 \mathcal{f}\leftJ \right)+\psi = \sum_{i=1}^{N_{e}}\psi_{e}^{(i)} \sum_{i=1}^{N_{vol}}\psi_{vol}^{(i)}
 $$ $$
  
-The deviatoric potential $W_{dev}$ is defined using hyperelastic potential law defined in [[doc:user:elements:volumes:hyper_dev_potential]] whilst the volumetric potential $\mathcal{f}(J)$ is defined using volumic potential law 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 an inelastic potential law in [[doc:user:elements:volumes:hyper_inel_potential]]. The elastic part of the total deformation gradient $\mathbf{F}^e$ 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
 $$ $$
-\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:
 +{{ :doc:user:references:materials:fbgrid.png?900 |}}
  
 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 25: 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''   |  -  | 
-| Number of the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential law]]               |  ''HYPER_ELAST_POTENTIAL_NO''  |  -  | +Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  | 
-Number of the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential law]] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NO''  |  -  | +Array of numbers defining the [[doc:user:elements:volumes:hyper_inel_potential|inelastic potential laws]] [1, 2,...] \\ (default = None)             |  ''HYPER_INELAST_POTENTIAL_NUMS''  |  -  |
-Number of the [[doc:user:elements:volumes:hyper_inel_potential|inelastic potential law]]  \\ (default = None)              |  ''HYPER_INELAST_POTENTIAL_NO''  |  -  |+
 | Material temperature evolution law                      |  ''TEMP''  |    ''TM''   | | Material temperature evolution law                      |  ''TEMP''  |    ''TM''   |
 | Orthotropic axis                                    |    ''ORTHO_AX1_X''        -   | | Orthotropic axis                                    |    ''ORTHO_AX1_X''        -   |
Line 59: 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''   |  -  | 
-| Number of the [[doc:user:elements:volumes:hyper_dev_potential|hyperelastic potential law]]               |  ''HYPER_ELAST_POTENTIAL_NO''  |  -  | +Array of numbers defining the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential laws]] [1, 2,...] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NUMS''  |  -  | 
-Number of the [[doc:user:elements:volumes:hyper_vol_potential|volumic potential law]] \\ (default = QuadraticVolumicPotential)                ''HYPER_VOL_POTENTIAL_NO''  |  -  | +Array of numbers defining the [[doc:user:elements:volumes:hyper_inel_potential|inelastic potential laws]] [1, 2,...] \\ (default = None)             |  ''HYPER_INELAST_POTENTIAL_NUMS''  |  -  |
-Number of the [[doc:user:elements:volumes:hyper_inel_potential|inelastic potential law]]  \\ (default = None)              |  ''HYPER_INELAST_POTENTIAL_NO''  |  -  |+
 | Material temperature evolution law                      |  ''TEMP''  |    ''TM''   | | Material temperature evolution law                      |  ''TEMP''  |    ''TM''   |
 | Orthotropic axis                                    |    ''ORTHO_AX1_X''        -   | | Orthotropic axis                                    |    ''ORTHO_AX1_X''        -   |
Line 76: Line 77:
 | Heat Capacity $C_p$                |  ''HEAT_CAPACITY''    ''TO/TM''   | | Heat Capacity $C_p$                |  ''HEAT_CAPACITY''    ''TO/TM''   |
 | Dissipated thermoelastic power fraction $\eta_e$                ''DISSIP_TE''    -   | | Dissipated thermoelastic power fraction $\eta_e$                ''DISSIP_TE''    -   |
-| Dissipated (visco)plastic power fraction (Taylor-Quinney factor)                |  ''DISSIP_TQ''    -   |+| Dissipated (visco)plastic power fraction (Taylor-Quinney factor)                |  ''DISSIP_TQ''    -   |\ 
 + 
 +===== VeFunctionBasedHyperMaterial ===== 
 + 
 +=== Description === 
 +Visco-hyperelastic law, using a ''Cauchy'' stress tensor $\boldsymbol{\sigma}$, stress in the current configuration. 
 + 
 +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)} + \sum_{i=1}^{N_{vol}}\psi_{vol}^{(i)} 
 +$$ 
 + 
 +The deviatoric visco-elastic potentials $\psi_{ve}^{(i)}$ are defined using visco-hyperelastic potential laws defined in [[doc:user:elements:volumes:hyper_dev_potential]]. 
 + 
 +Note that with this material, it is not mandatory to define any $\psi_{e}^{(i)}$. 
 + 
 +=== Parameters === 
 +^   Name                                                  ^  Metafor Code  ^ Dependency ^ 
 +| Density                                                  ''MASS_DENSITY''  |  ''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|hyperelastic potential laws]]  [1, 2,...]  \\ (default = None)            |  ''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_inel_potential|inelastic potential laws]] [1, 2,...] \\ (default = None)              ''HYPER_INELAST_POTENTIAL_NUMS''  |  -  | 
 +| 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''  
  
 ===== Example Materials ====== ===== Example Materials ======
-Some example materials from the literature using ''FunctionBasedHyperMaterial''.+Some example materials from the literature using ''FunctionBasedHyperMaterial'' and ''VeFunctionBasedHyperMaterial''.
  
 ==== Generalized Neo-Hookean Material with Thermal Expansion ==== ==== Generalized Neo-Hookean Material with Thermal Expansion ====
Line 90: 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_NO, 1) +  materialset(1).put(HYPER_VOL_POTENTIAL_NUMS    [2]
-  materialset(1).put(HYPER_VOL_POTENTIAL_NO, 2) +  materialset(1).put(HYPER_INELAST_POTENTIAL_NUMS[3])
-  materialset(1).put(HYPER_INELAST_POTENTIAL_NO, 3)+
      
 The elastic deviatoric potential is the ''NeoHookeanHyperPotential'': The elastic deviatoric potential is the ''NeoHookeanHyperPotential'':
   ## Elastic (deviatoric) potential   ## Elastic (deviatoric) potential
-  materlawset = domain.getMaterialLawSet() 
   materlawset.define(1, NeoHookeanHyperPotential)   materlawset.define(1, NeoHookeanHyperPotential)
   materlawset(1).put(HYPER_C1, C1)   materlawset(1).put(HYPER_C1, C1)
Line 104: 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 as an ''InelasticPotential'':+Isotropic thermal expansion is added using a ''InelasticPotential'':
   ## Inelastic potential   ## Inelastic potential
   materlawset.define(3, ThermalIsotropicExpansion)   materlawset.define(3, ThermalIsotropicExpansion)
   materlawset(3).put(HYPER_THERM_EXPANSION, alpha)   materlawset(3).put(HYPER_THERM_EXPANSION, alpha)
 +  
 +==== Visco-hyperelastic Neo-Hookean Material (Generalized Maxwell) ====
  
 +  ## Visco-elastic Neo-Hookean with n Maxwell branches
 +  materialset.define(1, VeFunctionBasedHyperMaterial)
 +  materialset(1).put(MASS_DENSITY, rho)
 +  materialset(1).put(HYPER_VE_POTENTIAL_NUMS,   [1])
 +  materialset(1).put(HYPER_VOL_POTENTIAL_NUMS,  [2])
 +
 +We create the ''GeneralizedMaxwellHyperPotential'' grid base:
 +  ## Generalized Maxwell Potential
 +  materlawset.define(1, GeneralizedMaxwellHyperPotential)
 +
 +The main spring of the grid is the ''NeoHookeanHyperPotential'' (purely elastic):
 +  ### Main spring is Neo-Hookean
 +  materlawset.define(101, NeoHookeanHyperPotential)
 +  materlawset(101).put(HYPER_C1, C1)
 +  materlawset(1).put(HYPER_MAIN_POTENTIAL_NO, 101) #define law 101 as main spring
 +  
 +We add n parallel ''MaxwellBranch'' to the grid:
 +  ### n Maxwell Branches
 +  for i in range(0, n):
 +      materlawset.define(102+i, MaxwellBranch)
 +      materlawset(102+i).put(HYPER_MAXWELL_GAMMA,   gamma[i])
 +      materlawset(102+i).put(HYPER_VE_TAU,            tau[i])
 +      materlawset(1).append(HYPER_MAXWELL_BRANCH_NUMS, 102+i) #add law 102+i to the set of parallel Maxwell branches
 +      
 +The volumetric potential is the ''QuadLogVolumicPotential'':
 +  ## Volumetric potential
 +  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 121: 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_PENALk0) +  materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS[1, 2]
-  materialset(1).put(HYPER_ELAST_POTENTIAL_NO1+  materialset(1).put(HYPER_VOL_POTENTIAL_NUMS     [3])
-  materialset(1).put(HYPER_VOL_POTENTIAL_NO2)+
      
-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''+The elastic deviatoric potential is the sum of the ''NeoHookeanHyperPotential'' (isotropic matrix part)  
-  ## Elastic (deviatoric) potential +  materlawset.define(1, NeoHookeanHyperPotential
-  materlawset = domain.getMaterialLawSet(+  materlawset(1).put(HYPER_C1, C1)
-  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 +and ''HolzapfelGasserOgdenHyperPotential'' with two separate fiber directions (+-beta in the xy-plane).  
-  materlawset.define(4, HolzapfelGasserOgdenHyperPotential) +  materlawset.define(2, HolzapfelGasserOgdenHyperPotential) 
-  materlawset(4).put(HYPER_HGO_K1, k1) +  materlawset(2).put(HYPER_HGO_K1,  k1) 
-  materlawset(4).put(HYPER_HGO_K2, k2) +  materlawset(2).put(HYPER_HGO_K2,  k2) 
-  materlawset(4).put(HYPER_HGO_DISP, d) +  materlawset(2).put(HYPER_HGO_DISP, d) 
-  # first fiber family with beta orientation +  # fiber orientations in the xy-plane (+-beta) 
-  materlawset(4).put(HYPER_FIB1_X, np.cos(beta)+  materlawset(2).put(HYPER_FIBS_THETA[beta-beta]) 
-  materlawset(4).put(HYPER_FIB1_Ynp.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_Ynp.sin(beta)+
      
 The volumetric potential is the ''LogarithmicVolumicPotential'' The volumetric potential is the ''LogarithmicVolumicPotential''
   ## Volumetric potential   ## Volumetric potential
-  materlawset.define(2, LogarithmicVolumicPotential)+  materlawset.define(3, LogarithmicVolumicPotential
 +  materlawset(3).put(HYPER_COMPR_MODULUS, k0)
  
  
Line 162: Line 285:
 $$ $$
  
-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+The different constants from $W$ are related to the engineering material constants in the pricipal (1direction and in the transverse (23) directions [[https://pubs.aip.org/aip/acp/article/909/1/142/624705/Numerical-Modeling-of-Transversely-Isotropic | Abd Latif M.Perić D., Dettmer W. (2007). Numerical Modeling of Transversely Isotropic Elastic Material at Small and Finite Strains. 909. 142-146.]]
 $$ $$
-= \frac{E_a}{E} ~~~~|~~~~ m=1-\nu-2\nu^2+\mu = \frac{E_2}{2\left(1+\nu_{23}\right)~~~~~|~~~~~ \lambda = \frac{-E_2\left(E_2\nu_{12}^+ E_1\nu_{23}\right)}{\left(2E_2\nu_{12}^2+E_1\left[\nu_{23}-1\right]\right)\left(1+\nu_{23}\right)} 
 $$ $$
 $$ $$
-\mu = G = 2C_1 = \frac{E}{2(1+\nu)} ~~~~|~~~~ \lambda = k_0 = \frac{E(\nu+n\nu^2)}{m(1+\nu)}+    \alpha = \frac{1}{4}\left(\frac{E_2}{1+\nu_{23}}-2G_{12}\right) ~~~~~|~~~~~ \beta = \frac{E_2}{4}\left(\frac{E_1-2E_1\nu_{12}}{2E_2\nu_{12}^2+E_1\left(\nu_{23}-1\right)}+\frac{1}{1+\nu_{23}}\right) 
 $$ $$
 $$ $$
-\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+   \gamma = \frac{1}{16}\left(2E_1 - 4G_{12\frac{E_1 E_2\left(1-2\nu_{12}\right)^2}{2E_2\nu_{12}^2+E_1\left(\nu_{23}-1\right)}-\frac{E_2}{1+\nu_{23}}\right) 
 $$ $$
  
   ## Bonet-Burton Material   ## Bonet-Burton Material
   materialset.define(1, FunctionBasedHyperMaterial)   materialset.define(1, FunctionBasedHyperMaterial)
-  materialset(1).put(MASS_DENSITY, rho) +  materialset(1).put(MASS_DENSITY,    rho) 
-  materialset(1).put(RUBBER_PENALlambda) +  materialset(1).put(HYPER_ELAST_POTENTIAL_NUMS[1, 2]
-  materialset(1).put(HYPER_ELAST_POTENTIAL_NO1+  materialset(1).put(HYPER_VOL_POTENTIAL_NUMS     [3])
-  materialset(1).put(HYPER_VOL_POTENTIAL_NO2)+
      
-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.  +The elastic deviatoric potential is the sum of the ''NeoHookeanHyperPotential'' (isotropic matrix part)  
- +  materlawset.define(1, NeoHookeanHyperPotential
-  ## Elastic (deviatoric) potential +  materlawset(1).put(HYPER_C1, mu/2.) #mu=2C1
-  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 +and ''BonetBurtonHyperPotential'' with one fiber directions (+beta in xy-plane).  
-  materlawset.define(4, BonetBurtonHyperPotential) +  materlawset.define(2, BonetBurtonHyperPotential) 
-  materlawset(4).put(HYPER_BB_ALPHA, alpha) +  materlawset(2).put(HYPER_BB_ALPHA,   alpha) 
-  materlawset(4).put(HYPER_BB_BETA, beta) +  materlawset(2).put(HYPER_BB_BETA,     beta) 
-  materlawset(4).put(HYPER_BB_GAMMA, gamma) +  materlawset(2).put(HYPER_BB_GAMMA,   gamma) 
-  materlawset(4).put(HYPER_BB_USE_LNJ, false) +  materlawset(2).put(HYPER_BB_USE_LNJ, false) 
-  # first fiber family with beta orientation +  # fiber orientation in the xy-plane 
-  materlawset(4).put(HYPER_FIB1_Xnp.cos(beta)+  materlawset(2).put(HYPER_FIBS_THETA[beta]
-  materlawset(4).put(HYPER_FIB1_Ynp.sin(beta))+  materlawset(2).put(HYPER_FIBS_DELTA  [0.])
      
 The volumetric potential is the ''QuadraticVolumicPotential'' The volumetric potential is the ''QuadraticVolumicPotential''
   ## Volumetric potential   ## Volumetric potential
-  materlawset.define(2, QuadraticVolumicPotential)+  materlawset.define(3, QuadraticVolumicPotential
 +  materlawset(3).put(HYPER_COMPR_MODULUS, lambda)
  
doc/user/elements/volumes/hyper_functionbased.1763136286.txt.gz · Last modified: by vanhulle

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki