:mod:`woo.models` ============================== .. inheritance-diagram:: woo.models :parts: 2 .. automodule:: woo.models :members: :undoc-members: :exclude-members: ContactModelSelector .. autoclass:: ContactModelSelector :members: :exclude-members: name, numMat, matDesc, mats, distFactor, poisson, restitution, damping, linRoll, linRollParams, plastSplit, pelletThin, pelletConf, alpha, surfEnergy, __init__, __getstate__, __setstate__ :special-members: [:woosrc:`py/models.py `] .. attribute:: name (= 'linear') Material model to use. [type: str, choices: linear, pellet, Hertz, DMT, Schwarz, concrete, ice, luding] .. attribute:: numMat (= Vector2i(1,1)) Minimum and maximum number of material definitions. [type: Vector2i, not shown in the UI, read-only in python] .. attribute:: matDesc (= []) List of strings describing individual materials. Keep the description very short (one word) as it will show up in the UI combo box for materials. [type: [str, …], not shown in the UI] .. attribute:: mats (= []) Material definitions [type: [Material, …]] .. attribute:: distFactor (= 1.0) Distance factor for sphere-sphere contacts (copied to :obj:`woo.dem.DemField.distFactor`) [type: float] .. attribute:: poisson (= 0.2) Poisson ratio (:obj:`woo.dem.Cp2_HertzMat_HertzPhys.poisson`) [type: float] .. attribute:: restitution (= 1.0) Restitution coefficient for models with viscosity (:obj:`woo.dem.Cp2_FrictMat_HertzPhys.en`). [type: float] .. attribute:: damping (= 0.2) Numerical (non-viscous) damping (:obj:`woo.dem.Leapfrog.damping`). .. note:: This damping value is **only** used for ``linear`` and ``ice`` :obj:`mocel`, otherwise the model has its own damping and this value will be ignored (:obj:`woo.dem.Leapfrog.damping` will be zero). [type: float] .. attribute:: linRoll (= False) *Linear model*: enable rolling, with parameters set in :obj:`linRollParams`. [type: bool] .. attribute:: linRollParams (= Vector3(1,1,1)) Rolling parameters for the linear model, in the order of :obj:`relRollStiff `, :obj:`relTwistStiff `, :obj:`rollTanPhi `. [type: Vector3] .. attribute:: plastSplit (= False) Split plastic dissipation into the normal and tangent component (obj:`woo.dem.Law2_L6Geom_PelletPhys_Pellet.plastSplit`). [type: bool] .. attribute:: pelletThin (= Vector6(0,0,0, 0,0,0)) *Pellet model:* parameters for plastic thinning (decreasing pellet radius during normal plastic loading); their order is :obj:`~woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinRate`, :obj:`~woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinRelRMin`, :obj:`~woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinExp`, :obj:`~woo:woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinRefRad`, :obj:`~woo:woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinMinExp`, :obj:`~woo:woo.dem.Law2_L6Geom_PelletPhys_Pellet.thinRateExp`. [type: Vector6] .. attribute:: pelletConf (= Vector3(0,0,0)) *Pellet model:* parameters for history-independent adhesion ("confinement"); the values are :obj:`confSigma `, :obj:`confRefRad ` and :obj:`confExp `. [type: Vector3] .. attribute:: alpha (= 0.0) Detect whether deprecated alpha is used. [type: float, not shown in the UI] .. attribute:: surfEnergy (= 0.0) Detect whether deprecated surfEnergy is used. [type: float, not shown in the UI]