Difference between revisions of "ConstitutiveLaws"

From Yade

 
(51 intermediate revisions by 9 users not shown)
Line 1: Line 1:
  +
== Constitutive laws ==
This page should grow to give overview of all constitutive laws (a.k.a. InteractionSolvers) and interaction-related classes in Yade. The purpose is twofold:
 
  +
  +
This page should grow to give overview of all constitutive laws in Yade. The purpose is twofold:
   
 
# Names of respective classes do not say much and it seems that lot of code is duplicated; should improve orientation in material models available
 
# Names of respective classes do not say much and it seems that lot of code is duplicated; should improve orientation in material models available
  +
# Not all laws are in the same development stage. Some of them are well validated while others are purely experimental. Users should quickly find out which ones are safe to use in this table.
# Have overview of migration to ConstitutiveLawDispatcher and ConstitutiveLaw (moving the interaction loop away from the law code), removal of persistentInteraction and obsolete code.
 
   
  +
'''Yade users are strongly encouraged to choose one of the green laws unless a reason exists to decide otherwise.'''
Please add what you know something about.
 
   
== Constitutive laws ==
 
 
{|border="1"
 
{|border="1"
  +
! Legend !!
! Class !! description !! interactionGeometry !! interactionPhysics !! used by and where
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Green
! ElasticContactLaw
 
  +
| Actively used and maintained without known bugs. Safe to use.
| (the traditional Cundall's elastic-plastic law) This law has three parameters : tangential stiffness, normal stiffness, and friction coefficient - it modelises dry contacts (no tensile force allowed). || SpheresContactGeometry || ElasticContactInteraction || TriaxialTest (Bruno Chareyre)
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Yellow
! CohesiveFrictionalContactLaw
 
  +
| In developement. Could be functional but may be subjected to frequent changes and bugs.
| A versatile elastic-plastic contact law, with shear/normal/twisting/rolling stiffnesses, normal/shear strength (twisting/rolling strength could be added easily, for now they are infinite), shear/twisting creep || SpheresContactGeometry || CohesiveFrictionalInteraction || CohesiveTriaxialTest (Bruno Chareyre/Cosurgi)
 
 
|-
 
|-
  +
!bgcolor="#ff0000" | Red
! Concrete particle model (Cpm)
 
  +
| Orphan. Though possibly useful, the code has no identified maintainer. The help from mailing list will be limited and bugfixes may never come. For prepared users.
| (stands for BReakableFrictionalCohesive) material model developed for concrete. It has damage, plasticity (friction), planned is visco-damage and visco-plasticity. The code unfortunately cannot be disclosed by contract, but algoithms will be published some day. || SpheresContactGeometry || BrefcomContact || BrefcomTestGen, scripts (eudoxos)
 
  +
|}
  +
  +
  +
{|border="1"
  +
! Class !! description !! dev. status !! validated !! publications !! example script !! maintainer(s) !! active users
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_FrictPhys_CundallStrack
! ef2_Spheres_NormalShear_ElasticFrictionalLaw
 
  +
| The traditional Cundall's linear elastic-plastic law. This law has three parameters : tangential stiffness, normal stiffness, and friction coefficient - it modelizes dry contacts (no tensile force allowed). || mature || yes || (>10 papers) e.g. Scholtes2009c, Chareyre2012a || triax-basic.py || Bruno Chareyre || >20
| Proof-of-concept for ConstitutiveLawDispatcher. Cohesive type of interaction; has elasticity in both normal and shear directions. || SpheresContactGeometry || NormalShearInteraction || scripts/constitutive-law.py (eudoxos)
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom6D_CohFrictPhys_CohesionMoment
! ElasticContactLaw2
 
  +
| An augmented version of Law2_ScGeom_FrictPhys_CundallStrack with cohesion and torques at contacts. Creep is optional. || mature || yes || Bourrier2013 || triax-cohesive.py || Bruno Chareyre || F. Kneib
| like ElasticContactLaw, but using geometry algorithms in SpheresContactGeometry instead of computing that in-place; demonstrative only || SpheresContactGeometry || ElasticContactInteraction || (eudoxos)
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_MindlinPhys_Mindlin
! ElasticCohesiveLaw (deprecated)
 
  +
| The non-linear elastic Hertz-Mindlin no-slip solution contact law. The law also allows for rolling resistance and non-linear viscous damping. || mature || yes || Modenese2012b || mindlin.py || Chiara Modenese || C. Modenese, C. Jakob
| inherited from SDEC, not used anywhere except SDECLinkedSpheres || SDECLinkGeometry || SDECLinkPhysics || to be removed (relies on persistentInteractions)?
 
 
|-
 
|-
  +
!bgcolor="#99CC00" | Law2_ScGeom_CpmPhys_Cpm
! Spheres_Viscoelastic_SimpleViscoelasticContactLaw
 
  +
| model for concrete || mature || no || Smilauer2010b || examples/concrete || Václav Šmilauer, Jan Stransky || Jan Stransky
| Linear spring−dashpot contact model || SpheresContactGeometry || ViscoelasticInteraction || (sega) for dynamic simulation
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_WirePhys_WirePM
! ContactLaw1
 
  +
| A contact law for steel wires which is defined by a piece-wise linear stress-strain curve. The contact law considers tensile forces only. || mature || yes || Thoeni2011, Bertrand2008 || WireMatPM/wirecontacttest.py WireMatPM/wiretensiltest.py || Klaus Thoeni || K. Thoeni
| Inelastic normal behaviour (kn_unload # kn_load); transfert of an elastic-plastic moment; no cohesion or tensile limit || SpheresContactGeometry || ContactLaw1Interaction || J. Duriez for simulations of "SimpleShear" Preprocessor (a simple shear box for studying rock joints)
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_ViscElPhys_Basic
! add your stuff here, please!
 
  +
| Visco-elastic contact law which supports explicit parameter input (Kn, Ks, Cn and Es) and implicit (contact time, restitution coefficient). || mature || yes || Pournin2001 || Many scripts in examples/-directory, grep for ViscElPhys there (baraban.py, bulldozerVTK.py etc.). || Anton Gladky || -
| ... || ... || ... ||
 
|}
 
 
== InteractionPhysicsEngineUnits ==
 
 
{|border="1"
 
! Class !! description !! physicalParameters !! interactionPhysics || remarks
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_ViscElCapPhys_Basic
! BrefcomMakeContact
 
  +
| Extended version of linear viscoelastic model with capillary parameters || - || - || - || - || Anton Gladky || -
| from the Brefcom* family; elastic, damage, plasticity, viscosity properties || BrefcomPhysParams (BodyMacro + per-body damage and plasticity accounting) || BrefcomContact || (eudoxos)
 
 
|-
 
|-
  +
!bgcolor="#99cc00" | Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM
! SimpleElasticRelationships
 
  +
| Elastic contact law with cohesion and joints for fractured rock modelling. || mature || yes || Scholtes2012, Duriez2016 || in folder jointedCohesiveFrictionalPM || Luc Scholtes, J. Duriez || -
| ... || ... || ... ||
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Law2_CylScGeom_FrictPhys_CundallStrack
! SimpleViscoelasticRelationships
 
  +
| Similar to Law2_ScGeom_FrictPhys_CundallStrack but adapted to interactions between spheres and chained cylinders. || in development || more or less || not yet || chained-cylinder-roots.py || Bruno Chareyre, François Kneib || B. Chareyre, F. Kneib, I. Olmedo
| From viscoelastic parameters of the pair bodies provides viscoelastic parameters of their interaction by the rule of consecutive connection. || SimpleViscoelasticBodyParameters || ViscoelasticInteraction || (sega)
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Law2_CylScGeom6D_CohFrictPhys_CohesionMoment
! CL1Relationships
 
  +
| Similar to Law2_ScGeom6D_CohFrictPhys_CohesionMoment but adapted to interactions between spheres and chained cylinders. || in development || no || not yet || CohesiveCylinderSphere.py || François Kneib, Bruno Chareyre || B. Chareyre, F. Kneib, I. Olmedo
| Computes all the attributes of "ContactLaw1Interactions used for application of ContactLaw1 || CohesiveFrictionalBodyParameters || ContactLaw1Interactions || J. Duriez for SimpleShear
 
|}
 
 
== InteractionGeometry ==
 
{|border="1"
 
! Class !! description !!
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment
! SpheresContactGeometry
 
  +
| Inelastic contact law with cohesion, twist and bending. || - || no || - || - || Ignacio Olmedo, François Kneib || -
| used almost everywhere in the DEM code, even for sphere-box contacts. ||
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Law2_ScGeom_ViscoFrictPhys_CundallStrack
! SDECLinkGeometry
 
  +
| Generalized Maxwell model of visco-elasto-plastic interactions (2 springs and 2 dashpots for each force component). || in development || no || - || - || Bruno Chareyre || B. Chareyre
| duplicated SpheresContactGeometry. (Should be removed)
 
 
|-
 
|-
  +
!bgcolor="#FFFF00" | Law2_ScGeom_LudingPhys_Basic
! ...
 
  +
| Cohesive contact model || - || more or less || Luding2008, Singh2013 || LudingPM.py || Anton Gladky (coded) || -
| .....
 
|}
+
|-
  +
!bgcolor="#ff0000" | Law2_ScGeom_MindlinPhys_HertzWithLinearShear
  +
|-
  +
!bgcolor="#ff0000" | Law2_ScGeom_MindlinPhys_MindlinDeresiewitz
  +
|-
  +
!bgcolor="#ff0000" | Law2_ScGeom_BubblePhys_Bubble
  +
|-
  +
!bgcolor="#ff0000" | Law2_ScGeom_FrictViscoPhys_CundallStrackVisco
   
== InteractionPhysics ==
 
{|border="1"
 
! Class || description !!
 
 
|-
 
|-
  +
! Non-ScGeom laws
! NormalInteraction
 
| abstract class that has only normal stiffness and force
 
 
|-
 
|-
  +
| Law2_L3Geom_FrictPhys_ElPerfPl
! NormalShearInteraction
 
| abstract class with normal and shear stiffnesses
 
 
|-
 
|-
  +
| Law2_L6Geom_FrictPhys_Linear
! BrefcomContact
 
| normal and shear physics with additional parameters for non-elastic domain.
 
 
|-
 
|-
  +
| Law2_ScGridCoGeom_FrictPhys_CundallStrack
! ViscoelasticInteraction
 
| elastic contact with additional parameters for normal and shear dashpot.
 
 
|-
 
|-
  +
| Law2_ScGridCoGeom_CohFrictPhys_CundallStrack
! ContactLaw1Interaction
 
|
 
 
|-
 
|-
  +
| Law2_GridCoGridCoGeom_FrictPhys_CundallStrack
! ...
 
  +
|-
  +
| Law2_TTetraSimpleGeom_NormPhys_Simple
  +
|-
  +
| Law2_PolyhedraGeom_PolyhedraPhys_Volumetric
 
|}
 
|}
  +
 
[[Category:Developer guide]]
 
[[Category:Developer guide]]

Latest revision as of 14:10, 17 February 2020

Constitutive laws

This page should grow to give overview of all constitutive laws in Yade. The purpose is twofold:

  1. Names of respective classes do not say much and it seems that lot of code is duplicated; should improve orientation in material models available
  2. Not all laws are in the same development stage. Some of them are well validated while others are purely experimental. Users should quickly find out which ones are safe to use in this table.

Yade users are strongly encouraged to choose one of the green laws unless a reason exists to decide otherwise.

Legend
Green Actively used and maintained without known bugs. Safe to use.
Yellow In developement. Could be functional but may be subjected to frequent changes and bugs.
Red Orphan. Though possibly useful, the code has no identified maintainer. The help from mailing list will be limited and bugfixes may never come. For prepared users.


Class description dev. status validated publications example script maintainer(s) active users
Law2_ScGeom_FrictPhys_CundallStrack The traditional Cundall's linear elastic-plastic law. This law has three parameters : tangential stiffness, normal stiffness, and friction coefficient - it modelizes dry contacts (no tensile force allowed). mature yes (>10 papers) e.g. Scholtes2009c, Chareyre2012a triax-basic.py Bruno Chareyre >20
Law2_ScGeom6D_CohFrictPhys_CohesionMoment An augmented version of Law2_ScGeom_FrictPhys_CundallStrack with cohesion and torques at contacts. Creep is optional. mature yes Bourrier2013 triax-cohesive.py Bruno Chareyre F. Kneib
Law2_ScGeom_MindlinPhys_Mindlin The non-linear elastic Hertz-Mindlin no-slip solution contact law. The law also allows for rolling resistance and non-linear viscous damping. mature yes Modenese2012b mindlin.py Chiara Modenese C. Modenese, C. Jakob
Law2_ScGeom_CpmPhys_Cpm model for concrete mature no Smilauer2010b examples/concrete Václav Šmilauer, Jan Stransky Jan Stransky
Law2_ScGeom_WirePhys_WirePM A contact law for steel wires which is defined by a piece-wise linear stress-strain curve. The contact law considers tensile forces only. mature yes Thoeni2011, Bertrand2008 WireMatPM/wirecontacttest.py WireMatPM/wiretensiltest.py Klaus Thoeni K. Thoeni
Law2_ScGeom_ViscElPhys_Basic Visco-elastic contact law which supports explicit parameter input (Kn, Ks, Cn and Es) and implicit (contact time, restitution coefficient). mature yes Pournin2001 Many scripts in examples/-directory, grep for ViscElPhys there (baraban.py, bulldozerVTK.py etc.). Anton Gladky -
Law2_ScGeom_ViscElCapPhys_Basic Extended version of linear viscoelastic model with capillary parameters - - - - Anton Gladky -
Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM Elastic contact law with cohesion and joints for fractured rock modelling. mature yes Scholtes2012, Duriez2016 in folder jointedCohesiveFrictionalPM Luc Scholtes, J. Duriez -
Law2_CylScGeom_FrictPhys_CundallStrack Similar to Law2_ScGeom_FrictPhys_CundallStrack but adapted to interactions between spheres and chained cylinders. in development more or less not yet chained-cylinder-roots.py Bruno Chareyre, François Kneib B. Chareyre, F. Kneib, I. Olmedo
Law2_CylScGeom6D_CohFrictPhys_CohesionMoment Similar to Law2_ScGeom6D_CohFrictPhys_CohesionMoment but adapted to interactions between spheres and chained cylinders. in development no not yet CohesiveCylinderSphere.py François Kneib, Bruno Chareyre B. Chareyre, F. Kneib, I. Olmedo
Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment Inelastic contact law with cohesion, twist and bending. - no - - Ignacio Olmedo, François Kneib -
Law2_ScGeom_ViscoFrictPhys_CundallStrack Generalized Maxwell model of visco-elasto-plastic interactions (2 springs and 2 dashpots for each force component). in development no - - Bruno Chareyre B. Chareyre
Law2_ScGeom_LudingPhys_Basic Cohesive contact model - more or less Luding2008, Singh2013 LudingPM.py Anton Gladky (coded) -
Law2_ScGeom_MindlinPhys_HertzWithLinearShear
Law2_ScGeom_MindlinPhys_MindlinDeresiewitz
Law2_ScGeom_BubblePhys_Bubble
Law2_ScGeom_FrictViscoPhys_CundallStrackVisco
Non-ScGeom laws
Law2_L3Geom_FrictPhys_ElPerfPl
Law2_L6Geom_FrictPhys_Linear
Law2_ScGridCoGeom_FrictPhys_CundallStrack
Law2_ScGridCoGeom_CohFrictPhys_CundallStrack
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack
Law2_TTetraSimpleGeom_NormPhys_Simple
Law2_PolyhedraGeom_PolyhedraPhys_Volumetric