Yade wrapper class reference¶
Bodies¶
Body¶
-
class
yade.wrapper.
Body
(inherits Serializable)¶ A particle, basic element of simulation; interacts with other bodies.
-
property
aspherical
¶ Whether this body has different inertia along principal axes; NewtonIntegrator makes use of this flag to call rotation integration routine for aspherical bodies, which is more expensive.
-
property
bounded
¶ Whether this body should have Body.bound created. Note that bodies without a bound do not participate in collision detection. (In c++, use
Body::isBounded
/Body::setBounded
)
-
property
chain
¶ Returns Id of chain to which the body belongs.
-
property
clumpId
¶ Id of clump this body makes part of; invalid number if not part of clump; see Body::isStandalone, Body::isClump, Body::isClumpMember properties.
Not meant to be modified directly from Python, use O.bodies.appendClumped instead.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
dynamic
¶ Whether this body will be moved by forces. (In c++, use
Body::isDynamic
/Body::setDynamic
)
-
property
flags
¶ Bits of various body-related flags. Do not access directly. In c++, use isDynamic/setDynamic, isBounded/setBounded, isAspherical/setAspherical. In python, use Body.dynamic, Body.bounded, Body.aspherical.
-
property
groupMask
¶ Bitmask for determining interactions.
-
property
id
¶ Unique id of this body.
-
intrs
((Body)arg1) → list :¶ Return list of all real interactions in which this body participates.
-
property
isClump
¶ True if this body is clump itself, false otherwise.
-
property
isClumpMember
¶ True if this body is clump member, false otherwise.
-
property
isFluidDomainBox
¶ Whether this body is a Fluid grid bounding box should have Body.bound created. FluidDomainBboxes` do not participate to collision detection with their own bodies, they may interact with external bodies and other subdomains through virtual interactions. (In c++, use
Body::getIsFluidDomainBbox
/Body::setIsFluidDomainBbox
)
-
property
isStandalone
¶ True if this body is neither clump, nor clump member; false otherwise.
-
property
isSubdomain
¶ Whether this body is a subdomain should have Body.bound created. Subdomains` do not participate to collision detection with their own bodies, they may interact with external bodies and other subdomains through virtual interactions. (In c++, use
Body::getIsSubdomain
/Body::setIsSubdomain
)
-
property
iterBorn
¶ Step number at which the body was added to simulation.
-
property
mask
¶ Shorthand for Body::groupMask
-
property
mat
¶ Shorthand for Body::material
-
property
subdomain
¶ the subdomain this body belongs to.
-
property
timeBorn
¶ Time at which the body was added to simulation.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Shape¶
![digraph Shape {
rankdir=RL;
margin="0.2,0.05";
"Shape" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Shape"];
"Cylinder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Cylinder"];
"Cylinder" -> "Sphere" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Node" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Node"];
"Node" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Facet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Facet"];
"Facet" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Tetra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Tetra"];
"Tetra" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Subdomain" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Subdomain"];
"Subdomain" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Box" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Box"];
"Box" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"DeformableElement" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.DeformableElement"];
"DeformableElement" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PotentialParticle" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PotentialParticle"];
"PotentialParticle" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FluidDomainBbox" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FluidDomainBbox"];
"FluidDomainBbox" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Sphere" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Sphere"];
"Sphere" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"DeformableCohesiveElement" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.DeformableCohesiveElement"];
"DeformableCohesiveElement" -> "DeformableElement" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Clump" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Clump"];
"Clump" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Wall" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Wall"];
"Wall" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GridNode" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GridNode"];
"GridNode" -> "Sphere" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GridConnection" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GridConnection"];
"GridConnection" -> "Sphere" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ChainedCylinder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ChainedCylinder"];
"ChainedCylinder" -> "Cylinder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Polyhedra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Polyhedra"];
"Polyhedra" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Lin4NodeTetra_Lin4NodeTetra_InteractionElement" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Lin4NodeTetra_Lin4NodeTetra_InteractionElement"];
"Lin4NodeTetra_Lin4NodeTetra_InteractionElement" -> "DeformableCohesiveElement" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Lin4NodeTetra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Lin4NodeTetra"];
"Lin4NodeTetra" -> "DeformableElement" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PFacet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PFacet"];
"PFacet" -> "Shape" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-b1a111b85446874c81676d275f5a652edf2c917a.png)
Inheritance graph of Shape.¶
-
class
yade.wrapper.
Shape
(inherits Serializable)¶ Geometry of a body
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Box
(inherits Shape → Serializable)¶ Box (cuboid) particle geometry. (Avoid using in new code, prefer Facet instead.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
extents
¶ Half-size of the cuboid
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
ChainedCylinder
(inherits Cylinder → Sphere → Shape → Serializable)¶ Geometry of a deformable chained cylinder, using geometry Cylinder.
-
property
chainedOrientation
¶ Deviation of node1 orientation from node-to-node vector
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
initLength
¶ tensile-free length, used as reference for tensile strain
-
property
length
¶ Length [m]
-
property
radius
¶ Radius [m]
-
property
segment
¶ Length vector
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Clump
(inherits Shape → Serializable)¶ Rigid aggregate of bodies
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
ids
¶ Ids of constituent particles (only informative; direct modifications will have no effect).
-
property
members
¶ Return clump members as {‘id1’:(relPos,relOri),…}
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Cylinder
(inherits Sphere → Shape → Serializable)¶ Geometry of a cylinder, as Minkowski sum of line and sphere.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
length
¶ Length [m]
-
property
radius
¶ Radius [m]
-
property
segment
¶ Length vector
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
DeformableCohesiveElement
(inherits DeformableElement → Shape → Serializable)¶ Tetrahedral Deformable Element Composed of Nodes
-
addFace
((DeformableElement)arg1, (Vector3)arg2) → None :¶ Add a face into the element
-
addNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
addPair
((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
property
color
¶ Color for rendering (normalized RGB).
-
delNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Remove a node shared_pt<:yref:’Body’>& from the element
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
elementframe
¶
-
property
faces
¶ Faces of the element for drawing
-
getNode
((DeformableElement)arg1, (int)arg2) → Body :¶ Get a node shared_pt<:yref:’Body’>& as into the element
-
getVolume
((DeformableElement)arg1) → float :¶ Get volume of the element
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
localmap
¶ Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
-
property
nodepairs
¶ Ids and relative position+orientation difference of members of the cohesive deformable element in the inital condition (should not be accessed directly)
-
removeLastFace
((DeformableElement)arg1) → None :¶ Remove a face from the element
-
removePair
((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
DeformableElement
(inherits Shape → Serializable)¶ Deformable aggregate of nodes
-
addFace
((DeformableElement)arg1, (Vector3)arg2) → None :¶ Add a face into the element
-
addNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
property
color
¶ Color for rendering (normalized RGB).
-
delNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Remove a node shared_pt<:yref:’Body’>& from the element
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
elementframe
¶
-
property
faces
¶ Faces of the element for drawing
-
getNode
((DeformableElement)arg1, (int)arg2) → Body :¶ Get a node shared_pt<:yref:’Body’>& as into the element
-
getVolume
((DeformableElement)arg1) → float :¶ Get volume of the element
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
localmap
¶ Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
-
removeLastFace
((DeformableElement)arg1) → None :¶ Remove a face from the element
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
Facet
(inherits Shape → Serializable)¶ Facet (triangular particle) geometry.
-
property
area
¶ Facet’s area
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
normal
¶ Facet’s normal (in local coordinate system)
-
setVertices
((Facet)arg1, (Vector3)arg2, (Vector3)arg3, (Vector3)arg4) → None :¶ TODO
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vertices
¶ Vertex positions in local coordinates.
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
FluidDomainBbox
(inherits Shape → Serializable)¶ The bounding box of a fluid grid from one OpenFOAM/YALES2 proc
-
property
bIds
¶ ids of bodies intersecting with this subdomain,
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
domainRank
¶ rank of the OpenFOAM/YALES2 proc
-
property
hasIntersection
¶ if this Yade subdomain has intersection with this OpenFOAM/YALES2 subdomain
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
maxBound
¶ max bounds of the fluid grid
-
property
minBound
¶ min bounds of the fluid grid
-
property
minMaxisSet
¶ flag to check if the min max bounds of this body are set.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
GridConnection
(inherits Sphere → Shape → Serializable)¶ GridConnection shape (see [Effeindzourou2016], [Bourrier2013]). Component of a grid designed to link two GridNodes. It is highly recommended to use gridpfacet.gridConnection to generate correct GridConnections.
-
addPFacet
((GridConnection)arg1, (Body)Body) → None :¶ Add a PFacet to the GridConnection.
-
property
cellDist
¶ Distance of bodies in cell size units, if using periodic boundary conditions. Note that periodic boundary conditions for GridConnections have not yet been fully implemented.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
getPFacets
((GridConnection)arg1) → object :¶ get list of linked PFacets.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
periodic
¶ true if two nodes from different periods are connected.
-
property
radius
¶ Radius [m]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
GridNode
(inherits Sphere → Shape → Serializable)¶ GridNode shape, component of a grid. To create a Grid, place the nodes first, they will define the spacial discretisation of it. It is highly recommended to use gridpfacet.gridNode to generate correct GridNodes. Note that the GridNodes should only be in an Interaction with other GridNodes. The Sphere-Grid contact is only handled by the GridConnections.
-
addConnection
((GridNode)arg1, (Body)Body) → None :¶ Add a GridConnection to the GridNode.
-
addPFacet
((GridNode)arg1, (Body)Body) → None :¶ Add a PFacet to the GridNode.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
getConnections
((GridNode)arg1) → object :¶ get list of linked GridConnection’s.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
radius
¶ Radius [m]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
Lin4NodeTetra
(inherits DeformableElement → Shape → Serializable)¶ Tetrahedral Deformable Element Composed of Nodes
-
addFace
((DeformableElement)arg1, (Vector3)arg2) → None :¶ Add a face into the element
-
addNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
property
color
¶ Color for rendering (normalized RGB).
-
delNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Remove a node shared_pt<:yref:’Body’>& from the element
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
elementframe
¶
-
property
faces
¶ Faces of the element for drawing
-
getNode
((DeformableElement)arg1, (int)arg2) → Body :¶ Get a node shared_pt<:yref:’Body’>& as into the element
-
getVolume
((DeformableElement)arg1) → float :¶ Get volume of the element
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
localmap
¶ Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
-
removeLastFace
((DeformableElement)arg1) → None :¶ Remove a face from the element
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
Lin4NodeTetra_Lin4NodeTetra_InteractionElement
(inherits DeformableCohesiveElement → DeformableElement → Shape → Serializable)¶ Tetrahedral Deformable Element Composed of Nodes
-
addFace
((DeformableElement)arg1, (Vector3)arg2) → None :¶ Add a face into the element
-
addNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
addPair
((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
property
color
¶ Color for rendering (normalized RGB).
-
delNode
((DeformableElement)arg1, (Body)arg2) → None :¶ Remove a node shared_pt<:yref:’Body’>& from the element
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
elementframe
¶
-
property
faces
¶ Faces of the element for drawing
-
getNode
((DeformableElement)arg1, (int)arg2) → Body :¶ Get a node shared_pt<:yref:’Body’>& as into the element
-
getVolume
((DeformableElement)arg1) → float :¶ Get volume of the element
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
localmap
¶ Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
-
property
nodepairs
¶ Ids and relative position+orientation difference of members of the cohesive deformable element in the inital condition (should not be accessed directly)
-
removeLastFace
((DeformableElement)arg1) → None :¶ Remove a face from the element
-
removePair
((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) → None :¶ Add a node shared_pt<:yref:’Body’>& as into the element
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
Node
(inherits Shape → Serializable)¶ Geometry of node particle.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
radius
¶ Radius [m]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
PFacet
(inherits Shape → Serializable)¶ PFacet (particle facet) geometry (see [Effeindzourou2016], [Effeindzourou2015a]). It is highly recommended to use the helper functions in gridpfacet (e.g., gridpfacet.pfacetCreator1-4) to generate correct PFacet elements.
-
property
area
¶ PFacet’s area
-
property
cellDist
¶ Distance of bodies in cell size units, if using periodic boundary conditions. Note that periodic boundary conditions for PFacets have not yet been fully implemented.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
normal
¶ PFacet’s normal (in local coordinate system)
-
property
radius
¶ PFacet’s radius
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Polyhedra
(inherits Shape → Serializable)¶ Polyhedral (convex) geometry.
-
GetCentroid
((Polyhedra)arg1) → Vector3 :¶ return polyhedra’s centroid
-
GetInertia
((Polyhedra)arg1) → Vector3 :¶ return polyhedra’s inertia tensor
-
GetOri
((Polyhedra)arg1) → Quaternion :¶ return polyhedra’s orientation
-
GetSurfaceTriangulation
((Polyhedra)arg1) → object :¶ triangulation of facets (for plotting)
-
GetSurfaces
((Polyhedra)arg1) → object :¶ get indices of surfaces’ vertices (for postprocessing)
-
GetVolume
((Polyhedra)arg1) → float :¶ return polyhedra’s volume
-
Initialize
((Polyhedra)arg1) → None :¶ Initialization
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
seed
¶ Seed for random generator.
-
setVertices
((Polyhedra)arg1, (object)arg2) → None :¶ set vertices and update receiver. Takes a list/tuple of vertices as argument.
Note
Causes memory leaks, so if you want to use it maaaany times, use one of setVertices mentioned lower, passing each vertex as individual argument (currently only setVertices(v1,v2,v3,v4) for tetrahedron is implemented, on request it is easy to implement more vertices).
-
setVertices4
((Polyhedra)arg1, (Vector3)arg2, (Vector3)arg3, (Vector3)arg4, (Vector3)arg5) → None :¶ set 4 vertices and update receiver. Each vertex is single argument.
-
property
size
¶ Size of the grain in meters - x,y,z - before random rotation
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
v
¶ Polyhedron vertices in local coordinate system.
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
PotentialParticle
(inherits Shape → Serializable)¶ EXPERIMENTAL. Geometry of PotentialParticle.
-
property
AabbMinMax
¶ Whether the exact Aabb should be calculated. If false, an approximate cubic Aabb is defined with edges of
2R
-
property
R
¶ R in Potential Particles
-
property
a
¶ List of a coefficients of plane normals
-
property
b
¶ List of b coefficients of plane normals
-
property
boundaryNormal
¶ Normal direction of boundary if fixedNormal=True
-
property
c
¶ List of c coefficients of plane normals
-
property
color
¶ Color for rendering (normalized RGB).
-
property
d
¶ List of d coefficients of plane normals
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
fixedNormal
¶ Whether to fix the contact normal at a boundary, using boundaryNormal
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
id
¶ Particle id (for graphics in vtk output)
-
property
isBoundary
¶ Whether the particle is part of a boundary particle
-
property
k
¶ k in Potential Particles
-
property
maxAabb
¶ Max from box centre: Used for visualisation in vtk and qt
-
property
maxAabbRotated
¶ Max from box centre: Used for primary contact detection
-
property
minAabb
¶ Min from box centre: Used for visualisation in vtk and qt
-
property
minAabbRotated
¶ Min from box centre: Used for primary contact detection
-
property
r
¶ r in Potential Particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vertices
¶ Vertices
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Sphere
(inherits Shape → Serializable)¶ Geometry of spherical particle.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
radius
¶ Radius [m]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Subdomain
(inherits Shape → Serializable)¶ The bounding box of a mpi subdomain. Stores internals and provides optimized functions for communications between workers. This class may not be used directly. Instead, Subdomains are appended automatically to the scene bodies when using mpy.mpirun
-
boundOnAxis
((Subdomain)arg1, (Bound)bound, (Vector3)axis, (bool)min) → float :¶ computes projected position of a bound in a certain direction
- boundOnAxis( (Subdomain)arg1, (Bound)bound, (Vector3)axis, (bool)min) -> float :
computes projected position of a bound in a certain direction
-
property
boundsMax
¶ max corner of all bboxes of members; differs from effective domain bounds by the extra length (sweepLength)
-
property
boundsMin
¶ min corner of all bboxes of members; differs from effective domain bounds by the extra length (sweepLength)
-
centerOfMass
((Subdomain)arg1) → Vector3 :¶ returns center of mass of assigned bodies
- centerOfMass( (Subdomain)arg1) -> Vector3 :
returns center of mass of assigned bodies
-
cleanIntersections
((Subdomain)arg1, (int)otherDomain) → None :¶ makes sure that the ids in the current subdomain belong to the current subdomain
-
property
color
¶ Color for rendering (normalized RGB).
-
property
comm
¶ Communicator to be used for MPI (converts mpi4py comm <-> c++ comm)
-
completeSendBodies
((Subdomain)arg1) → None :¶ calls MPI_wait to complete the non blocking sends/recieves.
-
countIntsWith
((Subdomain)arg1, (int)body, (int)someSubDomain[, (Scene)someSubDomain=<Scene instance at 0x20282b0>]) → int :¶ returns for a body the count of interactions (real or virtual) with bodies from a certain subdomain, interactions with subdomains excluded. Third parameter (scene pointer) can be left to default (equivalent to O._sceneObj).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
extraLength
¶ verlet dist for the subdomain, added to bodies verletDist
-
filterIntersections
((Subdomain)arg1[, (Scene)someSubDomain=<Scene instance at 0x20282b0>]) → float :¶ clear intersections and mirror intersections of all non-interacting bodies.
-
filteredInts
((Subdomain)arg1, (int)someSubDomain, (bool)mirror) → object :¶ return a copy of intersections or mirrorIntersections from which non-interacting bodies have been removed.
-
getMirrorIntrs
((Subdomain)arg1) → None :¶ get mirrorIntersections from other subdomains
-
getRankSize
((Subdomain)arg1) → None :¶ set subdomain ranks, used for communications -> merging, sending bodies etc.
-
getStateBoundsValuesFromIds
((Subdomain)arg1, (object)b_ids) → object :¶ returns pos,vel,angVel,ori,bounds of listed bodies.
-
getStateValues
((Subdomain)arg1, (int)otherDomain) → object :¶ returns pos,vel,angVel,ori of bodies interacting with a given otherDomain, based on Subdomain.intersections.
-
getStateValuesFromIds
((Subdomain)arg1, (object)b_ids) → object :¶ returns pos,vel,angVel,ori of listed bodies.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
ids
¶ Ids of owned particles.
-
init
((Subdomain)arg1) → None :¶ Initialize subdomain variables as rank and buffer sizes, call this from each thread after scene distribution by master.
-
property
intersections
¶ lists of bodies from this subdomain intersecting other subdomains. WARNING: only assignement and concatenation allowed
-
medianFilterCPP
((Subdomain)arg1, (list)arg2, (int)bodiesToRecv, (Vector3)otherSubdomain, (Vector3)oterSubdomainCenterofMass, (bool)useAABB) → object :¶ cpp version of median filter, used for body reallocation operations.
-
mergeOp
((Subdomain)arg1) → None :¶ merge with setting interactions
-
migrateBodiesSend
((Subdomain)arg1, (object)bodiesToSend, (int)destination) → None :¶ ids of body to be sent have their subdomain parameter reassigned, followed by sendBodies
-
property
mirrorIntersections
¶ lists of bodies from other subdomains intersecting this one. WARNING: only assignement and concatenation allowed
-
mpiIrecvStates
((Subdomain)arg1, (int)otherSubdomain) → None :¶ mpi-Irecv states from another domain (non-blocking)
-
mpiRecvStates
((Subdomain)arg1, (int)otherSubdomain) → None :¶ mpi-recv states from another domain (blocking)
-
mpiSendStates
((Subdomain)arg1, (int)otherSubdomain) → None :¶ mpi-send states from current domain to another domain (blocking)
-
mpiWaitReceived
((Subdomain)arg1, (int)otherSubdomain) → None :¶ mpi-Wait states from another domain (upon return the buffer is set)
-
receiveBodies
((Subdomain)arg1, (int)sender) → None :¶ Receive the bodies from MPI sender rank to MPI receiver rank
-
sendBodies
((Subdomain)sender, (int)receiver, (object)idsToSend) → None :¶ Copy the bodies from MPI sender rank to MPI receiver rank
-
setIDstoSubdomain
((Subdomain)arg1, (list)idList) → None :¶ set list of ids to the subdomain.
-
setMinMax
((Subdomain)arg1) → None :¶ returns bounding min-max based on members bounds. precondition: the members bounds have been dispatched already, else we re-use old values. Carefull if subdomain is not at the end of O.bodies.
-
setStateBoundsValuesFromIds
((Subdomain)arg1, (object)b_ids, (object)input) → None :¶ set pos,vel,angVel,ori,bounds from listed body ids and data.
-
setStateValuesFromBuffer
((Subdomain)arg1, (int)subdomain) → None :¶ set pos,vel,angVel,ori from state buffer.
-
setStateValuesFromIds
((Subdomain)arg1, (object)b_ids, (object)input) → None :¶ set pos,vel,angVel,ori from listed body ids and data.
-
splitBodiesToWorkers
((Subdomain)arg1, (bool)eraseWorkerBodies) → None :¶ of true bodies in workers are erased and reassigned.
-
property
subdomains
¶ subdomain ids of other bodies, WARNING: only assignement and concatenation allowed
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateLocalIds
((Subdomain)arg1, (bool)eraseRemoteMastrer) → None :¶ updates the ids in the subdomain id vector, if not eraseRemoteMastrer, body->subdomain in master are updated.
-
updateNewMirrorIntrs
((Subdomain)arg1, (int)otherdomain, (object)newMirrorList) → None :¶ update the mirrorIntersections of a specific subdomain
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
-
class
yade.wrapper.
Tetra
(inherits Shape → Serializable)¶ Tetrahedron geometry.
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
v
¶ Tetrahedron vertices (in local coordinate system).
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
-
class
yade.wrapper.
Wall
(inherits Shape → Serializable)¶ Object representing infinite plane aligned with the coordinate system (axis-aligned wall).
-
property
axis
¶ Axis of the normal; can be 0,1,2 for +x, +y, +z respectively (Body’s orientation is disregarded for walls)
-
property
color
¶ Color for rendering (normalized RGB).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Shape)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
highlight
¶ Whether this Shape will be highlighted when rendered.
-
property
sense
¶ Which side of the wall interacts: -1 for negative only, 0 for both, +1 for positive only
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
-
property
State¶
![digraph State {
rankdir=RL;
margin="0.2,0.05";
"State" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.State"];
"CpmState" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CpmState"];
"CpmState" -> "State" [arrowsize=0.5,style="setlinewidth(0.5)"];
"WireState" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.WireState"];
"WireState" -> "State" [arrowsize=0.5,style="setlinewidth(0.5)"];
"JCFpmState" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.JCFpmState"];
"JCFpmState" -> "State" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ChainedState" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ChainedState"];
"ChainedState" -> "State" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-8eac97082bd6600a167f5f3ae20d4d94c525dddf.png)
Inheritance graph of State.¶
-
class
yade.wrapper.
State
(inherits Serializable)¶ State of a body (spatial configuration, internal variables).
-
property
Cp
¶ Heat capacity of the body
-
property
Tcondition
¶ indicates if particle is assigned dirichlet (constant temp) condition
-
property
alpha
¶ coefficient of thermal expansion
-
property
angMom
¶ Current angular momentum
-
property
angVel
¶ Current angular velocity
-
property
blockedDOFs
¶ Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
-
property
boundaryId
¶ identifies if a particle is associated with constant temperature thrermal boundary condition
-
property
delRadius
¶ radius change due to thermal expansion
-
property
densityScaling
¶ (auto-updated) see GlobalStiffnessTimeStepper::targetDt.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((State)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
displ
((State)arg1) → Vector3 :¶ Displacement from reference position (pos - refPos)
-
property
inertia
¶ Inertia of associated body, in local coordinate system.
-
property
isCavity
¶ flag used for unbounding cavity bodies
-
property
isDamped
¶ Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
-
property
k
¶ thermal conductivity of the body
-
property
mass
¶ Mass of this body
-
property
oldTemp
¶ change of temp (for thermal expansion)
-
property
ori
¶ Current orientation.
-
property
pos
¶ Current position.
-
property
press
¶ Pressure (only for SPH-model)
-
property
refOri
¶ Reference orientation
-
property
refPos
¶ Reference position
-
property
rho
¶ Current density (only for SPH-model)
-
property
rho0
¶ Rest density (only for SPH-model)
-
rot
((State)arg1) → Vector3 :¶ Rotation from reference orientation (as rotation vector)
-
property
se3
¶ Position and orientation as one object.
-
property
stabilityCoefficient
¶ sum of solid and fluid thermal resistivities for use in automatic timestep estimation
-
property
stepFlux
¶ flux during current step
-
property
temp
¶ temperature of the body
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Current linear velocity.
-
property
-
class
yade.wrapper.
ChainedState
(inherits State → Serializable)¶ State of a chained bodies, containing information on connectivity in order to track contacts jumping over contiguous elements. Chains are 1D lists from which id of chained bodies are retrieved via rank and chainNumber.
-
property
Cp
¶ Heat capacity of the body
-
property
Tcondition
¶ indicates if particle is assigned dirichlet (constant temp) condition
-
addToChain
((ChainedState)arg1, (int)bodyId) → None :¶ Add body to current active chain
-
property
alpha
¶ coefficient of thermal expansion
-
property
angMom
¶ Current angular momentum
-
property
angVel
¶ Current angular velocity
-
property
bId
¶ id of the body containing - for postLoad operations only.
-
property
blockedDOFs
¶ Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
-
property
boundaryId
¶ identifies if a particle is associated with constant temperature thrermal boundary condition
-
property
chainNumber
¶ chain id.
-
currentChain
= 0¶
-
property
delRadius
¶ radius change due to thermal expansion
-
property
densityScaling
¶ (auto-updated) see GlobalStiffnessTimeStepper::targetDt.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((State)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
displ
((State)arg1) → Vector3 :¶ Displacement from reference position (pos - refPos)
-
property
inertia
¶ Inertia of associated body, in local coordinate system.
-
property
isCavity
¶ flag used for unbounding cavity bodies
-
property
isDamped
¶ Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
-
property
k
¶ thermal conductivity of the body
-
property
mass
¶ Mass of this body
-
property
oldTemp
¶ change of temp (for thermal expansion)
-
property
ori
¶ Current orientation.
-
property
pos
¶ Current position.
-
property
press
¶ Pressure (only for SPH-model)
-
property
rank
¶ rank in the chain.
-
property
refOri
¶ Reference orientation
-
property
refPos
¶ Reference position
-
property
rho
¶ Current density (only for SPH-model)
-
property
rho0
¶ Rest density (only for SPH-model)
-
rot
((State)arg1) → Vector3 :¶ Rotation from reference orientation (as rotation vector)
-
property
se3
¶ Position and orientation as one object.
-
property
stabilityCoefficient
¶ sum of solid and fluid thermal resistivities for use in automatic timestep estimation
-
property
stepFlux
¶ flux during current step
-
property
temp
¶ temperature of the body
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Current linear velocity.
-
property
-
class
yade.wrapper.
CpmState
(inherits State → Serializable)¶ State information about body use by cpm-model.
None of that is used for computation (at least not now), only for post-processing.
-
property
Cp
¶ Heat capacity of the body
-
property
Tcondition
¶ indicates if particle is assigned dirichlet (constant temp) condition
-
property
alpha
¶ coefficient of thermal expansion
-
property
angMom
¶ Current angular momentum
-
property
angVel
¶ Current angular velocity
-
property
blockedDOFs
¶ Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
-
property
boundaryId
¶ identifies if a particle is associated with constant temperature thrermal boundary condition
-
property
damageTensor
¶ Damage tensor computed with microplane theory averaging. state.damageTensor.trace() = state.normDmg
-
property
delRadius
¶ radius change due to thermal expansion
-
property
densityScaling
¶ (auto-updated) see GlobalStiffnessTimeStepper::targetDt.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((State)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
displ
((State)arg1) → Vector3 :¶ Displacement from reference position (pos - refPos)
-
property
epsVolumetric
¶ Volumetric strain around this body (unused for now)
-
property
inertia
¶ Inertia of associated body, in local coordinate system.
-
property
isCavity
¶ flag used for unbounding cavity bodies
-
property
isDamped
¶ Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
-
property
k
¶ thermal conductivity of the body
-
property
mass
¶ Mass of this body
-
property
normDmg
¶ Average damage including already deleted contacts (it is really not damage, but 1-relResidualStrength now)
-
property
numBrokenCohesive
¶ Number of (cohesive) contacts that damaged completely
-
property
numContacts
¶ Number of contacts with this body
-
property
oldTemp
¶ change of temp (for thermal expansion)
-
property
ori
¶ Current orientation.
-
property
pos
¶ Current position.
-
property
press
¶ Pressure (only for SPH-model)
-
property
refOri
¶ Reference orientation
-
property
refPos
¶ Reference position
-
property
rho
¶ Current density (only for SPH-model)
-
property
rho0
¶ Rest density (only for SPH-model)
-
rot
((State)arg1) → Vector3 :¶ Rotation from reference orientation (as rotation vector)
-
property
se3
¶ Position and orientation as one object.
-
property
stabilityCoefficient
¶ sum of solid and fluid thermal resistivities for use in automatic timestep estimation
-
property
stepFlux
¶ flux during current step
-
property
stress
¶ Stress tensor of the spherical particle (under assumption that particle volume = pi*r*r*r*4/3.) for packing fraction 0.62
-
property
temp
¶ temperature of the body
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Current linear velocity.
-
property
-
class
yade.wrapper.
JCFpmState
(inherits State → Serializable)¶ JCFpm state information about each body.
-
property
Cp
¶ Heat capacity of the body
-
property
Tcondition
¶ indicates if particle is assigned dirichlet (constant temp) condition
-
property
alpha
¶ coefficient of thermal expansion
-
property
angMom
¶ Current angular momentum
-
property
angVel
¶ Current angular velocity
-
property
blockedDOFs
¶ Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
-
property
boundaryId
¶ identifies if a particle is associated with constant temperature thrermal boundary condition
-
property
damageIndex
¶ Ratio of broken bonds over initial bonds. [-]
-
property
delRadius
¶ radius change due to thermal expansion
-
property
densityScaling
¶ (auto-updated) see GlobalStiffnessTimeStepper::targetDt.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((State)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
displ
((State)arg1) → Vector3 :¶ Displacement from reference position (pos - refPos)
-
property
inertia
¶ Inertia of associated body, in local coordinate system.
-
property
isCavity
¶ flag used for unbounding cavity bodies
-
property
isDamped
¶ Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
-
property
joint
¶ Indicates the number of joint surfaces to which the particle belongs (0-> no joint, 1->1 joint, etc..). [-]
-
property
jointNormal1
¶ Specifies the normal direction to the joint plane 1. Rk: the ideal here would be to create a vector of vector wich size is defined by the joint integer (as much joint normals as joints). However, it needs to make the pushback function works with python since joint detection is done through a python script. lines 272 to 312 of cpp file should therefore be adapted. [-]
-
property
jointNormal2
¶ Specifies the normal direction to the joint plane 2. [-]
-
property
jointNormal3
¶ Specifies the normal direction to the joint plane 3. [-]
-
property
k
¶ thermal conductivity of the body
-
property
mass
¶ Mass of this body
-
property
nbBrokenBonds
¶ Number of broken bonds. [-]
-
property
nbInitBonds
¶ Number of initial bonds. [-]
-
property
oldTemp
¶ change of temp (for thermal expansion)
-
property
onJoint
¶ Identifies if the particle is on a joint surface.
-
property
ori
¶ Current orientation.
-
property
pos
¶ Current position.
-
property
press
¶ Pressure (only for SPH-model)
-
property
refOri
¶ Reference orientation
-
property
refPos
¶ Reference position
-
property
rho
¶ Current density (only for SPH-model)
-
property
rho0
¶ Rest density (only for SPH-model)
-
rot
((State)arg1) → Vector3 :¶ Rotation from reference orientation (as rotation vector)
-
property
se3
¶ Position and orientation as one object.
-
property
stabilityCoefficient
¶ sum of solid and fluid thermal resistivities for use in automatic timestep estimation
-
property
stepFlux
¶ flux during current step
-
property
temp
¶ temperature of the body
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Current linear velocity.
-
property
-
class
yade.wrapper.
WireState
(inherits State → Serializable)¶ Wire state information of each body.
None of that is used for computation (at least not now), only for post-processing.
-
property
Cp
¶ Heat capacity of the body
-
property
Tcondition
¶ indicates if particle is assigned dirichlet (constant temp) condition
-
property
alpha
¶ coefficient of thermal expansion
-
property
angMom
¶ Current angular momentum
-
property
angVel
¶ Current angular velocity
-
property
blockedDOFs
¶ Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
-
property
boundaryId
¶ identifies if a particle is associated with constant temperature thrermal boundary condition
-
property
delRadius
¶ radius change due to thermal expansion
-
property
densityScaling
¶ (auto-updated) see GlobalStiffnessTimeStepper::targetDt.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((State)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
displ
((State)arg1) → Vector3 :¶ Displacement from reference position (pos - refPos)
-
property
inertia
¶ Inertia of associated body, in local coordinate system.
-
property
isCavity
¶ flag used for unbounding cavity bodies
-
property
isDamped
¶ Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
-
property
k
¶ thermal conductivity of the body
-
property
mass
¶ Mass of this body
-
property
numBrokenLinks
¶ Number of broken links (e.g. number of wires connected to the body which are broken). [-]
-
property
oldTemp
¶ change of temp (for thermal expansion)
-
property
ori
¶ Current orientation.
-
property
pos
¶ Current position.
-
property
press
¶ Pressure (only for SPH-model)
-
property
refOri
¶ Reference orientation
-
property
refPos
¶ Reference position
-
property
rho
¶ Current density (only for SPH-model)
-
property
rho0
¶ Rest density (only for SPH-model)
-
rot
((State)arg1) → Vector3 :¶ Rotation from reference orientation (as rotation vector)
-
property
se3
¶ Position and orientation as one object.
-
property
stabilityCoefficient
¶ sum of solid and fluid thermal resistivities for use in automatic timestep estimation
-
property
stepFlux
¶ flux during current step
-
property
temp
¶ temperature of the body
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Current linear velocity.
-
property
Material¶
![digraph Material {
rankdir=RL;
margin="0.2,0.05";
"Material" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Material"];
"CohesiveDeformableElementMaterial" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CohesiveDeformableElementMaterial"];
"CohesiveDeformableElementMaterial" -> "Material" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ElastMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ElastMat"];
"ElastMat" -> "Material" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LudingMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LudingMat"];
"LudingMat" -> "Material" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LinIsoRayleighDampElastMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LinIsoRayleighDampElastMat"];
"LinIsoRayleighDampElastMat" -> "LinIsoElastMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InelastCohFrictMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InelastCohFrictMat"];
"InelastCohFrictMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BubbleMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BubbleMat"];
"BubbleMat" -> "Material" [arrowsize=0.5,style="setlinewidth(0.5)"];
"DeformableElementMaterial" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.DeformableElementMaterial"];
"DeformableElementMaterial" -> "Material" [arrowsize=0.5,style="setlinewidth(0.5)"];
"JCFpmMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.JCFpmMat"];
"JCFpmMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LinIsoElastMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LinIsoElastMat"];
"LinIsoElastMat" -> "DeformableElementMaterial" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FrictMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FrictMat"];
"FrictMat" -> "ElastMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CohFrictMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CohFrictMat"];
"CohFrictMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LinCohesiveStiffPropDampElastMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LinCohesiveStiffPropDampElastMat"];
"LinCohesiveStiffPropDampElastMat" -> "LinCohesiveElasticMaterial" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ViscElMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ViscElMat"];
"ViscElMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LinCohesiveElasticMaterial" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LinCohesiveElasticMaterial"];
"LinCohesiveElasticMaterial" -> "CohesiveDeformableElementMaterial" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MortarMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MortarMat"];
"MortarMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ViscElCapMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ViscElCapMat"];
"ViscElCapMat" -> "ViscElMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FrictViscoMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FrictViscoMat"];
"FrictViscoMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"WireMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.WireMat"];
"WireMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PolyhedraMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PolyhedraMat"];
"PolyhedraMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CpmMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CpmMat"];
"CpmMat" -> "FrictMat" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-ad9dae8b29245afeae8c97841a711becb83c0b63.png)
Inheritance graph of Material.¶
-
class
yade.wrapper.
Material
(inherits Serializable)¶ Material properties of a body.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
BubbleMat
(inherits Material → Serializable)¶ material for bubble interactions, for use with other Bubble classes
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
surfaceTension
¶ The surface tension in the fluid surrounding the bubbles. The default value is that of water at 25 degrees Celcius.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CohFrictMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ -
property
alphaKr
¶ Dimensionless rolling stiffness.
-
property
alphaKtw
¶ Dimensionless twist stiffness.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
etaRoll
¶ Dimensionless rolling (aka ‘bending’) strength. If negative, rolling moment will be elastic.
-
property
etaTwist
¶ Dimensionless twisting strength. If negative, twist moment will be elastic.
-
property
fragile
¶ do cohesion disappear when contact strength is exceeded
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
isCohesive
¶
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
momentRotationLaw
¶ Use bending/twisting moment at contact. The contact will have moments only if both bodies have this flag true. See CohFrictPhys::cohesionDisablesFriction for details.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
normalCohesion
¶ Tensile strength, homogeneous to a pressure. If negative the normal force is purely elastic.
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
shearCohesion
¶ Shear strength, homogeneous to a pressure. If negative the shear force is purely elastic.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
CohesiveDeformableElementMaterial
(inherits Material → Serializable)¶ Deformable Element Material.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CpmMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Concrete material, for use with other Cpm classes.
Note
Density is initialized to 4800 kgm⁻³automatically, which gives approximate 2800 kgm⁻³ on 0.5 density packing.
Concrete Particle Model (CPM)
CpmMat is particle material, Ip2_CpmMat_CpmMat_CpmPhys averages two particles’ materials, creating CpmPhys, which is then used in interaction resultion by Law2_ScGeom_CpmPhys_Cpm. CpmState is associated to CpmMat and keeps state defined on particles rather than interactions (such as number of completely damaged interactions).
The model is contained in externally defined macro CPM_MATERIAL_MODEL, which features damage in tension, plasticity in shear and compression and rate-dependence. For commercial reasons, rate-dependence and compression-plasticity is not present in reduced version of the model, used when CPM_MATERIAL_MODEL is not defined. The full model will be described in detail in my (Václav Šmilauer) thesis along with calibration procedures (rigidity, poisson’s ratio, compressive/tensile strength ratio, fracture energy, behavior under confinement, rate-dependent behavior).
Even the public model is useful enough to run simulation on concrete samples, such as uniaxial tension-compression test.
-
property
damLaw
¶ Law for damage evolution in uniaxial tension. 0 for linear stress-strain softening branch, 1 (default) for exponential damage evolution law
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
dmgRateExp
¶ Exponent for normal viscosity function. [-]
-
property
dmgTau
¶ Characteristic time for normal viscosity. [s]
-
property
epsCrackOnset
¶ Limit elastic strain [-]
-
property
equivStrainShearContrib
¶ Coefficient of shear contribution to equivalent strain
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
isoPrestress
¶ Isotropic prestress of the whole specimen. [Pa]
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
neverDamage
¶ If true, no damage will occur (for testing only).
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
plRateExp
¶ Exponent for visco-plasticity function. [-]
-
property
plTau
¶ Characteristic time for visco-plasticity. [s]
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
relDuctility
¶ relative ductility of bonds in normal direction
-
property
sigmaT
¶ Initial cohesion [Pa]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
DeformableElementMaterial
(inherits Material → Serializable)¶ Deformable Element Material.
-
property
density
¶ Density of the material.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ElastMat
(inherits Material → Serializable)¶ Purely elastic material. The material parameters may have different meanings depending on the IPhysFunctor used : true Young and Poisson in Ip2_FrictMat_FrictMat_MindlinPhys, or contact stiffnesses in Ip2_FrictMat_FrictMat_FrictPhys.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
FrictMat
(inherits ElastMat → Material → Serializable)¶ Elastic material with contact friction. See also ElastMat.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
FrictViscoMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Material for use with the FrictViscoPM classes
-
property
betan
¶ Fraction of the viscous damping coefficient in normal direction equal to \(\frac{c_{n}}{C_{n,crit}}\).
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
InelastCohFrictMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ -
property
alphaKr
¶ Dimensionless coefficient used for the rolling stiffness.
-
property
alphaKtw
¶ Dimensionless coefficient used for the twist stiffness.
-
property
compressionModulus
¶ Compresion elasticity modulus
-
property
creepBending
¶ Bending creeping coefficient. Usual values between 0 and 1.
-
property
creepTension
¶ Tension/compression creeping coefficient. Usual values between 0 and 1.
-
property
creepTwist
¶ Twist creeping coefficient. Usual values between 0 and 1.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
epsilonMaxCompression
¶ Maximal plastic strain compression
-
property
epsilonMaxTension
¶ Maximal plastic strain tension
-
property
etaMaxBending
¶ Maximal plastic bending strain
-
property
etaMaxTwist
¶ Maximal plastic twist strain
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
nuBending
¶ Bending elastic stress limit
-
property
nuTwist
¶ Twist elastic stress limit
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
shearCohesion
¶ Shear elastic stress limit
-
property
shearModulus
¶ shear elasticity modulus
-
property
sigmaCompression
¶ Compression elastic stress limit
-
property
sigmaTension
¶ Tension elastic stress limit
-
property
tensionModulus
¶ Tension elasticity modulus
-
property
unloadBending
¶ Bending plastic unload coefficient. Usual values between 0 and +infinity.
-
property
unloadTension
¶ Tension/compression plastic unload coefficient. Usual values between 0 and +infinity.
-
property
unloadTwist
¶ Twist plastic unload coefficient. Usual values between 0 and +infinity.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
JCFpmMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Possibly jointed, cohesive frictional material, for use with other JCFpm classes
-
property
cohesion
¶ Defines the maximum admissible tangential force in shear, for Fn=0, in the matrix (FsMax = cohesion * crossSection). [Pa]
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
jointCohesion
¶ Defines the maximum admissible tangential force in shear, for Fn=0, on the joint surface. [Pa]
-
property
jointDilationAngle
¶ Defines the dilatancy of the joint surface (only valid for smooth contact logic). [rad]
-
property
jointFrictionAngle
¶ Defines Coulomb friction on the joint surface. [rad]
-
property
jointNormalStiffness
¶ Defines the normal stiffness on the joint surface. [Pa/m]
-
property
jointShearStiffness
¶ Defines the shear stiffness on the joint surface. [Pa/m]
-
property
jointTensileStrength
¶ Defines the maximum admissible normal force in traction on the joint surface. [Pa]
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
residualFrictionAngle
¶ Defines the residual friction angle (when contacts are not cohesive). residualFrictionAngle=frictionAngle if not specified. [degrees]
-
property
tensileStrength
¶ Defines the maximum admissible normal force in traction in the matrix (FnMax = tensileStrength * crossSection). [Pa]
-
property
type
¶ If particles of two different types interact, it will be with friction only (no cohesion).[-]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
LinCohesiveElasticMaterial
(inherits CohesiveDeformableElementMaterial → Material → Serializable)¶ Linear Isotropic Elastic material
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poissonratio
¶ Poisson ratio. Initially aluminium.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
youngmodulus
¶ Young’s modulus. Initially aluminium.
-
property
-
class
yade.wrapper.
LinCohesiveStiffPropDampElastMat
(inherits LinCohesiveElasticMaterial → CohesiveDeformableElementMaterial → Material → Serializable)¶ Elastic material with Rayleigh Damping.
-
property
alpha
¶ Mass propotional damping constant of Rayleigh Damping.
-
property
beta
¶ Stiffness propotional damping constant of Rayleigh Damping.
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poissonratio
¶ Poisson ratio. Initially aluminium.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
youngmodulus
¶ Young’s modulus. Initially aluminium.
-
property
-
class
yade.wrapper.
LinIsoElastMat
(inherits DeformableElementMaterial → Material → Serializable)¶ Linear Isotropic Elastic material
-
property
density
¶ Density of the material.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poissonratio
¶ Poisson ratio. Initially aluminium.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
youngmodulus
¶ Young’s modulus. Initially aluminium.
-
property
-
class
yade.wrapper.
LinIsoRayleighDampElastMat
(inherits LinIsoElastMat → DeformableElementMaterial → Material → Serializable)¶ Elastic material with Rayleigh Damping.
-
property
alpha
¶ Mass propotional damping constant of Rayleigh Damping.
-
property
beta
¶ Stiffness propotional damping constant of Rayleigh Damping.
-
property
density
¶ Density of the material.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poissonratio
¶ Poisson ratio. Initially aluminium.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
youngmodulus
¶ Young’s modulus. Initially aluminium.
-
property
-
class
yade.wrapper.
LudingMat
(inherits Material → Serializable)¶ Material for simple Luding`s model of contact [Luding2008] ,[Singh2013]_ .
-
property
G0
¶ Viscous damping
-
property
PhiF
¶ Dimensionless plasticity depth
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Friction angle [rad]
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
k1
¶ Slope of loading plastic branch
-
property
kc
¶ Slope of irreversible, tensile adhesive branch
-
property
kp
¶ Slope of unloading and reloading limit elastic branch
-
property
ks
¶ Shear stiffness
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
MortarMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Material for mortar interface, used in Ip2_MortarMat_MortarMat_MortarPhys and Law2_ScGeom_MortarPhys_Lourenco. Default values according to
-
property
cohesion
¶ cohesion [Pa]
-
property
compressiveStrength
¶ compressiveStrength [Pa]
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
ellAspect
¶ aspect ratio of elliptical ‘cap’. Value >1 means the ellipse is longer along normal stress axis.
-
property
frictionAngle
¶ Friction angle
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
neverDamage
¶ If true, interactions remain elastic regardless stresses
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Shear to normal modulus ratio
-
property
tensileStrength
¶ tensileStrength [Pa]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ Normal elastic modulus [Pa]
-
property
-
class
yade.wrapper.
PolyhedraMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Elastic material with Coulomb friction.
-
property
IsSplitable
¶ To be splitted … or not
-
property
Wei_P
¶ Weibull Formulation, failure probability, P, [Gladky2017].
-
property
Wei_S0
¶ Weibull Formulation, Sigma0, Pa, (if negative - disabled), [Gladky2017]
-
property
Wei_V0
¶ Weibull Formulation, V0, m^3, representative volume, [Gladky2017].
-
property
Wei_m
¶ Weibull Formulation, Weibull modulus, m, (if negative - disabled), [Gladky2017]
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
sigmaCD
¶ Mohr-Coulomb failure criterium SigmaCD, Pa, maximal compressive strength (if negative - disabled), [Gladky2017]
-
property
sigmaCZ
¶ Mohr-Coulomb failure criterium SigmaCZ, Pa, maximal tensile strength (if negative - disabled), [Gladky2017]
-
property
strength
¶ Stress at which polyhedra of volume 4/3*pi [mm] breaks.
-
property
strengthTau
¶ Tangential stress at which polyhedra of volume 4/3*pi [mm] breaks.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ Young modulus
-
property
-
class
yade.wrapper.
ViscElCapMat
(inherits ViscElMat → FrictMat → ElastMat → Material → Serializable)¶ Material for extended viscoelastic model of contact with capillary parameters.
-
property
Capillar
¶ True, if capillar forces need to be added.
-
property
CapillarType
¶ Different types of capillar interaction: Willett_numeric, Willett_analytic [Willett2000] , Weigert [Weigert1999] , Rabinovich [Rabinov2005] , Lambert (simplified, corrected Rabinovich model) [Lambert2008]
-
property
KernFunctionPressure
¶ Kernel function for pressure calculation (by default - Lucy). The following kernel functions are available: Lucy=1.
-
property
KernFunctionVisco
¶ Kernel function for viscosity calculation (by default - Lucy). The following kernel functions are available: Lucy=1.
-
property
SPHmode
¶ True, if SPH-mode is enabled.
-
property
Vb
¶ Liquid bridge volume [m^3]
-
property
cn
¶ Normal viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
cs
¶ Shear viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
dcap
¶ Damping coefficient for the capillary phase [-]
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
en
¶ Restitution coefficient in normal direction
-
property
et
¶ Restitution coefficient in tangential direction
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
gamma
¶ Surface tension [N/m]
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
kn
¶ Normal elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
ks
¶ Shear elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
mR
¶ Rolling resistance, see [Zhou1999536].
-
property
mRtype
¶ Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536].
-
property
mu
¶ Viscosity. See Mueller [Morris1997] .
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
tc
¶ Contact time
-
property
theta
¶ Contact angle [°]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
ViscElMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Material for simple viscoelastic model of contact from analytical solution of a pair spheres interaction problem [Pournin2001] .
-
property
KernFunctionPressure
¶ Kernel function for pressure calculation (by default - Lucy). The following kernel functions are available: Lucy=1.
-
property
KernFunctionVisco
¶ Kernel function for viscosity calculation (by default - Lucy). The following kernel functions are available: Lucy=1.
-
property
SPHmode
¶ True, if SPH-mode is enabled.
-
property
cn
¶ Normal viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
cs
¶ Shear viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
density
¶ Density of the material [kg/m³]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
en
¶ Restitution coefficient in normal direction
-
property
et
¶ Restitution coefficient in tangential direction
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
kn
¶ Normal elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
ks
¶ Shear elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
mR
¶ Rolling resistance, see [Zhou1999536].
-
property
mRtype
¶ Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536].
-
property
mu
¶ Viscosity. See Mueller [Morris1997] .
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
tc
¶ Contact time
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
-
class
yade.wrapper.
WireMat
(inherits FrictMat → ElastMat → Material → Serializable)¶ Material for use with the Wire classes. In conjunction with the corresponding functors it can be used to model steel wire meshes [Thoeni2014], geotextiles [Cheng2016] and more.
-
property
as
¶ Cross-section area of a single wire used to transform stress into force. [m²]
-
property
density
¶ Density of the material [kg/m³]
-
property
diameter
¶ Diameter of the single wire in [m] (the diameter is used to compute the cross-section area of the wire).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Material)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
frictionAngle
¶ Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
-
property
id
¶ Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
-
property
isDoubleTwist
¶ Type of the mesh. If true two particles of the same material which body ids differ by one will be considered as double-twisted interaction.
-
property
label
¶ Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
-
property
lambdaEps
¶ Parameter between 0 and 1 to reduce strain at failure of a double-twisted wire (as used by [Bertrand2008]). [-]
-
property
lambdaF
¶ Parameter between 0 and 1 introduced by [Thoeni2013] which defines where the shifted force-displacement curve intersects with the new initial stiffness: \(F^*=\lambda_F F_{\text{elastic}}\). [-]
-
property
lambdak
¶ Parameter between 0 and 1 to compute the elastic stiffness of a double-twisted wire (as used by [Bertrand2008]): \(k^D=2(\lambda_k k_h + (1-\lambda_k)k^S)\). [-]
-
property
lambdau
¶ Parameter between 0 and 1 introduced by [Thoeni2013] which defines the maximum shift of the force-displacement curve in order to take an additional initial elongation (e.g. wire distortion/imperfections, slipping, system flexibility) into account: \(\Delta l^*=\lambda_u l_0 \text{rnd(seed)}\). [-]
-
newAssocState
((Material)arg1) → State :¶ Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
-
property
poisson
¶ Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
-
property
seed
¶ Integer used to initialize the random number generator for the calculation of the distortion. If the integer is equal to 0 a internal seed number based on the time is computed. [-]
-
property
strainStressValues
¶ Piecewise linear definition of the stress-strain curve by set of points (strain[-]>0,stress[Pa]>0) for one single wire. Tension only is considered and the point (0,0) is not needed! NOTE: Vector needs to be initialized!
-
property
strainStressValuesDT
¶ Piecewise linear definition of the stress-strain curve by set of points (strain[-]>0,stress[Pa]>0) for the double twist. Tension only is considered and the point (0,0) is not needed! If this value is given the calculation will be based on two different stress-strain curves without considering the parameter introduced by [Bertrand2008] (see [Thoeni2013]).
-
property
type
¶ Three different types are considered:
0
Corresponds to Bertrand’s approach (see [Bertrand2008]): only one stress-strain curve is used
1
New approach: two separate stress-strain curves can be used (see [Thoeni2013])
2
New approach with stochastically distorted contact model: two separate stress-strain curves with changed initial stiffness and horizontal shift (shift is random if \(\text{seed}\geq0\), for more details see [Thoeni2013])
By default the type is 0.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
young
¶ elastic modulus [Pa]. It has different meanings depending on the Ip functor.
-
property
Bound¶
![digraph Bound {
rankdir=RL;
margin="0.2,0.05";
"Bound" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bound"];
"Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Aabb"];
"Aabb" -> "Bound" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-d4f7fce88dafb5e53d959b0da493ec5adf1bc19f.png)
Inheritance graph of Bound.¶
-
class
yade.wrapper.
Bound
(inherits Serializable)¶ Object bounding part of space taken by associated body; might be larger, used to optimalize collision detection
-
property
color
¶ Color for rendering this object
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Bound)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
lastUpdateIter
¶ record iteration of last reference position update (auto-updated)
-
property
refPos
¶ Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)
-
property
sweepLength
¶ The length used to increase the bounding boxe size, can be adjusted on the basis of previous displacement if BoundDispatcher::targetInterv>0. (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Aabb
(inherits Bound → Serializable)¶ Axis-aligned bounding box, for use with InsertionSortCollider. (This class is quasi-redundant since min,max are already contained in Bound itself. That might change at some point, though.)
-
property
color
¶ Color for rendering this object
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((Bound)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
lastUpdateIter
¶ record iteration of last reference position update (auto-updated)
-
property
refPos
¶ Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)
-
property
sweepLength
¶ The length used to increase the bounding boxe size, can be adjusted on the basis of previous displacement if BoundDispatcher::targetInterv>0. (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Interactions¶
Interaction¶
-
class
yade.wrapper.
Interaction
(inherits Serializable)¶ Interaction between pair of bodies.
-
property
cellDist
¶ Distance of bodies in cell size units, if using periodic boundary conditions; id2 is shifted by this number of cells from its State::pos coordinates for this interaction to exist. Assigned by the collider.
Warning
(internal) cellDist must survive Interaction::reset(), it is only initialized in ctor. Interaction that was cancelled by the constitutive law, was reset() and became only potential must have thepriod information if the geometric functor again makes it real. Good to know after few days of debugging that :-)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
geom
¶ Geometry part of the interaction.
-
property
isActive
¶ True if this interaction is active. Otherwise the forces from this interaction will not be taken into account. True by default.
-
property
isReal
¶ True if this interaction has both geom and phys; False otherwise.
-
property
iterBorn
¶ Step number at which the interaction was added to simulation.
-
property
iterMadeReal
¶ Step number at which the interaction was fully (in the sense of geom and phys) created. (Should be touched only by IPhysDispatcher and InteractionLoop, therefore they are made friends of Interaction
-
property
phys
¶ Physical (material) part of the interaction.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
IGeom¶
![digraph IGeom {
rankdir=RL;
margin="0.2,0.05";
"IGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IGeom"];
"PolyhedraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PolyhedraGeom"];
"PolyhedraGeom" -> "IGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"L6Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.L6Geom"];
"L6Geom" -> "L3Geom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GridCoGridCoGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GridCoGridCoGeom"];
"GridCoGridCoGeom" -> "ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TTetraSimpleGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TTetraSimpleGeom"];
"TTetraSimpleGeom" -> "IGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GridNodeGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GridNodeGeom6D"];
"GridNodeGeom6D" -> "ScGeom6D" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ChCylGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ChCylGeom6D"];
"ChCylGeom6D" -> "ScGeom6D" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ScGeom6D"];
"ScGeom6D" -> "ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CylScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CylScGeom"];
"CylScGeom" -> "ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ScGeom"];
"ScGeom" -> "GenericSpheresContact" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GenericSpheresContact" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GenericSpheresContact"];
"GenericSpheresContact" -> "IGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TTetraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TTetraGeom"];
"TTetraGeom" -> "IGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ScGridCoGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ScGridCoGeom"];
"ScGridCoGeom" -> "ScGeom6D" [arrowsize=0.5,style="setlinewidth(0.5)"];
"L3Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.L3Geom"];
"L3Geom" -> "GenericSpheresContact" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CylScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CylScGeom6D"];
"CylScGeom6D" -> "ScGeom6D" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-80377417cd31dde0680f2e68e5848ff8f2c78a63.png)
Inheritance graph of IGeom.¶
-
class
yade.wrapper.
IGeom
(inherits Serializable)¶ Geometrical configuration of interaction
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
ChCylGeom6D
(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Test
-
property
bending
¶ Bending at contact as a vector defining axis of rotation and angle (angle=norm).
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
initialOrientation1
¶ Orientation of body 1 one at initialisation time (auto-updated)
-
property
initialOrientation2
¶ Orientation of body 2 one at initialisation time (auto-updated)
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
twist
¶ Elastic twist angle (around normal axis) of the contact.
-
property
twistCreep
¶ Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CylScGeom
(inherits ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Geometry of a cylinder-sphere contact.
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
end
¶ position of 2nd node (auto-updated)
-
property
id3
¶ id of next chained cylinder (auto-updated)
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
isDuplicate
¶ this flag is turned true (1) automatically if the contact is shared between two chained cylinders. A duplicated interaction will be skipped once by the constitutive law, so that only one contact at a time is effective. If isDuplicate=2, it means one of the two duplicates has no longer geometric interaction, and should be erased by the constitutive laws.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
onNode
¶ contact on node?
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
relPos
¶ position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
start
¶ position of 1st node (auto-updated)
-
property
trueInt
¶ Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CylScGeom6D
(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Class representing geometry of two bodies in contact. The contact has 6 DOFs (normal, 2×shear, twist, 2xbending) and uses ScGeom incremental algorithm for updating shear.
-
property
bending
¶ Bending at contact as a vector defining axis of rotation and angle (angle=norm).
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
end
¶ position of 2nd node (auto-updated)
-
property
id3
¶ id of next chained cylinder (auto-updated)
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
initialOrientation1
¶ Orientation of body 1 one at initialisation time (auto-updated)
-
property
initialOrientation2
¶ Orientation of body 2 one at initialisation time (auto-updated)
-
property
isDuplicate
¶ this flag is turned true (1) automatically if the contact is shared between two chained cylinders. A duplicated interaction will be skipped once by the constitutive law, so that only one contact at a time is effective. If isDuplicate=2, it means one of the two duplicates has no longer geometric interaction, and should be erased by the constitutive laws.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
onNode
¶ contact on node?
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
relPos
¶ position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
start
¶ position of 1st node (auto-updated)
-
property
trueInt
¶ Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.
-
property
twist
¶ Elastic twist angle (around normal axis) of the contact.
-
property
twistCreep
¶ Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GenericSpheresContact
(inherits IGeom → Serializable)¶ Class uniting ScGeom and L3Geom, for the purposes of GlobalStiffnessTimeStepper. (It might be removed in the future). Do not use this class directly.
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GridCoGridCoGeom
(inherits ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Geometry of a GridConnection-GridConnection contact.
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
relPos1
¶ position of the contact on the first connection (0: node-, 1:node+) (auto-updated)
-
property
relPos2
¶ position of the contact on the first connection (0: node-, 1:node+) (auto-updated)
-
property
shearInc
¶ Shear displacement increment in the last step
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GridNodeGeom6D
(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Geometry of a GridNode-GridNode contact. Inherits almost everything from ScGeom6D.
-
property
bending
¶ Bending at contact as a vector defining axis of rotation and angle (angle=norm).
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
initialOrientation1
¶ Orientation of body 1 one at initialisation time (auto-updated)
-
property
initialOrientation2
¶ Orientation of body 2 one at initialisation time (auto-updated)
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
twist
¶ Elastic twist angle (around normal axis) of the contact.
-
property
twistCreep
¶ Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
L3Geom
(inherits GenericSpheresContact → IGeom → Serializable)¶ Geometry of contact given in local coordinates with 3 degress of freedom: normal and two in shear plane. [experimental]
-
property
F
¶ Applied force in local coordinates [debugging only, will be removed]
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
property
trsf
¶ Transformation (rotation) from global to local coordinates. (the translation part is in GenericSpheresContact.contactPoint)
-
property
u
¶ Displacement components, in local coordinates. (auto-updated)
-
property
u0
¶ Zero displacement value; u0 should be always subtracted from the geometrical displacement u computed by appropriate IGeomFunctor, resulting in u. This value can be changed for instance
by IGeomFunctor, e.g. to take in account large shear displacement value unrepresentable by underlying geomeric algorithm based on quaternions)
by LawFunctor, to account for normal equilibrium position different from zero geometric overlap (set once, just after the interaction is created)
by LawFunctor to account for plastic slip.
Note
Never set an absolute value of u0, only increment, since both IGeomFunctor and LawFunctor use it. If you need to keep track of plastic deformation, store it in IPhys isntead (this might be changed: have u0 for LawFunctor exclusively, and a separate value stored (when that is needed) inside classes deriving from L3Geom.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
L6Geom
(inherits L3Geom → GenericSpheresContact → IGeom → Serializable)¶ Geometric of contact in local coordinates with 6 degrees of freedom. [experimental]
-
property
F
¶ Applied force in local coordinates [debugging only, will be removed]
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
phi
¶ Rotation components, in local coordinates. (auto-updated)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
property
trsf
¶ Transformation (rotation) from global to local coordinates. (the translation part is in GenericSpheresContact.contactPoint)
-
property
u
¶ Displacement components, in local coordinates. (auto-updated)
-
property
u0
¶ Zero displacement value; u0 should be always subtracted from the geometrical displacement u computed by appropriate IGeomFunctor, resulting in u. This value can be changed for instance
by IGeomFunctor, e.g. to take in account large shear displacement value unrepresentable by underlying geomeric algorithm based on quaternions)
by LawFunctor, to account for normal equilibrium position different from zero geometric overlap (set once, just after the interaction is created)
by LawFunctor to account for plastic slip.
Note
Never set an absolute value of u0, only increment, since both IGeomFunctor and LawFunctor use it. If you need to keep track of plastic deformation, store it in IPhys isntead (this might be changed: have u0 for LawFunctor exclusively, and a separate value stored (when that is needed) inside classes deriving from L3Geom.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
PolyhedraGeom
(inherits IGeom → Serializable)¶ Geometry of interaction between 2 Polyhedra, including volumetric characteristics
-
property
contactPoint
¶ Contact point (global coords), centroid of the overlapping polyhedron
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
equivalentCrossSection
¶ Cross-section area of the overlap (perpendicular to the normal) - not used
-
property
equivalentPenetrationDepth
¶ volume / equivalentCrossSection - not used
-
property
normal
¶ Normal direction of the interaction
-
property
orthonormal_axis
¶
-
property
penetrationVolume
¶ Volume of overlap [m³]
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
twist_axis
¶
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ScGeom
(inherits GenericSpheresContact → IGeom → Serializable)¶ Class representing geometry of a contact point between two bodies. It is more general than sphere-sphere contact even though it is primarily focused on spheres contact interactions (reason for the ‘Sc’ naming); it is also used for representing contacts of a Sphere with non-spherical bodies (Facet, Plane, Box, ChainedCylinder), or between two non-spherical bodies (ChainedCylinder). The contact has 3 DOFs (normal and 2×shear) and uses incremental algorithm for updating shear.
We use symbols \(\vec{x}\), \(\vec{v}\), \(\vec{\omega}\) respectively for position, linear and angular velocities (all in global coordinates) and \(r\) for particles radii; subscripted with 1 or 2 to distinguish 2 spheres in contact. Then we define branch length and unit contact normal
\[l=||\vec{x}_2-\vec{x}_1||, \vec{n}=\frac{\vec{x}_2-\vec{x}_1}{||\vec{x}_2-\vec{x}_1||}\]The relative velocity of the spheres is then
\[\vec{v}_{12}=\frac{r_1+r_2}{l}(\vec{v}_2-\vec{v}_1) -(r_2 \vec{\omega}_2 + r_1\vec{\omega}_1)\times\vec{n}\]where the fraction multiplying translational velocities is to make the definition objective and avoid ratcheting effects (see Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting). The shear component is
\[\vec{v}_{12}^s=\vec{v}_{12}-(\vec{n}\cdot\vec{v}_{12})\vec{n}.\]Tangential displacement increment over last step then reads
\[\Delta\vec{x}_{12}^s=\Delta t \vec{v}_{12}^s.\]-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
shearInc
¶ Shear displacement increment in the last step
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ScGeom6D
(inherits ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Class representing geometry of two bodies in contact. The contact has 6 DOFs (normal, 2×shear, twist, 2xbending) and uses ScGeom incremental algorithm for updating shear.
-
property
bending
¶ Bending at contact as a vector defining axis of rotation and angle (angle=norm).
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
initialOrientation1
¶ Orientation of body 1 one at initialisation time (auto-updated)
-
property
initialOrientation2
¶ Orientation of body 2 one at initialisation time (auto-updated)
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
twist
¶ Elastic twist angle (around normal axis) of the contact.
-
property
twistCreep
¶ Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ScGridCoGeom
(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶ Geometry of a GridConnection-Sphere contact.
-
property
bending
¶ Bending at contact as a vector defining axis of rotation and angle (angle=norm).
-
property
contactPoint
¶ some reference point for the interaction (usually in the middle). (auto-computed)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
incidentVel
((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) → Vector3 :¶ Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
-
property
initialOrientation1
¶ Orientation of body 1 one at initialisation time (auto-updated)
-
property
initialOrientation2
¶ Orientation of body 2 one at initialisation time (auto-updated)
-
property
isDuplicate
¶ this flag is turned true (1) automatically if the contact is shared between two Connections. A duplicated interaction will be skipped once by the constitutive law, so that only one contact at a time is effective. If isDuplicate=2, it means one of the two duplicates has no longer geometric interaction, and should be erased by the constitutive laws.
-
property
normal
¶ Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
-
property
penetrationDepth
¶ Penetration distance of spheres (positive if overlapping)
-
property
refR1
¶ Reference radius of particle #1. (auto-computed)
-
property
refR2
¶ Reference radius of particle #2. (auto-computed)
-
relAngVel
((ScGeom)arg1, (Interaction)i) → Vector3 :¶ Return relative angular velocity of the interaction.
-
property
relPos
¶ position of the contact on the connection (0: node-, 1:node+) (auto-updated)
-
property
shearInc
¶ Shear displacement increment in the last step
-
property
trueInt
¶ Defines the body id of the GridConnection where the contact is real, when ScGridCoGeom::isDuplicate>0.
-
property
twist
¶ Elastic twist angle (around normal axis) of the contact.
-
property
twistCreep
¶ Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
weight
¶ barycentric coordinates of the projection point (auto-updated)
-
property
-
class
yade.wrapper.
TTetraGeom
(inherits IGeom → Serializable)¶ Geometry of interaction between 2 tetrahedra, including volumetric characteristics
-
property
contactPoint
¶ Contact point (global coords)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
equivalentCrossSection
¶ Cross-section of the overlap (perpendicular to the axis of least inertia
-
property
equivalentPenetrationDepth
¶ ??
-
property
maxPenetrationDepthA
¶ ??
-
property
maxPenetrationDepthB
¶ ??
-
property
normal
¶ Normal of the interaction, directed in the sense of least inertia of the overlap volume
-
property
penetrationVolume
¶ Volume of overlap [m³]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
TTetraSimpleGeom
(inherits IGeom → Serializable)¶ EXPERIMENTAL. Geometry of interaction between 2 tetrahedra
-
property
contactPoint
¶ Contact point (global coords)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IGeom)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
flag
¶ TODO
-
property
normal
¶ Normal of the interaction TODO
-
property
penetrationVolume
¶ Volume of overlap [m³]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
IPhys¶
![digraph IPhys {
rankdir=RL;
margin="0.2,0.05";
"IPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IPhys"];
"ViscElCapPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ViscElCapPhys"];
"ViscElCapPhys" -> "ViscElPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MindlinCapillaryPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MindlinCapillaryPhys"];
"MindlinCapillaryPhys" -> "MindlinPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"JCFpmPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.JCFpmPhys"];
"JCFpmPhys" -> "NormShearPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CohFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CohFrictPhys"];
"CohFrictPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CapillaryPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CapillaryPhys"];
"CapillaryPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LubricationPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LubricationPhys"];
"LubricationPhys" -> "ViscElPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ViscElPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ViscElPhys"];
"ViscElPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LudingPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LudingPhys"];
"LudingPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KnKsPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KnKsPhys"];
"KnKsPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MortarPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MortarPhys"];
"MortarPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MindlinPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MindlinPhys"];
"MindlinPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"NormPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.NormPhys"];
"NormPhys" -> "IPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"NormShearPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.NormShearPhys"];
"NormShearPhys" -> "NormPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PolyhedraPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PolyhedraPhys"];
"PolyhedraPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CpmPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CpmPhys"];
"CpmPhys" -> "NormShearPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ViscoFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ViscoFrictPhys"];
"ViscoFrictPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FrictViscoPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FrictViscoPhys"];
"FrictViscoPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"WirePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.WirePhys"];
"WirePhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InelastCohFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InelastCohFrictPhys"];
"InelastCohFrictPhys" -> "FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BubblePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BubblePhys"];
"BubblePhys" -> "IPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FrictPhys"];
"FrictPhys" -> "NormShearPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-22bf588cf0ec1f0213886771280a8ec2f3d80803.png)
Inheritance graph of IPhys.¶
-
class
yade.wrapper.
IPhys
(inherits Serializable)¶ Physical (material) properties of interaction.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
BubblePhys
(inherits IPhys → Serializable)¶ Physics of bubble-bubble interactions, for use with BubbleMat
-
property
Dmax
¶ Maximum penetrationDepth of the bubbles before the force displacement curve changes to an artificial exponential curve. Setting this value will have no effect. See Law2_ScGeom_BubblePhys_Bubble::pctMaxForce for more information
-
static
computeForce
((float)arg1, (float)arg2, (float)arg3, (int)arg4, (float)arg5, (float)arg6, (float)arg7, (BubblePhys)arg8) → float :¶ Computes the normal force acting between the two interacting bubbles using the Newton-Rhapson method
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
fN
¶ Contact normal force
-
property
newtonIter
¶ Maximum number of force iterations allowed
-
property
newtonTol
¶ Convergence criteria for force iterations
-
property
normalForce
¶ Normal force
-
property
rAvg
¶ Average radius of the two interacting bubbles
-
property
surfaceTension
¶ Surface tension of the surrounding liquid
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CapillaryPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Physics (of interaction) for Law2_ScGeom_CapillaryPhys_Capillarity.
-
property
Delta1
¶ Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)
-
property
Delta2
¶ Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)
-
property
capillaryPressure
¶ Value of the capillary pressure Uc. Defined as Ugas-Uliquid, obtained from corresponding Law2 parameter
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
fCap
¶ Capillary force produced by the presence of the meniscus. This is the force acting on particle #2
-
property
fusionNumber
¶ Indicates the number of meniscii that overlap with this one
-
property
isBroken
¶ Might be set to true by the user to make liquid bridge inactive (capillary force is zero)
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
meniscus
¶ True when a meniscus with a non-zero liquid volume (vMeniscus) has been computed for this interaction
-
property
nn11
¶ \(\iint_A n_1 n_1 \, dS = \iint_A n_2 n_2 \, dS\), \(A\) being the liquid-gas surface of the meniscus, \(\vec n\) the associated normal, and \((1,2,3)\) a local basis with \(3\) the meniscus orientation (ScGeom.normal). NB: \(A\) = 2 nn11 + nn33.
-
property
nn33
¶ \(\iint_A n_3 n_3 \, dS\), \(A\) being the liquid-gas surface of the meniscus, \(\vec n\) the associated normal, and \((1,2,3)\) a local basis with \(3\) the meniscus orientation (ScGeom.normal). NB: \(A\) = 2 nn11 + nn33.
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vMeniscus
¶ Volume of the meniscus
-
property
-
class
yade.wrapper.
CohFrictPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ -
property
cohesionBroken
¶ is cohesion active? Set to false at the creation of a cohesive contact, and set to true when a fragile contact is broken
-
property
cohesionDisablesFriction
¶ is shear strength the sum of friction and adhesion or only adhesion?
-
property
creep_viscosity
¶ creep viscosity [Pa.s/m].
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
fragile
¶ do cohesion disappear when contact strength is exceeded?
-
property
initCohesion
¶ Initialize the cohesive behaviour with current state as equilibrium state (same as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys::setCohesionNow but acting on only one interaction)
-
property
kn
¶ Normal stiffness
-
property
kr
¶ rotational stiffness [N.m/rad]
-
property
ks
¶ Shear stiffness
-
property
ktw
¶ twist stiffness [N.m/rad]
-
property
maxRollPl
¶ Coefficient of rolling friction (negative means elastic).
-
property
maxTwistPl
¶ Coefficient of twisting friction (negative means elastic).
-
property
momentRotationLaw
¶ use bending/twisting moment at contacts. See Law2_ScGeom6D_CohFrictPhys_CohesionMoment::always_use_moment_law for details.
-
property
moment_bending
¶ Bending moment
-
property
moment_twist
¶ Twist moment
-
property
normalAdhesion
¶ tensile strength
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearAdhesion
¶ cohesive part of the shear strength (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction)
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
unp
¶ plastic normal displacement, only used for tensile behaviour and if CohFrictPhys::fragile =false.
-
property
unpMax
¶ maximum value of plastic normal displacement (counted positively), after that the interaction breaks even if CohFrictPhys::fragile =false. A negative value (i.e. -1) means no maximum.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CpmPhys
(inherits NormShearPhys → NormPhys → IPhys → Serializable)¶ Representation of a single interaction of the Cpm type: storage for relevant parameters.
Evolution of the contact is governed by Law2_ScGeom_CpmPhys_Cpm, that includes damage effects and chages of parameters inside CpmPhys. See cpm-model for details.
-
property
E
¶ normal modulus (stiffness / crossSection) [Pa]
-
property
Fn
¶ Magnitude of normal force (auto-updated)
-
property
Fs
¶ Magnitude of shear force (auto-updated)
-
property
G
¶ shear modulus [Pa]
-
property
crossSection
¶ equivalent cross-section associated with this contact [m²]
-
cummBetaCount
= 0¶
-
cummBetaIter
= 0¶
-
property
damLaw
¶ Law for softening part of uniaxial tension. 0 for linear, 1 for exponential (default)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
dmgOverstress
¶ damage viscous overstress (at previous step or at current step)
-
property
dmgRateExp
¶ exponent in the rate-dependent damage evolution
-
property
dmgStrain
¶ damage strain (at previous or current step)
-
property
dmgTau
¶ characteristic time for damage (if non-positive, the law without rate-dependence is used)
-
property
epsCrackOnset
¶ strain at which the material starts to behave non-linearly
-
property
epsFracture
¶ strain at which the bond is fully broken [-]
-
property
epsN
¶ Current normal strain (auto-updated)
-
property
epsNPl
¶ normal plastic strain (initially zero) (auto-updated)
-
property
epsT
¶ Current shear strain (auto-updated)
-
property
epsTPl
¶ shear plastic strain (initially zero) (auto-updated)
-
property
equivStrainShearContrib
¶ Coefficient of shear contribution to equivalent strain
-
static
funcG
((float)kappaD, (float)epsCrackOnset, (float)epsFracture[, (bool)neverDamage=False[, (int)damLaw=1]]) → float :¶ Damage evolution law, evaluating the \(\omega\) parameter. \(\kappa_D\) is historically maximum strain, epsCrackOnset (\(\varepsilon_0\)) = CpmPhys.epsCrackOnset, epsFracture = CpmPhys.epsFracture; if neverDamage is
True
, the value returned will always be 0 (no damage). TODO
-
static
funcGInv
((float)omega, (float)epsCrackOnset, (float)epsFracture[, (bool)neverDamage=False[, (int)damLaw=1]]) → float :¶ Inversion of damage evolution law, evaluating the \(\kappa_D\) parameter. \(\omega\) is damage, for other parameters see funcG function
-
property
isCohesive
¶ if not cohesive, interaction is deleted when distance is greater than zero.
-
property
isoPrestress
¶ “prestress” of this link (used to simulate isotropic stress)
-
property
kappaD
¶ Up to now maximum normal strain (semi-norm), non-decreasing in time (auto-updated)
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
neverDamage
¶ the damage evolution function will always return virgin state
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
omega
¶ Damage internal variable (auto-updated)
-
property
plRateExp
¶ exponent in the rate-dependent viscoplasticity
-
property
plTau
¶ characteristic time for viscoplasticity (if non-positive, no rate-dependence for shear)
-
property
refLength
¶ initial length of interaction [m]
-
property
refPD
¶ initial penetration depth of interaction [m] (used with ScGeom)
-
property
relDuctility
¶ Relative ductility of bonds in normal direction
-
property
relResidualStrength
¶ Relative residual strength (auto-updated)
-
setDamage
((CpmPhys)arg1, (float)arg2) → None :¶ TODO
-
setRelResidualStrength
((CpmPhys)arg1, (float)arg2) → None :¶ TODO
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
sigmaN
¶ Current normal stress (auto-updated)
-
property
sigmaT
¶ Current shear stress (auto-updated)
-
property
tanFrictionAngle
¶ tangens of internal friction angle [-]
-
property
undamagedCohesion
¶ virgin material cohesion [Pa]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FrictPhys
(inherits NormShearPhys → NormPhys → IPhys → Serializable)¶ The simple linear elastic-plastic interaction with friction angle, like in the traditional [CundallStrack1979]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
FrictViscoPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Representation of a single interaction of the FrictViscoPM type, storage for relevant parameters
-
property
cn
¶ Normal viscous constant defined as \(\c_{n}=c_{n,crit}\beta_n\).
-
property
cn_crit
¶ Normal viscous constant for ctitical damping defined as \(\c_{n}=C_{n,crit}\beta_n\).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
normalViscous
¶ Normal viscous component
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
InelastCohFrictPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ -
property
cohesionBroken
¶ is cohesion active? will be set false when a fragile contact is broken
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
isBroken
¶ true if compression plastic fracture achieved
-
property
kDam
¶ Damage coefficient on bending, computed from maximum bending moment reached and pure creep behaviour. Its values will vary between InelastCohFrictPhys::kr and InelastCohFrictPhys::kRCrp .
-
property
kRCrp
¶ Bending creep stiffness
-
property
kRUnld
¶ Bending plastic unload stiffness
-
property
kTCrp
¶ Tension/compression creep stiffness
-
property
kTUnld
¶ Tension/compression plastic unload stiffness
-
property
kTwCrp
¶ Twist creep stiffness
-
property
kTwUnld
¶ Twist plastic unload stiffness
-
property
kn
¶ Normal stiffness
-
property
knC
¶ compression stiffness
-
property
knT
¶ tension stiffness
-
property
kr
¶ bending stiffness
-
property
ks
¶ shear stiffness
-
property
ktw
¶ twist shear stiffness
-
property
maxBendMom
¶ Plastic failure bending moment.
-
property
maxContract
¶ Plastic failure contraction (shrinkage).
-
property
maxCrpRchdB
¶ maximal bending moment reached on plastic deformation.
-
property
maxCrpRchdC
¶ maximal compression reached on plastic deformation. maxCrpRchdC[0] stores un and maxCrpRchdC[1] stores Fn.
-
property
maxCrpRchdT
¶ maximal extension reached on plastic deformation. maxCrpRchdT[0] stores un and maxCrpRchdT[1] stores Fn.
-
property
maxCrpRchdTw
¶ maximal twist reached on plastic deformation. maxCrpRchdTw[0] stores twist angle and maxCrpRchdTw[1] stores twist moment.
-
property
maxElB
¶ Maximum bending elastic moment.
-
property
maxElC
¶ Maximum compression elastic force.
-
property
maxElT
¶ Maximum tension elastic force.
-
property
maxElTw
¶ Maximum twist elastic moment.
-
property
maxExten
¶ Plastic failure extension (stretching).
-
property
maxTwist
¶ Plastic failure twist angle
-
property
moment_bending
¶ Bending moment
-
property
moment_twist
¶ Twist moment
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
onPlastB
¶ true if plasticity achieved on bending
-
property
onPlastC
¶ true if plasticity achieved on compression
-
property
onPlastT
¶ true if plasticity achieved on traction
-
property
onPlastTw
¶ true if plasticity achieved on twisting
-
property
pureCreep
¶ Pure creep curve, used for comparison in calculation.
-
property
shearAdhesion
¶ Maximum elastic shear force (cohesion).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
twp
¶ plastic twist penetration depth describing the equilibrium state.
-
property
unp
¶ plastic normal penetration depth describing the equilibrium state.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
JCFpmPhys
(inherits NormShearPhys → NormPhys → IPhys → Serializable)¶ Representation of a single interaction of the JCFpm type, storage for relevant parameters
-
property
FnMax
¶ positiv value computed from tensile strength (or joint variant) to define the maximum admissible normal force in traction: Fn >= -FnMax. [N]
-
property
FsMax
¶ computed from cohesion (or jointCohesion) to define the maximum admissible tangential force in shear, for Fn=0. [N]
-
property
breakOccurred
¶ Flag used to trigger retriangulation as soon as a cohesive bond breaks in FlowEngine (for DFNFlow use only)
-
property
checkedForCluster
¶ Have we checked if this int belongs in cluster?
-
property
clusterInts
¶ vector of pointers to the broken interactions nearby constituting a cluster
-
property
clusteredEvent
¶ is this interaction part of a cluster?
-
property
computedCentroid
¶ Flag for moment calculation
-
property
crackJointAperture
¶ Relative displacement between 2 spheres (in case of a crack it is equivalent of the crack aperture)
-
property
crossSection
¶ crossSection=pi*Rmin^2. [m2]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
dilation
¶ defines the normal displacement in the joint after sliding treshold. [m]
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
elapsedIter
¶ number of elapsed iterations for moment calculation
-
property
eventBeginTime
¶ The time at which event initiated
-
property
eventNumber
¶ cluster event number
-
property
firstMomentCalc
¶ Flag for moment calculation (auto-updated)
-
property
initD
¶ equilibrium distance for interacting particles. Computed as the interparticular distance at first contact detection.
-
property
interactionsAdded
¶ have we added the ints associated with this event?
-
property
isBroken
¶ flag for broken interactions
-
property
isCohesive
¶ If false, particles interact in a frictional way. If true, particles are bonded regarding the given cohesion and tensile strength (or their jointed variants).
-
property
isOnJoint
¶ defined as true when both interacting particles are on joint and are in opposite sides of the joint surface. In this case, mechanical parameters of the interaction are derived from the ‘’joint…’’ material properties of the particles. Furthermore, the normal of the interaction may be re-oriented (see Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM.smoothJoint).
-
property
isOnSlot
¶ defined as true when interaction is located in the perforation slot (surface).
-
property
jointCumulativeSliding
¶ sliding distance for particles interacting on a joint. Used, when is true, to take into account dilatancy due to shearing. [-]
-
property
jointNormal
¶
-
property
kineticEnergy
¶ kinetic energy of the two spheres participating in the interaction (easiest to store this value with interaction instead of spheres since we are using this information for moment magnitude estimations and associated interaction searches)
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
momentBroken
¶ Flag for moment calculation
-
property
momentCalculated
¶ Flag for moment calculation to avoid repeating twice the operations (auto-updated)
-
property
momentCentroid
¶ centroid of the AE event (avg location of clustered breaks)
-
property
momentEnergy
¶ reference strain (or kinetic) energy of surrounding interactions (particles)
-
property
momentEnergyChange
¶ storage of the maximum strain (or kinetic) energy change for surrounding interactions (particles)
-
property
momentMagnitude
¶ Moment magnitude of a failed interaction
-
property
more
¶ specifies if the interaction is crossed by more than 3 joints. If true, interaction is deleted (temporary solution).
-
property
nearbyFound
¶ Count used to debug moment calc
-
property
nearbyInts
¶ vector of pointers to the nearby ints used for moment calc
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
originalClusterEvent
¶ the original AE event for a cluster
-
property
originalEvent
¶ pointer to the original interaction of a cluster
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
strainEnergy
¶ strain energy of interaction
-
property
tanDilationAngle
¶ tangent of the angle defining the dilatancy of the joint surface (auto. computed from JCFpmMat.jointDilationAngle). [-]
-
property
tanFrictionAngle
¶ tangent of Coulomb friction angle for this interaction (auto. computed). [-]
-
property
temporalWindow
¶ temporal window for the clustering algorithm
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
KnKsPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ EXPERIMENTAL. IPhys for PotentialParticle.
-
property
brittleLength
¶ Shear length where strength degrades, not fully in use
-
property
cohesion
¶ Cohesion
-
property
cohesionBroken
¶ Whether cohesion is already broken. Considered true for particles with isBoundary=True
-
property
contactArea
¶ Contact area (auto-updated)
-
property
cumulative_us
¶ Cumulative shear translation (not fully in use)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
effective_phi
¶ Friction angle in clay after displacement
-
property
frictionAngle
¶ Friction angle
-
property
initialShearDir
¶ Initial shear direction
-
property
intactRock
¶ Whether to consider cohesive force in the Mohr-Coulomb criterion, if allowBreakage=False and cohesionBroken=False.
-
property
isSliding
¶ Check if the contact is sliding (useful to calculate the ratio of sliding contacts)
-
property
jointLength
¶ Approximated contact length
-
property
jointType
¶ jointType
-
property
kn
¶ Normal stiffness
-
property
knVol
¶ Volumetric normal stiffness = Knormal
-
property
kn_i
¶ Currently, we assume kn_i and Knormal are adopting the same value in Ip2 initialisation
-
property
ks
¶ Shear stiffness
-
property
ksVol
¶ Volumetric shear stiffness = Kshear
-
property
ks_i
¶ Currently, we assume ks_i and Kshear are adopting the same value in Ip2 initialisation
-
property
maxClosure
¶ not fully in use, vmi
-
property
mobilizedShear
¶ Percentage of mobilized shear force as the ratio of the current shear force to the current frictional limit. Represents a quantified measure of the isSliding parameter
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
normalViscous
¶ Viscous normal force
-
property
phi_b
¶ Basic friction angle (degrees)
-
property
phi_r
¶ Residual friction angle (degrees)
-
property
prevNormal
¶ Previous normal
-
property
prevSigma
¶ Previous normal stress
-
property
ptOnP1
¶ Point on particle 1
-
property
ptOnP2
¶ Point on particle 2
-
property
shearDir
¶ Shear direction
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearIncrementForCD
¶ toSeeWhether it is necessary to update contactArea
-
property
shearViscous
¶ Viscous shear force (assumed zero at the moment)
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
tension
¶ Tension
-
property
tensionBroken
¶ Whether tension is already broken. Considered true for particles with isBoundary=True
-
property
u_cumulative
¶ Cumulative translation
-
property
u_elastic
¶ Elastic shear displacement, not fully in use
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useFaceProperties
¶ Whether to get face properties from the intersecting particles
-
property
viscousDamping
¶ Viscous damping
-
property
warmstart
¶ Warmstart for SOCP, not fully in use
-
property
-
class
yade.wrapper.
LubricationPhys
(inherits ViscElPhys → FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ IPhys class for Lubrication w/o FlowEngine. Used by Law2_ScGeom_ImplicitLubricationPhys.
-
property
Fn
¶ Normal force of the contact
-
property
Fv
¶ Viscous force of the contact
-
property
SPHmode
¶ True, if SPH-mode is enabled.
-
property
a
¶ Mean radius [m]
-
property
cn
¶ Normal viscous constant
-
property
contact
¶ The spheres are in contact
-
property
cs
¶ Shear viscous constant
-
property
delta
¶ \(\log(u)\) - used for scheme with \(\delta=\log(u)\) variable change
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
eps
¶ Roughness: fraction of radius used as roughness [-]
-
property
eta
¶ Fluid viscosity [Pa.s]
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
kn
¶ Normal stiffness
-
property
kno
¶ Coefficient for normal stiffness (Hertzian-like contact) [N/m^(3/2)]
-
property
ks
¶ Shear stiffness
-
property
mR
¶ Rolling resistance, see [Zhou1999536].
-
property
mRtype
¶ Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]
-
property
mu
¶ Viscosity. See Mueller [Mueller2003] .
-
property
mum
¶ Friction coefficient [-]
-
property
normalContactForce
¶ Normal contact force [N]
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
normalLubricationForce
¶ Normal lubrication force [N]
-
property
normalPotentialForce
¶ Normal force from potential other than contact [N]
-
property
nun
¶ Coefficient for normal lubrication [N.s]
-
property
prevDotU
¶ du/dt from previous integration - used for trapezoidal scheme (see Law2_ScGeom_ImplicitLubricationPhys::resolution for choosing resolution scheme)
-
property
prev_un
¶ Nondeformed distance (un) at t-dt [m]
-
property
shearContactForce
¶ Frictional contact force [N]
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearLubricationForce
¶ Shear lubrication force [N]
-
property
slip
¶ The contact is slipping
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
u
¶ Interfacial distance (u) at t-dt [m]
-
property
ue
¶ Surface deflection (ue) at t-dt [m]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
LudingPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ IPhys created from LudingMat, for use with Law2_ScGeom_LudingPhys_Basic.
-
property
DeltMax
¶ Maximum overlap between particles for a collision
-
property
DeltMin
¶ MinimalDelta value of delta
-
property
DeltNull
¶ Force free overlap, plastic contact deformation
-
property
DeltPMax
¶ Maximum overlap between particles for the limit case
-
property
DeltPNull
¶ Max force free overlap, plastic contact deformation
-
property
DeltPrev
¶ Previous value of delta
-
property
G0
¶ Viscous damping
-
property
PhiF
¶ Dimensionless plasticity depth
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
k1
¶ Slope of loading plastic branch
-
property
k2
¶ Slope of unloading and reloading elastic branch
-
property
kc
¶ Slope of irreversible, tensile adhesive branch
-
property
kn
¶ Normal stiffness
-
property
kp
¶ Slope of unloading and reloading limit elastic branch
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
MindlinCapillaryPhys
(inherits MindlinPhys → FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Adds capillary physics to Mindlin’s interaction physics.
-
property
Delta1
¶ Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)
-
property
Delta2
¶ Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)
-
property
Fs
¶ Shear force in local axes (computed incrementally)
-
property
adhesionForce
¶ Force of adhesion as predicted by DMT
-
property
alpha
¶ Constant coefficient to define contact viscous damping for non-linear elastic force-displacement relationship.
-
property
betan
¶ Normal Damping Ratio. Fraction of the viscous damping coefficient (normal direction) equal to \(\frac{c_{n}}{C_{n,crit}}\).
-
property
betas
¶ Shear Damping Ratio. Fraction of the viscous damping coefficient (shear direction) equal to \(\frac{c_{s}}{C_{s,crit}}\).
-
property
capillaryPressure
¶ Value of the capillary pressure Uc. Defined as Ugas-Uliquid, obtained from corresponding Law2 parameter
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
fCap
¶ Capillary Force produces by the presence of the meniscus. This is the force acting on particle #2
-
property
fusionNumber
¶ Indicates the number of meniscii that overlap with this one
-
property
isAdhesive
¶ bool to identify if the contact is adhesive, that is to say if the contact force is attractive
-
property
isBroken
¶ Might be set to true by the user to make liquid bridge inactive (capillary force is zero)
-
property
isSliding
¶ check if the contact is sliding (useful to calculate the ratio of sliding contacts)
-
property
kn
¶ Normal stiffness
-
property
kno
¶ Constant value in the formulation of the normal stiffness
-
property
kr
¶ Rotational stiffness
-
property
ks
¶ Shear stiffness
-
property
kso
¶ Constant value in the formulation of the tangential stiffness
-
property
ktw
¶ Rotational stiffness
-
property
maxBendPl
¶ Coefficient to determine the maximum plastic moment to apply at the contact
-
property
meniscus
¶ True when a meniscus with a non-zero liquid volume (vMeniscus) has been computed for this interaction
-
property
momentBend
¶ Artificial bending moment to provide rolling resistance in order to account for some degree of interlocking between particles
-
property
momentTwist
¶ Artificial twisting moment (no plastic condition can be applied at the moment)
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
normalViscous
¶ Normal viscous component
-
property
prevU
¶ Previous local displacement; only used with Law2_L3Geom_FrictPhys_HertzMindlin.
-
property
radius
¶ Contact radius (only computed with Law2_ScGeom_MindlinPhys_Mindlin::calcEnergy)
-
property
shearElastic
¶ Total elastic shear force
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearViscous
¶ Shear viscous component
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
usElastic
¶ Total elastic shear displacement (only elastic part)
-
property
usTotal
¶ Total elastic shear displacement (elastic+plastic part)
-
property
vMeniscus
¶ Volume of the meniscus
-
property
-
class
yade.wrapper.
MindlinPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Representation of an interaction of the Hertz-Mindlin type.
-
property
Fs
¶ Shear force in local axes (computed incrementally)
-
property
adhesionForce
¶ Force of adhesion as predicted by DMT
-
property
alpha
¶ Constant coefficient to define contact viscous damping for non-linear elastic force-displacement relationship.
-
property
betan
¶ Normal Damping Ratio. Fraction of the viscous damping coefficient (normal direction) equal to \(\frac{c_{n}}{C_{n,crit}}\).
-
property
betas
¶ Shear Damping Ratio. Fraction of the viscous damping coefficient (shear direction) equal to \(\frac{c_{s}}{C_{s,crit}}\).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
isAdhesive
¶ bool to identify if the contact is adhesive, that is to say if the contact force is attractive
-
property
isSliding
¶ check if the contact is sliding (useful to calculate the ratio of sliding contacts)
-
property
kn
¶ Normal stiffness
-
property
kno
¶ Constant value in the formulation of the normal stiffness
-
property
kr
¶ Rotational stiffness
-
property
ks
¶ Shear stiffness
-
property
kso
¶ Constant value in the formulation of the tangential stiffness
-
property
ktw
¶ Rotational stiffness
-
property
maxBendPl
¶ Coefficient to determine the maximum plastic moment to apply at the contact
-
property
momentBend
¶ Artificial bending moment to provide rolling resistance in order to account for some degree of interlocking between particles
-
property
momentTwist
¶ Artificial twisting moment (no plastic condition can be applied at the moment)
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
normalViscous
¶ Normal viscous component
-
property
prevU
¶ Previous local displacement; only used with Law2_L3Geom_FrictPhys_HertzMindlin.
-
property
radius
¶ Contact radius (only computed with Law2_ScGeom_MindlinPhys_Mindlin::calcEnergy)
-
property
shearElastic
¶ Total elastic shear force
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearViscous
¶ Shear viscous component
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
usElastic
¶ Total elastic shear displacement (only elastic part)
-
property
usTotal
¶ Total elastic shear displacement (elastic+plastic part)
-
property
-
class
yade.wrapper.
MortarPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ IPhys class containing parameters of MortarMat. Used by Law2_ScGeom_MortarPhys_Lourenco.
-
property
cohesion
¶ cohesion [Pa]
-
property
compressiveStrength
¶ compressiveStrength [Pa]
-
property
crossSection
¶ Crosssection of interaction
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
ellAspect
¶ aspect ratio of elliptical ‘cap’. Value >1 means the ellipse is longer along normal stress axis.
-
failureCondition
((MortarPhys)arg1, (float)arg2, (float)arg3) → bool :¶ Failure condition from normal stress and norm of shear stress (false=elastic, true=damaged)
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
neverDamage
¶ If true, interactions remain elastic regardless stresses
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
sigmaN
¶ Current normal stress (auto-updated)
-
property
sigmaT
¶ Current shear stress (auto-updated)
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
tensileStrength
¶ tensileStrength [Pa]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
NormPhys
(inherits IPhys → Serializable)¶ Abstract class for interactions that have normal stiffness.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
NormShearPhys
(inherits NormPhys → IPhys → Serializable)¶ Abstract class for interactions that have shear stiffnesses, in addition to normal stiffness. This class is used in the PFC3d-style stiffness timestepper.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
PolyhedraPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Simple elastic material with friction for volumetric constitutive laws
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
ViscElCapPhys
(inherits ViscElPhys → FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ IPhys created from ViscElCapMat, for use with Law2_ScGeom_ViscElCapPhys_Basic.
-
property
Capillar
¶ True, if capillar forces need to be added.
-
property
CapillarType
¶ Different types of capillar interaction: Willett_numeric, Willett_analytic, Weigert, Rabinovich, Lambert, Soulie
-
property
Fn
¶ Normal force of the contact
-
property
Fv
¶ Viscous force of the contact
-
property
SPHmode
¶ True, if SPH-mode is enabled.
-
property
Vb
¶ Liquid bridge volume [m^3]
-
property
cn
¶ Normal viscous constant
-
property
cs
¶ Shear viscous constant
-
property
dcap
¶ Damping coefficient for the capillary phase [-]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
gamma
¶ Surface tension [N/m]
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
liqBridgeActive
¶ Whether liquid bridge is active at the moment
-
property
liqBridgeCreated
¶ Whether liquid bridge was created, only after a normal contact of spheres
-
property
mR
¶ Rolling resistance, see [Zhou1999536].
-
property
mRtype
¶ Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]
-
property
mu
¶ Viscosity. See Mueller [Mueller2003] .
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
sCrit
¶ Critical bridge length [m]
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
property
theta
¶ Contact angle [rad]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ViscElPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ IPhys created from ViscElMat, for use with Law2_ScGeom_ViscElPhys_Basic.
-
property
Fn
¶ Normal force of the contact
-
property
Fv
¶ Viscous force of the contact
-
property
SPHmode
¶ True, if SPH-mode is enabled.
-
property
cn
¶ Normal viscous constant
-
property
cs
¶ Shear viscous constant
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
mR
¶ Rolling resistance, see [Zhou1999536].
-
property
mRtype
¶ Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]
-
property
mu
¶ Viscosity. See Mueller [Mueller2003] .
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ViscoFrictPhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Temporary version of FrictPhys for compatibility reasons
-
property
creepedShear
¶ Creeped force (parallel)
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
WirePhys
(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶ Representation of a single interaction of the WirePM type, storage for relevant parameters
-
property
dL
¶ Additional wire length for considering the distortion for WireMat type=2 (see [Thoeni2013]).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispHierarchy
((IPhys)arg1[, (bool)names=True]) → list :¶ Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
-
property
dispIndex
¶ Return class index of this instance.
-
property
displForceValues
¶ Defines the values for force-displacement curve.
-
property
initD
¶ Equilibrium distance for particles. Computed as the initial inter-particular distance when particle are linked.
-
property
isDoubleTwist
¶ If true the properties of the interaction will be defined as a double-twisted wire.
-
property
isLinked
¶ If true particles are linked and will interact. Interactions are linked automatically by the definition of the corresponding interaction radius. The value is false if the wire breaks (no more interaction).
-
property
kn
¶ Normal stiffness
-
property
ks
¶ Shear stiffness
-
property
limitFactor
¶ This value indicates on how far from failing the wire is, e.g. actual normal displacement divided by admissible normal displacement.
-
property
normalForce
¶ Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
plastD
¶ Plastic part of the inter-particular distance of the previous step.
Note
Only elastic displacements are reversible (the elastic stiffness is used for unloading) and compressive forces are inadmissible. The compressive stiffness is assumed to be equal to zero.
-
property
shearForce
¶ Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
-
property
stiffnessValues
¶ Defines the values for the various stiffnesses (the elastic stiffness is stored as kn).
-
property
tangensOfFrictionAngle
¶ tan of angle of friction
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Global engines¶
GlobalEngine¶
![digraph GlobalEngine {
rankdir=RL;
margin="0.2,0.05";
"GlobalEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlobalEngine"];
"GlobalStiffnessTimeStepper" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlobalStiffnessTimeStepper"];
"GlobalStiffnessTimeStepper" -> "TimeStepper" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BoxFactory" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BoxFactory"];
"BoxFactory" -> "SpheresFactory" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FoamCoupling" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FoamCoupling"];
"FoamCoupling" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_CapillaryPhys_Capillarity" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_CapillaryPhys_Capillarity"];
"Law2_ScGeom_CapillaryPhys_Capillarity" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HydrodynamicsLawLBM" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HydrodynamicsLawLBM"];
"HydrodynamicsLawLBM" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FEInternalForceEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FEInternalForceEngine"];
"FEInternalForceEngine" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FieldApplier" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphfieldapplier"];
"FieldApplier" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TesselationWrapper" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TesselationWrapper"];
"TesselationWrapper" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"NewtonIntegrator" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.NewtonIntegrator"];
"NewtonIntegrator" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PeriodicEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphperiodicengine"];
"PeriodicEngine" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TetraVolumetricLaw" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TetraVolumetricLaw"];
"TetraVolumetricLaw" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BoundaryController" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphboundarycontroller"];
"BoundaryController" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ForceResetter" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ForceResetter"];
"ForceResetter" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TimeStepper" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TimeStepper"];
"TimeStepper" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MicroMacroAnalyser" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MicroMacroAnalyser"];
"MicroMacroAnalyser" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CircularFactory" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CircularFactory"];
"CircularFactory" -> "SpheresFactory" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ElasticContactLaw" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ElasticContactLaw"];
"ElasticContactLaw" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SpheresFactory" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SpheresFactory"];
"SpheresFactory" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Integrator" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Integrator"];
"Integrator" -> "TimeStepper" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FacetTopologyAnalyzer" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FacetTopologyAnalyzer"];
"FacetTopologyAnalyzer" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Collider" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphcollider"];
"Collider" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InteractionLoop" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InteractionLoop"];
"InteractionLoop" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CohesiveFrictionalContactLaw" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CohesiveFrictionalContactLaw"];
"CohesiveFrictionalContactLaw" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"RungeKuttaCashKarp54Integrator" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.RungeKuttaCashKarp54Integrator"];
"RungeKuttaCashKarp54Integrator" -> "Integrator" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-b931d687dfd43234c564e8a193fcf079d60af84e.png)
Inheritance graph of GlobalEngine, gray dashed classes are discussed in their own sections: FieldApplier, PeriodicEngine, BoundaryController, Collider.¶
-
class
yade.wrapper.
GlobalEngine
(inherits Engine → Serializable)¶ Engine that will generally affect the whole simulation (contrary to PartialEngine).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
BoxFactory
(inherits SpheresFactory → GlobalEngine → Engine → Serializable)¶ Box geometry of the SpheresFactory region, given by extents and center
-
property
PSDcalculateMass
¶ PSD-Input is in mass (true), otherwise the number of particles will be considered.
-
property
PSDcum
¶ PSD-dispersion, cumulative procent meanings [-]
-
property
PSDsizes
¶ PSD-dispersion, sizes of cells, Diameter [m]
-
property
blockedDOFs
¶ Blocked degress of freedom
-
property
center
¶ Center of the region
-
property
color
¶ Use the color for newly created particles, if specified
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
exactDiam
¶ If true, the particles only with the defined in PSDsizes diameters will be created. Otherwise the diameter will be randomly chosen in the range [PSDsizes[i-1]:PSDsizes[i]], in this case the length of PSDsizes should be more on 1, than the length of PSDcum.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
extents
¶ Extents of the region
-
property
goalMass
¶ Total mass that should be attained at the end of the current step. (auto-updated)
-
property
ids
¶ ids of created bodies
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ groupMask to apply for newly created spheres
-
property
massFlowRate
¶ Mass flow rate [kg/s]
-
property
materialId
¶ Shared material id to use for newly created spheres (can be negative to count from the end)
-
property
maxAttempt
¶ Maximum number of attempts to position a new sphere randomly.
-
property
maxMass
¶ Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.
-
property
maxParticles
¶ The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .
-
property
normal
¶ Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.
-
property
normalVel
¶ Direction of particle’s velocites.
-
property
numParticles
¶ Cummulative number of particles produces so far (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rMax
¶ Maximum radius of generated spheres (uniform distribution)
-
property
rMin
¶ Minimum radius of generated spheres (uniform distribution)
-
property
silent
¶ If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).
-
property
stopIfFailed
¶ If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
totalMass
¶ Mass of spheres that was produced so far. (auto-updated)
-
property
totalVolume
¶ Volume of spheres that was produced so far. (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vAngle
¶ Maximum angle by which the initial sphere velocity deviates from the normal.
-
property
vMax
¶ Maximum velocity norm of generated spheres (uniform distribution)
-
property
vMin
¶ Minimum velocity norm of generated spheres (uniform distribution)
-
property
-
class
yade.wrapper.
CircularFactory
(inherits SpheresFactory → GlobalEngine → Engine → Serializable)¶ Circular geometry of the SpheresFactory region. It can be disk (given by radius and center), or cylinder (given by radius, length and center).
-
property
PSDcalculateMass
¶ PSD-Input is in mass (true), otherwise the number of particles will be considered.
-
property
PSDcum
¶ PSD-dispersion, cumulative procent meanings [-]
-
property
PSDsizes
¶ PSD-dispersion, sizes of cells, Diameter [m]
-
property
blockedDOFs
¶ Blocked degress of freedom
-
property
center
¶ Center of the region
-
property
color
¶ Use the color for newly created particles, if specified
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
exactDiam
¶ If true, the particles only with the defined in PSDsizes diameters will be created. Otherwise the diameter will be randomly chosen in the range [PSDsizes[i-1]:PSDsizes[i]], in this case the length of PSDsizes should be more on 1, than the length of PSDcum.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
goalMass
¶ Total mass that should be attained at the end of the current step. (auto-updated)
-
property
ids
¶ ids of created bodies
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
length
¶ Length of the cylindrical region (0 by default)
-
property
mask
¶ groupMask to apply for newly created spheres
-
property
massFlowRate
¶ Mass flow rate [kg/s]
-
property
materialId
¶ Shared material id to use for newly created spheres (can be negative to count from the end)
-
property
maxAttempt
¶ Maximum number of attempts to position a new sphere randomly.
-
property
maxMass
¶ Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.
-
property
maxParticles
¶ The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .
-
property
normal
¶ Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.
-
property
normalVel
¶ Direction of particle’s velocites.
-
property
numParticles
¶ Cummulative number of particles produces so far (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rMax
¶ Maximum radius of generated spheres (uniform distribution)
-
property
rMin
¶ Minimum radius of generated spheres (uniform distribution)
-
property
radius
¶ Radius of the region
-
property
silent
¶ If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).
-
property
stopIfFailed
¶ If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
totalMass
¶ Mass of spheres that was produced so far. (auto-updated)
-
property
totalVolume
¶ Volume of spheres that was produced so far. (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vAngle
¶ Maximum angle by which the initial sphere velocity deviates from the normal.
-
property
vMax
¶ Maximum velocity norm of generated spheres (uniform distribution)
-
property
vMin
¶ Minimum velocity norm of generated spheres (uniform distribution)
-
property
-
class
yade.wrapper.
CohesiveFrictionalContactLaw
(inherits GlobalEngine → Engine → Serializable)¶ [DEPRECATED] Loop over interactions applying Law2_ScGeom6D_CohFrictPhys_CohesionMoment on all interactions.
Note
Use InteractionLoop and Law2_ScGeom6D_CohFrictPhys_CohesionMoment instead of this class for performance reasons.
-
property
always_use_moment_law
¶ If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts.
-
property
creep_viscosity
¶ creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys…
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
shear_creep
¶ activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
twist_creep
¶ activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ElasticContactLaw
(inherits GlobalEngine → Engine → Serializable)¶ [DEPRECATED] Loop over interactions applying Law2_ScGeom_FrictPhys_CundallStrack on all interactions.
Note
Use InteractionLoop and Law2_ScGeom_FrictPhys_CundallStrack instead of this class for performance reasons.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FEInternalForceEngine
(inherits GlobalEngine → Engine → Serializable)¶ Unified dispatcher for handling Finite Element internal force loop at every step, for parallel performance reasons.
Special constructor
Constructs from 3 lists of Ig2, Ip2, Law functors respectively; they will be passed to interal dispatchers, which you might retrieve.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
internalforcedispatcher
¶ InternalForceDispatcher object that is used for dispatching of element types.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FacetTopologyAnalyzer
(inherits GlobalEngine → Engine → Serializable)¶ Initializer for filling adjacency geometry data for facets.
Common vertices and common edges are identified and mutual angle between facet faces is written to Facet instances. If facets don’t move with respect to each other, this must be done only at the beginng.
-
property
commonEdgesFound
¶ how many common edges were identified during last run. (auto-updated)
-
property
commonVerticesFound
¶ how many common vertices were identified during last run. (auto-updated)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
projectionAxis
¶ Axis along which to do the initial vertex sort
-
property
relTolerance
¶ maximum distance of ‘identical’ vertices, relative to minimum facet size
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FoamCoupling
(inherits GlobalEngine → Engine → Serializable)¶ - An engine for coupling Yade with the finite volume fluid solver OpenFOAM in parallel.
Requirements : Yade compiled with MPI libs, OpenFOAM-6 (openfoam is not required for compilation).Yade is executed under MPI environment with OpenFOAM simultaneously, and using MPI communication routines data is exchanged between the solvers.
Yade broadcasts the particle data -> position, velocity, ang-velocity, radius to all the foam processes as in castParticle
In each foam process, particle is searched.Yade keeps a vector(cpp) of the rank of the openfoam process containing that particular particle (FoamCoupling::procList), using updateProcList
3. In simple lagrangian point force coupling Yade recieves the particle hydrodynamic force and torque from the openfoam process, the sender is identified from the vector FoamCoupling::procList. In the case of Gaussian interpolation, contribution from every process is summed using function sumHydroForce . 4. The interval (substepping) is set automatically (FoamCoupling::dataExchangeInterval) based on dtfoam/dtYade, calculated in function exchangeDeltaT
-
property
comm
¶ Communicator to be used for MPI (converts mpi4py comm <-> c++ comm)
-
property
couplingModeParallel
¶ set true if Yade-MPI is being used.
-
property
dataExchangeInterval
¶ Number of iterations/substepping : for stability and to be in sync with fluid solver calculated in exchangeDeltaT
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
eraseId
((FoamCoupling)arg1, (int)idToErase) → None :¶ remove a body from hydrodynamic force coupling
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fluidDensity
¶ fluidDensity
-
property
fluidDomains
¶ list of fluid domain bounding fictitious fluid bodies that has the fluid mesh bounds
-
property
foamDeltaT
¶ timestep in openfoam solver from exchangeDeltaT
-
getFluidDomainBbox
((FoamCoupling)arg1) → None :¶ get the fluid domain bounding boxes, called once during simulation initialization.
-
getIdList
((FoamCoupling)arg1) → object :¶ get the ids of bodies in coupling
-
getNumBodies
((FoamCoupling)arg1) → int :¶ get the number of bodies in the coupling
-
getRank
((FoamCoupling)arg1) → None :¶ Initiallize MPI communicator for coupling. Should be called at the beginning of the script. :yref: initMPI <FoamCoupling::initMPI> Initializes the MPI environment.
-
insertBodyId
((FoamCoupling)arg1, (int)newId) → None :¶ insert a new body id for hydrodynamic force coupling
-
property
isGaussianInterp
¶ switch for Gaussian interpolation of field varibles in openfoam. Uses sumHydroForce to obtain hydrodynamic force
-
killMPI
((FoamCoupling)arg1) → None :¶ Destroy MPI, to be called at the end of the simulation, from killMPI
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
numParticles
¶ number of particles in coupling.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
particleDensity
¶ particle Density
-
setIdList
((FoamCoupling)arg1, (object)bodyIdlist) → None :¶ list of body ids in hydroForce coupling. (links to :yref: FoamCoupling::bodyList vector, used to build particle data FoamCoupling::particleData. FoamCoupling::particleData contains the particle pos, vel, angvel, radius and this is sent to foam. )
-
setNumParticles
((FoamCoupling)arg1, (int)numparticles) → None :¶ number of particles in coupling
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
class
yade.wrapper.
ForceResetter
(inherits GlobalEngine → Engine → Serializable)¶ Reset all forces stored in Scene::forces (
O.forces
in python). Typically, this is the first engine to be run at every step. In addition, reset those energies that should be reset, if energy tracing is enabled.-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlobalStiffnessTimeStepper
(inherits TimeStepper → GlobalEngine → Engine → Serializable)¶ An engine assigning the time-step as a fraction of the minimum eigen-period in the problem. The derivation is detailed in the chapter on DEM formulation. The viscEl option enables to evaluate the timestep in a similar way for the visco-elastic contact law Law2_ScGeom_ViscElPhys_Basic, more detail in GlobalStiffnessTimestepper::viscEl.
-
property
active
¶ is the engine active?
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
defaultDt
¶ used as the initial value of the timestep (especially useful in the first steps when no contact exist). If negative, it will be defined by utils.PWaveTimeStep * GlobalStiffnessTimeStepper::timestepSafetyCoefficient
-
property
densityScaling
¶ (auto-updated) don’t modify this value if you don’t plan to modify the scaling factor manually for some bodies. In most cases, it is enough to set NewtonIntegrator::densityScaling and let this one be adjusted automatically.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxDt
¶ if positive, used as max value of the timestep whatever the computed value
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
parallelMode
¶ if parallelMode, dt is set to min of all subdomain dt.
-
property
previousDt
¶ last computed dt (auto-updated)
-
property
targetDt
¶ if NewtonIntegrator::densityScaling is active, this value will be used as the simulation timestep and the scaling will use this value of dt as the target value. The value of targetDt is arbitrary and should have no effect in the result in general. However if some bodies have imposed velocities, for instance, they will move more or less per each step depending on this value.
-
property
timeStepUpdateInterval
¶ dt update interval
-
property
timestepSafetyCoefficient
¶ safety factor between the minimum eigen-period and the final assigned dt (less than 1)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
viscEl
¶ To use with ViscElPhys. if True, evaluate separetly the minimum eigen-period in the problem considering only the elastic contribution on one hand (spring only), and only the viscous contribution on the other hand (dashpot only). Take then the minimum of the two and use the safety coefficient GlobalStiffnessTimestepper::timestepSafetyCoefficient to take into account the possible coupling between the two contribution.
-
property
-
class
yade.wrapper.
HydrodynamicsLawLBM
(inherits GlobalEngine → Engine → Serializable)¶ Engine to simulate fluid flow (with the lattice Boltzmann method) with a coupling with the discrete element method. If you use this Engine, please cite and refer to F. Lominé et al. International Journal For Numerical and Analytical Method in Geomechanics, 2012, doi: 10.1002/nag.1109
-
property
ConvergenceThreshold
¶
-
property
CstBodyForce
¶ A constant body force (=that does not vary in time or space, otherwise the implementation introduces errors)
-
property
DemIterLbmIterRatio
¶ Ratio between DEM and LBM iterations for subcycling
-
property
EndTime
¶ the time to stop the simulation
-
property
EngineIsActivated
¶ To activate (or not) the engine
-
property
IterMax
¶ This variable can be used to do several LBM iterations during one DEM iteration.
-
property
IterPrint
¶ Print info on screen every IterPrint iterations
-
property
IterSave
¶ Data are saved every IterSave LBM iteration (or see TimeSave)
-
property
IterSubCyclingStart
¶ Iteration number when the subcycling process starts
-
property
LBMSavedData
¶ a list of data that will be saved. Can use velocity,velXY,forces,rho,bodies,nodeBD,newNode,observedptc,observednode,contacts,spheres,bz2
-
property
Nu
¶ Fluid kinematic viscosity
-
property
Nx
¶ The number of grid division in x direction
-
property
ObservedNode
¶ The identifier of the node that will be observed (-1 means none)
-
property
ObservedPtc
¶ The identifier of the particle that will be observed (-1 means the first one)
-
property
RadFactor
¶ The radius of DEM particules seen by the LBM is the real radius of particules*RadFactor
-
property
Rho
¶ Fluid density
-
property
SaveGridRatio
¶ Grid data are saved every SaveGridRatio * IterSave LBM iteration (with SaveMode=1)
-
property
SaveMode
¶ Save Mode (1-> default, 2-> in time (not yet implemented)
-
property
TimeSave
¶ Data are saved at constant time interval (or see IterSave)
-
property
VbCutOff
¶ the minimum boundary velocity that is taken into account
-
property
VelocityThreshold
¶ Velocity threshold when removingCriterion=2
-
property
WallXm_id
¶ Identifier of the X- wall
-
property
WallXp_id
¶ Identifier of the X+ wall
-
property
WallYm_id
¶ Identifier of the Y- wall
-
property
WallYp_id
¶ Identifier of the Y+ wall
-
property
WallZm_id
¶ Identifier of the Z- wall
-
property
WallZp_id
¶ Identifier of the Z+ wall
-
property
XmBCType
¶ Boundary condition for the wall in Xm (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
XmBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
XmBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
XmYmZmBCType
¶ Boundary condition for the corner node XmYmZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).
-
property
XmYmZpBCType
¶ Boundary condition for the corner node XmYmZp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
XmYpZmBCType
¶ Boundary condition for the corner node XmYpZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).
-
property
XmYpZpBCType
¶ Boundary condition for the corner node XmYpZp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
XpBCType
¶ Boundary condition for the wall in Xp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
XpBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
XpBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
XpYmZmBCType
¶ Boundary condition for the corner node XpYmZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).
-
property
XpYmZpBCType
¶ Boundary condition for the corner node XpYmZp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
XpYpZmBCType
¶ Boundary condition for the corner node XpYpZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).
-
property
XpYpZpBCType
¶ Boundary condition for the corner node XpYpZp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
YmBCType
¶ Boundary condition for the wall in Ym (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
YmBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
YmBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
YpBCType
¶ Boundary condition for the wall in Yp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
YpBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
YpBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
ZmBCType
¶ Boundary condition for the wall in Zm (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
ZmBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
ZmBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
ZpBCType
¶ Boundary condition for the wall in Zp (-1: unused, 1: pressure condition, 2: velocity condition).
-
property
ZpBcVel
¶ (!!! not fully implemented !!) The velocity imposed at the boundary
-
property
applyForcesAndTorques
¶ Switch to apply forces and torques
-
property
bc
¶ Boundary condition
-
property
dP
¶ Pressure difference between input and output
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
defaultLbmInitMode
¶ Switch between the two initialisation methods
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
model
¶ The LB model. Until now only d2q9 is implemented
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
periodicity
¶ periodicity
-
property
removingCriterion
¶ Criterion to remove a sphere (1->based on particle position, 2->based on particle velocity
-
property
tau
¶ Relaxation time
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useWallXm
¶ Set true if you want that the LBM see the wall in Xm
-
property
useWallXp
¶ Set true if you want that the LBM see the wall in Xp
-
property
useWallYm
¶ Set true if you want that the LBM see the wall in Ym
-
property
useWallYp
¶ Set true if you want that the LBM see the wall in Yp
-
property
useWallZm
¶ Set true if you want that the LBM see the wall in Zm
-
property
useWallZp
¶ Set true if you want that the LBM see the wall in Zp
-
property
zpBcRho
¶ (!!! not fully implemented !!) The density imposed at the boundary
-
property
-
class
yade.wrapper.
Integrator
(inherits TimeStepper → GlobalEngine → Engine → Serializable)¶ Integration Engine Interface.
-
property
active
¶ is the engine active?
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
integrationsteps
¶ all integrationsteps count as all succesfull substeps
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxVelocitySq
¶ store square of max. velocity, for informative purposes; computed again at every step. (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
slaves
¶ List of lists of Engines to calculate the force acting on the particles; to obtain the derivatives of the states, engines inside will be run sequentially.
-
property
timeStepUpdateInterval
¶ dt update interval
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
InteractionLoop
(inherits GlobalEngine → Engine → Serializable)¶ Unified dispatcher for handling interaction loop at every step, for parallel performance reasons.
Special constructor
Constructs from 3 lists of Ig2, Ip2, Law2 functors respectively; they will be passed to internal dispatchers, which you might retrieve as geomDispatcher, physDispatcher, lawDispatcher respectively.
-
property
callbacks
¶ Callbacks which will be called for every Interaction, if activated.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
geomDispatcher
¶ IGeomDispatcher object that is used for dispatch.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
lawDispatcher
¶ LawDispatcher object used for dispatch.
-
property
loopOnSortedInteractions
¶ If true, the main interaction loop will occur on a sorted list of interactions. This is SLOW but useful to workaround floating point force addition non reproducibility when debugging parallel implementations of yade.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
physDispatcher
¶ IPhysDispatcher object used for dispatch.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_CapillaryPhys_Capillarity
(inherits GlobalEngine → Engine → Serializable)¶ This law allows one to take into account capillary forces/effects between spheres coming from the presence of interparticular liquid bridges (menisci).
The control parameter is the capillary pressure (or suction) Uc = Ugas - Uliquid. Liquid bridges properties (volume V, extent over interacting grains delta1 and delta2) are computed as a result of the defined capillary pressure and of the interacting geometry (spheres radii and interparticular distance).
References: in english [Scholtes2009b]; more detailed, but in french [Scholtes2009d].
The law needs ascii files M(r=i) with i=R1/R2 to work (see https://yade-dem.org/wiki/CapillaryTriaxialTest). These ASCII files contain a set of results from the resolution of the Laplace-Young equation for different configurations of the interacting geometry, assuming a null wetting angle.
In order to allow capillary forces between distant spheres, it is necessary to enlarge the bounding boxes using Bo1_Sphere_Aabb::aabbEnlargeFactor and make the Ig2 define define distant interactions via interactionDetectionFactor. It is also necessary to disable interactions removal by the constitutive law (Law2). The only combinations of laws supported are currently capillary law + Law2_ScGeom_FrictPhys_CundallStrack and capillary law + Law2_ScGeom_MindlinPhys_Mindlin (and the other variants of Hertz-Mindlin).
See CapillaryPhys-example.py for an example script.
-
property
binaryFusion
¶ If true, capillary forces are set to zero as soon as, at least, 1 overlap (menisci fusion) is detected. Otherwise fCap = fCap / (fusionNumber + 1 )
-
property
capillaryPressure
¶ Value of the capillary pressure Uc defined as Uc=Ugas-Uliquid
-
property
createDistantMeniscii
¶ Generate meniscii between distant spheres? Else only maintain the existing ones. For modeling a wetting path this flag should always be false. For a drying path it should be true for one step (initialization) then false, as in the logic of [Scholtes2009c]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fusionDetection
¶ If true potential menisci overlaps are checked, computing fusionNumber for each capillary interaction, and reducing fCap according to binaryFusion
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
suffCapFiles
¶ Capillary files suffix: M(r=X)suffCapFiles
-
property
surfaceTension
¶ Value of considered surface tension
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
MicroMacroAnalyser
(inherits GlobalEngine → Engine → Serializable)¶ compute fabric tensor, local porosity, local deformation, and other micromechanicaly defined quantities based on triangulation/tesselation of the packing.
-
property
compDeformation
¶ Is the engine just saving states or also computing and outputing deformations for each increment?
-
property
compIncrt
¶ Should increments of force and displacements be defined on [n,n+1]? If not, states will be saved with only positions and forces (no displacements).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
incrtNumber
¶
-
property
interval
¶ Number of timesteps between analyzed states.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nonSphereAsFictious
¶ bodies that are not spheres will be used to defines bounds (else just skipped).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
outputFile
¶ Base name for increment analysis output file.
-
property
stateFileName
¶ Base name of state files.
-
property
stateNumber
¶ A number incremented and appended at the end of output files to reflect increment number.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
NewtonIntegrator
(inherits GlobalEngine → Engine → Serializable)¶ Engine integrating newtonian motion equations.
-
property
damping
¶ damping coefficient for Cundall’s non viscous damping (see Numerical damping and [Chareyre2005])
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
densityScaling
¶ if True, then density scaling [Pfc3dManual30] will be applied in order to have a critical timestep equal to GlobalStiffnessTimeStepper::targetDt for all bodies. This option makes the simulation unrealistic from a dynamic point of view, but may speedup quasistatic simulations. In rare situations, it could be useful to not set the scalling factor automatically for each body (which the time-stepper does). In such case revert GlobalStiffnessTimeStepper.densityScaling to False.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
exactAsphericalRot
¶ Enable more exact body rotation integrator for aspherical bodies only, using formulation from [Allen1989], pg. 89.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
gravity
¶ Gravitational acceleration (effectively replaces GravityEngine).
-
property
kinSplit
¶ Whether to separately track translational and rotational kinetic energy.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined and the bitwise AND between mask and body`s groupMask gives 0, the body will not move/rotate. Velocities and accelerations will be calculated not paying attention to this parameter.
-
property
maxVelocitySq
¶ stores max. displacement, based on which we trigger collision detection. (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
prevVelGrad
¶ Store previous velocity gradient (Cell::velGrad) to track acceleration. (auto-updated)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
warnNoForceReset
¶ Warn when forces were not resetted in this step by ForceResetter; this mostly points to ForceResetter being forgotten incidentally and should be disabled only with a good reason.
-
property
-
class
yade.wrapper.
RungeKuttaCashKarp54Integrator
(inherits Integrator → TimeStepper → GlobalEngine → Engine → Serializable)¶ RungeKuttaCashKarp54Integrator engine.
-
__init__
((object)arg1) → None¶ object __init__(tuple args, dict kwds)
- __init__( (object)arg1, (list)arg2) -> object :
Construct from (possibly nested) list of slaves.
-
property
a_dxdt
¶
-
property
a_x
¶
-
property
abs_err
¶ Relative integration tolerance
-
property
active
¶ is the engine active?
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
integrationsteps
¶ all integrationsteps count as all succesfull substeps
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxVelocitySq
¶ store square of max. velocity, for informative purposes; computed again at every step. (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rel_err
¶ Absolute integration tolerance
-
property
slaves
¶ List of lists of Engines to calculate the force acting on the particles; to obtain the derivatives of the states, engines inside will be run sequentially.
-
property
stepsize
¶ It is not important for an adaptive integration but important for the observer for setting the found states after integration
-
property
timeStepUpdateInterval
¶ dt update interval
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
SpheresFactory
(inherits GlobalEngine → Engine → Serializable)¶ Engine for spitting spheres based on mass flow rate, particle size distribution etc. Initial velocity of particles is given by vMin, vMax, the massFlowRate determines how many particles to generate at each step. When goalMass is attained or positive maxParticles is reached, the engine does not produce particles anymore. Geometry of the region should be defined in a derived engine by overridden SpheresFactory::pickRandomPosition().
A sample script for this engine is in scripts/spheresFactory.py.
-
property
PSDcalculateMass
¶ PSD-Input is in mass (true), otherwise the number of particles will be considered.
-
property
PSDcum
¶ PSD-dispersion, cumulative procent meanings [-]
-
property
PSDsizes
¶ PSD-dispersion, sizes of cells, Diameter [m]
-
property
blockedDOFs
¶ Blocked degress of freedom
-
property
color
¶ Use the color for newly created particles, if specified
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
exactDiam
¶ If true, the particles only with the defined in PSDsizes diameters will be created. Otherwise the diameter will be randomly chosen in the range [PSDsizes[i-1]:PSDsizes[i]], in this case the length of PSDsizes should be more on 1, than the length of PSDcum.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
goalMass
¶ Total mass that should be attained at the end of the current step. (auto-updated)
-
property
ids
¶ ids of created bodies
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ groupMask to apply for newly created spheres
-
property
massFlowRate
¶ Mass flow rate [kg/s]
-
property
materialId
¶ Shared material id to use for newly created spheres (can be negative to count from the end)
-
property
maxAttempt
¶ Maximum number of attempts to position a new sphere randomly.
-
property
maxMass
¶ Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.
-
property
maxParticles
¶ The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .
-
property
normal
¶ Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.
-
property
normalVel
¶ Direction of particle’s velocites.
-
property
numParticles
¶ Cummulative number of particles produces so far (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rMax
¶ Maximum radius of generated spheres (uniform distribution)
-
property
rMin
¶ Minimum radius of generated spheres (uniform distribution)
-
property
silent
¶ If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).
-
property
stopIfFailed
¶ If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
totalMass
¶ Mass of spheres that was produced so far. (auto-updated)
-
property
totalVolume
¶ Volume of spheres that was produced so far. (auto-updated)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vAngle
¶ Maximum angle by which the initial sphere velocity deviates from the normal.
-
property
vMax
¶ Maximum velocity norm of generated spheres (uniform distribution)
-
property
vMin
¶ Minimum velocity norm of generated spheres (uniform distribution)
-
property
-
class
yade.wrapper.
TesselationWrapper
(inherits GlobalEngine → Engine → Serializable)¶ Handle the triangulation of spheres in a scene, build tesselation on request, and give access to computed quantities (see also the dedicated section in user manual). The calculation of microstrain is explained in [Catalano2014a]
See example usage in script example/tesselationWrapper/tesselationWrapper.py.
Below is an output of the defToVtk function visualized with paraview (in this case Yade’s TesselationWrapper was used to process experimental data obtained on sand by Edward Ando at Grenoble University, 3SR lab.)
-
computeDeformations
((TesselationWrapper)arg1) → None :¶ compute per-particle deformation. Get it with TesselationWrapper::deformation (id,i,j).
-
computeVolumes
((TesselationWrapper)arg1) → None :¶ compute volumes of all Voronoi’s cells.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
defToVtk
((TesselationWrapper)arg1[, (str)outputFile='def.vtk']) → None :¶ Write local deformations in vtk format from states 0 and 1.
-
defToVtkFromPositions
((TesselationWrapper)arg1[, (str)input1='pos1'[, (str)input2='pos2'[, (str)outputFile='def.vtk'[, (bool)bz2=False]]]]) → None :¶ Write local deformations in vtk format from positions files (one sphere per line, with x,y,z,rad separated by spaces).
-
defToVtkFromStates
((TesselationWrapper)arg1[, (str)input1='state1'[, (str)input2='state2'[, (str)outputFile='def.vtk'[, (bool)bz2=True]]]]) → None :¶ Write local deformations in vtk format from state files (since the file format is very special, consider using defToVtkFromPositions if the input files were not generated by TesselationWrapper).
-
deformation
((TesselationWrapper)arg1, (int)id, (int)i, (int)j) → float :¶ Get particle deformation
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
far
¶ Defines the radius of the large virtual spheres used to define nearly flat boundaries around the assembly. The radius will be the (scene’s) bounding box size multiplied by ‘far’. Higher values will minimize the error theoretically (since the infinite sphere really defines a plane), but it may increase numerical errors at some point. The default should give a resonable compromize.
-
getVolPoroDef
((TesselationWrapper)arg1[, (bool)deformation=False]) → dict :¶ Return a table with per-sphere computed quantities. Include deformations on the increment defined by states 0 and 1 if deformation=True (make sure to define states 0 and 1 consistently).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
loadState
((TesselationWrapper)arg1[, (str)inputFile='state'[, (bool)state=0[, (bool)bz2=True]]]) → None :¶ Load a file with positions to define state 0 or 1.
-
property
n_spheres
¶ (auto-computed)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
saveState
((TesselationWrapper)arg1[, (str)outputFile='state'[, (bool)state=0[, (bool)bz2=True]]]) → None :¶ Save a file with positions, can be later reloaded in order to define state 0 or 1.
-
setState
((TesselationWrapper)arg1[, (bool)state=0]) → None :¶ Make the current state of the simulation the initial (0) or final (1) configuration for the definition of displacement increments, use only state=0 if you just want to get volmumes and porosity.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
triangulate
((TesselationWrapper)arg1[, (bool)reset=True]) → None :¶ triangulate spheres of the packing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
volume
((TesselationWrapper)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
-
class
yade.wrapper.
TetraVolumetricLaw
(inherits GlobalEngine → Engine → Serializable)¶ Calculate physical response of 2 tetrahedra in interaction, based on penetration configuration given by TTetraGeom.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
TimeStepper
(inherits GlobalEngine → Engine → Serializable)¶ Engine defining time-step (fundamental class)
-
property
active
¶ is the engine active?
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timeStepUpdateInterval
¶ dt update interval
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
PeriodicEngine¶
![digraph PeriodicEngine {
rankdir=RL;
margin="0.2,0.05";
"PeriodicEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PeriodicEngine"];
"TorqueRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TorqueRecorder"];
"TorqueRecorder" -> "Recorder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SnapshotEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SnapshotEngine"];
"SnapshotEngine" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PotentialParticleVTKRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PotentialParticleVTKRecorder"];
"PotentialParticleVTKRecorder" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ForceRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ForceRecorder"];
"ForceRecorder" -> "Recorder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LubricationPDFEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LubricationPDFEngine"];
"LubricationPDFEngine" -> "PDFEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PDFEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PDFEngine"];
"PDFEngine" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Recorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Recorder"];
"Recorder" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"VTKRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.VTKRecorder"];
"VTKRecorder" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SplitPolyTauMax" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SplitPolyTauMax"];
"SplitPolyTauMax" -> "PolyhedraSplitter" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SplitPolyMohrCoulomb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SplitPolyMohrCoulomb"];
"SplitPolyMohrCoulomb" -> "PolyhedraSplitter" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PolyhedraSplitter" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PolyhedraSplitter"];
"PolyhedraSplitter" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ResetRandomPosition" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ResetRandomPosition"];
"ResetRandomPosition" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"MeasureCapStress" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.MeasureCapStress"];
"MeasureCapStress" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CapillaryStressRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CapillaryStressRecorder"];
"CapillaryStressRecorder" -> "Recorder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TriaxialStateRecorder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TriaxialStateRecorder"];
"TriaxialStateRecorder" -> "Recorder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CpmStateUpdater" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CpmStateUpdater"];
"CpmStateUpdater" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PyRunner" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PyRunner"];
"PyRunner" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"DomainLimiter" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.DomainLimiter"];
"DomainLimiter" -> "PeriodicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-4f8ae1c396952a53759b5f9ba9e577e4eb0a3c11.png)
Inheritance graph of PeriodicEngine.¶
-
class
yade.wrapper.
PeriodicEngine
(inherits GlobalEngine → Engine → Serializable)¶ Run Engine::action with given fixed periodicity real time (=wall clock time, computation time), virtual time (simulation time), iteration number), by setting any of those criteria (virtPeriod, realPeriod, iterPeriod) to a positive value. They are all negative (inactive) by default.
The number of times this engine is activated can be limited by setting nDo>0. If the number of activations will have been already reached, no action will be called even if an active period has elapsed.
If initRun is set (false by default), the engine will run when called for the first time; otherwise it will only start counting period (realLast, etc, interval variables) from that point, but without actually running, and will run only once a period has elapsed since the initial run.
This class should not be used directly; rather, derive your own engine which you want to be run periodically.
Derived engines should override Engine::action(), which will be called periodically. If the derived Engine overrides also Engine::isActivated, it should also take in account return value from PeriodicEngine::isActivated, since otherwise the periodicity will not be functional.
Example with PyRunner, which derives from PeriodicEngine; likely to be encountered in python scripts:
PyRunner(realPeriod=5,iterPeriod=10000,command='print O.iter')
will print iteration number every 10000 iterations or every 5 seconds of wall clock time, whichever comes first since it was last run.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
CapillaryStressRecorder
(inherits Recorder → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Records information from capillary meniscii on samples submitted to triaxial compressions. Classical sign convention (tension positiv) is used for capillary stresses. -> New formalism needs to be tested!!!
-
property
addIterNum
¶ Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
file
¶ Name of file to save to; must not be empty.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
truncate
¶ Whether to delete current file contents, if any, when opening (false by default)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
CpmStateUpdater
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Update CpmState of bodies based on state variables in CpmPhys of interactions with this bod. In particular, bodies’ colors and CpmState::normDmg depending on average damage of their interactions and number of interactions that were already fully broken and have disappeared is updated. This engine contains its own loop (2 loops, more precisely) over all bodies and should be run periodically to update colors during the simulation, if desired.
-
property
avgRelResidual
¶ Average residual strength at last run.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxOmega
¶ Globally maximum damage parameter at last run.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
DomainLimiter
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Delete particles that are out of axis-aligned box given by lo and hi.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
hi
¶ Upper corner of the domain.
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
lo
¶ Lower corner of the domain.
-
property
mDeleted
¶ Mass of deleted particles.
-
property
mask
¶ If mask is defined, only particles with corresponding groupMask will be deleted.
-
property
nDeleted
¶ Cummulative number of particles deleted.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
ForceRecorder
(inherits Recorder → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine saves the resultant force affecting to bodies, listed in ids. For instance, can be useful for defining the forces, which affects to _buldozer_ during its work.
-
property
addIterNum
¶ Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
file
¶ Name of file to save to; must not be empty.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
ids
¶ List of bodies whose state will be measured
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
totalForce
¶ Resultant force, returning by the function.
-
property
truncate
¶ Whether to delete current file contents, if any, when opening (false by default)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
LubricationPDFEngine
(inherits PDFEngine → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Implementation of PDFEngine for Lubrication law
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
filename
¶ Filename
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
numDiscretizeAnglePhi
¶ Number of sector for phi-angle
-
property
numDiscretizeAngleTheta
¶ Number of sector for theta-angle
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
warnedOnce
¶ For one-time warning. May trigger usefull warnings
-
property
-
class
yade.wrapper.
MeasureCapStress
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Post-processing engine giving the capillary stress tensor (the fluids mixture contribution to the total stress in unsaturated, i.e. triphasic, conditions) according to the \(\mu\)UNSAT expression detailled in [Duriez2017c]. Although this expression differs in nature from the one of utils.getCapillaryStress (consideration of distributed integrals herein, vs resultant capillary force therein), both are equivalent [Duriez2016b], [Duriez2017], [Duriez2017c]. The REV volume \(V\) entering the expression is automatically measured, from the Cell for periodic conditions, or from utils.aabbExtrema function otherwise.
-
property
capillaryPressure
¶ Capillary pressure \(u_c\), to be defined equal to Law2_ScGeom_CapillaryPhys_Capillarity.capillaryPressure.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ To output some debugging messages.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
muGamma
¶ Tensorial contribution to sigmaCap from the contact lines \(\Gamma\): \(\boldsymbol{\mu_{\Gamma}} = \int_{\Gamma} \vec \nu_{nw} \otimes \vec x \, dl\) with \(\vec \nu_{nw}\) the fluid-fluid interface conormal [Duriez2017c], and \(\vec x\) the position. (auto-updated)
-
property
muSnw
¶ Tensorial contribution to sigmaCap from the wetting/non-wetting (e.g. liquid/gas) interface \(S{nw}\): \(\boldsymbol{\mu_{Snw}} = \int_{Snw} (\boldsymbol \delta - \vec n \otimes \vec n) dS\) with \(\vec n\) the outward normal and \(\boldsymbol{\delta}\) the identity tensor. (auto-updated)
-
property
muSsw
¶ Tensorial contribution to sigmaCap from the wetted solid surfaces \(Ssw\): \(\boldsymbol{\mu_{Ssw}} = \int_{Ssw} \vec n \otimes \vec x dS\) with \(\vec n\) the outward normal and \(\vec x\) the position. (auto-updated)
-
property
muVw
¶ Tensorial contribution (spherical i.e. isotropic) to sigmaCap from the wetting fluid volume: \(\boldsymbol{\mu_{Vw}} = V_w \, \boldsymbol{\delta}\) with \(V_w =\) vW and \(\boldsymbol{\delta}\) the identity tensor. (auto-updated)
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
sigmaCap
¶ The capillary stress tensor \(\boldsymbol{\sigma^{cap}}\) itself, expressed as \(\boldsymbol{\sigma^{cap}} = 1/V \, [ u_c (\boldsymbol{\mu_{Vw}} + \boldsymbol{\mu_{Ssw}}) + \gamma_{nw} (\boldsymbol{\mu_{Snw}} + \boldsymbol{\mu_{\Gamma}}) ]\) where the four microstructure tensors \(\boldsymbol{\mu_{Vw}}, \boldsymbol{\mu_{Ssw}}, \boldsymbol{\mu_{Snw}}, \boldsymbol{\mu_{\Gamma}}\) correspond to muVw, muSsw, muSnw and muGamma attributes. (auto-updated)
-
property
surfaceTension
¶ Fluid-fluid surface tension \(\gamma_{nw}\), to be defined equal to Law2_ScGeom_CapillaryPhys_Capillarity.surfaceTension.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vW
¶ Wetting fluid volume, summing menisci volumes (faster here than through python loops). (auto-updated)
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
wettAngle
¶ Wetting, i.e. contact, angle value (radians). To be defined consistently with the value upon which the capillary files (used by Law2_ScGeom_CapillaryPhys_Capillarity) rely.
-
property
-
class
yade.wrapper.
PDFEngine
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Base class for spectrums calculations. Compute Probability Density Functions of normalStress, shearStress, distance, velocity and interactions in spherical coordinates and write result to a file. Column name format is: Data(theta, phi). Convention used: x: phi = 0, y: theta = 0, z: phi = pi/2
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
filename
¶ Filename
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
numDiscretizeAnglePhi
¶ Number of sector for phi-angle
-
property
numDiscretizeAngleTheta
¶ Number of sector for theta-angle
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
warnedOnce
¶ For one-time warning. May trigger usefull warnings
-
property
-
class
yade.wrapper.
PolyhedraSplitter
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine that splits polyhedras.
Warning
PolyhedraSplitter returns different results depending on CGAL version! For details see https://gitlab.com/yade-dev/trunk/issues/45
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
PotentialParticleVTKRecorder
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine recording potential blocks as surfaces into files with given periodicity.
-
property
REC_COLORS
¶ Whether to record colors
-
property
REC_ID
¶ Whether to record id
-
property
REC_INTERACTION
¶ Whether to record contact point and forces
-
property
REC_VELOCITY
¶ Whether to record velocity
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fileName
¶ File prefix to save to
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxDimension
¶ Maximum allowed distance between consecutive grid lines
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
sampleX
¶ Number of divisions in the X direction for triangulation
-
property
sampleY
¶ Number of divisions in the Y direction for triangulation
-
property
sampleZ
¶ Number of divisions in the Z direction for triangulation
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
twoDimension
¶ Whether to render the particles as 2-D
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
PyRunner
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Execute a python command periodically, with defined (and adjustable) periodicity. See PeriodicEngine documentation for details.
-
property
command
¶ Command to be run by python interpreter. Not run if empty.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
Recorder
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine periodically storing some data to (one) external file. In addition PeriodicEngine, it handles opening the file as needed. See PeriodicEngine for controlling periodicity.
-
property
addIterNum
¶ Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
file
¶ Name of file to save to; must not be empty.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
truncate
¶ Whether to delete current file contents, if any, when opening (false by default)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
ResetRandomPosition
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Creates spheres during simulation, placing them at random positions. Every time called, one new sphere will be created and inserted in the simulation.
-
property
angularVelocity
¶ Mean angularVelocity of spheres.
-
property
angularVelocityRange
¶ Half size of a angularVelocity distribution interval. New sphere will have random angularVelocity within the range angularVelocity±angularVelocityRange.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
factoryFacets
¶ The geometry of the section where spheres will be placed; they will be placed on facets or in volume between them depending on volumeSection flag.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxAttempts
¶ Max attempts to place sphere. If placing the sphere in certain random position would cause an overlap with any other physical body in the model, SpheresFactory will try to find another position.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
normal
¶ ??
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
point
¶ ??
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
subscribedBodies
¶ Affected bodies.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
velocity
¶ Mean velocity of spheres.
-
property
velocityRange
¶ Half size of a velocities distribution interval. New sphere will have random velocity within the range velocity±velocityRange.
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
volumeSection
¶ Create new spheres inside factory volume rather than on its surface.
-
property
-
class
yade.wrapper.
SnapshotEngine
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Periodically save snapshots of GLView(s) as .png files. Files are named fileBase + counter + ‘.png’ (counter is left-padded by 0s, i.e. snap00004.png).
-
property
counter
¶ Number that will be appended to fileBase when the next snapshot is saved (incremented at every save). (auto-updated)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
deadTimeout
¶ Timeout for 3d operations (opening new view, saving snapshot); after timing out, throw exception (or only report error if ignoreErrors) and make myself dead. [s]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fileBase
¶ Basename for snapshots
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
format
¶ Format of snapshots (one of JPEG, PNG, EPS, PS, PPM, BMP) QGLViewer documentation. File extension will be lowercased format. Validity of format is not checked.
-
property
ignoreErrors
¶ Only report errors instead of throwing exceptions, in case of timeouts.
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
msecSleep
¶ number of msec to sleep after snapshot (to prevent 3d hw problems) [ms]
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
plot
¶ Name of field in plot.imgData to which taken snapshots will be appended automatically.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
snapshots
¶ Files that have been created so far
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
SplitPolyMohrCoulomb
(inherits PolyhedraSplitter → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Split polyhedra according to Mohr-Coulomb criterion.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fileName
¶ Base.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
SplitPolyTauMax
(inherits PolyhedraSplitter → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Split polyhedra along TauMax.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
TorqueRecorder
(inherits Recorder → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine saves the total torque according to the given axis and ZeroPoint, the force is taken from bodies, listed in ids For instance, can be useful for defining the torque, which affects on ball mill during its work.
-
property
addIterNum
¶ Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
file
¶ Name of file to save to; must not be empty.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
ids
¶ List of bodies whose state will be measured
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
rotationAxis
¶ Rotation axis
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
totalTorque
¶ Resultant torque, returning by the function.
-
property
truncate
¶ Whether to delete current file contents, if any, when opening (false by default)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
zeroPoint
¶ Point of rotation center
-
property
-
class
yade.wrapper.
TriaxialStateRecorder
(inherits Recorder → PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine recording triaxial variables (see the variables list in the first line of the output file). This recorder needs TriaxialCompressionEngine or ThreeDTriaxialEngine present in the simulation).
-
property
addIterNum
¶ Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
file
¶ Name of file to save to; must not be empty.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
porosity
¶ porosity of the packing [-]
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
truncate
¶ Whether to delete current file contents, if any, when opening (false by default)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
-
class
yade.wrapper.
VTKRecorder
(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶ Engine recording snapshots of simulation into series of *.vtu files, readable by VTK-based postprocessing programs such as Paraview. Both bodies (spheres and facets) and interactions can be recorded, with various vector/scalar quantities that are defined on them.
PeriodicEngine.initRun is initialized to
True
automatically.-
property
Key
¶ Necessary if recorders contains ‘cracks’ or ‘moments’. A string specifying the name of file ‘cracks___.txt’ that is considered in this case (see corresponding attribute).
-
property
ascii
¶ Store data as readable text in the XML file (sets vtkXMLWriter data mode to
vtkXMLWriter::Ascii
, while the default isAppended
)
-
property
compress
¶ Compress output XML files [experimental].
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fileName
¶ Base file name; it will be appended with {spheres,intrs,facets}-243100.vtu (unless multiblock is
True
) depending on active recorders and step number (243100 in this case). It can contain slashes, but the directory must exist already.
-
property
firstIterRun
¶ Sets the step number, at each an engine should be executed for the first time (disabled by default).
-
property
initRun
¶ Run the first time we are called as well.
-
property
iterLast
¶ Tracks step number of last run (auto-updated).
-
property
iterPeriod
¶ Periodicity criterion using step number (deactivated if <= 0)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be exported. If 0, all bodies will be exported.
-
property
multiblock
¶ Use multi-block (
.vtm
) files to store data, rather than separate.vtu
files.
-
property
nDo
¶ Limit number of executions by this number (deactivated if negative)
-
property
nDone
¶ Track number of executions (cummulative) (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
parallelMode
¶ For MPI parallel runs, each proc writes their own vtu/vtp files. Master proc writes a pvtu/pvtp file containing metadata about worker vtu files. load the pvtu/pvtp in paraview for visualization.
-
property
realLast
¶ Tracks real time of last run (auto-updated).
-
property
realPeriod
¶ Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
-
property
recorders
¶ List of active recorders (as strings).
all
(the default value) enables all base and generic recorders.Base recorders
Base recorders save the geometry (unstructured grids) on which other data is defined. They are implicitly activated by many of the other recorders. Each of them creates a new file (or a block, if multiblock is set).
spheres
Saves positions and radii (
radii
) of spherical particles.facets
Save facets positions (vertices).
boxes
Save boxes positions (edges).
intr
Store interactions as lines between nodes at respective particles positions. Additionally stores magnitude of normal (
forceN
) and shear (absForceT
) forces on interactions (the geom).
Generic recorders
Generic recorders do not depend on specific model being used and save commonly useful data.
id
Saves id’s (field
id
) of spheres; active only ifspheres
is active.mass
Saves masses (field
mass
) of spheres; active only ifspheres
is active.clumpId
Saves id’s of clumps to which each sphere belongs (field
clumpId
); active only ifspheres
is active.colors
Saves colors of spheres and of facets (field
color
); only active ifspheres
orfacets
are activated.mask
Saves groupMasks of spheres and of facets (field
mask
); only active ifspheres
orfacets
are activated.materialId
Saves materialID of spheres and of facets; only active if
spheres
orfacets
are activated.coordNumber
Saves coordination number (number of neighbours) of spheres and of facets; only active if
spheres
orfacets
are activated.velocity
Saves linear and angular velocities of spherical particles as Vector3 and length(fields
linVelVec
,linVelLen
andangVelVec
,angVelLen
respectively``); only effective withspheres
.stress
Saves stresses of spheres and of facets as Vector3 and length; only active if
spheres
orfacets
are activated.force
Saves force and torque of spheres, facets and boxes as Vector3 and length (norm); only active if
spheres
,facets
orboxes
are activated.pericell
Saves the shape of the cell (simulation has to be periodic).
bstresses
Considering the per-particle stress tensors as given by bodyStressTensors, saves the per-particle principal stresses, sigI (most tensile) \(\\geq\) sigII \(\\geq\) sigIII (most compressive), and the associated principal directions dirI, dirII, dirIII.
Specific recorders
The following should only be activated in when appropriate engines/contact laws are in use, otherwise crashes can occur due to violation of type presuppositions.
cpm
Saves data pertaining to the concrete model:
cpmDamage
(normalized residual strength averaged on particle),cpmStress
(stress on particle);intr
is activated automatically bycpm
wpm
Saves data pertaining to the wire particle model:
wpmForceNFactor
shows the loading factor for the wire, e.g. normal force divided by threshold normal force.jcfpm
Saves data pertaining to the rock (smooth)-jointed model:
damage
is defined by JCFpmState.tensBreak + JCFpmState.shearBreak;intr
is activated automatically byjcfpm
, and on joint or cohesive interactions can be vizualized.cracks
Saves other data pertaining to the rock model:
cracks
shows locations where cohesive bonds failed during the simulation, with their types (0/1 for tensile/shear breakages), their sizes (0.5*(R1+R2)), and their normal directions. The corresponding attribute has to be activated, and Key attributes have to be consistent.moments
Saves data pertaining to the required corresponding attribute:yref:acoustic emissions model<Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM.recordMoments>:
moments
shows locations of acoustic emissions, the number of broken bonds comprising the acoustic emission, the magnitude.thermal
Saves temperature of bodies computed using Yade’s ThermalEngine.
liquid
Saves the liquid volume associated with capillary models.
cohfrict
Saves interaction information associated with the cohesive frictional model, including isBroken, unp, and breakType.
SPH
Saves sphere information associated with Yade’s SPH module.
deform
Saves interaction information associated with Yade’s deformation module.
lubrication
Saves lubrications stress from LubricationPhys.
spheres
must be active.
-
property
skipFacetIntr
¶ Skip interactions that are not of sphere-sphere type (e.g. sphere-facet, sphere-box…), when saving interactions
-
property
skipNondynamic
¶ Skip non-dynamic spheres (but not facets).
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
virtLast
¶ Tracks virtual time of last run (auto-updated).
-
property
virtPeriod
¶ Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
-
property
BoundaryController¶
![digraph BoundaryController {
rankdir=RL;
margin="0.2,0.05";
"BoundaryController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BoundaryController"];
"KinemCNLEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinemCNLEngine"];
"KinemCNLEngine" -> "KinemSimpleShearBox" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KinemCNSEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinemCNSEngine"];
"KinemCNSEngine" -> "KinemSimpleShearBox" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KinemSimpleShearBox" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinemSimpleShearBox"];
"KinemSimpleShearBox" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PeriTriaxController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PeriTriaxController"];
"PeriTriaxController" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Peri3dController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Peri3dController"];
"Peri3dController" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KinemCTDEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinemCTDEngine"];
"KinemCTDEngine" -> "KinemSimpleShearBox" [arrowsize=0.5,style="setlinewidth(0.5)"];
"UniaxialStrainer" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.UniaxialStrainer"];
"UniaxialStrainer" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KinemCNDEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinemCNDEngine"];
"KinemCNDEngine" -> "KinemSimpleShearBox" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Disp2DPropLoadEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Disp2DPropLoadEngine"];
"Disp2DPropLoadEngine" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TriaxialStressController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TriaxialStressController"];
"TriaxialStressController" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PeriIsoCompressor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PeriIsoCompressor"];
"PeriIsoCompressor" -> "BoundaryController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ThreeDTriaxialEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ThreeDTriaxialEngine"];
"ThreeDTriaxialEngine" -> "TriaxialStressController" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TriaxialCompressionEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TriaxialCompressionEngine"];
"TriaxialCompressionEngine" -> "TriaxialStressController" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-c7df0776b76225c973f4c052ed073a976ba413b2.png)
Inheritance graph of BoundaryController.¶
-
class
yade.wrapper.
BoundaryController
(inherits GlobalEngine → Engine → Serializable)¶ Base for engines controlling boundary conditions of simulations. Not to be used directly.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Disp2DPropLoadEngine
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ Disturbs a simple shear sample in a given displacement direction
This engine allows one to apply, on a simple shear sample, a loading controlled by du/dgamma = cste, which is equivalent to du + cste’ * dgamma = 0 (proportionnal path loadings). To do so, the upper plate of the simple shear box is moved in a given direction (corresponding to a given du/dgamma), whereas lateral plates are moved so that the box remains closed. This engine can easily be used to perform directionnal probes, with a python script launching successivly the same .xml which contains this engine, after having modified the direction of loading (see theta attribute). That’s why this Engine contains a saveData procedure which can save data on the state of the sample at the end of the loading (in case of successive loadings - for successive directions - through a python script, each line would correspond to one direction of loading).
-
property
Key
¶ string to add at the names of the saved files, and of the output file filled by saveData
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nbre_iter
¶ the number of iterations of loading to perform
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
theta
¶ the angle, in a (gamma,h=-u) plane from the gamma - axis to the perturbation vector (trigo wise) [degrees]
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
v
¶ the speed at which the perturbation is imposed. In case of samples which are more sensitive to normal loadings than tangential ones, one possibility is to take v = V_shear - | (V_shear-V_comp)*sin(theta) | => v=V_shear in shear; V_comp in compression [m/s]
-
property
-
class
yade.wrapper.
KinemCNDEngine
(inherits KinemSimpleShearBox → BoundaryController → GlobalEngine → Engine → Serializable)¶ To apply a Constant Normal Displacement (CND) shear for a parallelogram box
This engine, designed for simulations implying a simple shear box (SimpleShear Preprocessor or scripts/simpleShear.py), allows one to perform a constant normal displacement shear, by translating horizontally the upper plate, while the lateral ones rotate so that they always keep contact with the lower and upper walls.
-
property
Key
¶ string to add at the names of the saved files
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
alpha
¶ the angle from the lower box to the left box (trigo wise). Measured by this Engine. Has to be saved, but not to be changed by the user.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f0
¶ the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of KinemCNSEngine or KinemCNLEngine will be done according to this initial value [\(N\)]. Has to be saved, but not to be changed by the user.
-
property
firstRun
¶ boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Has to be saved, but not to be changed by the user.
-
property
gamma
¶ the current value of the tangential displacement
-
property
gamma_save
¶ vector with the values of gamma at which a save of the simulation is performed [m]
-
property
gammalim
¶ the value of the tangential displacement at wich the displacement is stopped [m]
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
max_vel
¶ to limit the speed of the vertical displacements done to control \(\sigma\) (CNL or CNS cases) [\(m/s\)]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
shearSpeed
¶ the speed at which the shear is performed : speed of the upper plate [m/s]
-
property
temoin_save
¶ vector (same length as ‘gamma_save’ for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Has to be saved, but not to be changed by the user.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wallDamping
¶ the vertical displacements done to to control \(\sigma\) (CNL or CNS cases) are in fact damped, through this wallDamping
-
property
y0
¶ the height of the upper plate at the very first time step : the engine finds its value [\(m\)]. Has to be saved, but not to be changed by the user.
-
property
-
class
yade.wrapper.
KinemCNLEngine
(inherits KinemSimpleShearBox → BoundaryController → GlobalEngine → Engine → Serializable)¶ To apply a constant normal stress shear (i.e. Constant Normal Load : CNL) for a parallelogram box (simple shear box : SimpleShear Preprocessor or scripts/simpleShear.py)
This engine allows one to translate horizontally the upper plate while the lateral ones rotate so that they always keep contact with the lower and upper walls.
In fact the upper plate can move not only horizontally but also vertically, so that the normal stress acting on it remains constant (this constant value is not chosen by the user but is the one that exists at the beginning of the simulation)
The right vertical displacements which will be allowed are computed from the rigidity Kn of the sample over the wall (so to cancel a deltaSigma, a normal dplt deltaSigma*S/(Kn) is set)
The movement is moreover controlled by the user via a shearSpeed which will be the speed of the upper wall, and by a maximum value of horizontal displacement gammalim, after which the shear stops.
Note
Not only the positions of walls are updated but also their speeds, which is all but useless considering the fact that in the contact laws these velocities of bodies are used to compute values of tangential relative displacements.
Warning
Because of this last point, if you want to use later saves of simulations executed with this Engine, but without that stopMovement was executed, your boxes will keep their speeds => you will have to cancel them ‘by hand’ in the .xml.
-
property
Key
¶ string to add at the names of the saved files
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
alpha
¶ the angle from the lower box to the left box (trigo wise). Measured by this Engine. Has to be saved, but not to be changed by the user.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f0
¶ the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of KinemCNSEngine or KinemCNLEngine will be done according to this initial value [\(N\)]. Has to be saved, but not to be changed by the user.
-
property
firstRun
¶ boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Has to be saved, but not to be changed by the user.
-
property
gamma
¶ current value of tangential displacement [m]
-
property
gamma_save
¶ vector with the values of gamma at which a save of the simulation is performed [m]
-
property
gammalim
¶ the value of tangential displacement (of upper plate) at wich the shearing is stopped [m]
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
max_vel
¶ to limit the speed of the vertical displacements done to control \(\sigma\) (CNL or CNS cases) [\(m/s\)]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
shearSpeed
¶ the speed at wich the shearing is performed : speed of the upper plate [m/s]
-
property
temoin_save
¶ vector (same length as ‘gamma_save’ for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Has to be saved, but not to be changed by the user.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wallDamping
¶ the vertical displacements done to to control \(\sigma\) (CNL or CNS cases) are in fact damped, through this wallDamping
-
property
y0
¶ the height of the upper plate at the very first time step : the engine finds its value [\(m\)]. Has to be saved, but not to be changed by the user.
-
property
-
class
yade.wrapper.
KinemCNSEngine
(inherits KinemSimpleShearBox → BoundaryController → GlobalEngine → Engine → Serializable)¶ To apply a Constant Normal Stifness (CNS) shear for a parallelogram box (simple shear)
This engine, useable in simulations implying one deformable parallelepipedic box, allows one to translate horizontally the upper plate while the lateral ones rotate so that they always keep contact with the lower and upper walls. The upper plate can move not only horizontally but also vertically, so that the normal rigidity defined by DeltaF(upper plate)/DeltaU(upper plate) = constant (= KnC defined by the user).
The movement is moreover controlled by the user via a shearSpeed which is the horizontal speed of the upper wall, and by a maximum value of horizontal displacement gammalim (of the upper plate), after which the shear stops.
Note
not only the positions of walls are updated but also their speeds, which is all but useless considering the fact that in the contact laws these velocities of bodies are used to compute values of tangential relative displacements.
Warning
But, because of this last point, if you want to use later saves of simulations executed with this Engine, but without that stopMovement was executed, your boxes will keep their speeds => you will have to cancel them by hand in the .xml
-
property
Key
¶ string to add at the names of the saved files
-
property
KnC
¶ the normal rigidity chosen by the user [MPa/mm] - the conversion in Pa/m will be made
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
alpha
¶ the angle from the lower box to the left box (trigo wise). Measured by this Engine. Has to be saved, but not to be changed by the user.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f0
¶ the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of KinemCNSEngine or KinemCNLEngine will be done according to this initial value [\(N\)]. Has to be saved, but not to be changed by the user.
-
property
firstRun
¶ boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Has to be saved, but not to be changed by the user.
-
property
gamma
¶ current value of tangential displacement [m]
-
property
gammalim
¶ the value of tangential displacement (of upper plate) at wich the shearing is stopped [m]
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
max_vel
¶ to limit the speed of the vertical displacements done to control \(\sigma\) (CNL or CNS cases) [\(m/s\)]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
shearSpeed
¶ the speed at wich the shearing is performed : speed of the upper plate [m/s]
-
property
temoin_save
¶ vector (same length as ‘gamma_save’ for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Has to be saved, but not to be changed by the user.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wallDamping
¶ the vertical displacements done to to control \(\sigma\) (CNL or CNS cases) are in fact damped, through this wallDamping
-
property
y0
¶ the height of the upper plate at the very first time step : the engine finds its value [\(m\)]. Has to be saved, but not to be changed by the user.
-
property
-
class
yade.wrapper.
KinemCTDEngine
(inherits KinemSimpleShearBox → BoundaryController → GlobalEngine → Engine → Serializable)¶ To compress a simple shear sample by moving the upper box in a vertical way only, so that the tangential displacement (defined by the horizontal gap between the upper and lower boxes) remains constant (thus, the CTD = Constant Tangential Displacement). The lateral boxes move also to keep always contact. All that until this box is submitted to a given stress (targetSigma). Moreover saves are executed at each value of stresses stored in the vector sigma_save, and at targetSigma
-
property
Key
¶ string to add at the names of the saved files
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
alpha
¶ the angle from the lower box to the left box (trigo wise). Measured by this Engine. Has to be saved, but not to be changed by the user.
-
property
compSpeed
¶ (vertical) speed of the upper box : >0 for real compression, <0 for unloading [\(m/s\)]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f0
¶ the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of KinemCNSEngine or KinemCNLEngine will be done according to this initial value [\(N\)]. Has to be saved, but not to be changed by the user.
-
property
firstRun
¶ boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Has to be saved, but not to be changed by the user.
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
max_vel
¶ to limit the speed of the vertical displacements done to control \(\sigma\) (CNL or CNS cases) [\(m/s\)]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
sigma_save
¶ vector with the values of sigma at which a save of the simulation should be performed [\(kPa\)]
-
property
targetSigma
¶ the value of sigma at which the compression should stop [\(kPa\)]
-
property
temoin_save
¶ vector (same length as ‘gamma_save’ for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Has to be saved, but not to be changed by the user.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wallDamping
¶ the vertical displacements done to to control \(\sigma\) (CNL or CNS cases) are in fact damped, through this wallDamping
-
property
y0
¶ the height of the upper plate at the very first time step : the engine finds its value [\(m\)]. Has to be saved, but not to be changed by the user.
-
property
-
class
yade.wrapper.
KinemSimpleShearBox
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ This class is supposed to be a mother class for all Engines performing loadings on the simple shear box of SimpleShear. It is not intended to be used by itself, but its declaration and implentation will thus contain all what is useful for all these Engines. The script simpleShear.py illustrates the use of the various corresponding Engines.
-
property
Key
¶ string to add at the names of the saved files
-
property
LOG
¶ boolean controling the output of messages on the screen
-
property
alpha
¶ the angle from the lower box to the left box (trigo wise). Measured by this Engine. Has to be saved, but not to be changed by the user.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f0
¶ the (vertical) force acting on the upper plate on the very first time step (determined by the Engine). Controls of the loadings in case of KinemCNSEngine or KinemCNLEngine will be done according to this initial value [\(N\)]. Has to be saved, but not to be changed by the user.
-
property
firstRun
¶ boolean set to false as soon as the engine has done its job one time : useful to know if initial height of, and normal force sustained by, the upper box are known or not (and thus if they have to be initialized). Has to be saved, but not to be changed by the user.
-
property
id_boxback
¶ the id of the wall at the back of the sample
-
property
id_boxbas
¶ the id of the lower wall
-
property
id_boxfront
¶ the id of the wall in front of the sample
-
property
id_boxleft
¶ the id of the left wall
-
property
id_boxright
¶ the id of the right wall
-
property
id_topbox
¶ the id of the upper wall
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
max_vel
¶ to limit the speed of the vertical displacements done to control \(\sigma\) (CNL or CNS cases) [\(m/s\)]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
temoin_save
¶ vector (same length as ‘gamma_save’ for ex), with 0 or 1 depending whether the save for the corresponding value of gamma has been done (1) or not (0). Has to be saved, but not to be changed by the user.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wallDamping
¶ the vertical displacements done to to control \(\sigma\) (CNL or CNS cases) are in fact damped, through this wallDamping
-
property
y0
¶ the height of the upper plate at the very first time step : the engine finds its value [\(m\)]. Has to be saved, but not to be changed by the user.
-
property
-
class
yade.wrapper.
Peri3dController
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ Class for controlling independently all 6 components of “engineering” stress and strain of periodic Cell. goal are the goal values, while stressMask determines which components prescribe stress and which prescribe strain.
If the strain is prescribed, appropriate strain rate is directly applied. If the stress is prescribed, the strain predictor is used: from stress values in two previous steps the value of strain rate is prescribed so as the value of stress in the next step is as close as possible to the ideal one. Current algorithm is extremly simple and probably will be changed in future, but is roboust enough and mostly works fine.
Stress error (difference between actual and ideal stress) is evaluated in current and previous steps (\(\mathrm{d}\sigma_i,\mathrm{d}\sigma_{i-1}\)). Linear extrapolation is used to estimate error in the next step
\[\mathrm{d}\sigma_{i+1}=2\mathrm{d}\sigma_i - \mathrm{d}\sigma_{i-1}\]According to this error, the strain rate is modified by mod parameter
\[\begin{split}\mathrm{d}\sigma_{i+1}\left\{\begin{array}{c} >0 \rightarrow \dot{\varepsilon}_{i+1} = \dot{\varepsilon}_i - \max(\mathrm{abs}(\dot{\boldsymbol{\varepsilon}}_i))\cdot\mathrm{mod} \\ <0 \rightarrow \dot{\varepsilon}_{i+1} = \dot{\varepsilon}_i + \max(\mathrm{abs}(\dot{\boldsymbol{\varepsilon}}_i))\cdot\mathrm{mod} \end{array}\right.\end{split}\]According to this fact, the prescribed stress will (almost) never have exact prescribed value, but the difference would be very small (and decreasing for increasing nSteps. This approach works good if one of the dominant strain rates is prescribed. If all stresses are prescribed or if all goal strains is prescribed as zero, a good estimation is needed for the first step, therefore the compliance matrix is estimated (from user defined estimations of macroscopic material parameters youngEstimation and poissonEstimation) and respective strain rates is computed form prescribed stress rates and compliance matrix (the estimation of compliance matrix could be computed autamatically avoiding user inputs of this kind).
The simulation on rotated periodic cell is also supported. Firstly, the polar decomposition is performed on cell’s transformation matrix trsf \(\mathcal{T}=\mat{U}\mat{P}\), where \(\mat{U}\) is orthogonal (unitary) matrix representing rotation and \(\mat{P}\) is a positive semi-definite Hermitian matrix representing strain. A logarithm of \(\mat{P}\) should be used to obtain realistic values at higher strain values (not implemented yet). A prescribed strain increment in global coordinates \(\mathrm{d}t\cdot\dot{\boldsymbol{\varepsilon}}\) is properly rotated to cell’s local coordinates and added to \(\mat{P}\)
\[\mat{P}_{i+1}=\mat{P}+\mat{U}^{\mathsf{T}}\mathrm{d}t\cdot\dot{\boldsymbol{\varepsilon}}\mat{U}\]The new value of trsf is computed at \(\mat{T}_{i+1}=\mat{UP}_{i+1}\). From current and next trsf the cell’s velocity gradient velGrad is computed (according to its definition) as
\[\mat{V} = (\mat{T}_{i+1}\mat{T}^{-1}-\mat{I})/\mathrm{d}t\]Current implementation allow user to define independent loading “path” for each prescribed component. i.e. define the prescribed value as a function of time (or progress or steps). See Paths.
Examples examples/test/peri3dController_example1.py and examples/test/peri3dController_triaxialCompression.py explain usage and inputs of Peri3dController, examples/test/peri3dController_shear.py is an example of using shear components and also simulation on rotated cell.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doneHook
¶ Python command (as string) to run when nSteps is achieved. If empty, the engine will be set dead.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
goal
¶ Goal state; only the upper triangular matrix is considered; each component is either prescribed stress or strain, depending on stressMask.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
lenPe
¶ Peri3dController internal variable
-
property
lenPs
¶ Peri3dController internal variable
-
property
maxStrain
¶ Maximal asolute value of strain allowed in the simulation. If reached, the simulation is considered as finished
-
property
maxStrainRate
¶ Maximal absolute value of strain rate (both normal and shear components of strain)
-
property
mod
¶ Predictor modificator, by trail-and-error analysis the value 0.1 was found as the best.
-
property
nSteps
¶ Number of steps of the simulation.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
pathSizes
¶ Peri3dController internal variable
-
property
pathsCounter
¶ Peri3dController internal variable
-
property
pe
¶ Peri3dController internal variable
-
property
poissonEstimation
¶ Estimation of macroscopic Poisson’s ratio, used used for the first simulation step
-
property
progress
¶ Actual progress of the simulation with Controller.
-
property
ps
¶ Peri3dController internal variable
-
property
strain
¶ Current strain (deformation) vector (\(\varepsilon_x\),\(\varepsilon_y\),\(\varepsilon_z\),\(\gamma_{yz}\),\(\gamma_{zx}\),\(\gamma_{xy}\)) (auto-updated).
-
property
strainGoal
¶ Peri3dController internal variable
-
property
strainRate
¶ Current strain rate vector.
-
property
stress
¶ Current stress vector (\(\sigma_x\),\(\sigma_y\),\(\sigma_z\),\(\tau_{yz}\),\(\tau_{zx}\),\(\tau_{xy}\))|yupdate|.
-
property
stressGoal
¶ Peri3dController internal variable
-
property
stressIdeal
¶ Ideal stress vector at current time step.
-
property
stressMask
¶ mask determining whether components of goal are strain (0) or stress (1). The order is 00,11,22,12,02,01 from the least significant bit. (e.g. 0b000011 is stress 00 and stress 11).
-
property
stressRate
¶ Current stress rate vector (that is prescribed, the actual one slightly differ).
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
xxPath
¶ “Time function” (piecewise linear) for xx direction. Sequence of couples of numbers. First number is time, second number desired value of respective quantity (stress or strain). The last couple is considered as final state (equal to (nSteps, goal)), other values are relative to this state.
Example: nSteps=1000, goal[0]=300, xxPath=((2,3),(4,1),(5,2))
at step 400 (=5*1000/2) the value is 450 (=3*300/2),
at step 800 (=4*1000/5) the value is 150 (=1*300/2),
at step 1000 (=5*1000/5=nSteps) the value is 300 (=2*300/2=goal[0]).
See example scripts/test/peri3dController_example1 for illusration.
-
property
youngEstimation
¶ Estimation of macroscopic Young’s modulus, used for the first simulation step
-
property
-
class
yade.wrapper.
PeriIsoCompressor
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ Compress/decompress cloud of spheres by controlling periodic cell size until it reaches prescribed average stress, then moving to next stress value in given stress series.
-
property
charLen
¶ Characteristic length, should be something like mean particle diameter (default -1=invalid value))
-
property
currUnbalanced
¶ Current value of unbalanced force
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doneHook
¶ Python command to be run when reaching the last specified stress
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
globalUpdateInt
¶ how often to recompute average stress, stiffness and unbalanced force
-
property
keepProportions
¶ Exactly keep proportions of the cell (stress is controlled based on average, not its components
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxSpan
¶ Maximum body span in terms of bbox, to prevent periodic cell getting too small. (auto-computed)
-
property
maxUnbalanced
¶ if actual unbalanced force is smaller than this number, the packing is considered stable,
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
sigma
¶ Current stress value
-
property
state
¶ Where are we at in the stress series
-
property
stresses
¶ Stresses that should be reached, one after another
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
PeriTriaxController
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ Engine for independently controlling stress or strain in periodic simulations.
PeriTriaxController.goal contains absolute values for the controlled quantity, and PeriTriaxController.stressMask determines meaning of those values (0 for strain, 1 for stress): e.g.
( 1<<0 | 1<<2 ) = 1 | 4 = 5
means thatgoal[0]
andgoal[2]
are stress values, andgoal[1]
is strain.See scripts/test/periodic-triax.py for a simple example.
-
property
absStressTol
¶ Absolute stress tolerance
-
property
currUnbalanced
¶ current unbalanced force (updated every globUpdate) (auto-updated)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doneHook
¶ python command to be run when the desired state is reached
-
property
dynCell
¶ Imposed stress can be controlled using the packing stiffness or by applying the laws of dynamic (dynCell=true). Don’t forget to assign a mass to the cell.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
externalWork
¶ Work input from boundary controller.
-
property
globUpdate
¶ How often to recompute average stress, stiffness and unbalaced force.
-
property
goal
¶ Desired stress or strain values (depending on stressMask), strains defined as
strain(i)=log(Fii)
.Warning
Strains are relative to the O.cell.refSize (reference cell size), not the current one (e.g. at the moment when the new strain value is set).
-
property
growDamping
¶ Damping of cell resizing (0=perfect control, 1=no control at all); see also
wallDamping
in TriaxialStressController.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mass
¶ mass of the cell (user set); if not set and dynCell is used, it will be computed as sum of masses of all particles.
-
property
maxBodySpan
¶ maximum body dimension (auto-computed)
-
property
maxStrainRate
¶ Maximum strain rate of the periodic cell.
-
property
maxUnbalanced
¶ maximum unbalanced force.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
prevGrow
¶ previous cell grow
-
property
relStressTol
¶ Relative stress tolerance
-
property
stiff
¶ average stiffness (only every globUpdate steps recomputed from interactions) (auto-updated)
-
property
strain
¶ cell strain (auto-updated)
-
property
strainRate
¶ cell strain rate (auto-updated)
-
property
stress
¶ diagonal terms of the stress tensor
-
property
stressMask
¶ mask determining strain/stress (0/1) meaning for goal components
-
property
stressTensor
¶ average stresses, updated at every step (only every globUpdate steps recomputed from interactions if !dynCell)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ThreeDTriaxialEngine
(inherits TriaxialStressController → BoundaryController → GlobalEngine → Engine → Serializable)¶ The engine perform a triaxial compression with a control in direction ‘i’ in stress (if stressControl_i) else in strain.
For a stress control the imposed stress is specified by ‘sigma_i’ with a ‘max_veli’ depending on ‘strainRatei’. To obtain the same strain rate in stress control than in strain control you need to set ‘wallDamping = 0.8’. For a strain control the imposed strain is specified by ‘strainRatei’. With this engine you can also perform internal compaction by growing the size of particles by using
TriaxialStressController::controlInternalStress
. For that, just switch on ‘internalCompaction=1’ and fix sigma_iso=value of mean pressure that you want at the end of the internal compaction.Warning
This engine is deprecated, please switch to TriaxialStressController if you expect long term support.
-
property
Key
¶ A string appended at the end of all files, use it to name simulations.
-
property
UnbalancedForce
¶ mean resultant forces divided by mean contact force
-
property
boxVolume
¶ Total packing volume.
-
property
computeStressStrainInterval
¶
-
property
currentStrainRate1
¶ current strain rate in direction 1 - converging to ThreeDTriaxialEngine::strainRate1 (./s)
-
property
currentStrainRate2
¶ current strain rate in direction 2 - converging to ThreeDTriaxialEngine::strainRate2 (./s)
-
property
currentStrainRate3
¶ current strain rate in direction 3 - converging to ThreeDTriaxialEngine::strainRate3 (./s)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
depth
¶ size of the box (2-axis) (auto-updated)
-
property
depth0
¶ Reference size for strain definition. See TriaxialStressController::depth
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
externalWork
¶ Mechanical work associated to the boundary conditions, i.e. \(\int_{\partial \Omega} \mat{T} \cdot \mat{u} ds\) with \(\mat{T}\) the surface traction and \(\mat{u}\) the displacement at the boundary. (auto-updated)
-
property
finalMaxMultiplier
¶ max multiplier of diameters during internal compaction (secondary precise adjustment - TriaxialStressController::maxMultiplier is used in the initial stage)
-
property
frictionAngleDegree
¶ Value of friction used in the simulation if (updateFrictionAngle)
-
property
goal1
¶ prescribed stress/strain rate on axis 1, as defined by TriaxialStressController::stressMask
-
property
goal2
¶ prescribed stress/strain rate on axis 2, as defined by TriaxialStressController::stressMask
-
property
goal3
¶ prescribed stress/strain rate on axis 3, as defined by TriaxialStressController::stressMask
-
property
height
¶ size of the box (1-axis) (auto-updated)
-
property
height0
¶ Reference size for strain definition. See TriaxialStressController::height
-
property
internalCompaction
¶ Switch between ‘external’ (walls) and ‘internal’ (growth of particles) compaction.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxMultiplier
¶ max multiplier of diameters during internal compaction (initial fast increase - TriaxialStressController::finalMaxMultiplier is used in a second stage)
-
property
max_vel
¶ Maximum allowed walls velocity [m/s]. This value superseeds the one assigned by the stress controller if the later is higher. max_vel can be set to infinity in many cases, but sometimes helps stabilizing packings. Based on this value, different maxima are computed for each axis based on the dimensions of the sample, so that if each boundary moves at its maximum velocity, the strain rate will be isotropic (see e.g. TriaxialStressController::max_vel1).
-
property
max_vel1
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel2
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel3
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
meanStress
¶ Mean stress in the packing. (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
porosity
¶ Porosity of the packing, computed from particlesVolume and boxVolume. (auto-updated)
-
property
previousMultiplier
¶ (auto-updated)
-
property
previousStress
¶ (auto-updated)
-
property
radiusControlInterval
¶
-
setContactProperties
((ThreeDTriaxialEngine)arg1, (float)arg2) → None :¶ Assign a new friction angle (degrees) to dynamic bodies and relative interactions
-
property
spheresVolume
¶ Shorthand for TriaxialStressController::particlesVolume
-
property
stiffnessUpdateInterval
¶ target strain rate (./s)
-
property
strain
¶ Current strain in a vector (exx,eyy,ezz). The values reflect true (logarithmic) strain.
-
property
strainDamping
¶ factor used for smoothing changes in effective strain rate. If target rate is TR, then (1-damping)*(TR-currentRate) will be added at each iteration. With damping=0, rate=target all the time. With damping=1, it doesn’t change.
-
property
strainRate
¶ Current strain rate in a vector d/dt(exx,eyy,ezz).
-
property
strainRate1
¶ target strain rate in direction 1 (./s, >0 for compression)
-
property
strainRate2
¶ target strain rate in direction 2 (./s, >0 for compression)
-
property
strainRate3
¶ target strain rate in direction 3 (./s, >0 for compression)
-
stress
((TriaxialStressController)arg1, (int)id) → Vector3 :¶ Returns the average stress on boundary ‘id’. Here, ‘id’ refers to the internal numbering of boundaries, between 0 and 5.
-
property
stressControl_1
¶ Switch to choose a stress or a strain control in directions 1
-
property
stressControl_2
¶ Switch to choose a stress or a strain control in directions 2
-
property
stressControl_3
¶ Switch to choose a stress or a strain control in directions 3
-
property
stressDamping
¶ wall damping coefficient for the stress control - wallDamping=0 implies a (theoretical) perfect control, wallDamping=1 means no movement
-
property
stressMask
¶ Bitmask determining wether the imposed goal values are stresses (0 for none, 7 for all, 1 for direction 1, 5 for directions 1 and 3, etc.) or strain rates
-
property
thickness
¶ thickness of boxes (needed by some functions)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updateFrictionAngle
¶ Switch to activate the update of the intergranular frictionto the value ThreeDTriaxialEngine::frictionAngleDegree.
-
property
updatePorosity
¶ If true, solid volume will be updated once (will automatically reset to false after one calculation step) e.g. for porosity calculation purpose. Can be used when volume of particles changes during the simulation (e.g. when particles are erased or when clumps are created).
-
property
volumetricStrain
¶ Volumetric strain (see TriaxialStressController::strain). (auto-updated)
-
property
wall_back_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_back_id
¶ id of boundary ; coordinate 2- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_bottom_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_bottom_id
¶ id of boundary ; coordinate 1- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_front_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_front_id
¶ id of boundary ; coordinate 2+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_left_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_left_id
¶ id of boundary ; coordinate 0- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_right_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_right_id
¶ id of boundary ; coordinate 0+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_top_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_top_id
¶ id of boundary ; coordinate 1+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
width
¶ size of the box (0-axis) (auto-updated)
-
property
width0
¶ Reference size for strain definition. See TriaxialStressController::width
-
property
-
class
yade.wrapper.
TriaxialCompressionEngine
(inherits TriaxialStressController → BoundaryController → GlobalEngine → Engine → Serializable)¶ The engine is a state machine with the following states; transitions my be automatic, see below.
STATE_ISO_COMPACTION: isotropic compaction (compression) until the prescribed mean pressue sigmaIsoCompaction is reached and the packing is stable. The compaction happens either by straining the walls (!internalCompaction) or by growing size of grains (internalCompaction).
STATE_ISO_UNLOADING: isotropic unloading from the previously reached state, until the mean pressure sigmaLateralConfinement is reached (and stabilizes).
Note
this state will be skipped if sigmaLateralConfinement == sigmaIsoCompaction.
STATE_TRIAX_LOADING: confined uniaxial compression: constant sigmaLateralConfinement is kept at lateral walls (left, right, front, back), while top and bottom walls load the packing in their axis (by straining), until the value of epsilonMax (deformation along the loading axis) is reached. At this point, the simulation is stopped.
STATE_FIXED_POROSITY_COMPACTION: isotropic compaction (compression) until a chosen porosity value (parameter:fixedPorosity). The six walls move with a chosen translation speed (parameter StrainRate).
STATE_TRIAX_LIMBO: currently unused, since simulation is hard-stopped in the previous state.
Transition from COMPACTION to UNLOADING is done automatically if autoUnload==true;
Transition from (UNLOADING to LOADING) or from (COMPACTION to LOADING: if UNLOADING is skipped) is done automatically if autoCompressionActivation=true; Both autoUnload and autoCompressionActivation are true by default.
Note
Most of the algorithms used have been developed initialy for simulations reported in [Chareyre2002a] and [Chareyre2005]. They have been ported to Yade in a second step and used in e.g. [Kozicki2008],[Scholtes2009b]_,[Jerier2010b].
Warning
This engine is deprecated, please switch to TriaxialStressController if you expect long term support.
-
property
Key
¶ A string appended at the end of all files, use it to name simulations.
-
property
StabilityCriterion
¶ tolerance in terms of TriaxialCompressionEngine::UnbalancedForce to consider the packing is stable
-
property
UnbalancedForce
¶ mean resultant forces divided by mean contact force
-
property
autoCompressionActivation
¶ Auto-switch from isotropic compaction (or unloading state if sigmaLateralConfinement<sigmaIsoCompaction) to deviatoric loading
-
property
autoStopSimulation
¶ Stop the simulation when the sample reach STATE_LIMBO, or keep running
-
property
autoUnload
¶ Auto-switch from isotropic compaction to unloading
-
property
boxVolume
¶ Total packing volume.
-
property
computeStressStrainInterval
¶
-
property
currentState
¶ There are 5 possible states in which TriaxialCompressionEngine can be. See above wrapper.TriaxialCompressionEngine
-
property
currentStrainRate
¶ current strain rate - converging to TriaxialCompressionEngine::strainRate (./s)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
depth
¶ size of the box (2-axis) (auto-updated)
-
property
depth0
¶ Reference size for strain definition. See TriaxialStressController::depth
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
epsilonMax
¶ Value of axial deformation for which the loading must stop
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
externalWork
¶ Mechanical work associated to the boundary conditions, i.e. \(\int_{\partial \Omega} \mat{T} \cdot \mat{u} ds\) with \(\mat{T}\) the surface traction and \(\mat{u}\) the displacement at the boundary. (auto-updated)
-
property
finalMaxMultiplier
¶ max multiplier of diameters during internal compaction (secondary precise adjustment - TriaxialStressController::maxMultiplier is used in the initial stage)
-
property
fixedPoroCompaction
¶ A special type of compaction with imposed final porosity TriaxialCompressionEngine::fixedPorosity (WARNING : can give unrealistic results!)
-
property
fixedPorosity
¶ Value of porosity chosen by the user
-
property
frictionAngleDegree
¶ Value of friction assigned just before the deviatoric loading
-
property
goal1
¶ prescribed stress/strain rate on axis 1, as defined by TriaxialStressController::stressMask
-
property
goal2
¶ prescribed stress/strain rate on axis 2, as defined by TriaxialStressController::stressMask
-
property
goal3
¶ prescribed stress/strain rate on axis 3, as defined by TriaxialStressController::stressMask
-
property
height
¶ size of the box (1-axis) (auto-updated)
-
property
height0
¶ Reference size for strain definition. See TriaxialStressController::height
-
property
internalCompaction
¶ Switch between ‘external’ (walls) and ‘internal’ (growth of particles) compaction.
-
property
isAxisymetric
¶ if true, sigma_iso is assigned to sigma1, 2 and 3 (applies at each iteration and overrides user-set values of s1,2,3)
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxMultiplier
¶ max multiplier of diameters during internal compaction (initial fast increase - TriaxialStressController::finalMaxMultiplier is used in a second stage)
-
property
maxStress
¶ Max absolute value of axial stress during the simulation (for post-processing)
-
property
max_vel
¶ Maximum allowed walls velocity [m/s]. This value superseeds the one assigned by the stress controller if the later is higher. max_vel can be set to infinity in many cases, but sometimes helps stabilizing packings. Based on this value, different maxima are computed for each axis based on the dimensions of the sample, so that if each boundary moves at its maximum velocity, the strain rate will be isotropic (see e.g. TriaxialStressController::max_vel1).
-
property
max_vel1
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel2
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel3
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
meanStress
¶ Mean stress in the packing. (auto-updated)
-
property
noFiles
¶ If true, no files will be generated (*.xml, *.spheres,…)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
porosity
¶ Porosity of the packing, computed from particlesVolume and boxVolume. (auto-updated)
-
property
previousMultiplier
¶ (auto-updated)
-
property
previousSigmaIso
¶ Previous value of inherited sigma_iso (used to detect manual changes of the confining pressure)
-
property
previousState
¶ Previous state (used to detect manual changes of the state in .xml)
-
property
previousStress
¶ (auto-updated)
-
property
radiusControlInterval
¶
-
setContactProperties
((TriaxialCompressionEngine)arg1, (float)arg2) → None :¶ Assign a new friction angle (degrees) to dynamic bodies and relative interactions
-
property
sigmaIsoCompaction
¶ Prescribed isotropic pressure during the compaction phase (< 0 for real - compressive - compaction)
-
property
sigmaLateralConfinement
¶ Prescribed confining pressure in the deviatoric loading (< 0 for classical compressive cases); might be different from TriaxialCompressionEngine::sigmaIsoCompaction
-
property
sigma_iso
¶ prescribed confining stress (see :yref:TriaxialCompressionEngine::isAxisymetric`)
-
property
spheresVolume
¶ Shorthand for TriaxialStressController::particlesVolume
-
property
stiffnessUpdateInterval
¶ target strain rate (./s)
-
property
strain
¶ Current strain in a vector (exx,eyy,ezz). The values reflect true (logarithmic) strain.
-
property
strainDamping
¶ coefficient used for smoother transitions in the strain rate. The rate reaches the target value like \(d^n\) reaches 0, where \(d\) is the damping coefficient and \(n\) is the number of steps
-
property
strainRate
¶ target strain rate (./s, >0 for compression)
-
stress
((TriaxialStressController)arg1, (int)id) → Vector3 :¶ Returns the average stress on boundary ‘id’. Here, ‘id’ refers to the internal numbering of boundaries, between 0 and 5.
-
property
stressDamping
¶ wall damping coefficient for the stress control - wallDamping=0 implies a (theoretical) perfect control, wallDamping=1 means no movement
-
property
stressMask
¶ Bitmask determining wether the imposed goal values are stresses (0 for none, 7 for all, 1 for direction 1, 5 for directions 1 and 3, etc.) or strain rates
-
property
testEquilibriumInterval
¶ interval of checks for transition between phases, higher than 1 saves computation time.
-
property
thickness
¶ thickness of boxes (needed by some functions)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
translationAxis
¶ compression axis
-
property
uniaxialEpsilonCurr
¶ Current value of axial deformation during confined loading (is reference to strain[1])
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updatePorosity
¶ If true, solid volume will be updated once (will automatically reset to false after one calculation step) e.g. for porosity calculation purpose. Can be used when volume of particles changes during the simulation (e.g. when particles are erased or when clumps are created).
-
property
volumetricStrain
¶ Volumetric strain (see TriaxialStressController::strain). (auto-updated)
-
property
wall_back_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_back_id
¶ id of boundary ; coordinate 2- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_bottom_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_bottom_id
¶ id of boundary ; coordinate 1- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_front_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_front_id
¶ id of boundary ; coordinate 2+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_left_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_left_id
¶ id of boundary ; coordinate 0- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_right_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_right_id
¶ id of boundary ; coordinate 0+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_top_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_top_id
¶ id of boundary ; coordinate 1+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
warn
¶ counter used for sending a deprecation warning once
-
property
width
¶ size of the box (0-axis) (auto-updated)
-
property
width0
¶ Reference size for strain definition. See TriaxialStressController::width
-
class
yade.wrapper.
TriaxialStressController
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ An engine maintaining constant stresses or constant strain rates on some boundaries of a parallepipedic packing. The stress/strain control is defined for each axis using TriaxialStressController::stressMask (a bitMask) and target values are defined by goal1,goal2, and goal3. The sign conventions of continuum mechanics are used for strains and stresses (positive traction).
Note
The algorithms used have been developed initialy for simulations reported in [Chareyre2002a] and [Chareyre2005]. They have been ported to Yade in a second step and used in e.g. [Kozicki2008],[Scholtes2009b]_,[Jerier2010b].
-
property
boxVolume
¶ Total packing volume.
-
property
computeStressStrainInterval
¶
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
depth
¶ size of the box (2-axis) (auto-updated)
-
property
depth0
¶ Reference size for strain definition. See TriaxialStressController::depth
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
externalWork
¶ Mechanical work associated to the boundary conditions, i.e. \(\int_{\partial \Omega} \mat{T} \cdot \mat{u} ds\) with \(\mat{T}\) the surface traction and \(\mat{u}\) the displacement at the boundary. (auto-updated)
-
property
finalMaxMultiplier
¶ max multiplier of diameters during internal compaction (secondary precise adjustment - TriaxialStressController::maxMultiplier is used in the initial stage)
-
property
goal1
¶ prescribed stress/strain rate on axis 1, as defined by TriaxialStressController::stressMask
-
property
goal2
¶ prescribed stress/strain rate on axis 2, as defined by TriaxialStressController::stressMask
-
property
goal3
¶ prescribed stress/strain rate on axis 3, as defined by TriaxialStressController::stressMask
-
property
height
¶ size of the box (1-axis) (auto-updated)
-
property
height0
¶ Reference size for strain definition. See TriaxialStressController::height
-
property
internalCompaction
¶ Switch between ‘external’ (walls) and ‘internal’ (growth of particles) compaction.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxMultiplier
¶ max multiplier of diameters during internal compaction (initial fast increase - TriaxialStressController::finalMaxMultiplier is used in a second stage)
-
property
max_vel
¶ Maximum allowed walls velocity [m/s]. This value superseeds the one assigned by the stress controller if the later is higher. max_vel can be set to infinity in many cases, but sometimes helps stabilizing packings. Based on this value, different maxima are computed for each axis based on the dimensions of the sample, so that if each boundary moves at its maximum velocity, the strain rate will be isotropic (see e.g. TriaxialStressController::max_vel1).
-
property
max_vel1
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel2
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
max_vel3
¶ see TriaxialStressController::max_vel (auto-computed)
-
property
meanStress
¶ Mean stress in the packing. (auto-updated)
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
porosity
¶ Porosity of the packing, computed from particlesVolume and boxVolume. (auto-updated)
-
property
previousMultiplier
¶ (auto-updated)
-
property
previousStress
¶ (auto-updated)
-
property
radiusControlInterval
¶
-
property
spheresVolume
¶ Shorthand for TriaxialStressController::particlesVolume
-
property
stiffnessUpdateInterval
¶ target strain rate (./s)
-
property
strain
¶ Current strain in a vector (exx,eyy,ezz). The values reflect true (logarithmic) strain.
-
property
strainDamping
¶ coefficient used for smoother transitions in the strain rate. The rate reaches the target value like \(d^n\) reaches 0, where \(d\) is the damping coefficient and \(n\) is the number of steps
-
property
strainRate
¶ Current strain rate in a vector d/dt(exx,eyy,ezz).
-
stress
((TriaxialStressController)arg1, (int)id) → Vector3 :¶ Returns the average stress on boundary ‘id’. Here, ‘id’ refers to the internal numbering of boundaries, between 0 and 5.
-
property
stressDamping
¶ wall damping coefficient for the stress control - wallDamping=0 implies a (theoretical) perfect control, wallDamping=1 means no movement
-
property
stressMask
¶ Bitmask determining wether the imposed goal values are stresses (0 for none, 7 for all, 1 for direction 1, 5 for directions 1 and 3, etc.) or strain rates
-
property
thickness
¶ thickness of boxes (needed by some functions)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updatePorosity
¶ If true, solid volume will be updated once (will automatically reset to false after one calculation step) e.g. for porosity calculation purpose. Can be used when volume of particles changes during the simulation (e.g. when particles are erased or when clumps are created).
-
property
volumetricStrain
¶ Volumetric strain (see TriaxialStressController::strain). (auto-updated)
-
property
wall_back_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_back_id
¶ id of boundary ; coordinate 2- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_bottom_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_bottom_id
¶ id of boundary ; coordinate 1- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_front_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_front_id
¶ id of boundary ; coordinate 2+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_left_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_left_id
¶ id of boundary ; coordinate 0- (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_right_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_right_id
¶ id of boundary ; coordinate 0+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
wall_top_activated
¶ if true, this wall moves according to the target value (stress or strain rate).
-
property
wall_top_id
¶ id of boundary ; coordinate 1+ (default value is ok if aabbWalls are appended BEFORE spheres.)
-
property
width
¶ size of the box (0-axis) (auto-updated)
-
property
width0
¶ Reference size for strain definition. See TriaxialStressController::width
-
property
-
class
yade.wrapper.
UniaxialStrainer
(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶ Axial displacing two groups of bodies in the opposite direction with given strain rate.
-
property
absSpeed
¶ alternatively, absolute speed of boundary motion can be specified; this is effective only at the beginning and if strainRate is not set; changing absSpeed directly during simulation wil have no effect. [ms⁻¹]
-
property
active
¶ Whether this engine is activated
-
property
asymmetry
¶ If 0, straining is symmetric for negIds and posIds; for 1 (or -1), only posIds are strained and negIds don’t move (or vice versa)
-
property
avgStress
¶ Current average stress (auto-updated) [Pa]
-
property
axis
¶ The axis which is strained (0,1,2 for x,y,z)
-
property
blockDisplacements
¶ Whether displacement of boundary bodies perpendicular to the strained axis are blocked or are free
-
property
blockRotations
¶ Whether rotations of boundary bodies are blocked.
-
property
crossSectionArea
¶ crossSection perpendicular to he strained axis; must be given explicitly [m²]
-
property
currentStrainRate
¶ Current strain rate (update automatically). (auto-updated)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
idleIterations
¶ Number of iterations that will pass without straining activity after stopStrain has been reached
-
property
initAccelTime
¶ Time for strain reaching the requested value (linear interpolation). If negative, the time is dt*(-initAccelTime), where dt is the timestep at the first iteration. [s]
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
limitStrain
¶ Invert the sense of straining (sharply, without transition) one this value of strain is reached. Not effective if 0.
-
property
negIds
¶ Bodies on which strain will be applied (on the negative end along the axis)
-
property
notYetReversed
¶ Flag whether the sense of straining has already been reversed (only used internally).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
originalLength
¶ Distance of reference bodies in the direction of axis before straining started (computed automatically) [m]
-
property
posIds
¶ Bodies on which strain will be applied (on the positive end along the axis)
-
property
setSpeeds
¶ should we set speeds at the beginning directly, instead of increasing strain rate progressively?
-
property
stopStrain
¶ Strain at which we will pause simulation; inactive (nan) by default; must be reached from below (in absolute value)
-
property
strain
¶ Current strain value, elongation/originalLength (auto-updated) [-]
-
property
strainRate
¶ Rate of strain, starting at 0, linearly raising to strainRate. [-]
-
property
stressUpdateInterval
¶ How often to recompute stress on supports.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Collider¶
![digraph Collider {
rankdir=RL;
margin="0.2,0.05";
"Collider" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Collider"];
"InsertionSortCollider" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InsertionSortCollider"];
"InsertionSortCollider" -> "Collider" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GeneralIntegratorInsertionSortCollider" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GeneralIntegratorInsertionSortCollider"];
"GeneralIntegratorInsertionSortCollider" -> "InsertionSortCollider" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SpatialQuickSortCollider" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SpatialQuickSortCollider"];
"SpatialQuickSortCollider" -> "Collider" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FlatGridCollider" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FlatGridCollider"];
"FlatGridCollider" -> "Collider" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-c161a15c85e66aa009af68a0d6a79c741ca33ec3.png)
Inheritance graph of Collider.¶
-
class
yade.wrapper.
Collider
(inherits GlobalEngine → Engine → Serializable)¶ Abstract class for finding spatial collisions between bodies.
Special constructor
Derived colliders (unless they override
pyHandleCustomCtorArgs
) can be given list of BoundFunctors which is used to initialize the internal boundDispatcher instance.-
property
avoidSelfInteractionMask
¶ This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
-
property
boundDispatcher
¶ BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FlatGridCollider
(inherits Collider → GlobalEngine → Engine → Serializable)¶ Non-optimized grid collider, storing grid as dense flat array. Each body is assigned to (possibly multiple) cells, which are arranged in regular grid between aabbMin and aabbMax, with cell size step (same in all directions). Bodies outsize (aabbMin, aabbMax) are handled gracefully, assigned to closest cells (this will create spurious potential interactions). verletDist determines how much is each body enlarged to avoid collision detection at every step.
Note
This collider keeps all cells in linear memory array, therefore will be memory-inefficient for sparse simulations.
Warning
objects Body::bound are not used, BoundFunctors are not used either: assigning cells to bodies is hard-coded internally. Currently handles Shapes are: Sphere.
Note
Periodic boundary is not handled (yet).
-
property
aabbMax
¶ Upper corner of grid (approximate, might be rouded up to minStep.
-
property
aabbMin
¶ Lower corner of grid.
-
property
avoidSelfInteractionMask
¶ This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
-
property
boundDispatcher
¶ BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
step
¶ Step in the grid (cell size)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
verletDist
¶ Length by which enlarge space occupied by each particle; avoids running collision detection at every step.
-
property
-
class
yade.wrapper.
GeneralIntegratorInsertionSortCollider
(inherits InsertionSortCollider → Collider → GlobalEngine → Engine → Serializable)¶ This class is the adaptive version of the InsertionSortCollider and changes the NewtonIntegrator dependency of the collider algorithms to the Integrator interface which is more general.
-
property
allowBiggerThanPeriod
¶ If true, tests on bodies sizes will be disabled, and the simulation will run normaly even if bodies larger than period are found. It can be useful when the periodic problem include e.g. a floor modelized with wall/box/facet. Be sure you know what you are doing if you touch this flag. The result is undefined if one large body moves out of the (0,0,0) period.
-
property
avoidSelfInteractionMask
¶ This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
-
property
boundDispatcher
¶ BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doSort
¶ Do forced resorting of interactions.
-
dumpBounds
((InsertionSortCollider)arg1) → tuple :¶ Return representation of the internal sort data. The format is
([...],[...],[...])
for 3 axes, where each...
is a list of entries (bounds). The entry is a tuple with the fllowing items:coordinate (float)
body id (int), but negated for negative bounds
period numer (int), if the collider is in the periodic regime.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fastestBodyMaxDist
¶ Normalized maximum displacement of the fastest body since last run; if >= 1, we could get out of bboxes and will trigger full run. (auto-updated)
-
isActivated
((InsertionSortCollider)arg1) → bool :¶ Return true if collider needs execution at next iteration.
-
property
keepListsShort
¶ if true remove bounds of non-existent or unbounded bodies from the lists (auto-updated); turned true automatically in MPI mode and if bodies are erased with BodyContainer.enableRedirection`=True. :ydefault:`false
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
minSweepDistFactor
¶ Minimal distance by which enlarge all bounding boxes; superseeds computed value of verletDist when lower that (minSweepDistFactor x verletDist).
-
property
newton
¶ reference to active Newton integrator. (auto-updated)
-
property
numAction
¶ Cummulative number of collision detection.
-
property
numReinit
¶ Cummulative number of bound array re-initialization.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
overlapTolerance
¶ Tolerance on determining overlap. In rare cases different parts of the code can inconsistently lead to different results in terms of overlap, with false negative by spatialOverlapPeri possibly leading to nasty bugs in contact detection (false positive are harmless). This tolerance is to avoid false negative, the value can be understood as relative to 1 (i.e. independent of particle size or any other reference length). The default should be ok.
-
property
periodic
¶ Whether the collider is in periodic mode (read-only; for debugging) (auto-updated)
-
property
shortListsInitialized
¶ wether or not shortList algorithm is initialized, when true bodies are inserted incrementaly.
-
property
sortAxis
¶ Axis for the initial contact detection.
-
property
sortThenCollide
¶ Separate sorting and colliding phase; it is MUCH slower, but all interactions are processed at every step; this effectively makes the collider non-persistent, not remembering last state. (The default behavior relies on the fact that inversions during insertion sort are overlaps of bounding boxes that just started/ceased to exist, and only processes those; this makes the collider much more efficient.)
-
property
strideActive
¶ Whether striding is active (read-only; for debugging). (auto-updated)
-
property
targetInterv
¶ (experimental) Target number of iterations between bound update, used to define a smaller sweep distance for slower grains if >0, else always use 1*verletDist. Useful in simulations with strong velocity contrasts between slow bodies and fast bodies.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updatingDispFactor
¶ (experimental) Displacement factor used to trigger bound update: the bound is updated only if updatingDispFactor*disp>sweepDist when >0, else all bounds are updated.
-
property
verletDist
¶ Length by which to enlarge particle bounds, to avoid running collider at every step. Stride disabled if zero. Negative value will trigger automatic computation, so that the real value will be verletDist × minimum spherical particle radius; if there are no spherical particles, it will be disabled. The actual length added to one bound can be only a fraction of verletDist when InsertionSortCollider::targetInterv is > 0.
-
property
-
class
yade.wrapper.
InsertionSortCollider
(inherits Collider → GlobalEngine → Engine → Serializable)¶ Collider with O(n log(n)) complexity, using Aabb for bounds.
At the initial step, Bodies’ bounds (along sortAxis) are first std::sort’ed along this (sortAxis) axis, then collided. The initial sort has \(O(n^2)\) complexity, see Colliders’ performance for some information (There are scripts in examples/collider-perf for measurements).
Insertion sort is used for sorting the bound list that is already pre-sorted from last iteration, where each inversion calls checkOverlap which then handles either overlap (by creating interaction if necessary) or its absence (by deleting interaction if it is only potential).
Bodies without bounding volume (such as clumps) are handled gracefully and never collide. Deleted bodies are handled gracefully as well.
This collider handles periodic boundary conditions. There are some limitations, notably:
No body can have Aabb larger than cell’s half size in that respective dimension. You get exception if it does and gets in interaction. One way to explicitly by-pass this restriction is offered by
allowBiggerThanPeriod
, which can be turned on to insert a floor in the form of a very large box for instance (see examples/periodicSandPile.py).No body can travel more than cell’s distance in one step; this would mean that the simulation is numerically exploding, and it is only detected in some cases.
Stride can be used to avoid running collider at every step by enlarging the particle’s bounds, tracking their displacements and only re-run if they might have gone out of that bounds (see Verlet list for brief description and background) . This requires cooperation from NewtonIntegrator as well as BoundDispatcher, which will be found among engines automatically (exception is thrown if they are not found).
If you wish to use strides, set
verletDist
(length by which bounds will be enlarged in all directions) to some value, e.g. 0.05 × typical particle radius. This parameter expresses the tradeoff between many potential interactions (running collider rarely, but with longer exact interaction resolution phase) and few potential interactions (running collider more frequently, but with less exact resolutions of interactions); it depends mainly on packing density and particle radius distribution.If
targetInterv
is >1, not all particles will have their bound enlarged byverletDist
; instead, they will have bounds increased by a length in order to trigger a new colliding aftertargetInterv
iteration, assuming they move at almost constant velocity. Ideally in this method, all particles would reach their bounds at the sime iteration. This is of course not the case as soon as velocities fluctuate in time. Bound::sweepLength is tuned on the basis of the displacement recorded between the last two runs of the collider. In this situation,verletDist
defines the maximum sweep length.-
property
allowBiggerThanPeriod
¶ If true, tests on bodies sizes will be disabled, and the simulation will run normaly even if bodies larger than period are found. It can be useful when the periodic problem include e.g. a floor modelized with wall/box/facet. Be sure you know what you are doing if you touch this flag. The result is undefined if one large body moves out of the (0,0,0) period.
-
property
avoidSelfInteractionMask
¶ This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
-
property
boundDispatcher
¶ BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doSort
¶ Do forced resorting of interactions.
-
dumpBounds
((InsertionSortCollider)arg1) → tuple :¶ Return representation of the internal sort data. The format is
([...],[...],[...])
for 3 axes, where each...
is a list of entries (bounds). The entry is a tuple with the fllowing items:coordinate (float)
body id (int), but negated for negative bounds
period numer (int), if the collider is in the periodic regime.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fastestBodyMaxDist
¶ Normalized maximum displacement of the fastest body since last run; if >= 1, we could get out of bboxes and will trigger full run. (auto-updated)
-
isActivated
((InsertionSortCollider)arg1) → bool :¶ Return true if collider needs execution at next iteration.
-
property
keepListsShort
¶ if true remove bounds of non-existent or unbounded bodies from the lists (auto-updated); turned true automatically in MPI mode and if bodies are erased with BodyContainer.enableRedirection`=True. :ydefault:`false
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
minSweepDistFactor
¶ Minimal distance by which enlarge all bounding boxes; superseeds computed value of verletDist when lower that (minSweepDistFactor x verletDist).
-
property
newton
¶ reference to active Newton integrator. (auto-updated)
-
property
numAction
¶ Cummulative number of collision detection.
-
property
numReinit
¶ Cummulative number of bound array re-initialization.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
overlapTolerance
¶ Tolerance on determining overlap. In rare cases different parts of the code can inconsistently lead to different results in terms of overlap, with false negative by spatialOverlapPeri possibly leading to nasty bugs in contact detection (false positive are harmless). This tolerance is to avoid false negative, the value can be understood as relative to 1 (i.e. independent of particle size or any other reference length). The default should be ok.
-
property
periodic
¶ Whether the collider is in periodic mode (read-only; for debugging) (auto-updated)
-
property
shortListsInitialized
¶ wether or not shortList algorithm is initialized, when true bodies are inserted incrementaly.
-
property
sortAxis
¶ Axis for the initial contact detection.
-
property
sortThenCollide
¶ Separate sorting and colliding phase; it is MUCH slower, but all interactions are processed at every step; this effectively makes the collider non-persistent, not remembering last state. (The default behavior relies on the fact that inversions during insertion sort are overlaps of bounding boxes that just started/ceased to exist, and only processes those; this makes the collider much more efficient.)
-
property
strideActive
¶ Whether striding is active (read-only; for debugging). (auto-updated)
-
property
targetInterv
¶ (experimental) Target number of iterations between bound update, used to define a smaller sweep distance for slower grains if >0, else always use 1*verletDist. Useful in simulations with strong velocity contrasts between slow bodies and fast bodies.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updatingDispFactor
¶ (experimental) Displacement factor used to trigger bound update: the bound is updated only if updatingDispFactor*disp>sweepDist when >0, else all bounds are updated.
-
property
verletDist
¶ Length by which to enlarge particle bounds, to avoid running collider at every step. Stride disabled if zero. Negative value will trigger automatic computation, so that the real value will be verletDist × minimum spherical particle radius; if there are no spherical particles, it will be disabled. The actual length added to one bound can be only a fraction of verletDist when InsertionSortCollider::targetInterv is > 0.
-
class
yade.wrapper.
SpatialQuickSortCollider
(inherits Collider → GlobalEngine → Engine → Serializable)¶ Collider using quicksort along axes at each step, using Aabb bounds.
Its performance is lower than that of InsertionSortCollider (see Colliders’ performance), but the algorithm is simple enought to make it good for checking other collider’s correctness.
-
property
avoidSelfInteractionMask
¶ This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
-
property
boundDispatcher
¶ BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
FieldApplier¶
![digraph FieldApplier {
rankdir=RL;
margin="0.2,0.05";
"FieldApplier" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FieldApplier"];
"CentralGravityEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CentralGravityEngine"];
"CentralGravityEngine" -> "FieldApplier" [arrowsize=0.5,style="setlinewidth(0.5)"];
"AxialGravityEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.AxialGravityEngine"];
"AxialGravityEngine" -> "FieldApplier" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HdapsGravityEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HdapsGravityEngine"];
"HdapsGravityEngine" -> "GravityEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GravityEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GravityEngine"];
"GravityEngine" -> "FieldApplier" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-aadfeceaed4f83974fc21379fde03e1df4112a7d.png)
Inheritance graph of FieldApplier.¶
-
class
yade.wrapper.
FieldApplier
(inherits GlobalEngine → Engine → Serializable)¶ Base for engines applying force files on particles. Not to be used directly.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
AxialGravityEngine
(inherits FieldApplier → GlobalEngine → Engine → Serializable)¶ Apply acceleration (independent of distance) directed towards an axis.
-
property
acceleration
¶ Acceleration magnitude [kgms⁻²]
-
property
axisDirection
¶ direction of the gravity axis (will be normalized automatically)
-
property
axisPoint
¶ Point through which the axis is passing.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CentralGravityEngine
(inherits FieldApplier → GlobalEngine → Engine → Serializable)¶ Engine applying acceleration to all bodies, towards a central body.
-
property
accel
¶ Acceleration magnitude [kgms⁻²]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
reciprocal
¶ If true, acceleration will be applied on the central body as well.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GravityEngine
(inherits FieldApplier → GlobalEngine → Engine → Serializable)¶ Engine applying constant acceleration to all bodies. DEPRECATED, use Newton::gravity unless you need energy tracking or selective gravity application using groupMask).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
gravity
¶ Acceleration [kgms⁻²]
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
warnOnce
¶ For deprecation warning once.
-
property
-
class
yade.wrapper.
HdapsGravityEngine
(inherits GravityEngine → FieldApplier → GlobalEngine → Engine → Serializable)¶ Read accelerometer in Thinkpad laptops (HDAPS and accordingly set gravity within the simulation. This code draws from hdaps-gl . See scripts/test/hdaps.py for an example.
-
property
accel
¶ reading from the sysfs file
-
property
calibrate
¶ Zero position; if NaN, will be read from the hdapsDir / calibrate.
-
property
calibrated
¶ Whether calibrate was already updated. Do not set to
True
by hand unless you also give a meaningful value for calibrate.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
gravity
¶ Acceleration [kgms⁻²]
-
property
hdapsDir
¶ Hdaps directory; contains
position
(with accelerometer readings) andcalibration
(zero acceleration).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
msecUpdate
¶ How often to update the reading.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updateThreshold
¶ Minimum difference of reading from the file before updating gravity, to avoid jitter.
-
property
warnOnce
¶ For deprecation warning once.
-
property
zeroGravity
¶ Gravity if the accelerometer is in flat (zero) position.
-
property
Partial engines¶
![digraph PartialEngine {
rankdir=RL;
margin="0.2,0.05";
"PartialEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PartialEngine"];
"TwoPhaseFlowEngineT" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TwoPhaseFlowEngineT"];
"TwoPhaseFlowEngineT" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LinearDragEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LinearDragEngine"];
"LinearDragEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"StepDisplacer" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.StepDisplacer"];
"StepDisplacer" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BicyclePedalEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BicyclePedalEngine"];
"BicyclePedalEngine" -> "KinematicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InterpolatingHelixEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InterpolatingHelixEngine"];
"InterpolatingHelixEngine" -> "HelixEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FlowEngineT" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FlowEngineT"];
"FlowEngineT" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"UnsaturatedEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.UnsaturatedEngine"];
"UnsaturatedEngine" -> "TwoPhaseFlowEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HydroForceEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HydroForceEngine"];
"HydroForceEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HarmonicRotationEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HarmonicRotationEngine"];
"HarmonicRotationEngine" -> "RotationEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"RadialForceEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.RadialForceEngine"];
"RadialForceEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HelixEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HelixEngine"];
"HelixEngine" -> "RotationEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InterpolatingDirectedForceEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InterpolatingDirectedForceEngine"];
"InterpolatingDirectedForceEngine" -> "ForceEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"DragEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.DragEngine"];
"DragEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TwoPhaseFlowEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TwoPhaseFlowEngine"];
"TwoPhaseFlowEngine" -> "TwoPhaseFlowEngineT" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ForceEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ForceEngine"];
"ForceEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"KinematicEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.KinematicEngine"];
"KinematicEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SPHEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SPHEngine"];
"SPHEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FlowEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FlowEngine"];
"FlowEngine" -> "FlowEngineT" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ThermalEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ThermalEngine"];
"ThermalEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"FlowEngine_PeriodicInfo" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FlowEngine_PeriodicInfo"];
"FlowEngine_PeriodicInfo" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TorqueEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TorqueEngine"];
"TorqueEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LawTester" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LawTester"];
"LawTester" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"CombinedKinematicEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.CombinedKinematicEngine"];
"CombinedKinematicEngine" -> "PartialEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"TranslationEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TranslationEngine"];
"TranslationEngine" -> "KinematicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"HarmonicMotionEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.HarmonicMotionEngine"];
"HarmonicMotionEngine" -> "KinematicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"ServoPIDController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ServoPIDController"];
"ServoPIDController" -> "TranslationEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PeriodicFlowEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PeriodicFlowEngine"];
"PeriodicFlowEngine" -> "FlowEngine_PeriodicInfo" [arrowsize=0.5,style="setlinewidth(0.5)"];
"RotationEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.RotationEngine"];
"RotationEngine" -> "KinematicEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-54faa17f5911a7c30c2621a08b6606334eb0e8d7.png)
Inheritance graph of PartialEngine.¶
-
class
yade.wrapper.
PartialEngine
(inherits Engine → Serializable)¶ Engine affecting only particular bodies in the simulation, namely those defined in ids attribute. See also GlobalEngine.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
BicyclePedalEngine
(inherits KinematicEngine → PartialEngine → Engine → Serializable)¶ Engine applying the linear motion of
bicycle pedal
e.g. moving points around the axis without rotation-
property
angularVelocity
¶ Angular velocity. [rad/s]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fi
¶ Initial phase [radians]
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
radius
¶ Rotation radius. [m]
-
property
rotationAxis
¶ Axis of rotation (direction); will be normalized automatically.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
CombinedKinematicEngine
(inherits PartialEngine → Engine → Serializable)¶ Engine for applying combined displacements on pre-defined bodies. Constructed using
+
operator on regular KinematicEngines. Theids
operated on are those of the first engine in the combination (assigned automatically).-
property
comb
¶ Kinematic engines that will be combined by this one, run in the order given.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
DragEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply drag force on some particles at each step, decelerating them proportionally to their linear velocities. The applied force reads
\[F_{d}=-\frac{\vec{v}}{|\vec{v}|}\frac{1}{2}\rho|\vec{v}|^2 C_d A\]where \(\rho\) is the medium density (density), \(v\) is particle’s velocity, \(A\) is particle projected area (disc), \(C_d\) is the drag coefficient (0.47 for Sphere),
Note
Drag force is only applied to spherical particles, listed in ids.
-
property
Cd
¶ Drag coefficient <http://en.wikipedia.org/wiki/Drag_coefficient>`_.
-
property
Rho
¶ Density of the medium (fluid or air), by default - the density of the air.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
FlowEngine
(inherits FlowEngineT → PartialEngine → Engine → Serializable)¶ An engine to solve flow problem in saturated granular media. Model description can be found in [Chareyre2012a] and [Catalano2014a]. See the example script FluidCouplingPFV/oedometer.py. More documentation to come.
-
OSI
((FlowEngineT)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
avFlVelOnSph
((FlowEngineT)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((FlowEngineT)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((FlowEngineT)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((FlowEngineT)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((FlowEngineT)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((FlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((FlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
cholmodStats
((FlowEngineT)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((FlowEngineT)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((FlowEngineT)arg1) → None :¶ Clear the list of points with pressure imposed.
-
compTessVolumes
((FlowEngineT)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
dt
¶ timestep [s]
-
edgeSize
((FlowEngineT)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((FlowEngineT)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((FlowEngineT)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((FlowEngineT)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
getBoundaryFluidArea
((FlowEngineT)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((FlowEngineT)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((FlowEngineT)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((FlowEngineT)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((FlowEngineT)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((FlowEngineT)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((FlowEngineT)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((FlowEngineT)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((FlowEngineT)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellFlux
((FlowEngineT)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((FlowEngineT)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellInvVoidVolume
((FlowEngineT)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellPImposed
((FlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPressure
((FlowEngineT)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellTImposed
((FlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((FlowEngineT)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getConductivity
((FlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((FlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((FlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((FlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEquivalentCompressibility
((FlowEngineT)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((FlowEngineT)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getNeighbors
((FlowEngineT)arg1, (int)arg2) → list :¶ get 4 neigboring cells
-
getPorePressure
((FlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((FlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getVertices
((FlowEngineT)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((FlowEngineT)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeFlux
((FlowEngineT)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((FlowEngineT)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((FlowEngineT)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
initializeVolumes
((FlowEngineT)arg1) → None :¶ initialize pore volumes.
-
property
isActivated
¶ Activates Flow Engine
-
isCellNeighbor
((FlowEngineT)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
meanKStat
¶ report the local permeabilities’ correction
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((FlowEngineT)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((FlowEngineT)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((FlowEngineT)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((FlowEngineT)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
printVertices
((FlowEngineT)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
property
relax
¶ Gauss-Seidel relaxation
-
resetLinearSystem
((FlowEngineT)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
saveVtk
((FlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((FlowEngineT)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellPImposed
((FlowEngineT)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((FlowEngineT)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellTImposed
((FlowEngineT)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((FlowEngineT)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
setImposedPressure
((FlowEngineT)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
shearLubForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
surfaceDistanceParticle
((FlowEngineT)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((FlowEngineT)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((FlowEngineT)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((FlowEngineT)arg1) → None :¶ update rates of volume change
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
volume
((FlowEngineT)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
FlowEngineT
(inherits PartialEngine → Engine → Serializable)¶ A generic engine from wich more specialized engines can inherit. It is defined for the sole purpose of inserting the right data classes CellInfo and VertexInfo in the triangulation, and it should not be used directly. Instead, look for specialized engines, e.g. FlowEngine, PeriodicFlowEngine, or DFNFlowEngine.
-
OSI
((FlowEngineT)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
avFlVelOnSph
((FlowEngineT)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((FlowEngineT)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((FlowEngineT)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((FlowEngineT)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((FlowEngineT)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((FlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((FlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
cholmodStats
((FlowEngineT)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((FlowEngineT)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((FlowEngineT)arg1) → None :¶ Clear the list of points with pressure imposed.
-
compTessVolumes
((FlowEngineT)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
dt
¶ timestep [s]
-
edgeSize
((FlowEngineT)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((FlowEngineT)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((FlowEngineT)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((FlowEngineT)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
getBoundaryFluidArea
((FlowEngineT)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((FlowEngineT)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((FlowEngineT)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((FlowEngineT)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((FlowEngineT)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((FlowEngineT)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((FlowEngineT)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((FlowEngineT)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((FlowEngineT)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellFlux
((FlowEngineT)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((FlowEngineT)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellInvVoidVolume
((FlowEngineT)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellPImposed
((FlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPressure
((FlowEngineT)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellTImposed
((FlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((FlowEngineT)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getConductivity
((FlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((FlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((FlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((FlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEquivalentCompressibility
((FlowEngineT)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((FlowEngineT)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getNeighbors
((FlowEngineT)arg1, (int)arg2) → list :¶ get 4 neigboring cells
-
getPorePressure
((FlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((FlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getVertices
((FlowEngineT)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((FlowEngineT)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeFlux
((FlowEngineT)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((FlowEngineT)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((FlowEngineT)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
initializeVolumes
((FlowEngineT)arg1) → None :¶ initialize pore volumes.
-
property
isActivated
¶ Activates Flow Engine
-
isCellNeighbor
((FlowEngineT)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
meanKStat
¶ report the local permeabilities’ correction
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((FlowEngineT)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((FlowEngineT)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((FlowEngineT)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((FlowEngineT)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
printVertices
((FlowEngineT)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
property
relax
¶ Gauss-Seidel relaxation
-
resetLinearSystem
((FlowEngineT)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
saveVtk
((FlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((FlowEngineT)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellPImposed
((FlowEngineT)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((FlowEngineT)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellTImposed
((FlowEngineT)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((FlowEngineT)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
setImposedPressure
((FlowEngineT)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
shearLubForce
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((FlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
surfaceDistanceParticle
((FlowEngineT)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((FlowEngineT)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((FlowEngineT)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((FlowEngineT)arg1) → None :¶ update rates of volume change
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
volume
((FlowEngineT)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
FlowEngine_PeriodicInfo
(inherits PartialEngine → Engine → Serializable)¶ A generic engine from wich more specialized engines can inherit. It is defined for the sole purpose of inserting the right data classes CellInfo and VertexInfo in the triangulation, and it should not be used directly. Instead, look for specialized engines, e.g. FlowEngine, PeriodicFlowEngine, or DFNFlowEngine.
-
OSI
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
avFlVelOnSph
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((FlowEngine_PeriodicInfo)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((FlowEngine_PeriodicInfo)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((FlowEngine_PeriodicInfo)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((FlowEngine_PeriodicInfo)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
cholmodStats
((FlowEngine_PeriodicInfo)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((FlowEngine_PeriodicInfo)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((FlowEngine_PeriodicInfo)arg1) → None :¶ Clear the list of points with pressure imposed.
-
compTessVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
dt
¶ timestep [s]
-
edgeSize
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((FlowEngine_PeriodicInfo)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((FlowEngine_PeriodicInfo)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((FlowEngine_PeriodicInfo)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
getBoundaryFluidArea
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((FlowEngine_PeriodicInfo)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((FlowEngine_PeriodicInfo)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((FlowEngine_PeriodicInfo)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((FlowEngine_PeriodicInfo)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellFlux
((FlowEngine_PeriodicInfo)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellInvVoidVolume
((FlowEngine_PeriodicInfo)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellPImposed
((FlowEngine_PeriodicInfo)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPressure
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellTImposed
((FlowEngine_PeriodicInfo)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getConductivity
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEquivalentCompressibility
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((FlowEngine_PeriodicInfo)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getNeighbors
((FlowEngine_PeriodicInfo)arg1, (int)arg2) → list :¶ get 4 neigboring cells
-
getPorePressure
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getVertices
((FlowEngine_PeriodicInfo)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeFlux
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
initializeVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ initialize pore volumes.
-
property
isActivated
¶ Activates Flow Engine
-
isCellNeighbor
((FlowEngine_PeriodicInfo)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
meanKStat
¶ report the local permeabilities’ correction
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((FlowEngine_PeriodicInfo)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((FlowEngine_PeriodicInfo)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((FlowEngine_PeriodicInfo)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((FlowEngine_PeriodicInfo)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
printVertices
((FlowEngine_PeriodicInfo)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
property
relax
¶ Gauss-Seidel relaxation
-
resetLinearSystem
((FlowEngine_PeriodicInfo)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
saveVtk
((FlowEngine_PeriodicInfo)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((FlowEngine_PeriodicInfo)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellPImposed
((FlowEngine_PeriodicInfo)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellTImposed
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
setImposedPressure
((FlowEngine_PeriodicInfo)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
shearLubForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
surfaceDistanceParticle
((FlowEngine_PeriodicInfo)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((FlowEngine_PeriodicInfo)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ update rates of volume change
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
volume
((FlowEngine_PeriodicInfo)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
ForceEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply contact force on some particles at each step.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
force
¶ Force to apply.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
HarmonicMotionEngine
(inherits KinematicEngine → PartialEngine → Engine → Serializable)¶ This engine implements the harmonic oscillation of bodies. http://en.wikipedia.org/wiki/Simple_harmonic_motion#Dynamics_of_simple_harmonic_motion
-
property
A
¶ Amplitude [m]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f
¶ Frequency [hertz]
-
property
fi
¶ Initial phase [radians]. By default, the body oscillates around initial position.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
HarmonicRotationEngine
(inherits RotationEngine → KinematicEngine → PartialEngine → Engine → Serializable)¶ This engine implements the harmonic-rotation oscillation of bodies. http://en.wikipedia.org/wiki/Simple_harmonic_motion#Dynamics_of_simple_harmonic_motion ; please, set dynamic=False for bodies, droven by this engine, otherwise amplitude will be 2x more, than awaited.
-
property
A
¶ Amplitude [rad]
-
property
angularVelocity
¶ Angular velocity. [rad/s]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
f
¶ Frequency [hertz]
-
property
fi
¶ Initial phase [radians]. By default, the body oscillates around initial position.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rotateAroundZero
¶ If True, bodies will not rotate around their centroids, but rather around
zeroPoint
.
-
property
rotationAxis
¶ Axis of rotation (direction); will be normalized automatically.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
zeroPoint
¶ Point around which bodies will rotate if
rotateAroundZero
is True
-
property
-
class
yade.wrapper.
HelixEngine
(inherits RotationEngine → KinematicEngine → PartialEngine → Engine → Serializable)¶ Engine applying both rotation and translation, along the same axis, whence the name HelixEngine
-
property
angleTurned
¶ How much have we turned so far. (auto-updated) [rad]
-
property
angularVelocity
¶ Angular velocity. [rad/s]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
linearVelocity
¶ Linear velocity [m/s]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rotateAroundZero
¶ If True, bodies will not rotate around their centroids, but rather around
zeroPoint
.
-
property
rotationAxis
¶ Axis of rotation (direction); will be normalized automatically.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
zeroPoint
¶ Point around which bodies will rotate if
rotateAroundZero
is True
-
property
-
class
yade.wrapper.
HydroForceEngine
(inherits PartialEngine → Engine → Serializable)¶ - Engine performing a coupling of the DEM with a volume-averaged 1D fluid resolution to simulate steady uniform unidirectional fluid flow. It has been developed and used to model steady uniform gravity-driven turbulent bedload transport [Maurin2015b] [Maurin2016] [Maurin2018], but can be also used in its current state for laminar or pressure-driven configurations. The fundamentals of the model can be found in [Maurin2015b] and [Maurin2015PhD], and in more details in [Maurin2018_VANSbasis], [Maurin2018_VANSfluidResol] and [Maurin2018_VANSvalidations].
The engine can be decomposed in three different parts: (i) It applies the fluid force on the particles imposed by the fluid velocity profiles and fluid properties, (ii) It evaluates averaged solid depth profiles necessary for the fluid force application and for the fluid resolution, (iii) It solve the volume-averaged 1D fluid momentum balance.
The three different functions are detailed below:
(i) Fluid force on particles Apply to each particles, buoyancy, drag and lift force due to a 1D fluid flow. The applied drag force reads
\(F_{d}=\frac{1}{2} C_d A\rho^f|\vec{v_f - v}| \vec{v_f - v}\)
where \(\rho\) is the fluid density (densFluid), \(v\) is particle’s velocity, \(v_f\) is the velocity of the fluid at the particle center (taken from the fluid velocity profile vxFluid), \(A = \pi d^2/4\) is particle projected area (disc), \(C_d\) is the drag coefficient. The formulation of the drag coefficient depends on the local particle reynolds number and the solid volume fraction. The formulation of the drag is [Dallavalle1948] [RevilBaudard2013] with a correction of Richardson-Zaki [Richardson1954] to take into account the hindrance effect. This law is classical in sediment transport. It is possible to activate a fluctuation of the drag force for each particle which account for the turbulent fluctuation of the fluid velocity (velFluct). Three simple discrete random walk model have been implemented for the turbulent velocity fluctuation. The main one (turbulentFluctuations) takes as input the Reynolds stress tensor \(R^f_{xz}\) as a function of the depth, and allows to recover the main property of the fluctuations by imposing \(<u_x'u_z'> (z) = <R^f_{xz}>(z)/\rho^f\). It requires as input \(<R^f_{xz}>(z)\) called ReynoldStresses in the code. The formulation of the lift is taken from [Wiberg1985] and is such that :
\(F_{L}=\frac{1}{2} C_L A\rho^f((v_f - v)^2_{top} - (v_f - v)^2_{bottom})\)
Where the subscript top and bottom means evaluated at the top (respectively the bottom) of the sphere considered. This formulation of the lift account for the difference of pressure at the top and the bottom of the particle inside a turbulent shear flow. As this formulation is controversial when approaching the threshold of motion [Schmeeckle2007] it is possible to desactivate it with the variable lift. The buoyancy is taken into account through the buoyant weight :
\(F_{buoyancy}= - \rho^f V^p g\)
, where g is the gravity vector along the vertical, and \(V^p\) is the volume of the particle. In the case where the fluid flow is steady and uniform, the buoyancy reduces to its wall-normal component (see [Maurin2017] for a full explanation), and one should put steadyFlow to true in order to kill the streamwise component.
(ii) Averaged solid depth profiles The function averageProfile evaluates the volume averaged depth profiles (1D) of particle velocity, particle solid volume fraction and particle drag force. It uses a volume-weighting average following [Maurin2015PhD]_[Maurin2015b]_, i.e. the average of a variable \(A^p\) associated to particles at a given discretized wall-normal position \(z\) is given by:
\(\left< A \right>^s(z) = \displaystyle \frac{\displaystyle \sum_{p|z^p\in[z-dz/2,z+dz/2]} A^p(t) V^p_z}{\displaystyle \sum_{p|z^p\in[z-dz/2,z+dz/2]} V^p_z}\)
Where the sums are over the particles contained inside the slice between the wall-normal position \(z-dz/2\) and \(z+dz/2\), and \(V^p\) represents the part of the volume of the given particle effectively contained inside the slice. For more details, see [Maurin2015PhD].
(iii) 1D volume-average fluid resolution The fluid resolution is based on the resolution of the 1D volume-averaged fluid momentum balance. It assumes by definition (unidirectional) that the fluid flow is steady and uniform. It is the same fluid resolution as [RevilBaudard2013]. Details can be found in this paper and in [Maurin2015PhD] [Maurin2015b].
The three different component can be used independently, e.g. applying a fluid force due to an imposed fluid profile or solving the fluid momentum balance for a given concentration of particles.
-
property
Cl
¶ Value of the lift coefficient taken from [Wiberg1985]
-
property
ReynoldStresses
¶ Vector of size equal to nCell containing the Reynolds stresses as a function of the depth. ReynoldStresses(z) \(= \rho^f <u_x'u_z'>(z)^2\)
-
property
averageDrag
¶ Discretized average drag depth profile. No role in the engine, output parameter. For practical reason, it can be evaluated directly inside the engine, calling from python the averageProfile() method of the engine
-
property
averageDrag1
¶ Discretized average drag depth profile of particles of type 1. Evaluated when twoSize is set to True.
-
property
averageDrag2
¶ Discretized average drag depth profile of particles of type 2. Evaluated when twoSize is set to True.
-
averageProfile
((HydroForceEngine)arg1) → None :¶ Compute and store the particle velocity (vxPart, vyPart, vzPart) and solid volume fraction (phiPart) depth profile. For each defined cell z, the k component of the average particle velocity reads:
\(<v_k>^z= \sum_p V^p v_k^p/\sum_p V^p\),
where the sum is made over the particles contained in the cell, \(v_k^p\) is the k component of the velocity associated to particle p, and \(V^p\) is the part of the volume of the particle p contained inside the cell. This definition allows to smooth the averaging, and is equivalent to taking into account the center of the particles only when there is a lot of particles in each cell. As for the solid volume fraction, it is evaluated in the same way: for each defined cell z, it reads:
\(<\phi>^z= \frac{1}{V_{cell}}\sum_p V^p\), where \(V_{cell}\) is the volume of the cell considered, and \(V^p\) is the volume of particle p contained in cell z. This function gives depth profiles of average velocity and solid volume fraction, returning the average quantities in each cell of height dz, from the reference horizontal plane at elevation zRef (input parameter) until the plane of elevation zRef plus nCell times deltaZ (input parameters). When the option twoSize is set to True, evaluate in addition the average drag (averageDrag1 and averageDrag2) and solid volume fraction (phiPart1 and phiPart2) depth profiles considering only the particles of radius respectively radiusPart1 and radiusPart2 in the averaging.
-
averageProfilePP
((HydroForceEngine)arg1) → None :¶ Same as averageProfile function but considering point particles, i.e. particles for which all the quantites are defined at their center (no extent considered).
-
property
bedElevation
¶ Elevation of the bed above which the fluid flow is turbulent and the particles undergo turbulent velocity fluctuation.
-
property
channelWidth
¶ Fluid resolution: Channel width for the evaluation of the fluid wall friction inside the fluid resolution.
-
property
convAcc
¶ Convective acceleration, depth dependent
-
property
convAccOption
¶ To activate the convective acceleration
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
deltaZ
¶ Height of the discretization cell.
-
property
densFluid
¶ Density of the fluid, by default - density of water
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
dpdx
¶ pressure gradient along streamwise direction
-
property
dsig_cpp
¶ test
-
property
dtFluct
¶ Execution time step of the turbulent fluctuation model.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
expoRZ
¶ Value of the Richardson-Zaki exponent, for the drag correction due to hindrance
-
property
fluctTime
¶ Vector containing the time of life of the fluctuations associated to each particles.
-
property
fluidFrictionCoef
¶ Fluid resolution: fitting coefficient for the fluid wall friction
-
fluidResolution
((HydroForceEngine)arg1, (float)arg2, (float)arg3) → None :¶ Solve the 1D volume-averaged fluid momentum balance on the defined mesh (nCell, deltaZ) from the volume-averaged solid profiles (phiPart,:yref:vxPart<HydroForceEngine.vxPart>,:yref:averageDrag<HydroForceEngine.averageDrag>), which can be evaluated with the averageProfile function.
-
property
fluidWallFriction
¶ Fluid resolution: if set to true, introduce a sink term to account for the fluid friction at the wall, see [Maurin2015] for details. Requires to set the width of the channel. It might slow down significantly the calculation.
-
property
gravity
¶ Gravity vector
-
property
ilm
¶ Fluid resolution: type of mixing length resolution applied: 0: classical Prandtl mixing length, 1: Prandtl mixing length with free-surface effects, 2: Damp turbulence accounting for the presence of particles [Li1995], see [RevilBaudard2013] for more details.
-
property
irheolf
¶ Fluid resolution: effective fluid viscosity option: 0: pure fluid viscosity, 1: Einstein viscosity.
-
property
iturbu
¶ Fluid resolution: activate the turbulence resolution, 1, or not, 0
-
property
iusl
¶ Fluid resolution: option to set the boundary condition at the top of the fluid, 0: Dirichlet, fixed (\(u=uTop\) en \(z=h\)), 1: Neumann, free-surface (\(du/dz=0\) en \(z=h\)).
-
property
kappa
¶ Fluid resolution: Von Karman constant. Can be tuned to account for the effect of particles on the fluid turbulence, see e.g. [RevilBaudard2015]
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
lift
¶ Option to activate or not the evaluation of the lift
-
property
nCell
¶ Number of cell in the depth
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
phiMax
¶ Fluid resolution: maximum solid volume fraction.
-
property
phiPart
¶ Discretized solid volume fraction depth profile. Can be taken as input parameter or evaluated directly inside the engine, calling from python the averageProfile() function
-
property
phiPart1
¶ Discretized solid volume fraction depth profile of particles of type 1. Evaluated when twoSize is set to True.
-
property
phiPart2
¶ Discretized solid volume fraction depth profile of particles of type 2. Evaluated when twoSize is set to True.
-
property
radiusPart
¶ Reference particle radius
-
property
sig_cpp
¶ test
-
property
steadyFlow
¶ Condition to modify the buoyancy force according to the physical difference between a fluid at rest and a steady fluid flow. For more details see [Maurin2017]
-
property
taufsi
¶ Fluid Resolution: Create Taufsi/rhof = dragTerm/(rhof(vf-vxp)) to transmit to the fluid code
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
turbulentFluctuation
((HydroForceEngine)arg1) → None :¶ Apply a discrete random walk model to the evaluation of the drag force to account for the fluid velocity turbulent fluctuations. Very simple model applying fluctuations from the values of the Reynolds stresses in order to recover the property \(<u_x'u_z'> (z) = <R^f_{xz}>(z)/\rho^f\). The random fluctuations are modified over a time scale given by the eddy turn over time.
-
turbulentFluctuationBIS
((HydroForceEngine)arg1) → None :¶ Apply turbulent fluctuation to the problem similarly to turbulentFluctuation but with an update of the fluctuation depending on the particle position.
-
turbulentFluctuationFluidizedBed
((HydroForceEngine)arg1) → None :¶ Same as turbulentFluctuations but adapted to the example case of the fluidized bed.
-
property
turbulentViscosity
¶ Fluid Resolution: turbulent viscocity as a function of the depth
-
property
twoSize
¶ Option to activate when considering two particle size in the simulation. When activated evaluate the average solid volume fraction and drag force for the two type of particles of diameter diameterPart1 and diameterPart2 independently.
-
property
uTop
¶ Fluid resolution: fluid velocity at the top boundary when iusl = 0
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vCell
¶ Volume of averaging cell
-
property
vFluctX
¶ Vector associating a streamwise fluid velocity fluctuation to each particle. Fluctuation calculated in the C++ code from the discrete random walk model
-
property
vFluctY
¶ Vector associating a spanwise fluid velocity fluctuation to each particle. Fluctuation calculated in the C++ code from the discrete random walk model
-
property
vFluctZ
¶ Vector associating a normal fluid velocity fluctuation to each particle. Fluctuation calculated in the C++ code from the discrete random walk model
-
property
velFluct
¶ If true, activate the determination of turbulent fluid velocity fluctuation for the next time step only at the position of each particle, using a simple discrete random walk (DRW) model based on the Reynolds stresses profile (ReynoldStresses)
-
property
viscoDyn
¶ Dynamic viscosity of the fluid, by default - viscosity of water
-
property
viscousSubLayer
¶ Fluid resolution: solve the viscous sublayer close to the bottom boundary if set to 1
-
property
vxFluid
¶ Discretized streamwise fluid velocity depth profile at t
-
property
vxPart
¶ Discretized streamwise solid velocity depth profile. Can be taken as input parameter, or evaluated directly inside the engine, calling from python the averageProfile() function
-
property
vxPart1
¶ Discretized solid streamwise velocity depth profile of particles of type 1. Evaluated when twoSize is set to True.
-
property
vxPart2
¶ Discretized solid streamwise velocity depth profile of particles of type 2. Evaluated when twoSize is set to True.
-
property
vyPart
¶ Discretized spanwise solid velocity depth profile. No role in the engine, output parameter. For practical reason, it can be evaluated directly inside the engine, calling from python the averageProfile() method of the engine
-
property
vyPart1
¶ Discretized solid spanwise velocity depth profile of particles of type 1. Evaluated when twoSize is set to True.
-
property
vyPart2
¶ Discretized solid spanwise velocity depth profile of particles of type 2. Evaluated when twoSize is set to True.
-
property
vzPart
¶ Discretized normal solid velocity depth profile. No role in the engine, output parameter. For practical reason, it can be evaluated directly inside the engine, calling from python the averageProfile() method of the engine
-
property
vzPart1
¶ Discretized solid wall-normal velocity depth profile of particles of type 1. Evaluated when twoSize is set to True.
-
property
vzPart2
¶ Discretized solid wall-normal velocity depth profile of particles of type 2. Evaluated when twoSize is set to True.
-
property
zRef
¶ Position of the reference point which correspond to the first value of the fluid velocity, i.e. to the ground.
-
class
yade.wrapper.
InterpolatingDirectedForceEngine
(inherits ForceEngine → PartialEngine → Engine → Serializable)¶ Engine for applying force of varying magnitude but constant direction on subscribed bodies. times and magnitudes must have the same length, direction (normalized automatically) gives the orientation.
As usual with interpolating engines: the first magnitude is used before the first time point, last magnitude is used after the last time point. Wrap specifies whether time wraps around the last time point to the first time point.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
direction
¶ Contact force direction (normalized automatically)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
force
¶ Force to apply.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
magnitudes
¶ Force magnitudes readings [N]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
times
¶ Time readings [s]
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wrap
¶ wrap to the beginning of the sequence if beyond the last time point
-
property
-
class
yade.wrapper.
InterpolatingHelixEngine
(inherits HelixEngine → RotationEngine → KinematicEngine → PartialEngine → Engine → Serializable)¶ Engine applying spiral motion, finding current angular velocity by linearly interpolating in times and velocities and translation by using slope parameter.
The interpolation assumes the margin value before the first time point and last value after the last time point. If wrap is specified, time will wrap around the last times value to the first one (note that no interpolation between last and first values is done).
-
property
angleTurned
¶ How much have we turned so far. (auto-updated) [rad]
-
property
angularVelocities
¶ List of angular velocities; manadatorily of same length as times. [rad/s]
-
property
angularVelocity
¶ Angular velocity. [rad/s]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
linearVelocity
¶ Linear velocity [m/s]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rotateAroundZero
¶ If True, bodies will not rotate around their centroids, but rather around
zeroPoint
.
-
property
rotationAxis
¶ Axis of rotation (direction); will be normalized automatically.
-
property
slope
¶ Axial translation per radian turn (can be negative) [m/rad]
-
property
times
¶ List of time points at which velocities are given; must be increasing [s]
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wrap
¶ Wrap t if t>times_n, i.e. t_wrapped=t-N*(times_n-times_0)
-
property
zeroPoint
¶ Point around which bodies will rotate if
rotateAroundZero
is True
-
property
-
class
yade.wrapper.
KinematicEngine
(inherits PartialEngine → Engine → Serializable)¶ Abstract engine for applying prescribed displacement.
Note
Derived classes should override the
apply
with given list ofids
(notaction
with PartialEngine.ids), so that they work when combined together; velocity and angular velocity of all subscribed bodies is reset before theapply
method is called, it should therefore only increment those quantities.-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
LawTester
(inherits PartialEngine → Engine → Serializable)¶ Prescribe and apply deformations of an interaction in terms of local mutual displacements and rotations. The loading path is specified either using path (as sequence of 6-vectors containing generalized displacements \(u_x\), \(u_y\), \(u_z\), \(\phi_x\), \(\phi_y\), \(\phi_z\)) or disPath (\(u_x\), \(u_y\), \(u_z\)) and rotPath (\(\phi_x\), \(\phi_y\), \(\phi_z\)). Time function with time values (step numbers) corresponding to points on loading path is given by pathSteps. Loading values are linearly interpolated between given loading path points, and starting zero-value (the initial configuration) is assumed for both path and pathSteps. hooks can specify python code to run when respective point on the path is reached; when the path is finished, doneHook will be run.
LawTester should be placed between InteractionLoop and NewtonIntegrator in the simulation loop, since it controls motion via setting linear/angular velocities on particles; those velocities are integrated by NewtonIntegrator to yield an actual position change, which in turn causes IGeom to be updated (and contact law applied) when InteractionLoop is executed. Constitutive law generating forces on particles will not affect prescribed particle motion, since both particles have all DoFs blocked when first used with LawTester.
LawTester uses, as much as possible, IGeom to provide useful data (such as local coordinate system), but is able to compute those independently if absent in the respective IGeom:
#DoFs
LawTester support level
3
full
6
full
3
emulate local coordinate system
6
emulate local coordinate system
Depending on IGeom, 3 (\(u_x\), \(u_y\), \(u_z\)) or 6 (\(u_x\), \(u_y\), \(u_z\), \(\phi_x\), \(\phi_y\), \(\phi_z\)) degrees of freedom (DoFs) are controlled with LawTester, by prescribing linear and angular velocities of both particles in contact. All DoFs controlled with LawTester are orthogonal (fully decoupled) and are controlled independently.
When 3 DoFs are controlled, rotWeight controls whether local shear is applied by moving particle on arc around the other one, or by rotating without changing position; although such rotation induces mutual rotation on the interaction, it is ignored with IGeom with only 3 DoFs. When 6 DoFs are controlled, only arc-displacement is applied for shear, since otherwise mutual rotation would occur.
idWeight distributes prescribed motion between both particles (resulting local deformation is the same if
id1
is moved towardsid2
orid2
towardsid1
). This is true only for \(u_x\), \(u_y\), \(u_z\), \(\phi_x\) however ; bending rotations \(\phi_y\), \(\phi_z\) are nevertheless always distributed regardless ofidWeight
to both spheres in inverse proportion to their radii, so that there is no shear induced.LawTester knows current contact deformation from 2 sources: from its own internal data (which are used for prescribing the displacement at every step), which can be accessed in uTest, and from IGeom itself (depending on which data it provides), which is stored in uGeom. These two values should be identical (disregarding numerical percision), and it is a way to test whether IGeom and related functors compute what they are supposed to compute.
LawTester-operated interactions can be rendered with GlExtra_LawTester renderer.
See scripts/test/law-test.py for an example.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
disPath
¶ Loading path, where each Vector3 contains desired normal displacement and two components of the shear displacement (in local coordinate system, which is being tracked automatically. If shorter than rotPath, the last value is repeated.
-
property
displIsRel
¶ Whether displacement values in disPath are normalized by reference contact length (r1+r2 for 2 spheres).
-
property
doneHook
¶ Python command (as string) to run when end of the path is achieved. If empty, the engine will be set dead.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
hooks
¶ Python commands to be run when the corresponding point in path is reached, before doing other things in that particular step. See also doneHook.
-
property
idWeight
¶ Float, usually ∈〈0,1〉, determining on how are displacements distributed between particles (0 for id1, 1 for id2); intermediate values will apply respective part to each of them. This parameter is ignored with 6-DoFs IGeom.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
pathSteps
¶ Step number for corresponding values in path; if shorter than path, distance between last 2 values is used for the rest.
-
property
refLength
¶ Reference contact length, for rendering only.
-
property
renderLength
¶ Characteristic length for the purposes of rendering, set equal to the smaller radius.
-
property
rotPath
¶ Rotational components of the loading path, where each item contains torsion and two bending rotations in local coordinates. If shorter than path, the last value is repeated.
-
property
rotWeight
¶ Float ∈〈0,1〉 determining whether shear displacement is applied as rotation or displacement on arc (0 is displacement-only, 1 is rotation-only). Not effective when mutual rotation is specified.
-
property
step
¶ Step number in which this engine is active; determines position in path, using pathSteps.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
trsf
¶ Transformation matrix for the local coordinate system. (auto-updated)
-
property
uGeom
¶ Current generalized displacements (3 displacements, 3 rotations), as stored in the interation itself. They should corredpond to uTest, otherwise a bug is indicated.
-
property
uTest
¶ Current generalized displacements (3 displacements, 3 rotations), as they should be according to this LawTester. Should correspond to uGeom.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
uuPrev
¶ Generalized displacement values reached in the previous step, for knowing which increment to apply in the current step.
-
property
-
class
yade.wrapper.
LinearDragEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply viscous resistance or linear drag on some particles at each step, decelerating them proportionally to their linear velocities. The applied force reads
\[F_{d}=-b{\vec{v}}\]where \(b\) is the linear drag, \(\vec{v}\) is particle’s velocity.
\[b=6\pi\nu r \]where \(\nu\) is the medium viscosity, \(r\) is the Stokes radius of the particle (but in this case we accept it equal to sphere radius for simplification),
Note
linear drag is only applied to spherical particles, listed in ids.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
nu
¶ Viscosity of the medium.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
PeriodicFlowEngine
(inherits FlowEngine_PeriodicInfo → PartialEngine → Engine → Serializable)¶ A variant of FlowEngine implementing periodic boundary conditions. The API is very similar.
-
OSI
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
avFlVelOnSph
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((FlowEngine_PeriodicInfo)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((FlowEngine_PeriodicInfo)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((FlowEngine_PeriodicInfo)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((FlowEngine_PeriodicInfo)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
cholmodStats
((FlowEngine_PeriodicInfo)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((FlowEngine_PeriodicInfo)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((FlowEngine_PeriodicInfo)arg1) → None :¶ Clear the list of points with pressure imposed.
-
compTessVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
dt
¶ timestep [s]
-
property
duplicateThreshold
¶ distance from cell borders that will triger periodic duplication in the triangulation (auto-updated)
-
edgeSize
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((FlowEngine_PeriodicInfo)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((FlowEngine_PeriodicInfo)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((FlowEngine_PeriodicInfo)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
getBoundaryFluidArea
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((FlowEngine_PeriodicInfo)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((FlowEngine_PeriodicInfo)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((FlowEngine_PeriodicInfo)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((FlowEngine_PeriodicInfo)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((FlowEngine_PeriodicInfo)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellFlux
((FlowEngine_PeriodicInfo)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellInvVoidVolume
((FlowEngine_PeriodicInfo)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellPImposed
((FlowEngine_PeriodicInfo)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPressure
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellTImposed
((FlowEngine_PeriodicInfo)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((FlowEngine_PeriodicInfo)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getConductivity
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEquivalentCompressibility
((FlowEngine_PeriodicInfo)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((FlowEngine_PeriodicInfo)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getNeighbors
((FlowEngine_PeriodicInfo)arg1, (int)arg2) → list :¶ get 4 neigboring cells
-
getPorePressure
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getVertices
((FlowEngine_PeriodicInfo)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
gradP
¶ Macroscopic pressure gradient
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeFlux
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((FlowEngine_PeriodicInfo)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
initializeVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ initialize pore volumes.
-
property
isActivated
¶ Activates Flow Engine
-
isCellNeighbor
((FlowEngine_PeriodicInfo)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
meanKStat
¶ report the local permeabilities’ correction
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((FlowEngine_PeriodicInfo)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((FlowEngine_PeriodicInfo)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((FlowEngine_PeriodicInfo)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((FlowEngine_PeriodicInfo)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
printVertices
((FlowEngine_PeriodicInfo)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
property
relax
¶ Gauss-Seidel relaxation
-
resetLinearSystem
((FlowEngine_PeriodicInfo)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
saveVtk
((FlowEngine_PeriodicInfo)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((FlowEngine_PeriodicInfo)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellPImposed
((FlowEngine_PeriodicInfo)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellTImposed
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((FlowEngine_PeriodicInfo)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
setImposedPressure
((FlowEngine_PeriodicInfo)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
shearLubForce
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((FlowEngine_PeriodicInfo)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
surfaceDistanceParticle
((FlowEngine_PeriodicInfo)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((FlowEngine_PeriodicInfo)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((FlowEngine_PeriodicInfo)arg1) → None :¶ update rates of volume change
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
volume
((FlowEngine_PeriodicInfo)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
RadialForceEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply force of given magnitude directed away from spatial axis.
-
property
axisDir
¶ Axis direction (normalized automatically)
-
property
axisPt
¶ Point on axis
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
fNorm
¶ Applied force magnitude
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
RotationEngine
(inherits KinematicEngine → PartialEngine → Engine → Serializable)¶ Engine applying rotation (by setting angular velocity) to subscribed bodies. If rotateAroundZero is set, then each body is also displaced around zeroPoint.
-
property
angularVelocity
¶ Angular velocity. [rad/s]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rotateAroundZero
¶ If True, bodies will not rotate around their centroids, but rather around
zeroPoint
.
-
property
rotationAxis
¶ Axis of rotation (direction); will be normalized automatically.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
zeroPoint
¶ Point around which bodies will rotate if
rotateAroundZero
is True
-
property
-
class
yade.wrapper.
SPHEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply given torque (momentum) value at every subscribed particle, at every step.
-
property
KernFunctionDensity
¶ Kernel function for density calculation (by default - Lucy). The following kernel functions are available: Lucy=1 ([Lucy1977] (27)), BSpline1=2 ([Monaghan1985] (21)), BSpline2=3 ([Monaghan1985] (22)).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
h
¶ Core radius. See Mueller [Mueller2003] .
-
property
k
¶ Gas constant for SPH-interactions (only for SPH-model). See Mueller [Mueller2003] .
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ Bitmask for SPH-particles.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
rho0
¶ Rest density. See Mueller [Mueller2003] .
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ServoPIDController
(inherits TranslationEngine → KinematicEngine → PartialEngine → Engine → Serializable)¶ PIDController servo-engine for applying prescribed force on bodies. http://en.wikipedia.org/wiki/PID_controller
-
property
axis
¶ Unit vector along which apply the velocity [-]
-
property
curVel
¶ Current applied velocity [m/s]
-
property
current
¶ Current value for the controller [N]
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
errorCur
¶ Current error [N]
-
property
errorPrev
¶ Previous error [N]
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
iTerm
¶ Integral term [N]
-
property
iterPeriod
¶ Periodicity criterion of velocity correlation [-]
-
property
iterPrevStart
¶ Previous iteration of velocity correlation [-]
-
property
kD
¶ Derivative gain/coefficient for the PID-controller [-]
-
property
kI
¶ Integral gain/coefficient for the PID-controller [-]
-
property
kP
¶ Proportional gain/coefficient for the PID-controller [-]
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
maxVelocity
¶ Velocity [m/s]
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
target
¶ Target value for the controller [N]
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
translationAxis
¶ Direction of imposed translation [Vector3]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
StepDisplacer
(inherits PartialEngine → Engine → Serializable)¶ Apply generalized displacement (displacement or rotation) stepwise on subscribed bodies. Could be used for purposes of contact law tests (by moving one sphere compared to another), but in this case, see rather LawTester
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
setVelocities
¶ If false, positions and orientations are directly updated, without changing the speeds of concerned bodies. If true, only velocity and angularVelocity are modified. In this second case integrator is supposed to be used, so that, thanks to this Engine, the bodies will have the prescribed jump over one iteration (dt).
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
ThermalEngine
(inherits PartialEngine → Engine → Serializable)¶ An engine typically used in combination with FlowEngine to simulate thermal-hydraulic-mechanical processes. Framework description and demonstration presented within the following paper [Caulk2019a] :Caulk, R.A. and Chareyre, B. (2019) An open framework for the simulation of thermal-hydraulic-mechanical processes in discrete element systems. Thermal Process Engineering: Proceedings of DEM8 International Conference for Discrete Element Methods, Enschede Netherlands, July 2019.
-
property
advection
¶ Activates advection
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indices can be retrieved with FlowEngine::xmin and friends.
-
property
boundarySet
¶ set false to change boundary conditions
-
property
conduction
¶ Activates conduction
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ debugging flags
-
property
delT
¶ Allows user to apply a delT to solids and observe macro thermal expansion. Resets to 0 after one conduction step.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
flowTempBoundarySet
¶ set false to change boundary conditions
-
property
fluidBeta
¶ volumetric temperature coefficient m^3/m^3C, default water, <= 0 deactivates
-
property
fluidBulkModulus
¶ If > 0, thermalEngine uses this value instead of flow.fluidBulkModulus.
-
property
fluidConduction
¶ Activates conduction within fluid
-
property
fluidConductionAreaFactor
¶ Factor for the porethroat area (used for fluid-fluid conduction model)
-
property
fluidK
¶ Thermal conductivity of the fluid.
-
property
fluidThermoMech
¶ Activates thermoMech
-
getConductionIterPeriod
((ThermalEngine)arg1) → int :¶ let user check estimated conductionIterPeriod .
-
getMaxTimeStep
((ThermalEngine)arg1) → float :¶ let user check estimated maxTimeStep.
-
getThermalDT
((ThermalEngine)arg1) → float :¶ let user check estimated thermalDT .
-
property
ignoreFictiousConduction
¶ Allows user to ignore conduction between fictious cells and particles. Mainly for debugging purposes.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
letThermalRunFlowForceUpdates
¶ If true, Thermal will run force updates according to new pressures instead of FlowEngine. only useful if useVolumeChange=false.
-
property
minimumFluidCondDist
¶ Useful for maintaining stability despite poor external triangulations involving flat tetrahedrals. Consider setting to minimum particle diameter to keep scale.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
particleAlpha
¶ Particle volumetric thermal expansion coeffcient
-
property
particleCp
¶ Particle thermal heat capacity (J/(kgK)
-
property
particleDensity
¶ If > 0, this value will override material density for thermodynamic calculations (useful for quasi-static simulations involving unphysical particle densities)
-
property
particleK
¶ Particle thermal conductivity (W/(mK)
-
property
particleT0
¶ Initial temperature of particles
-
property
porosityFactor
¶ If >0, factors the fluid thermal expansion. Useful for simulating low porosity matrices.
-
setReynoldsNumbers
((ThermalEngine)arg1) → None :¶ update the cell reynolds numbers manually (computationally expensive)
-
property
solidThermoMech
¶ Activates thermoMech
-
property
tempDependentFluidBeta
¶ If true, fluid volumetric thermal expansion is temperature dependent (linear model between 20-70 degC)
-
property
thermalBndCondValue
¶ Imposed value of a boundary condition.
-
property
thermalBndFlux
¶ Flux through thermal boundary.
-
property
thermoMech
¶ Activates thermoMech
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tsSafetyFactor
¶ Allow user to control the timstep estimate with a safety factor. Default 0.8. If <= 0, thermal timestep is equal to DEM
-
property
unboundCavityBodies
¶ automatically unbound bodies touching only cavity cells.
-
property
uniformReynolds
¶ Control reynolds number in all cells (mostly debugging purposes).
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useHertzMethod
¶ flag to use hertzmethod for thermal conductivity area calc
-
property
useKernMethod
¶ flag to use Kern method for thermal conductivity area calc
-
property
-
class
yade.wrapper.
TorqueEngine
(inherits PartialEngine → Engine → Serializable)¶ Apply given torque (momentum) value at every subscribed particle, at every step.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
moment
¶ Torque value to be applied.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
TranslationEngine
(inherits KinematicEngine → PartialEngine → Engine → Serializable)¶ Engine applying translation motion (by setting linear velocity) to subscribed bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
translationAxis
¶ Direction of imposed translation [Vector3]
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
TwoPhaseFlowEngine
(inherits TwoPhaseFlowEngineT → PartialEngine → Engine → Serializable)¶ documentation here
-
OSI
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
accumulativeDeformationFlux
¶ accumulative internal flux caused by deformation
-
property
accumulativeFlux
¶ accumulative influx of water
-
actionMergingAlgorithm
((TwoPhaseFlowEngine)arg1) → None :¶ apply triangulation, while maintaining saturation
-
actionTPF
((TwoPhaseFlowEngine)arg1) → None :¶ run 1 time step flow Engine
-
property
airWaterInterfacialArea
¶ Air-water interfacial area, based on the pore-unit assembly and regular-shaped pore units
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
property
areaAveragedPressure
¶ Air-water interfacial area averaged water pressure
-
avFlVelOnSph
((TwoPhaseFlowEngineT)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((TwoPhaseFlowEngineT)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((TwoPhaseFlowEngineT)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((TwoPhaseFlowEngineT)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsWaterReservoir
¶ Boundary conditions, if bndCondIsPressure[] = True, is it air or water boundary condition? True is water reservoir
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
calculateResidualSaturation
((TwoPhaseFlowEngine)arg1) → None :¶ Calculate the residual saturation for each pore body
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
property
centroidAverageWaterPressure
¶ Water pressure based on centroid-corrected averaging, see Korteland et al. (2010) - what is the correct definition of average pressure?
-
cholmodStats
((TwoPhaseFlowEngineT)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with pressure imposed.
-
clusterInvadePore
((TwoPhaseFlowEngine)arg1, (int)cellId) → object :¶ drain the pore identified by cellId and update the clusters accordingly.
-
clusterInvadePoreFast
((TwoPhaseFlowEngine)arg1, (int)cellId) → object :¶ drain the pore identified by cellId and update the clusters accordingly. This ‘fast’ version is faster and it also preserves interfaces through cluster splitting. OTOH it does not update entry Pc nor culsters volume (it could if needed)
-
clusterOutvadePore
((TwoPhaseFlowEngine)arg1, (int)startingId, (int)imbibedId[, (int)index=-1]) → object :¶ imbibe the pore identified by imbibedId and merge the newly connected clusters if it happens. startingId->imbibedId defines the throat through which imbibition occurs. Giving index of the facet in cluster::interfaces should speedup its removal
-
compTessVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
computeCapillaryForce
((TwoPhaseFlowEngine)arg1[, (bool)addForces=False[, (bool)permanently=False]]) → None :¶ Compute capillary force. Optionaly add them to body forces, for current iteration or permanently.
-
property
computeForceActivated
¶ Activate capillary force computation. WARNING: turning off means capillary force is not computed at all, but the drainage can still work.
-
computeOnePhaseFlow
((TwoPhaseFlowEngine)arg1) → None :¶ compute pressure and fluxes in the W-phase
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
copyPoreDataToCells
((TwoPhaseFlowEngine)arg1) → None :¶ copy data from merged pore units back to grain-based tetrahedra, this should be done before exporting VTK files
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
debugTPF
¶ Print debuging messages two phase flow engine
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
deformation
¶ Boolean to indicate whether simulations of dynamic flow are withing a deformating packing or not. If true, change of void volume due to deformation is considered in flow computations.
-
property
deltaTimeTruncation
¶ truncation of time step, to avoid very small time steps during local imbibition, NOTE it does affect the mass conservation not set to 0
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
drainageFirst
¶ If true, activate drainage first (initial saturated), then imbibition; if false, activate imbibition first (initial unsaturated), then drainage.
-
property
dt
¶ timestep [s]
-
property
dtDynTPF
¶ Parameter which stores the smallest time step, based on the residence time
-
edgeSize
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((TwoPhaseFlowEngineT)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
entryMethodCorrection
¶ Parameter that is used in computing entry pressure of a pore throat: P_ij = entryMethodCorrection * surfaceTension / radius_porethroat
-
property
entryPressureMethod
¶ integer to define the method used to determine the pore throat radii and the according entry pressures. 1)radius of entry pore throat based on MS-P method; 2) radius of the inscribed circle; 3) radius of the circle with equivalent surface area of the pore throat.
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((TwoPhaseFlowEngineT)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((TwoPhaseFlowEngineT)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
firstDynTPF
¶ this bool activated the initialization of the dynamic flow engine, such as merging and defining initial values
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
fluxInViaWBC
¶ Total water flux over water boundary conditions
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
property
fractionMinSaturationInvasion
¶ Set the threshold saturation at which drainage can occur (Sthr = fractionMinSaturationInvasion), note that -1 implied the conventional definition of Sthr
-
getBoundaryFluidArea
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((TwoPhaseFlowEngineT)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((TwoPhaseFlowEngineT)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCell2
((TwoPhaseFlowEngine)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellEntrySaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → list :¶ get the entry saturation of each pore throat
-
getCellFlux
((TwoPhaseFlowEngineT)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellHasInterface
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ indicates whether a NW-W interface is present within the cell
-
getCellInSphereRadius
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the radius of the inscribed sphere in a pore unit
-
getCellInvVoidVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellIsFictious
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ Check the connection between pore and boundary. If true, pore throat connects the boundary.
-
getCellIsNWRes
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘non-wetting reservoir’ state
-
getCellIsTrapNW
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘trapped non-wetting phase’ state
-
getCellIsTrapW
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘trapped wetting phase’ state
-
getCellIsWRes
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘wetting reservoir’ state
-
getCellLabel
((TwoPhaseFlowEngine)arg1, (int)arg2) → int :¶ get cell label. 0 for NW-reservoir; 1 for W-reservoir; others for disconnected W-clusters.
-
getCellMergedID
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the saturation of imbibition
-
getCellMergedVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the merged volume of pore space in each pore unit
-
getCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPorosity
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the porosity of individual cells.
-
getCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get saturation of one pore
-
getCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getCellThresholdSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the saturation of imbibition
-
getCellVoidVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the volume of pore space in each pore unit
-
getCellVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the volume of each cell
-
getClusters
((TwoPhaseFlowEngine)arg1) → list :¶ Get the list of clusters.
-
getConductivity
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEffRcByPosRadius
((TwoPhaseFlowEngine)arg1, (Vector3)position1, (float)radius1, (Vector3)position2, (float)radius2, (Vector3)position3, (float)radius3) → float :¶ get effective radius by three spheres position and radius.(inscribed sphere)
-
getEquivalentCompressibility
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((TwoPhaseFlowEngineT)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getMSPRcByPosRadius
((TwoPhaseFlowEngine)arg1, (Vector3)position1, (float)radius1, (Vector3)position2, (float)radius2, (Vector3)position3, (float)radius3) → float :¶ get entry radius wrt MSP method by three spheres position and radius.
-
getMaxImbibitionPc
((TwoPhaseFlowEngine)arg1) → float :¶ Get the maximum entry capillary pressure for the next imbibition step.
-
getMinDrainagePc
((TwoPhaseFlowEngine)arg1) → float :¶ Get the minimum entry capillary pressure for the next drainage step.
-
getNeighbors
((TwoPhaseFlowEngine)arg1, (int)id[, (bool)withInfCell=True]) → list :¶ get 4 neigboring cells, optionally exclude the infinite cells if withInfCell is False
-
getPorePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreThroatRadius
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID) → float :¶ get the pore throat radius between cell1 and cell2.
-
getPoreThroatRadiusList
((TwoPhaseFlowEngine)arg1, (int)cell_ID) → list :¶ get 4 pore throat radii of a cell.
-
getPotentialPendularSpheresPair
((TwoPhaseFlowEngine)arg1) → list :¶ Get the list of sphere ID pairs of potential pendular liquid bridge.
-
property
getQuantitiesUpdateCont
¶ Continuous update of various macro-scale quantities or not. Note that the updating quantities is computationally expensive
-
getSaturation
((TwoPhaseFlowEngine)arg1, (bool)isSideBoundaryIncluded) → float :¶ Get saturation of entire packing. If isSideBoundaryIncluded=false (default), the pores of side boundary are excluded in saturation calculating; if isSideBoundaryIncluded=true (only in isInvadeBoundary=true drainage mode), the pores of side boundary are included in saturation calculating.
-
getSolidSurfaceAreaPerParticle
((TwoPhaseFlowEngine)arg1, (int)cell_ID) → list :¶ get solid area inside a packing of particles
-
getVertices
((TwoPhaseFlowEngineT)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeDeformationFluxTPF
((TwoPhaseFlowEngine)arg1) → None :¶ Impose fluxes defined in dvTPF
-
imposeFlux
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((TwoPhaseFlowEngineT)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
property
initialPC
¶ Initial capillary pressure of the water-air inside the packing
-
property
initialWetting
¶ Initial wetting saturated (=true) or non-wetting saturated (=false)
-
initialization
((TwoPhaseFlowEngine)arg1) → None :¶ Initialize invasion setup. Build network, compute pore geometry info and initialize reservoir boundary conditions.
-
initializeVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ initialize pore volumes.
-
invasion
((TwoPhaseFlowEngine)arg1) → None :¶ Run the drainage invasion.
-
property
isActivated
¶ Activates Flow Engine
-
property
isCellLabelActivated
¶ Activate cell labels for marking disconnected wetting clusters. NW-reservoir label 0; W-reservoir label 1; disconnected W-clusters label from 2.
-
isCellNeighbor
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
isDrainageActivated
¶ Activates drainage.
-
property
isImbibitionActivated
¶ Activates imbibition.
-
property
isInvadeBoundary
¶ Invasion side boundary condition. If True, pores of side boundary can be invaded; if False, the pore throats connecting side boundary are closed, those pores are excluded in saturation calculation.
-
property
isPhaseTrapped
¶ If True, both phases can be entrapped by the other, which would correspond to snap-off. If false, both phases are always connected to their reservoirs, thus no snap-off.
-
property
iterationTPF
¶ Iteration number
-
property
keepTriangulation
¶ this bool activated triangulation or not during initialization
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxIDMergedCells
¶ maximum number of merged ID, this is computed in mergeCells()
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
maximumRatioPoreThroatoverPoreBody
¶ maximum ratio of pore throat radius over pore body radius, this is used during merging of tetrahedra.
-
property
meanKStat
¶ report the local permeabilities’ correction
-
mergeCells
((TwoPhaseFlowEngine)arg1) → None :¶ Extract the pore network of the granular material
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((TwoPhaseFlowEngineT)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
modelRunName
¶ Name of simulation, to be implemented into output files
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((TwoPhaseFlowEngineT)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
numberOfPores
¶ Number of pores (i.e. number of tetrahedra, but compensated for merged tetrahedra
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((TwoPhaseFlowEngineT)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((TwoPhaseFlowEngineT)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
property
primaryTPF
¶ Boolean to indicate whether the initial conditions are for primary drainage of imbibition (dictated by drainageFirst) or secondary drainage or imbibition. Note that during simulations, a switch from drainage to imbibition or vise versa can easily be made by changing waterBoundaryPressure
-
printVertices
((TwoPhaseFlowEngineT)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
reTriangulateSpheres
((TwoPhaseFlowEngine)arg1) → None :¶ apply triangulation, while maintaining saturation
-
property
recursiveInvasion
¶ If true the invasion stops only when no entry pc is less than current capillary pressure, implying simultaneous invasion of many pores. Else only one pore invasion per invasion step.
-
property
relax
¶ Gauss-Seidel relaxation
-
property
remesh
¶ update triangulation? – YET TO BE IMPLEMENTED
-
resetLinearSystem
((TwoPhaseFlowEngineT)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
property
safetyFactorTimeStep
¶ Safey coefficient for time step
-
savePhaseVtk
((TwoPhaseFlowEngine)arg1[, (str)folder='./phaseVtk'[, (bool)withBoundaries=True]]) → None :¶ Save the saturation of local pores in vtk format. Sw(NW-pore)=0, Sw(W-pore)=1. Specify a folder name for output.
-
savePoreNetwork
((TwoPhaseFlowEngine)arg1[, (str)folder='./poreNetwork']) → None :¶ Extract the pore network of the granular material (i.e. based on triangulation of the pore space
-
saveVtk
((TwoPhaseFlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((TwoPhaseFlowEngineT)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellDeltaVolume
((TwoPhaseFlowEngine)arg1, (int)id, (float)value) → None :¶ get id of the cell containing (X,Y,Z).
-
setCellHasInterface
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ change wheter a cell has a NW-W interface
- setCellHasInterface( (TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) -> None :
change wheter a cell has a NW-W interface
-
setCellIsNWRes
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ set status whether ‘wetting reservoir’ state
-
setCellIsWRes
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ set status whether ‘wetting reservoir’ state
-
setCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2, (float)arg3) → None :¶ change saturation of one pore
-
setCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
property
setFractionParticles
¶ Correction fraction for swelling of particles by mismatch of surface area of particles with those from actual surface area in pore units
-
setImposedPressure
((TwoPhaseFlowEngineT)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
setPoreBodyRadius
((TwoPhaseFlowEngine)arg1, (int)arg2, (float)arg3) → None :¶ set the entry pore body radius.
-
setPoreThroatRadius
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID, (float)radius) → None :¶ set the pore throat radius between cell1 and cell2.
-
shearLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
simpleWaterPressure
¶ Water pressure based on averaging over pore volume
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
solvePressureSwitch
¶ solve for pressure during actionTPF()
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
property
stopSimulation
¶ Boolean to indicate that dynamic flow simulations cannot find a solution (or next time step). If True, stop simulations
-
surfaceDistanceParticle
((TwoPhaseFlowEngineT)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
surfaceTension
¶ Water Surface Tension in contact with air at 20 Degrees Celsius is: 0.0728(N/m)
-
property
swelling
¶ If true, include swelling of particles during TPF computations
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
totalWaterVolume
¶ total watervolume
-
property
truncationPrecision
¶ threshold at which a saturation is truncated
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((TwoPhaseFlowEngineT)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
updatePressure
((TwoPhaseFlowEngine)arg1) → None :¶ Apply the values of FlowEngine::bndCondValue to the boundary cells. Note: boundary pressure will be updated automatically in many cases, this function is for some low-level manipulations.
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ update rates of volume change
-
property
useFastInvasion
¶ use fast version of invasion
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
property
voidVolume
¶ total void volume, excluding boundary cells
-
volume
((TwoPhaseFlowEngineT)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waterBoundaryPressure
¶ Water pressure at boundary used in computations, is set automaticaly, but this value can be used to change water pressure during simulations
-
property
waterPressure
¶ Volume-averaged water pressure
-
property
waterPressurePartiallySatPores
¶ water pressure based on the volume-averaged water pressure in partially-saturated pore units (i.e. pore units having an interface)
-
property
waterSaturation
¶ Water saturation, excluding the boundary cells
-
property
waterVolumeTruncatedLost
¶ Water volume that has been truncated.
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
TwoPhaseFlowEngineT
(inherits PartialEngine → Engine → Serializable)¶ A generic engine from wich more specialized engines can inherit. It is defined for the sole purpose of inserting the right data classes CellInfo and VertexInfo in the triangulation, and it should not be used directly. Instead, look for specialized engines, e.g. FlowEngine, PeriodicFlowEngine, or DFNFlowEngine.
-
OSI
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
avFlVelOnSph
((TwoPhaseFlowEngineT)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((TwoPhaseFlowEngineT)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((TwoPhaseFlowEngineT)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((TwoPhaseFlowEngineT)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
cholmodStats
((TwoPhaseFlowEngineT)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with pressure imposed.
-
compTessVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
dt
¶ timestep [s]
-
edgeSize
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((TwoPhaseFlowEngineT)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((TwoPhaseFlowEngineT)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((TwoPhaseFlowEngineT)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
getBoundaryFluidArea
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((TwoPhaseFlowEngineT)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((TwoPhaseFlowEngineT)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellFlux
((TwoPhaseFlowEngineT)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellInvVoidVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getConductivity
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getDiffusionCoeff
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEquivalentCompressibility
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((TwoPhaseFlowEngineT)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getNeighbors
((TwoPhaseFlowEngineT)arg1, (int)arg2) → list :¶ get 4 neigboring cells
-
getPorePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getVertices
((TwoPhaseFlowEngineT)arg1, (int)id) → list :¶ get the vertices of a cell
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeFlux
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((TwoPhaseFlowEngineT)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
initializeVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ initialize pore volumes.
-
property
isActivated
¶ Activates Flow Engine
-
isCellNeighbor
((TwoPhaseFlowEngineT)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
meanKStat
¶ report the local permeabilities’ correction
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((TwoPhaseFlowEngineT)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((TwoPhaseFlowEngineT)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((TwoPhaseFlowEngineT)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((TwoPhaseFlowEngineT)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
printVertices
((TwoPhaseFlowEngineT)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
property
relax
¶ Gauss-Seidel relaxation
-
resetLinearSystem
((TwoPhaseFlowEngineT)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
saveVtk
((TwoPhaseFlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((TwoPhaseFlowEngineT)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
setImposedPressure
((TwoPhaseFlowEngineT)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
shearLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
surfaceDistanceParticle
((TwoPhaseFlowEngineT)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((TwoPhaseFlowEngineT)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ update rates of volume change
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
volume
((TwoPhaseFlowEngineT)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
-
class
yade.wrapper.
UnsaturatedEngine
(inherits TwoPhaseFlowEngine → TwoPhaseFlowEngineT → PartialEngine → Engine → Serializable)¶ Preliminary version engine of a drainage model for unsaturated soils. Note:Air reservoir is on the top; water reservoir is on the bottom.(deprecated engine, use TwoPhaseFlowEngine instead)
-
OSI
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions only between spheres.
-
property
accumulativeDeformationFlux
¶ accumulative internal flux caused by deformation
-
property
accumulativeFlux
¶ accumulative influx of water
-
actionMergingAlgorithm
((TwoPhaseFlowEngine)arg1) → None :¶ apply triangulation, while maintaining saturation
-
actionTPF
((TwoPhaseFlowEngine)arg1) → None :¶ run 1 time step flow Engine
-
property
airWaterInterfacialArea
¶ Air-water interfacial area, based on the pore-unit assembly and regular-shaped pore units
-
property
alphaBound
¶ if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
-
property
alphaBoundValue
¶ value of alpha constant pressure condition
-
property
areaAveragedPressure
¶ Air-water interfacial area averaged water pressure
-
avFlVelOnSph
((TwoPhaseFlowEngineT)arg1, (int)idSph) → object :¶ compute a sphere-centered average fluid velocity
-
property
averageCavityPressure
¶ true means the pressure in the cavity will be averaged each iteration.
-
averagePressure
((TwoPhaseFlowEngineT)arg1) → float :¶ Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
-
averageSlicePressure
((TwoPhaseFlowEngineT)arg1, (float)posY) → float :¶ Measure slice-averaged pore pressure at height posY
-
averageVelocity
((TwoPhaseFlowEngineT)arg1) → Vector3 :¶ measure the mean velocity in the period
-
blockCell
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)blockPressure) → None :¶ block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
-
property
blockHook
¶ Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
-
property
bndCondIsPressure
¶ defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsTemperature
¶ defines the type of boundary condition for each side. True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
-
property
bndCondIsWaterReservoir
¶ Boundary conditions, if bndCondIsPressure[] = True, is it air or water boundary condition? True is water reservoir
-
property
bndCondValue
¶ Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
-
bodyNormalLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the normal lubrication stress on sphere idSph.
-
bodyShearLubStress
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Matrix3 :¶ Return the shear lubrication stress on sphere idSph.
-
property
boundaryPressure
¶ values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
-
property
boundaryUseMaxMin
¶ If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
-
property
boundaryVelocity
¶ velocity on top boundary, only change it using FlowEngine::setBoundaryVel
-
property
boundaryXPos
¶ values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
-
property
breakControlledRemesh
¶ If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
-
calculateResidualSaturation
((TwoPhaseFlowEngine)arg1) → None :¶ Calculate the residual saturation for each pore body
-
property
cavityFactor
¶ Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
-
property
cavityFluidDensity
¶ >0 means cavity compressibility model considers density changes instead of volume changes.
-
property
cavityFlux
¶ For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
-
property
centroidAverageWaterPressure
¶ Water pressure based on centroid-corrected averaging, see Korteland et al. (2010) - what is the correct definition of average pressure?
-
checkLatticeNodeY
((UnsaturatedEngine)arg1, (float)y) → None :¶ Check the slice of lattice nodes for yNormal(y). 0: out of sphere; 1: inside of sphere.
-
checknoCache
((UnsaturatedEngine)arg1) → bool :¶ check noCache. (temporary function.)
-
cholmodStats
((TwoPhaseFlowEngineT)arg1) → None :¶ get statistics of cholmod solver activity
-
property
clampKValues
¶ If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
-
clearImposedFlux
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with flux imposed.
-
clearImposedPressure
((TwoPhaseFlowEngineT)arg1) → None :¶ Clear the list of points with pressure imposed.
-
clusterInvadePore
((TwoPhaseFlowEngine)arg1, (int)cellId) → object :¶ drain the pore identified by cellId and update the clusters accordingly.
-
clusterInvadePoreFast
((TwoPhaseFlowEngine)arg1, (int)cellId) → object :¶ drain the pore identified by cellId and update the clusters accordingly. This ‘fast’ version is faster and it also preserves interfaces through cluster splitting. OTOH it does not update entry Pc nor culsters volume (it could if needed)
-
clusterOutvadePore
((TwoPhaseFlowEngine)arg1, (int)startingId, (int)imbibedId[, (int)index=-1]) → object :¶ imbibe the pore identified by imbibedId and merge the newly connected clusters if it happens. startingId->imbibedId defines the throat through which imbibition occurs. Giving index of the facet in cluster::interfaces should speedup its removal
-
compTessVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ Like TesselationWrapper::computeVolumes()
-
computeCapillaryForce
((TwoPhaseFlowEngine)arg1[, (bool)addForces=False[, (bool)permanently=False]]) → None :¶ Compute capillary force. Optionaly add them to body forces, for current iteration or permanently.
-
property
computeForceActivated
¶ Activate capillary force computation. WARNING: turning off means capillary force is not computed at all, but the drainage can still work.
-
computeOnePhaseFlow
((TwoPhaseFlowEngine)arg1) → None :¶ compute pressure and fluxes in the W-phase
-
property
controlCavityPressure
¶ use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
-
property
controlCavityVolumeChange
¶ cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
-
property
convertClumps
¶ If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
-
copyPoreDataToCells
((TwoPhaseFlowEngine)arg1) → None :¶ copy data from merged pore units back to grain-based tetrahedra, this should be done before exporting VTK files
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
property
debug
¶ Activate debug messages
-
property
debugTPF
¶ Print debuging messages two phase flow engine
-
property
decoupleForces
¶ If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
-
property
defTolerance
¶ Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
-
property
deformation
¶ Boolean to indicate whether simulations of dynamic flow are withing a deformating packing or not. If true, change of void volume due to deformation is considered in flow computations.
-
property
deltaTimeTruncation
¶ truncation of time step, to avoid very small time steps during local imbibition, NOTE it does affect the mass conservation not set to 0
-
property
desiredPorosity
¶ Correct the cell volumes to reflect this desired porosity (not active by default (0)).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doInterpolate
¶ Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
-
property
drainageFirst
¶ If true, activate drainage first (initial saturated), then imbibition; if false, activate imbibition first (initial unsaturated), then drainage.
-
property
dt
¶ timestep [s]
-
property
dtDynTPF
¶ Parameter which stores the smallest time step, based on the residence time
-
edgeSize
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the number of interactions.
-
emulateAction
((TwoPhaseFlowEngineT)arg1) → None :¶ get scene and run action (may be used to manipulate an engine outside the timestepping loop).
-
property
entryMethodCorrection
¶ Parameter that is used in computing entry pressure of a pore throat: P_ij = entryMethodCorrection * surfaceTension / radius_porethroat
-
property
entryPressureMethod
¶ integer to define the method used to determine the pore throat radii and the according entry pressures. 1)radius of entry pore throat based on MS-P method; 2) radius of the inscribed circle; 3) radius of the circle with equivalent surface area of the pore throat.
-
property
eps
¶ roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
-
property
epsVolMax
¶ Maximal absolute volumetric strain computed at each iteration. (auto-updated)
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
exportMatrix
((TwoPhaseFlowEngineT)arg1[, (str)filename='matrix']) → None :¶ Export system matrix to a file with all entries (even zeros will displayed).
-
exportTriplets
((TwoPhaseFlowEngineT)arg1[, (str)filename='triplets']) → None :¶ Export system matrix to a file with only non-zero entries.
-
property
first
¶ Controls the initialization/update phases
-
property
firstDynTPF
¶ this bool activated the initialization of the dynamic flow engine, such as merging and defining initial values
-
property
fixTriUpdatePermInt
¶ If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
-
property
fixedAlpha
¶ If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
-
property
flatThreshold
¶ If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
-
property
fluidBulkModulus
¶ Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
-
property
fluidCp
¶ Heat capacity of fluid (for thermalEngine).
-
fluidForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the fluid force on sphere idSph.
-
property
fluidRho
¶ Density of fluid (for thermalEngine).
-
property
fluxInViaWBC
¶ Total water flux over water boundary conditions
-
property
forceMetis
¶ If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
-
property
fractionMinSaturationInvasion
¶ Set the threshold saturation at which drainage can occur (Sthr = fractionMinSaturationInvasion), note that -1 implied the conventional definition of Sthr
-
getBoundaryFluidArea
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total fluid area associated with boundary defined by its body id.
-
getBoundaryFlux
((TwoPhaseFlowEngineT)arg1, (int)boundary) → float :¶ Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
getBoundaryVel
((TwoPhaseFlowEngineT)arg1, (int)boundary) → object :¶ Get total avg cell velocity associated with boundary defined by its body id.
-
getBoundaryVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2, (float)boundary) → float :¶ Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
-
property
getCHOLMODPerfTimings
¶ Print CHOLMOD build, analyze, and factorize timings
-
getCavityDensity
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the density of cavity fluid.
-
getCavityFlux
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the flux through the edge of the cavity.
-
getCell
((TwoPhaseFlowEngineT)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCell2
((TwoPhaseFlowEngine)arg1, (float)arg2, (float)arg3, (float)pos) → int :¶ get id of the cell containing (X,Y,Z).
-
getCellBarycenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get barycenter of cell ‘id’.
-
getCellCenter
((TwoPhaseFlowEngineT)arg1, (int)id) → Vector3 :¶ get voronoi center of cell ‘id’.
-
getCellEntrySaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → list :¶ get the entry saturation of each pore throat
-
getCellFlux
((TwoPhaseFlowEngineT)arg1, (int)cond) → float :¶ Get influx in cell associated to an imposed P (indexed using ‘cond’).
-
getCellFluxFromId
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ Get influx in cell.
-
getCellHasInterface
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ indicates whether a NW-W interface is present within the cell
-
getCellInSphereRadius
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the radius of the inscribed sphere in a pore unit
-
getCellInvVoidVolume
((TwoPhaseFlowEngineT)arg1, (int)arg2) → float :¶ get the inverse of the initial void volumes in each cell when pore volumes have been initialized.
-
getCellIsFictious
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ Check the connection between pore and boundary. If true, pore throat connects the boundary.
-
getCellIsNWRes
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘non-wetting reservoir’ state
-
getCellIsTrapNW
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘trapped non-wetting phase’ state
-
getCellIsTrapW
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘trapped wetting phase’ state
-
getCellIsWRes
((TwoPhaseFlowEngine)arg1, (int)arg2) → bool :¶ get status wrt ‘wetting reservoir’ state
-
getCellLabel
((TwoPhaseFlowEngine)arg1, (int)arg2) → int :¶ get cell label. 0 for NW-reservoir; 1 for W-reservoir; others for disconnected W-clusters.
-
getCellMergedID
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the saturation of imbibition
-
getCellMergedVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the merged volume of pore space in each pore unit
-
getCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed pressure.
-
getCellPorosity
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the porosity of individual cells.
-
getCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
-
getCellSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get saturation of one pore
-
getCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id) → bool :¶ get the status of cell ‘id’ wrt imposed temperature.
-
getCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id) → float :¶ get pressure in cell ‘id’.
-
getCellThresholdSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the saturation of imbibition
-
getCellVoidVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the volume of pore space in each pore unit
-
getCellVolume
((TwoPhaseFlowEngine)arg1, (int)arg2) → float :¶ get the volume of each cell
-
getClusters
((TwoPhaseFlowEngine)arg1) → list :¶ Get the list of clusters.
-
getConductivity
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
-
getConstrictions
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
-
getConstrictionsFull
((TwoPhaseFlowEngineT)arg1[, (bool)all=True]) → list :¶ Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
-
getCuboidSubdomainPorosity
((UnsaturatedEngine)arg1, (Vector3)pos1, (Vector3)pos2, (bool)isSideBoundaryIncluded) → float :¶ Get the porosity of cuboid subdomain defined by (pos1,pos2). If isSideBoundaryIncluded=false, the pores of side boundary are excluded in porosity calculating; if isSideBoundaryIncluded=true (only in isInvadeBoundary=true drainage mode), the pores of side boundary are included in porosity calculating.
-
getCuboidSubdomainSaturation
((UnsaturatedEngine)arg1, (Vector3)pos1, (Vector3)pos2, (bool)isSideBoundaryIncluded) → float :¶ Get saturation of cuboid subdomain defined by (pos1,pos2). If isSideBoundaryIncluded=false, the pores of side boundary are excluded in saturation calculating; if isSideBoundaryIncluded=true (only in isInvadeBoundary=true drainage mode), the pores of side boundary are included in saturation calculating.
-
getDiffusionCoeff
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throat) → float :¶ get the ratio of throat cross-sectional area and distance between two cells
-
getEffRcByPosRadius
((TwoPhaseFlowEngine)arg1, (Vector3)position1, (float)radius1, (Vector3)position2, (float)radius2, (Vector3)position3, (float)radius3) → float :¶ get effective radius by three spheres position and radius.(inscribed sphere)
-
getEquivalentCompressibility
((TwoPhaseFlowEngineT)arg1) → float :¶ Return the equivalent compressibility used for modeling air water mixture in cavity.
-
getIncidentCells
((TwoPhaseFlowEngineT)arg1, (int)vertexId) → list :¶ get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
-
getInvadeDepth
((UnsaturatedEngine)arg1) → float :¶ Get NW-phase invasion depth. (the distance from NW-reservoir to front of NW-W interface.)
-
getMSPRcByPosRadius
((TwoPhaseFlowEngine)arg1, (Vector3)position1, (float)radius1, (Vector3)position2, (float)radius2, (Vector3)position3, (float)radius3) → float :¶ get entry radius wrt MSP method by three spheres position and radius.
-
getMaxImbibitionPc
((TwoPhaseFlowEngine)arg1) → float :¶ Get the maximum entry capillary pressure for the next imbibition step.
-
getMinDrainagePc
((TwoPhaseFlowEngine)arg1) → float :¶ Get the minimum entry capillary pressure for the next drainage step.
-
getNeighbors
((TwoPhaseFlowEngine)arg1, (int)id[, (bool)withInfCell=True]) → list :¶ get 4 neigboring cells, optionally exclude the infinite cells if withInfCell is False
-
getPorePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreTemperature
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → float :¶ Measure pore pressure in position pos[0],pos[1],pos[2]
-
getPoreThroatRadius
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID) → float :¶ get the pore throat radius between cell1 and cell2.
-
getPoreThroatRadiusList
((TwoPhaseFlowEngine)arg1, (int)cell_ID) → list :¶ get 4 pore throat radii of a cell.
-
getPotentialPendularSpheresPair
((TwoPhaseFlowEngine)arg1) → list :¶ Get the list of sphere ID pairs of potential pendular liquid bridge.
-
property
getQuantitiesUpdateCont
¶ Continuous update of various macro-scale quantities or not. Note that the updating quantities is computationally expensive
-
getSaturation
((TwoPhaseFlowEngine)arg1, (bool)isSideBoundaryIncluded) → float :¶ Get saturation of entire packing. If isSideBoundaryIncluded=false (default), the pores of side boundary are excluded in saturation calculating; if isSideBoundaryIncluded=true (only in isInvadeBoundary=true drainage mode), the pores of side boundary are included in saturation calculating.
-
getSolidSurfaceAreaPerParticle
((TwoPhaseFlowEngine)arg1, (int)cell_ID) → list :¶ get solid area inside a packing of particles
-
getSpecificInterfacialArea
((UnsaturatedEngine)arg1) → float :¶ get specific interfacial area (defined as the amount of fluid-fluid interfacial area per unit volume pf the porous medium).
-
getSphericalSubdomainSaturation
((UnsaturatedEngine)arg1, (Vector3)pos, (float)radius) → float :¶ Get saturation of spherical subdomain defined by (pos, radius). The subdomain exclude boundary pores.
-
getVertices
((TwoPhaseFlowEngineT)arg1, (int)id) → list :¶ get the vertices of a cell
-
getWindowsSaturation
((UnsaturatedEngine)arg1, (int)windowsID, (bool)isSideBoundaryIncluded) → float :¶ get saturation of subdomain with windowsID. If isSideBoundaryIncluded=false (default), the pores of side boundary are excluded in saturation calculating; if isSideBoundaryIncluded=true (only in isInvadeBoundary=true drainage mode), the pores of side boundary are included in saturation calculating.
-
property
idOffset
¶ If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
-
property
ignoredBody
¶ DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
-
imposeCavity
((TwoPhaseFlowEngineT)arg1, (Vector3)pos) → int :¶ Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
-
imposeDeformationFluxTPF
((TwoPhaseFlowEngine)arg1) → None :¶ Impose fluxes defined in dvTPF
-
imposeFlux
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → None :¶ Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
-
imposePressure
((TwoPhaseFlowEngineT)arg1, (Vector3)pos, (float)p) → int :¶ Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
-
imposePressureFromId
((TwoPhaseFlowEngineT)arg1, (int)id, (float)p) → int :¶ Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
-
property
iniVoidVolumes
¶ activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
-
property
initialPC
¶ Initial capillary pressure of the water-air inside the packing
-
property
initialWetting
¶ Initial wetting saturated (=true) or non-wetting saturated (=false)
-
initialization
((TwoPhaseFlowEngine)arg1) → None :¶ Initialize invasion setup. Build network, compute pore geometry info and initialize reservoir boundary conditions.
-
initializeCellWindowsID
((UnsaturatedEngine)arg1) → None :¶ Initialize cell windows index. A temporary function for comparison with experiments, will delete soon
-
initializeVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ initialize pore volumes.
-
invasion
((TwoPhaseFlowEngine)arg1) → None :¶ Run the drainage invasion.
-
property
isActivated
¶ Activates Flow Engine
-
property
isCellLabelActivated
¶ Activate cell labels for marking disconnected wetting clusters. NW-reservoir label 0; W-reservoir label 1; disconnected W-clusters label from 2.
-
isCellNeighbor
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID) → bool :¶ check if cell1 and cell2 are neigbors.
-
property
isDrainageActivated
¶ Activates drainage.
-
property
isImbibitionActivated
¶ Activates imbibition.
-
property
isInvadeBoundary
¶ Invasion side boundary condition. If True, pores of side boundary can be invaded; if False, the pore throats connecting side boundary are closed, those pores are excluded in saturation calculation.
-
property
isPhaseTrapped
¶ If True, both phases can be entrapped by the other, which would correspond to snap-off. If false, both phases are always connected to their reservoirs, thus no snap-off.
-
property
iterationTPF
¶ Iteration number
-
property
keepTriangulation
¶ this bool activated triangulation or not during initialization
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
mask
¶ If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
-
property
maxIDMergedCells
¶ maximum number of merged ID, this is computed in mergeCells()
-
property
maxKdivKmean
¶ define the max K value (see FlowEngine::clampKValues)
-
property
maximumRatioPoreThroatoverPoreBody
¶ maximum ratio of pore throat radius over pore body radius, this is used during merging of tetrahedra.
-
property
meanKStat
¶ report the local permeabilities’ correction
-
mergeCells
((TwoPhaseFlowEngine)arg1) → None :¶ Extract the pore network of the granular material
-
property
meshUpdateInterval
¶ Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
-
metisUsed
((TwoPhaseFlowEngineT)arg1) → bool :¶ check wether metis lib is effectively used
-
property
minKdivKmean
¶ define the min K value (see FlowEngine::clampKValues)
-
property
minimumPorosity
¶ value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
-
property
modelRunName
¶ Name of simulation, to be implemented into output files
-
property
multithread
¶ Build triangulation and factorize in the background (multi-thread mode)
-
nCells
((TwoPhaseFlowEngineT)arg1) → int :¶ get the total number of finite cells in the triangulation.
-
normalLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal lubrication force on sphere idSph.
-
property
normalLubrication
¶ compute normal lubrication force as developped by Brule
-
normalVect
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal vector between particles.
-
normalVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the normal velocity of the interaction.
-
property
numFactorizeThreads
¶ number of openblas threads in the factorization phase
-
property
numSolveThreads
¶ number of openblas threads in the solve phase.
-
property
numberOfPores
¶ Number of pores (i.e. number of tetrahedra, but compensated for merged tetrahedra
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
onlySpheresInteractions
((TwoPhaseFlowEngineT)arg1, (int)interaction) → int :¶ Return the id of the interaction only between spheres.
-
property
pZero
¶ The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
-
property
permeabilityFactor
¶ Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
-
property
permeabilityMap
¶ Enable/disable stocking of average permeability scalar in cell infos.
-
property
phiZero
¶ if >0, considers water aircontent impact on fluid compressibility.
-
property
porosity
¶ Porosity computed at each retriangulation (auto-updated)
-
property
pressureForce
¶ compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
-
pressureProfile
((TwoPhaseFlowEngineT)arg1, (float)wallUpY, (float)wallDownY) → None :¶ Measure pore pressure in 6 equally-spaced points along the height of the sample
-
property
primaryTPF
¶ Boolean to indicate whether the initial conditions are for primary drainage of imbibition (dictated by drainageFirst) or secondary drainage or imbibition. Note that during simulations, a switch from drainage to imbibition or vise versa can easily be made by changing waterBoundaryPressure
-
printSomething
((UnsaturatedEngine)arg1) → None :¶ print debug.
-
printVertices
((TwoPhaseFlowEngineT)arg1) → None :¶ Export vertex positions and types
-
property
pumpTorque
¶ Compute pump torque applied on particles
-
reTriangulateSpheres
((TwoPhaseFlowEngine)arg1) → None :¶ apply triangulation, while maintaining saturation
-
property
recursiveInvasion
¶ If true the invasion stops only when no entry pc is less than current capillary pressure, implying simultaneous invasion of many pores. Else only one pore invasion per invasion step.
-
property
relax
¶ Gauss-Seidel relaxation
-
property
remesh
¶ update triangulation? – YET TO BE IMPLEMENTED
-
resetLinearSystem
((TwoPhaseFlowEngineT)arg1) → None :¶ trigger rebuild of the linear system while keeping the same triangulation
-
property
safetyFactorTimeStep
¶ Safey coefficient for time step
-
savePhaseVtk
((TwoPhaseFlowEngine)arg1[, (str)folder='./phaseVtk'[, (bool)withBoundaries=True]]) → None :¶ Save the saturation of local pores in vtk format. Sw(NW-pore)=0, Sw(W-pore)=1. Specify a folder name for output.
-
savePoreNetwork
((TwoPhaseFlowEngine)arg1[, (str)folder='./poreNetwork']) → None :¶ Extract the pore network of the granular material (i.e. based on triangulation of the pore space
-
saveVtk
((TwoPhaseFlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) → None :¶ Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
-
setBoundaryNormal
((TwoPhaseFlowEngineT)arg1, (int)arg2, (Vector3)arg3) → None :¶ define the unit outward-pointing normal of a boundary (0<=index<=5).
-
setCellDeltaVolume
((TwoPhaseFlowEngine)arg1, (int)id, (float)value) → None :¶ get id of the cell containing (X,Y,Z).
-
setCellHasInterface
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ change wheter a cell has a NW-W interface
- setCellHasInterface( (TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) -> None :
change wheter a cell has a NW-W interface
-
setCellIsNWRes
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ set status whether ‘wetting reservoir’ state
-
setCellIsWRes
((TwoPhaseFlowEngine)arg1, (int)arg2, (bool)arg3) → None :¶ set status whether ‘wetting reservoir’ state
-
setCellPImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (bool)pImposed) → None :¶ make cell ‘id’ assignable with imposed pressure.
-
setCellPressure
((TwoPhaseFlowEngineT)arg1, (int)id, (float)pressure) → None :¶ set pressure in cell ‘id’.
-
setCellSaturation
((TwoPhaseFlowEngine)arg1, (int)arg2, (float)arg3) → None :¶ change saturation of one pore
-
setCellTImposed
((TwoPhaseFlowEngineT)arg1, (int)id, (float)tImposed) → None :¶ make cell ‘id’ assignable with imposed temperature.
-
setCellTemperature
((TwoPhaseFlowEngineT)arg1, (int)id, (float)temperature) → None :¶ set temperature in cell ‘id’.
-
property
setFractionParticles
¶ Correction fraction for swelling of particles by mismatch of surface area of particles with those from actual surface area in pore units
-
setImposedPressure
((TwoPhaseFlowEngineT)arg1, (int)cond, (float)p) → None :¶ Set pressure value at the point indexed ‘cond’.
-
setPoreBodyRadius
((TwoPhaseFlowEngine)arg1, (int)arg2, (float)arg3) → None :¶ set the entry pore body radius.
-
setPoreThroatRadius
((TwoPhaseFlowEngine)arg1, (int)cell1_ID, (int)cell2_ID, (float)radius) → None :¶ set the pore throat radius between cell1 and cell2.
-
shearLubForce
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication force on sphere idSph.
-
shearLubTorque
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear lubrication torque on sphere idSph.
-
property
shearLubrication
¶ compute shear lubrication force as developped by Brule (FIXME: ref.)
-
shearVelocity
((TwoPhaseFlowEngineT)arg1, (int)idSph) → Vector3 :¶ Return the shear velocity of the interaction.
-
property
simpleWaterPressure
¶ Water pressure based on averaging over pore volume
-
property
sineAverage
¶ Pressure value (average) when sinusoidal pressure is applied
-
property
sineMagnitude
¶ Pressure value (amplitude) when sinusoidal pressure is applied (p )
-
property
slipBoundary
¶ Controls friction condition on lateral walls
-
property
solvePressureSwitch
¶ solve for pressure during actionTPF()
-
property
stiffness
¶ equivalent contact stiffness used in the lubrication model
-
property
stopSimulation
¶ Boolean to indicate that dynamic flow simulations cannot find a solution (or next time step). If True, stop simulations
-
surfaceDistanceParticle
((TwoPhaseFlowEngineT)arg1, (int)interaction) → float :¶ Return the distance between particles.
-
surfaceSolidThroatInPore
((TwoPhaseFlowEngineT)arg1, (int)cellId, (int)throatIndex) → float :¶ returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
-
property
surfaceTension
¶ Water Surface Tension in contact with air at 20 Degrees Celsius is: 0.0728(N/m)
-
property
swelling
¶ If true, include swelling of particles during TPF computations
-
property
tZero
¶ The value used for initializing pore temperatures in thermalEngine.
-
property
tempDependentViscosity
¶ boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
-
property
thermalBndCondValue
¶ Imposed temperature value of a boundary condition.
-
property
thermalEngine
¶ activate thermalEngine within FlowEngine.
-
property
thermalPorosity
¶ >0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
property
tolerance
¶ Gauss-Seidel tolerance
-
property
totalWaterVolume
¶ total watervolume
-
property
truncationPrecision
¶ threshold at which a saturation is truncated
-
property
twistTorque
¶ Compute twist torque applied on particles
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateBCs
((TwoPhaseFlowEngineT)arg1) → None :¶ Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
-
updatePressure
((TwoPhaseFlowEngine)arg1) → None :¶ Apply the values of FlowEngine::bndCondValue to the boundary cells. Note: boundary pressure will be updated automatically in many cases, this function is for some low-level manipulations.
-
property
updateTriangulation
¶ If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
-
updateVolumes
((TwoPhaseFlowEngineT)arg1) → None :¶ update rates of volume change
-
property
useFastInvasion
¶ use fast version of invasion
-
property
useSolver
¶ Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
-
property
viscosity
¶ viscosity of the fluid
-
property
viscousNormalBodyStress
¶ compute normal viscous stress applied on each body
-
property
viscousShear
¶ compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
-
property
viscousShearBodyStress
¶ compute shear viscous stress applied on each body
-
property
voidVolume
¶ total void volume, excluding boundary cells
-
volume
((TwoPhaseFlowEngineT)arg1[, (int)id=0]) → float :¶ Returns the volume of Voronoi’s cell of a sphere.
-
property
volumeCorrection
¶ Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
-
property
volumeFactor
¶ Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
-
property
wallIds
¶ body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
-
property
wallThickness
¶ Walls thickness
-
property
waterBoundaryPressure
¶ Water pressure at boundary used in computations, is set automaticaly, but this value can be used to change water pressure during simulations
-
property
waterPressure
¶ Volume-averaged water pressure
-
property
waterPressurePartiallySatPores
¶ water pressure based on the volume-averaged water pressure in partially-saturated pore units (i.e. pore units having an interface)
-
property
waterSaturation
¶ Water saturation, excluding the boundary cells
-
property
waterVolumeTruncatedLost
¶ Water volume that has been truncated.
-
property
waveAction
¶ Allow sinusoidal pressure condition to simulate ocean waves
-
property
windowsNo
¶ Number of genrated windows(or zoomed samples).
-
property
xmax
¶ See FlowEngine::xmin.
-
property
xmin
¶ Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
-
property
ymax
¶ See FlowEngine::xmin.
-
property
ymin
¶ See FlowEngine::xmin.
-
property
zmax
¶ See FlowEngine::xmin.
-
property
zmin
¶ See FlowEngine::xmin.
-
Dispatchers¶
![digraph Dispatcher {
rankdir=RL;
margin="0.2,0.05";
"Dispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Dispatcher"];
"GlBoundDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlBoundDispatcher"];
"GlBoundDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"IGeomDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.IGeomDispatcher"];
"IGeomDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"BoundDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.BoundDispatcher"];
"BoundDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InternalForceDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.InternalForceDispatcher"];
"InternalForceDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlIGeomDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlIGeomDispatcher"];
"GlIGeomDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LawDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.LawDispatcher"];
"LawDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlStateDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlStateDispatcher"];
"GlStateDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlShapeDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlShapeDispatcher"];
"GlShapeDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlIPhysDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlIPhysDispatcher"];
"GlIPhysDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
"IPhysDispatcher" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.IPhysDispatcher"];
"IPhysDispatcher" -> "Dispatcher" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-2a707d159a4029aab4668731335ec78a60cfb5e5.png)
Inheritance graph of Dispatcher, gray dashed classes are discussed in their own sections: IGeomDispatcher, BoundDispatcher, InternalForceDispatcher, LawDispatcher, IPhysDispatcher.¶
-
class
yade.wrapper.
Dispatcher
(inherits Engine → Serializable)¶ Engine dispatching control to its associated functors, based on types of argument it receives. This abstract base class provides no functionality in itself.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlBoundDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((GlBoundDispatcher)arg1, (Bound)arg2) → GlBoundFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((GlBoundDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlIGeomDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((GlIGeomDispatcher)arg1, (IGeom)arg2) → GlIGeomFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((GlIGeomDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlIPhysDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((GlIPhysDispatcher)arg1, (IPhys)arg2) → GlIPhysFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((GlIPhysDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlShapeDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((GlShapeDispatcher)arg1, (Shape)arg2) → GlShapeFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((GlShapeDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlStateDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((GlStateDispatcher)arg1, (State)arg2) → GlStateFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((GlStateDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Functors¶
![digraph Functor {
rankdir=RL;
margin="0.2,0.05";
"Functor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Functor"];
"BoundFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphboundfunctor"];
"BoundFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlIGeomFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphgligeomfunctor"];
"GlIGeomFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlIPhysFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphgliphysfunctor"];
"GlIPhysFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlShapeFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphglshapefunctor"];
"GlShapeFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlBoundFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphglboundfunctor"];
"GlBoundFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"GlStateFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.GlStateFunctor"];
"GlStateFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"LawFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphlawfunctor"];
"LawFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"InternalForceFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphinternalforcefunctor"];
"InternalForceFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"IPhysFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphiphysfunctor"];
"IPhysFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"IGeomFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#inheritancegraphigeomfunctor"];
"IGeomFunctor" -> "Functor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-024ee8e83ca00f7a8492bac4f4a15fe27ca50d38.png)
Inheritance graph of Functor, gray dashed classes are discussed in their own sections: BoundFunctor, GlIGeomFunctor, GlIPhysFunctor, GlShapeFunctor, GlBoundFunctor, GlStateFunctor, LawFunctor, InternalForceFunctor, IPhysFunctor, IGeomFunctor.¶
-
class
yade.wrapper.
Functor
(inherits Serializable)¶ Function-like object that is called by Dispatcher, if types of arguments match those the Functor declares to accept.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Bounding volume creation¶
BoundFunctor¶
![digraph BoundFunctor {
rankdir=RL;
margin="0.2,0.05";
"BoundFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BoundFunctor"];
"Bo1_Facet_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Facet_Aabb"];
"Bo1_Facet_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Cylinder_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Cylinder_Aabb"];
"Bo1_Cylinder_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_FluidDomainBbox_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_FluidDomainBbox_Aabb"];
"Bo1_FluidDomainBbox_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Node_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Node_Aabb"];
"Bo1_Node_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_PFacet_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_PFacet_Aabb"];
"Bo1_PFacet_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Subdomain_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Subdomain_Aabb"];
"Bo1_Subdomain_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_GridConnection_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_GridConnection_Aabb"];
"Bo1_GridConnection_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Polyhedra_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Polyhedra_Aabb"];
"Bo1_Polyhedra_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Sphere_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Sphere_Aabb"];
"Bo1_Sphere_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"PotentialParticle2AABB" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PotentialParticle2AABB"];
"PotentialParticle2AABB" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Box_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Box_Aabb"];
"Bo1_Box_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Tetra_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Tetra_Aabb"];
"Bo1_Tetra_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_DeformableElement_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_DeformableElement_Aabb"];
"Bo1_DeformableElement_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_Wall_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_Wall_Aabb"];
"Bo1_Wall_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Bo1_ChainedCylinder_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Bo1_ChainedCylinder_Aabb"];
"Bo1_ChainedCylinder_Aabb" -> "BoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-e0e569ed0fa27f0f5110abf58f949c831b1eeaaf.png)
Inheritance graph of BoundFunctor.¶
-
class
yade.wrapper.
BoundFunctor
(inherits Functor → Serializable)¶ Functor for creating/updating Body::bound.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Box_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Create/update an Aabb of a Box.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_ChainedCylinder_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from ChainedCylinder.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Cylinder_Cylinder_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Cylinder_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from Cylinder.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Cylinder_Cylinder_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_DeformableElement_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from DeformableElement.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Facet_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Creates/updates an Aabb of a Facet.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_FluidDomainBbox_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ creates/updates an Aabb of a FluidDomainBbox.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_GridConnection_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from a GridConnection.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Node_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from Node.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_PFacet_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from a PFacet.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Polyhedra_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Create/update Aabb of a Polyhedra
-
property
aabbEnlargeFactor
¶
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Sphere_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Functor creating Aabb from Sphere.
-
property
aabbEnlargeFactor
¶ Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Subdomain_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Creates/updates an Aabb of a Facet.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Tetra_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ -
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Bo1_Wall_Aabb
(inherits BoundFunctor → Functor → Serializable)¶ Creates/updates an Aabb of a Wall
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
PotentialParticle2AABB
(inherits BoundFunctor → Functor → Serializable)¶ EXPERIMENTAL. Functor creating Aabb from PotentialParticle.
-
property
aabbEnlargeFactor
¶ see Sphere2AABB.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
BoundDispatcher¶
-
class
yade.wrapper.
BoundDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
activated
¶ Whether the engine is activated (only should be changed by the collider)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((BoundDispatcher)arg1, (Shape)arg2) → BoundFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((BoundDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
minSweepDistFactor
¶ Minimal distance by which enlarge all bounding boxes; superseeds computed value of sweepDist when lower that (minSweepDistFactor x sweepDist). Updated by the collider. (auto-updated).
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
sweepDist
¶ Distance by which enlarge all bounding boxes, to prevent collider from being run at every step (only should be changed by the collider).
-
property
targetInterv
¶ see InsertionSortCollider::targetInterv (auto-updated)
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updatingDispFactor
¶ see InsertionSortCollider::updatingDispFactor (auto-updated)
-
property
Interaction Geometry creation¶
IGeomFunctor¶
![digraph IGeomFunctor {
rankdir=RL;
margin="0.2,0.05";
"IGeomFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IGeomFunctor"];
"Ig2_Tetra_Tetra_TTetraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Tetra_Tetra_TTetraGeom"];
"Ig2_Tetra_Tetra_TTetraGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Wall_Polyhedra_PolyhedraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Wall_Polyhedra_PolyhedraGeom"];
"Ig2_Wall_Polyhedra_PolyhedraGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Box_Sphere_ScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Box_Sphere_ScGeom6D"];
"Ig2_Box_Sphere_ScGeom6D" -> "Ig2_Box_Sphere_ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_Polyhedra_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_Polyhedra_ScGeom"];
"Ig2_Sphere_Polyhedra_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Wall_PFacet_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Wall_PFacet_ScGeom"];
"Ig2_Wall_PFacet_ScGeom" -> "Ig2_Wall_Sphere_ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_Sphere_ScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_ScGeom6D"];
"Ig2_Sphere_Sphere_ScGeom6D" -> "Ig2_Sphere_Sphere_ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Polyhedra_Polyhedra_PolyhedraGeomOrScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Polyhedra_Polyhedra_PolyhedraGeomOrScGeom"];
"Ig2_Polyhedra_Polyhedra_PolyhedraGeomOrScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_ChainedCylinder_CylScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_ChainedCylinder_CylScGeom"];
"Ig2_Sphere_ChainedCylinder_CylScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Facet_Sphere_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Facet_Sphere_ScGeom"];
"Ig2_Facet_Sphere_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Polyhedra_Polyhedra_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Polyhedra_Polyhedra_ScGeom"];
"Ig2_Polyhedra_Polyhedra_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_Sphere_L3Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_L3Geom"];
"Ig2_Sphere_Sphere_L3Geom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_PP_PP_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_PP_PP_ScGeom"];
"Ig2_PP_PP_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_Sphere_L6Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_L6Geom"];
"Ig2_Sphere_Sphere_L6Geom" -> "Ig2_Sphere_Sphere_L3Geom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Facet_Polyhedra_PolyhedraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Facet_Polyhedra_PolyhedraGeom"];
"Ig2_Facet_Polyhedra_PolyhedraGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Wall_Sphere_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Wall_Sphere_ScGeom"];
"Ig2_Wall_Sphere_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_ChainedCylinder_CylScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_ChainedCylinder_CylScGeom6D"];
"Ig2_Sphere_ChainedCylinder_CylScGeom6D" -> "Ig2_Sphere_ChainedCylinder_CylScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Box_Sphere_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Box_Sphere_ScGeom"];
"Ig2_Box_Sphere_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_GridConnection_PFacet_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_GridConnection_PFacet_ScGeom"];
"Ig2_GridConnection_PFacet_ScGeom" -> "Ig2_Sphere_GridConnection_ScGridCoGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Wall_Sphere_L3Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Wall_Sphere_L3Geom"];
"Ig2_Wall_Sphere_L3Geom" -> "Ig2_Sphere_Sphere_L3Geom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Polyhedra_Polyhedra_PolyhedraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Polyhedra_Polyhedra_PolyhedraGeom"];
"Ig2_Polyhedra_Polyhedra_PolyhedraGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_PFacet_PFacet_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_PFacet_PFacet_ScGeom"];
"Ig2_PFacet_PFacet_ScGeom" -> "Ig2_Sphere_PFacet_ScGridCoGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_GridConnection_ScGridCoGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_GridConnection_ScGridCoGeom"];
"Ig2_Sphere_GridConnection_ScGridCoGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D"];
"Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_GridNode_GridNode_GridNodeGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_GridNode_GridNode_GridNodeGeom6D"];
"Ig2_GridNode_GridNode_GridNodeGeom6D" -> "Ig2_Sphere_Sphere_ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_GridConnection_GridConnection_GridCoGridCoGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_GridConnection_GridConnection_GridCoGridCoGeom"];
"Ig2_GridConnection_GridConnection_GridCoGridCoGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Tetra_Tetra_TTetraSimpleGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Tetra_Tetra_TTetraSimpleGeom"];
"Ig2_Tetra_Tetra_TTetraSimpleGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Facet_Sphere_L3Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Facet_Sphere_L3Geom"];
"Ig2_Facet_Sphere_L3Geom" -> "Ig2_Sphere_Sphere_L3Geom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_Sphere_ScGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_ScGeom"];
"Ig2_Sphere_Sphere_ScGeom" -> "IGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Sphere_PFacet_ScGridCoGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Sphere_PFacet_ScGridCoGeom"];
"Ig2_Sphere_PFacet_ScGridCoGeom" -> "Ig2_Sphere_GridConnection_ScGridCoGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ig2_Facet_Sphere_ScGeom6D" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ig2_Facet_Sphere_ScGeom6D"];
"Ig2_Facet_Sphere_ScGeom6D" -> "Ig2_Facet_Sphere_ScGeom" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-1309658b8804fb8a7a60685d477d1a4a732e46c7.png)
Inheritance graph of IGeomFunctor.¶
-
class
yade.wrapper.
IGeomFunctor
(inherits Functor → Serializable)¶ Functor for creating/updating Interaction::geom objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Box_Sphere_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create an interaction geometry ScGeom from Box and Sphere, representing the box with a projected virtual sphere of same radius.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge sphere radii by this factor (if >1), to permit creation of distant interactions.
InteractionGeometry will be computed when interactionDetectionFactor*(rad) > distance.
Note
This parameter is functionally coupled with Bo1_Sphere_Aabb::aabbEnlargeFactor, which will create larger bounding boxes and should be of the same value.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Box_Sphere_ScGeom6D
(inherits Ig2_Box_Sphere_ScGeom → IGeomFunctor → Functor → Serializable)¶ Create an interaction geometry ScGeom6D from Box and Sphere, representing the box with a projected virtual sphere of same radius.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge sphere radii by this factor (if >1), to permit creation of distant interactions.
InteractionGeometry will be computed when interactionDetectionFactor*(rad) > distance.
Note
This parameter is functionally coupled with Bo1_Sphere_Aabb::aabbEnlargeFactor, which will create larger bounding boxes and should be of the same value.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_ChainedCylinder_ChainedCylinder_ScGeom6D
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing connexion between chained cylinders.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
halfLengthContacts
¶ If True, Cylinders nodes interact like spheres of radius 0.5*length, else one node has size length while the other has size 0. The difference is mainly the locus of rotation definition.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Facet_Polyhedra_PolyhedraGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update geometry of collision between Facet and Polyhedra
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Facet_Sphere_L3Geom
(inherits Ig2_Sphere_Sphere_L3Geom → IGeomFunctor → Functor → Serializable)¶ Incrementally compute L3Geom for contact between Facet and Sphere. Uses attributes of Ig2_Sphere_Sphere_L3Geom.
-
property
approxMask
¶ Selectively enable geometrical approximations (bitmask); add the values for approximations to be enabled.
1
use previous transformation to transform velocities (which are known at mid-steps), instead of mid-step transformation computed as quaternion slerp at t=0.5.
2
do not take average (mid-step) normal when computing relative shear displacement, use previous value instead
4
do not re-normalize average (mid-step) normal, if used.…
- By default, the mask is zero, wherefore none of these approximations is used.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
distFactor
¶ Create interaction if spheres are not futher than distFactor *(r1+r2). If negative, zero normal deformation will be set to be the initial value (otherwise, the geometrical distance is the ‘’zero’’ one).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
trsfRenorm
¶ How often to renormalize trsf; if non-positive, never renormalized (simulation might be unstable)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Facet_Sphere_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing intersection of Facet and Sphere.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
shrinkFactor
¶ The radius of the inscribed circle of the facet is decreased by the value of the sphere’s radius multipled by shrinkFactor. From the definition of contact point on the surface made of facets, the given surface is not continuous and becomes in effect surface covered with triangular tiles, with gap between the separate tiles equal to the sphere’s radius multiplied by 2×*shrinkFactor*. If zero, no shrinking is done.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Facet_Sphere_ScGeom6D
(inherits Ig2_Facet_Sphere_ScGeom → IGeomFunctor → Functor → Serializable)¶ Create an interaction geometry ScGeom6D from Facet and Sphere, representing the Facet with a projected virtual sphere of same radius.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
shrinkFactor
¶ The radius of the inscribed circle of the facet is decreased by the value of the sphere’s radius multipled by shrinkFactor. From the definition of contact point on the surface made of facets, the given surface is not continuous and becomes in effect surface covered with triangular tiles, with gap between the separate tiles equal to the sphere’s radius multiplied by 2×*shrinkFactor*. If zero, no shrinking is done.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_GridConnection_GridConnection_GridCoGridCoGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a GridCoGridCoGeom instance representing the geometry of a contact point between two GridConnection , including relative rotations.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_GridConnection_PFacet_ScGeom
(inherits Ig2_Sphere_GridConnection_ScGridCoGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing intersection of Facet and GridConnection.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
shrinkFactor
¶ The radius of the inscribed circle of the facet is decreased by the value of the sphere’s radius multipled by shrinkFactor. From the definition of contact point on the surface made of facets, the given surface is not continuous and becomes in effect surface covered with triangular tiles, with gap between the separate tiles equal to the sphere’s radius multiplied by 2×*shrinkFactor*. If zero, no shrinking is done.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_GridNode_GridNode_GridNodeGeom6D
(inherits Ig2_Sphere_Sphere_ScGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a GridNodeGeom6D instance representing the geometry of a contact point between two GridNode, including relative rotations.
-
property
avoidGranularRatcheting
¶ Define relative velocity so that ratcheting is avoided. It applies for sphere-sphere contacts. It eventualy also apply for sphere-emulating interactions (i.e. convertible into the ScGeom type), if the virtual sphere’s motion is defined correctly (see e.g. Ig2_Sphere_ChainedCylinder_CylScGeom).
Short explanation of what we want to avoid :
Numerical ratcheting is best understood considering a small elastic cycle at a contact between two grains : assuming b1 is fixed, impose this displacement to b2 :
translation dx in the normal direction
rotation a
translation -dx (back to the initial position)
rotation -a (back to the initial orientation)
If the branch vector used to define the relative shear in rotation×branch is not constant (typically if it is defined from the vector center→contactPoint), then the shear displacement at the end of this cycle is not zero: rotations a and -a are multiplied by branches of different lengths.
It results in a finite contact force at the end of the cycle even though the positions and orientations are unchanged, in total contradiction with the elastic nature of the problem. It could also be seen as an inconsistent energy creation or loss. Given that DEM simulations tend to generate oscillations around equilibrium (damped mass-spring), it can have a significant impact on the evolution of the packings, resulting for instance in slow creep in iterations under constant load.
The solution adopted here to avoid ratcheting is as proposed by McNamara and co-workers. They analyzed the ratcheting problem in detail - even though they comment on the basis of a cycle that differs from the one shown above. One will find interesting discussions in e.g. [McNamara2008], even though solution it suggests is not fully applied here (equations of motion are not incorporating alpha, in contradiction with what is suggested by McNamara et al.).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creep
¶ Substract rotational creep from relative rotation. The rotational creep ScGeom6D::twistCreep is a quaternion and has to be updated inside a constitutive law, see for instance Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
InteractionGeometry will be computed when interactionDetectionFactor*(rad1+rad2) > distance.
Note
This parameter is functionally coupled with Bo1_Sphere_Aabb::aabbEnlargeFactor, which will create larger bounding boxes and should be of the same value.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updateRotations
¶ Precompute relative rotations. Turning this false can speed up simulations when rotations are not needed in constitutive laws (e.g. when spheres are compressed without cohesion and moment in early stage of a triaxial test), but is not foolproof. Change this value only if you know what you are doing.
-
property
-
class
yade.wrapper.
Ig2_PFacet_PFacet_ScGeom
(inherits Ig2_Sphere_PFacet_ScGridCoGeom → Ig2_Sphere_GridConnection_ScGridCoGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGridCoGeom instance representing intersection of Facet and Sphere.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
shrinkFactor
¶ The radius of the inscribed circle of the facet is decreased by the value of the sphere’s radius multipled by shrinkFactor. From the definition of contact point on the surface made of facets, the given surface is not continuous and becomes in effect surface covered with triangular tiles, with gap between the separate tiles equal to the sphere’s radius multiplied by 2×*shrinkFactor*. If zero, no shrinking is done.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_PP_PP_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ EXPERIMENTAL. IGeom functor for PotentialParticle - PotentialParticle pair
-
property
accuracyTol
¶ accuracy desired, tolerance criteria for SOCP
-
property
areaStep
¶ Angular step (degrees) to calculate KnKsPhys.contactArea. Must be a divisor of 360, e.g. 1,2,3,4,5,6,8,9 and so on, to form a closed loop. Must be smaller than 90 degrees. Smaller angles lead to more accurate calculations but are more expensive
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
calContactArea
¶ Whether to calculate jointLength for 2-D contacts and contactArea for 2-D and 3-D contacts
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
twoDdir
¶ Direction of 2D
-
property
twoDimension
¶ Whether the contact is 2-D
-
property
unitWidth2D
¶ Unit width in 2D
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Polyhedra_Polyhedra_PolyhedraGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update geometry of collision between 2 Polyhedras
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Polyhedra_Polyhedra_PolyhedraGeomOrScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ EXPERIMENTAL. A hacky helper Ig2 functor combining two Polyhedra shapes to give, according to the settings, either ScGeom or PolyhedraGeom, through appropriate use of either Ig2_Polyhedra_Polyhedra_ScGeom (through ig2scGeom attribute) or Ig2_Polyhedra_Polyhedra_PolyhedraGeom (ig2polyhedraGeom attribute).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
createScGeom
¶ When true (resp. false), new contacts’ IGeom are created as ScGeom (resp. PolyhedraGeom). Existing contacts are dealt with according to their present IGeom instance.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
ig2polyhedraGeom
¶ Helper Ig2 functor responsible for handling PolyhedraGeom.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Polyhedra_Polyhedra_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ EXPERIMENTAL. Ig2 functor creating ScGeom from two Polyhedra shapes. The radii are computed as a distance of contact point (computed using Ig2_Polyhedra_Polyhedra_PolyhedraGeom) and center of particle. Tested only for face-face contacts (like brick wall).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ see Ig2_Sphere_Sphere_ScGeom.interactionDetectionFactor
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_ChainedCylinder_CylScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing intersection of two Spheres.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_ChainedCylinder_CylScGeom6D
(inherits Ig2_Sphere_ChainedCylinder_CylScGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom6D instance representing the geometry of a contact point between two Spheres, including relative rotations.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creep
¶ Substract rotational creep from relative rotation. The rotational creep ScGeom6D::twistCreep is a quaternion and has to be updated inside a constitutive law, see for instance Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updateRotations
¶ Precompute relative rotations. Turning this false can speed up simulations when rotations are not needed in constitutive laws (e.g. when spheres are compressed without cohesion and moment in early stage of a triaxial test), but is not foolproof. Change this value only if you know what you are doing.
-
property
-
class
yade.wrapper.
Ig2_Sphere_GridConnection_ScGridCoGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGridCoGeom6D instance representing the geometry of a contact point between a GricConnection and a Sphere including relative rotations.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_PFacet_ScGridCoGeom
(inherits Ig2_Sphere_GridConnection_ScGridCoGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGridCoGeom instance representing intersection of PFacet and Sphere.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
shrinkFactor
¶ The radius of the inscribed circle of the facet is decreased by the value of the sphere’s radius multipled by shrinkFactor. From the definition of contact point on the surface made of facets, the given surface is not continuous and becomes in effect surface covered with triangular tiles, with gap between the separate tiles equal to the sphere’s radius multiplied by 2×*shrinkFactor*. If zero, no shrinking is done.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_Polyhedra_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update geometry of collision between Sphere and Polyhedra
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
edgeCoeff
¶ multiplier of penetrationDepth when sphere contacts edge (simulating smaller volume of actual intersection or when several polyhedrons has common edge)
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vertexCoeff
¶ multiplier of penetrationDepth when sphere contacts vertex (simulating smaller volume of actual intersection or when several polyhedrons has common vertex)
-
property
-
class
yade.wrapper.
Ig2_Sphere_Sphere_L3Geom
(inherits IGeomFunctor → Functor → Serializable)¶ Functor for computing incrementally configuration of 2 Spheres stored in L3Geom; the configuration is positioned in global space by local origin \(\vec{c}\) (contact point) and rotation matrix \(\mat{T}\) (orthonormal transformation matrix), and its degrees of freedom are local displacement \(\vec{u}\) (in one normal and two shear directions); with Ig2_Sphere_Sphere_L6Geom and L6Geom, there is additionally \(\vec{\phi}\). The first row of \(\mat{T}\), i.e. local \(x\)-axis, is the contact normal noted \(\vec{n}\) for brevity. Additionally, quasi-constant values of \(\vec{u}_0\) (and \(\vec{\phi}_0\)) are stored as shifted origins of \(\vec{u}\) (and \(\vec{\phi}\)); therefore, current value of displacement is always \(\curr{\vec{u}}-\vec{u}_0\).
Suppose two spheres with radii \(r_i\), positions \(\vec{x}_i\), velocities \(\vec{v}_i\), angular velocities \(\vec{\omega}_i\).
When there is not yet contact, it will be created if \(u_N=|\curr{\vec{x}}_2-\curr{\vec{x}}_1|-|f_d|(r_1+r2)<0\), where \(f_d\) is distFactor (sometimes also called ``interaction radius’’). If \(f_d>0\), then \(\vec{u}_{0x}\) will be initalized to \(u_N\), otherwise to 0. In another words, contact will be created if spheres enlarged by \(|f_d|\) touch, and the ``equilibrium distance’’ (where \(\vec{u}_x-\vec{u}-{0x}\) is zero) will be set to the current distance if \(f_d\) is positive, and to the geometrically-touching distance if negative.
Local axes (rows of \(\mat{T}\)) are initially defined as follows:
local \(x\)-axis is \(\vec{n}=\vec{x}_l=\normalized{\vec{x}_2-\vec{x}_1}\);
local \(y\)-axis positioned arbitrarily, but in a deterministic manner: aligned with the \(xz\) plane (if \(\vec{n}_y<\vec{n}_z\)) or \(xy\) plane (otherwise);
local \(z\)-axis \(\vec{z}_l=\vec{x}_l\times\vec{y}_l\).
If there has already been contact between the two spheres, it is updated to keep track of rigid motion of the contact (one that does not change mutual configuration of spheres) and mutual configuration changes. Rigid motion transforms local coordinate system and can be decomposed in rigid translation (affecting \(\vec{c}\)), and rigid rotation (affecting \(\mat{T}\)), which can be split in rotation \(\vec{o}_r\) perpendicular to the normal and rotation \(\vec{o}_t\) (``twist’’) parallel with the normal:
\[\pprev{\vec{o}_r}=\prev{\vec{n}}\times\curr{\vec{n}}.\]Since velocities are known at previous midstep (\(t-\Dt/2\)), we consider mid-step normal
\[\pprev{\vec{n}}=\frac{\prev{\vec{n}}+\curr{\vec{n}}}{2}.\]For the sake of numerical stability, \(\pprev{\vec{n}}\) is re-normalized after being computed, unless prohibited by approxMask. If approxMask has the appropriate bit set, the mid-normal is not compute, and we simply use \(\pprev{\vec{n}}\approx\prev{\vec{n}}\).
Rigid rotation parallel with the normal is
\[\pprev{\vec{o}_t}=\pprev{\vec{n}}\left(\pprev{\vec{n}}\cdot\frac{\pprev{\vec{\omega}}_1+\pprev{\vec{\omega}}_2}{2}\right)\Dt.\]Branch vectors \(\vec{b}_1\), \(\vec{b}_2\) (connecting \(\curr{\vec{x}}_1\), \(\curr{\vec{x}}_2\) with \(\curr{\vec{c}}\) are computed depending on noRatch (see here).
\begin{align*} \vec{b}_1&=\begin{cases} r_1 \curr{\vec{n}} & \mbox{with }\texttt{noRatch} \\ \curr{\vec{c}}-\curr{\vec{x}}_1 & \mbox{otherwise} \end{cases} \\ \vec{b}_2&=\begin{cases} -r_2\curr{\vec{n}} & \mbox{with }\texttt{noRatch} \\ \curr{\vec{c}}-\curr{\vec{x}}_2 & \mbox{otherwise} \end{cases} \\ \end{align*}Relative velocity at \(\curr{\vec{c}}\) can be computed as
\[\pprev{\vec{v}_r}=(\pprev{\vec{\tilde{v}}_2}+\vec{\omega}_2\times\vec{b}_2)-(\vec{v}_1+\vec{\omega}_1\times\vec{b}_1)\]where \(\vec{\tilde{v}}_2\) is \(\vec{v}_2\) without mean-field velocity gradient in periodic boundary conditions (see Cell.homoDeform). In the numerial implementation, the normal part of incident velocity is removed (since it is computed directly) with \(\pprev{\vec{v}_{r2}}=\pprev{\vec{v}_r}-(\pprev{\vec{n}}\cdot\pprev{\vec{v}_r})\pprev{\vec{n}}\).
Any vector \(\vec{a}\) expressed in global coordinates transforms during one timestep as
\[\curr{\vec{a}}=\prev{\vec{a}}+\pprev{\vec{v}_r}\Dt-\prev{\vec{a}}\times\pprev{\vec{o}_r}-\prev{\vec{a}}\times{\pprev{\vec{t}_r}}\]where the increments have the meaning of relative shear, rigid rotation normal to \(\vec{n}\) and rigid rotation parallel with \(\vec{n}\). Local coordinate system orientation, rotation matrix \(\mat{T}\), is updated by rows, i.e.
\[\begin{split}\curr{\mat{T}}=\begin{pmatrix} \curr{\vec{n}_x}{\hspace{12mm}}\curr{\vec{n}_y}{\hspace{12mm}}\curr{\vec{n}_z} \\ {\prev{\mat{T}_{1,\bullet}}-\prev{\mat{T}_{1,\bullet}}\times\pprev{\vec{o}_r}-\prev{\mat{T}_{1,\bullet}}\times\pprev{\vec{o}_t}} \\ {\prev{\mat{T}_{2,\bullet}}-\prev{\mat{T}_{2,\bullet}}\times\pprev{\vec{o}_r}-\prev{\mat{T}_{,\bullet}}\times\pprev{\vec{o}_t}} \\ \end{pmatrix}\end{split}\]This matrix is re-normalized (unless prevented by approxMask) and mid-step transformation is computed using quaternion spherical interpolation as
\[\pprev{\mat{T}}=\mathrm{Slerp}\,\left(\prev{\mat{T}};\curr{\mat{T}};t=1/2\right).\]Depending on approxMask, this computation can be avoided by approximating \(\pprev{\mat{T}}=\prev{\mat{T}}\).
Finally, current displacement is evaluated as
\[\curr{\vec{u}}=\prev{u}+\pprev{\mat{T}}\pprev{\vec{v}_r}\Dt.\]For the normal component, non-incremental evaluation is preferred, giving
\[\curr{\vec{u}_x}=|\curr{\vec{x}_2}-\curr{\vec{x}_1}|-(r_1+r_2)\]If this functor is called for L6Geom, local rotation is updated as
\[\curr{\vec{\phi}}=\prev{\vec{\phi}}+\pprev{\mat{T}}\Dt(\vec{\omega}_2-\vec{\omega}_1)\]-
property
approxMask
¶ Selectively enable geometrical approximations (bitmask); add the values for approximations to be enabled.
1
use previous transformation to transform velocities (which are known at mid-steps), instead of mid-step transformation computed as quaternion slerp at t=0.5.
2
do not take average (mid-step) normal when computing relative shear displacement, use previous value instead
4
do not re-normalize average (mid-step) normal, if used.…
- By default, the mask is zero, wherefore none of these approximations is used.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
distFactor
¶ Create interaction if spheres are not futher than distFactor *(r1+r2). If negative, zero normal deformation will be set to be the initial value (otherwise, the geometrical distance is the ‘’zero’’ one).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
trsfRenorm
¶ How often to renormalize trsf; if non-positive, never renormalized (simulation might be unstable)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
class
yade.wrapper.
Ig2_Sphere_Sphere_L6Geom
(inherits Ig2_Sphere_Sphere_L3Geom → IGeomFunctor → Functor → Serializable)¶ Incrementally compute L6Geom for contact of 2 spheres.
-
property
approxMask
¶ Selectively enable geometrical approximations (bitmask); add the values for approximations to be enabled.
1
use previous transformation to transform velocities (which are known at mid-steps), instead of mid-step transformation computed as quaternion slerp at t=0.5.
2
do not take average (mid-step) normal when computing relative shear displacement, use previous value instead
4
do not re-normalize average (mid-step) normal, if used.…
- By default, the mask is zero, wherefore none of these approximations is used.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
distFactor
¶ Create interaction if spheres are not futher than distFactor *(r1+r2). If negative, zero normal deformation will be set to be the initial value (otherwise, the geometrical distance is the ‘’zero’’ one).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
trsfRenorm
¶ How often to renormalize trsf; if non-positive, never renormalized (simulation might be unstable)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_Sphere_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing the geometry of a contact point between two Spheres s.
-
property
avoidGranularRatcheting
¶ Define relative velocity so that ratcheting is avoided. It applies for sphere-sphere contacts. It eventualy also apply for sphere-emulating interactions (i.e. convertible into the ScGeom type), if the virtual sphere’s motion is defined correctly (see e.g. Ig2_Sphere_ChainedCylinder_CylScGeom).
Short explanation of what we want to avoid :
Numerical ratcheting is best understood considering a small elastic cycle at a contact between two grains : assuming b1 is fixed, impose this displacement to b2 :
translation dx in the normal direction
rotation a
translation -dx (back to the initial position)
rotation -a (back to the initial orientation)
If the branch vector used to define the relative shear in rotation×branch is not constant (typically if it is defined from the vector center→contactPoint), then the shear displacement at the end of this cycle is not zero: rotations a and -a are multiplied by branches of different lengths.
It results in a finite contact force at the end of the cycle even though the positions and orientations are unchanged, in total contradiction with the elastic nature of the problem. It could also be seen as an inconsistent energy creation or loss. Given that DEM simulations tend to generate oscillations around equilibrium (damped mass-spring), it can have a significant impact on the evolution of the packings, resulting for instance in slow creep in iterations under constant load.
The solution adopted here to avoid ratcheting is as proposed by McNamara and co-workers. They analyzed the ratcheting problem in detail - even though they comment on the basis of a cycle that differs from the one shown above. One will find interesting discussions in e.g. [McNamara2008], even though solution it suggests is not fully applied here (equations of motion are not incorporating alpha, in contradiction with what is suggested by McNamara et al.).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
InteractionGeometry will be computed when interactionDetectionFactor*(rad1+rad2) > distance.
Note
This parameter is functionally coupled with Bo1_Sphere_Aabb::aabbEnlargeFactor, which will create larger bounding boxes and should be of the same value.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Sphere_Sphere_ScGeom6D
(inherits Ig2_Sphere_Sphere_ScGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom6D instance representing the geometry of a contact point between two Spheres, including relative rotations.
-
property
avoidGranularRatcheting
¶ Define relative velocity so that ratcheting is avoided. It applies for sphere-sphere contacts. It eventualy also apply for sphere-emulating interactions (i.e. convertible into the ScGeom type), if the virtual sphere’s motion is defined correctly (see e.g. Ig2_Sphere_ChainedCylinder_CylScGeom).
Short explanation of what we want to avoid :
Numerical ratcheting is best understood considering a small elastic cycle at a contact between two grains : assuming b1 is fixed, impose this displacement to b2 :
translation dx in the normal direction
rotation a
translation -dx (back to the initial position)
rotation -a (back to the initial orientation)
If the branch vector used to define the relative shear in rotation×branch is not constant (typically if it is defined from the vector center→contactPoint), then the shear displacement at the end of this cycle is not zero: rotations a and -a are multiplied by branches of different lengths.
It results in a finite contact force at the end of the cycle even though the positions and orientations are unchanged, in total contradiction with the elastic nature of the problem. It could also be seen as an inconsistent energy creation or loss. Given that DEM simulations tend to generate oscillations around equilibrium (damped mass-spring), it can have a significant impact on the evolution of the packings, resulting for instance in slow creep in iterations under constant load.
The solution adopted here to avoid ratcheting is as proposed by McNamara and co-workers. They analyzed the ratcheting problem in detail - even though they comment on the basis of a cycle that differs from the one shown above. One will find interesting discussions in e.g. [McNamara2008], even though solution it suggests is not fully applied here (equations of motion are not incorporating alpha, in contradiction with what is suggested by McNamara et al.).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creep
¶ Substract rotational creep from relative rotation. The rotational creep ScGeom6D::twistCreep is a quaternion and has to be updated inside a constitutive law, see for instance Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
interactionDetectionFactor
¶ Enlarge both radii by this factor (if >1), to permit creation of distant interactions.
InteractionGeometry will be computed when interactionDetectionFactor*(rad1+rad2) > distance.
Note
This parameter is functionally coupled with Bo1_Sphere_Aabb::aabbEnlargeFactor, which will create larger bounding boxes and should be of the same value.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
updateRotations
¶ Precompute relative rotations. Turning this false can speed up simulations when rotations are not needed in constitutive laws (e.g. when spheres are compressed without cohesion and moment in early stage of a triaxial test), but is not foolproof. Change this value only if you know what you are doing.
-
property
-
class
yade.wrapper.
Ig2_Tetra_Tetra_TTetraGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update geometry of collision between 2 tetrahedra (TTetraGeom instance)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Tetra_Tetra_TTetraSimpleGeom
(inherits IGeomFunctor → Functor → Serializable)¶ EXPERIMANTAL. Create/update geometry of collision between 2 tetrahedra (TTetraSimpleGeom instance)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Wall_PFacet_ScGeom
(inherits Ig2_Wall_Sphere_ScGeom → IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing intersection of Wall and PFacet.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶ Avoid granular ratcheting
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Wall_Polyhedra_PolyhedraGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update geometry of collision between Wall and Polyhedra
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Wall_Sphere_L3Geom
(inherits Ig2_Sphere_Sphere_L3Geom → IGeomFunctor → Functor → Serializable)¶ Incrementally compute L3Geom for contact between Wall and Sphere. Uses attributes of Ig2_Sphere_Sphere_L3Geom.
-
property
approxMask
¶ Selectively enable geometrical approximations (bitmask); add the values for approximations to be enabled.
1
use previous transformation to transform velocities (which are known at mid-steps), instead of mid-step transformation computed as quaternion slerp at t=0.5.
2
do not take average (mid-step) normal when computing relative shear displacement, use previous value instead
4
do not re-normalize average (mid-step) normal, if used.…
- By default, the mask is zero, wherefore none of these approximations is used.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
distFactor
¶ Create interaction if spheres are not futher than distFactor *(r1+r2). If negative, zero normal deformation will be set to be the initial value (otherwise, the geometrical distance is the ‘’zero’’ one).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
trsfRenorm
¶ How often to renormalize trsf; if non-positive, never renormalized (simulation might be unstable)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ig2_Wall_Sphere_ScGeom
(inherits IGeomFunctor → Functor → Serializable)¶ Create/update a ScGeom instance representing intersection of Wall and Sphere.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noRatch
¶ Avoid granular ratcheting
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
IGeomDispatcher¶
-
class
yade.wrapper.
IGeomDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((IGeomDispatcher)arg1, (Shape)arg2, (Shape)arg3) → IGeomFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((IGeomDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Interaction Physics creation¶
IPhysFunctor¶
![digraph IPhysFunctor {
rankdir=RL;
margin="0.2,0.05";
"IPhysFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IPhysFunctor"];
"Ip2_FrictMat_FrictMat_MindlinPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinPhys"];
"Ip2_FrictMat_FrictMat_MindlinPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_JCFpmMat_JCFpmMat_JCFpmPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_JCFpmMat_JCFpmMat_JCFpmPhys"];
"Ip2_JCFpmMat_JCFpmMat_JCFpmPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictViscoMat_FrictViscoPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictViscoMat_FrictViscoPhys"];
"Ip2_FrictMat_FrictViscoMat_FrictViscoPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys"];
"Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_CpmMat_CpmMat_CpmPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_CpmMat_CpmMat_CpmPhys"];
"Ip2_CpmMat_CpmMat_CpmPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_ViscElMat_ViscElMat_ViscElPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_ViscElMat_ViscElMat_ViscElPhys"];
"Ip2_ViscElMat_ViscElMat_ViscElPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_PolyhedraMat_FrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_PolyhedraMat_FrictPhys"];
"Ip2_FrictMat_PolyhedraMat_FrictPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_ElastMat_ElastMat_NormPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_ElastMat_ElastMat_NormPhys"];
"Ip2_ElastMat_ElastMat_NormPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_MindlinCapillaryPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinCapillaryPhys"];
"Ip2_FrictMat_FrictMat_MindlinCapillaryPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_ElastMat_ElastMat_NormShearPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_ElastMat_ElastMat_NormShearPhys"];
"Ip2_ElastMat_ElastMat_NormShearPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictViscoMat_FrictViscoMat_FrictViscoPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictViscoMat_FrictViscoMat_FrictViscoPhys"];
"Ip2_FrictViscoMat_FrictViscoMat_FrictViscoPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_FrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_FrictPhys"];
"Ip2_FrictMat_FrictMat_FrictPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_MortarMat_MortarMat_MortarPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_MortarMat_MortarMat_MortarPhys"];
"Ip2_MortarMat_MortarMat_MortarPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_ViscoFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_ViscoFrictPhys"];
"Ip2_FrictMat_FrictMat_ViscoFrictPhys" -> "Ip2_FrictMat_FrictMat_FrictPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_LubricationPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_LubricationPhys"];
"Ip2_FrictMat_FrictMat_LubricationPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_CpmMat_FrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_CpmMat_FrictPhys"];
"Ip2_FrictMat_CpmMat_FrictPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_CapillaryPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_CapillaryPhys"];
"Ip2_FrictMat_FrictMat_CapillaryPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_LudingMat_LudingMat_LudingPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_LudingMat_LudingMat_LudingPhys"];
"Ip2_LudingMat_LudingMat_LudingPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_CohFrictMat_CohFrictMat_CohFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_CohFrictMat_CohFrictMat_CohFrictPhys"];
"Ip2_CohFrictMat_CohFrictMat_CohFrictPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_WireMat_WireMat_WirePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_WireMat_WireMat_WirePhys"];
"Ip2_WireMat_WireMat_WirePhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_2xInelastCohFrictMat_InelastCohFrictPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_2xInelastCohFrictMat_InelastCohFrictPhys"];
"Ip2_2xInelastCohFrictMat_InelastCohFrictPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_BubbleMat_BubbleMat_BubblePhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_BubbleMat_BubbleMat_BubblePhys"];
"Ip2_BubbleMat_BubbleMat_BubblePhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_ViscElCapMat_ViscElCapMat_ViscElCapPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_ViscElCapMat_ViscElCapMat_ViscElCapPhys"];
"Ip2_ViscElCapMat_ViscElCapMat_ViscElCapPhys" -> "Ip2_ViscElMat_ViscElMat_ViscElPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Ip2_FrictMat_FrictMat_KnKsPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_KnKsPhys"];
"Ip2_FrictMat_FrictMat_KnKsPhys" -> "IPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-c764899fb1f659f1f78e3ec49c8497dea7b018e7.png)
Inheritance graph of IPhysFunctor.¶
-
class
yade.wrapper.
IPhysFunctor
(inherits Functor → Serializable)¶ Functor for creating/updating Interaction::phys objects from bodies’ material properties.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_2xInelastCohFrictMat_InelastCohFrictPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Generates cohesive-frictional interactions with moments. Used in the contact law Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_BubbleMat_BubbleMat_BubblePhys
(inherits IPhysFunctor → Functor → Serializable)¶ Generates bubble interactions.Used in the contact law Law2_ScGeom_BubblePhys_Bubble.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Generates cohesive-frictional interactions with moments, used in the contact law Law2_ScGeom6D_CohFrictPhys_CohesionMoment. The normal/shear stiffness and friction definitions are the same as in Ip2_FrictMat_FrictMat_FrictPhys, check the documentation there for details.
Adhesions related to the normal and the shear components are calculated from CohFrictMat::normalCohesion (\(C_n\)) and CohFrictMat::shearCohesion (\(C_s\)). For particles of size \(R_1\),\(R_2\) the adhesion will be \(a_i=C_i min(R_1,R_2)^2\), \(i=n,s\).
Twist and rolling stiffnesses are proportional to the shear stiffness through dimensionless factors alphaKtw and alphaKr, such that the rotational stiffnesses are defined by \(k_s \alpha_i R_1 R_2\), \(i=tw\,r\)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
normalCohesion
¶ Instance of MatchMaker determining tensile strength
-
property
setCohesionNow
¶ If true, assign cohesion to all existing contacts in current time-step. The flag is turned false automatically, so that assignment is done in the current timestep only.
-
property
setCohesionOnNewContacts
¶ If true, assign cohesion at all new contacts. If false, only existing contacts can be cohesive (also see Ip2_CohFrictMat_CohFrictMat_CohFrictPhys::setCohesionNow), and new contacts are only frictional.
-
property
shearCohesion
¶ Instance of MatchMaker determining cohesive part of the shear strength (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_CpmMat_CpmMat_CpmPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Convert 2 CpmMat instances to CpmPhys with corresponding parameters. Uses simple (arithmetic) averages if material are different. Simple copy of parameters is performed if the material is shared between both particles. See cpm-model for detals.
-
property
E
¶ Instance of MatchMaker determining how to compute interaction’s normal modulus. If
None
, average value is used.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
cohesiveThresholdIter
¶ Should new contacts be cohesive? They will before this iter#, they will not be afterwards. If 0, they will never be. If negative, they will always be created as cohesive (10 by default).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_ElastMat_ElastMat_NormPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Create a NormPhys from two ElastMats. TODO. EXPERIMENTAL
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_ElastMat_ElastMat_NormShearPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Create a NormShearPhys from two ElastMats. TODO. EXPERIMENTAL
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_CpmMat_FrictPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Convert CpmMat instance and FrictMat instance to FrictPhys with corresponding parameters (young, poisson, frictionAngle). Uses simple (arithmetic) averages if material parameters are different.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_CapillaryPhys
(inherits IPhysFunctor → Functor → Serializable)¶ RelationShips to use with Law2_ScGeom_CapillaryPhys_Capillarity.
In these RelationShips all the interaction attributes are computed.
Warning
as in the others Ip2 functors, most of the attributes are computed only once, when the interaction is new.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_FrictPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Create a FrictPhys from two FrictMats. The compliance of one sphere under point load is defined here as \(1/(E.D)\), with \(E\) the stiffness of the sphere and \(D\) its diameter. The compliance of the contact itself is taken as the sum of compliances from each sphere, i.e. \(1/(E_1.D_1)+1/(E_2.D_2)\) in the general case, or \(2/(E.D)\) in the special case of equal sizes and equal stiffness. Note that summing compliances is equivalent to summing the harmonic average of stiffnesses. This reasoning is applied in both the normal and the tangential directions (as in e.g. [Scholtes2009a]), hence the general form of the contact stiffness:
\(k = \frac{E_1D_1*E_2D_2}{E_1D_1+E_2D_2}=\frac{k_1*k_2}{k_1+k_2}\), with \(k_i=E_iD_i\).
In the above equation \(E_i\) is taken equal to FrictMat::young of sphere \(i\) for the normal stiffness, and FrictMat::young \(\times\) ElastMat::poisson for the shear stiffness. In the case of a contact between a ViscElMat and a FrictMat, be sure to set FrictMat::young and FrictMat::poisson, otherwise the default value will be used.
The contact friction is defined according to Ip2_FrictMat_FrictMat_FrictPhys::frictAngle (minimum of the two materials by default).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
kn
¶ Instance of MatchMaker determining how to compute interaction’s normal stiffness. If
None
, harmonic average is used.
-
property
ks
¶ Instance of MatchMaker determining how to compute interaction’s shear stiffness. If
None
, harmonic average is used.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_KnKsPhys
(inherits IPhysFunctor → Functor → Serializable)¶ EXPERIMENTAL. Ip2 functor for KnKsPhys
-
property
Knormal
¶ Volumetric stiffness in the contact normal direction (units: stress/length)
-
property
Kshear
¶ Volumetric stiffness in the contact shear direction (units: stress/length)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
brittleLength
¶ Shear length for degradation
-
property
cohesion
¶ Cohesion
-
property
cohesionBroken
¶ Whether cohesion is already broken
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
kn_i
¶ Currently, we assume kn_i and Knormal are adopting the same value in Ip2 initialisation
-
property
ks_i
¶ Currently, we assume ks_i and Kshear are adopting the same value in Ip2 initialisation
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
maxClosure
¶ not fully in use
-
property
phi_b
¶ Basic friction angle
-
property
tension
¶ Tension
-
property
tensionBroken
¶ Whether tension is already broken
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useFaceProperties
¶ Whether to get face properties from the intersecting particles
-
property
viscousDamping
¶ Viscous damping
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_LubricationPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Ip2 creating LubricationPhys from two Material instances.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
eps
¶ Roughness: fraction of radius enlargement for contact
-
property
eta
¶ Fluid viscosity [Pa.s]
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_MindlinCapillaryPhys
(inherits IPhysFunctor → Functor → Serializable)¶ RelationShips to use with Law2_ScGeom_CapillaryPhys_Capillarity
In these RelationShips all the interaction attributes are computed.
Warning
as in the others Ip2 functors, most of the attributes are computed only once, when the interaction is new.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
betan
¶ Normal viscous damping ratio \(\beta_n\).
-
property
betas
¶ Shear viscous damping ratio \(\beta_s\).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
en
¶ Normal coefficient of restitution \(e_n\).
-
property
es
¶ Shear coefficient of restitution \(e_s\).
-
property
eta
¶ Coefficient to determine the plastic bending moment
-
property
gamma
¶ Surface energy parameter [J/m^2] per each unit contact surface, to derive DMT formulation from HM
-
property
krot
¶ Rotational stiffness for moment contact law
-
property
ktwist
¶ Torsional stiffness for moment contact law
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_MindlinPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Calculate some physical parameters needed to obtain the normal and shear stiffnesses according to the Hertz-Mindlin formulation (as implemented in PFC).
Viscous parameters can be specified either using coefficients of restitution (\(e_n\), \(e_s\)) or viscous damping ratio (\(\beta_n\), \(\beta_s\)). The following rules apply: #. If the \(\beta_n\) (\(\beta_s\)) ratio is given, it is assigned to MindlinPhys.betan (MindlinPhys.betas) directly. #. If \(e_n\) is given, MindlinPhys.betan is computed using \(\beta_n=-(\log e_n)/\sqrt{\pi^2+(\log e_n)^2}\). The same applies to \(e_s\), MindlinPhys.betas. #. It is an error (exception) to specify both \(e_n\) and \(\beta_n\) (\(e_s\) and \(\beta_s\)). #. If neither \(e_n\) nor \(\beta_n\) is given, zero value for MindlinPhys.betan is used; there will be no viscous effects. #.If neither \(e_s\) nor \(\beta_s\) is given, the value of MindlinPhys.betan is used for MindlinPhys.betas as well.
The \(e_n\), \(\beta_n\), \(e_s\), \(\beta_s\) are MatchMaker objects; they can be constructed from float values to always return constant value.
See scripts/test/shots.py for an example of specifying \(e_n\) based on combination of parameters.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
betan
¶ Normal viscous damping ratio \(\beta_n\).
-
property
betas
¶ Shear viscous damping ratio \(\beta_s\).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
en
¶ Normal coefficient of restitution \(e_n\).
-
property
es
¶ Shear coefficient of restitution \(e_s\).
-
property
eta
¶ Coefficient to determine the plastic bending moment
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute the friction angle of an interaction. If
None
, minimum value is used.
-
property
gamma
¶ Surface energy parameter [J/m^2] per each unit contact surface, to derive DMT formulation from HM
-
property
krot
¶ Rotational stiffness for moment contact law
-
property
ktwist
¶ Torsional stiffness for moment contact law
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictMat_ViscoFrictPhys
(inherits Ip2_FrictMat_FrictMat_FrictPhys → IPhysFunctor → Functor → Serializable)¶ Create a FrictPhys from two FrictMats. The compliance of one sphere under symetric point loads is defined here as 1/(E.r), with E the stiffness of the sphere and r its radius, and corresponds to a compliance 1/(2.E.r)=1/(E.D) from each contact point. The compliance of the contact itself will be the sum of compliances from each sphere, i.e. 1/(E.D1)+1/(E.D2) in the general case, or 1/(E.r) in the special case of equal sizes. Note that summing compliances corresponds to an harmonic average of stiffnesss, which is how kn is actually computed in the Ip2_FrictMat_FrictMat_FrictPhys functor.
The shear stiffness ks of one sphere is defined via the material parameter ElastMat::poisson, as ks=poisson*kn, and the resulting shear stiffness of the interaction will be also an harmonic average.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
kn
¶ Instance of MatchMaker determining how to compute interaction’s normal stiffness. If
None
, harmonic average is used.
-
property
ks
¶ Instance of MatchMaker determining how to compute interaction’s shear stiffness. If
None
, harmonic average is used.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_FrictViscoMat_FrictViscoPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Converts a FrictMat and FrictViscoMat instance to FrictViscoPhys with corresponding parameters. Basically this functor corresponds to Ip2_FrictMat_FrictMat_FrictPhys with the only difference that damping in normal direction can be considered.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
kRatio
¶ Instance of MatchMaker determining how to compute interaction’s shear contact stiffnesses. If this value is not given the elastic properties (i.e. poisson) of the two colliding materials are used to calculate the stiffness.
-
property
kn
¶ Instance of MatchMaker determining how to compute interaction’s normal contact stiffnesses. If this value is not given the elastic properties (i.e. young) of the two colliding materials are used to calculate the stiffness.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictMat_PolyhedraMat_FrictPhys
(inherits IPhysFunctor → Functor → Serializable)¶ -
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_FrictViscoMat_FrictViscoMat_FrictViscoPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Converts 2 FrictViscoMat instances to FrictViscoPhys with corresponding parameters. Basically this functor corresponds to Ip2_FrictMat_FrictMat_FrictPhys with the only difference that damping in normal direction can be considered.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
kRatio
¶ Instance of MatchMaker determining how to compute interaction’s shear contact stiffnesses. If this value is not given the elastic properties (i.e. poisson) of the two colliding materials are used to calculate the stiffness.
-
property
kn
¶ Instance of MatchMaker determining how to compute interaction’s normal contact stiffnesses. If this value is not given the elastic properties (i.e. young) of the two colliding materials are used to calculate the stiffness.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_JCFpmMat_JCFpmMat_JCFpmPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Converts 2 JCFpmMat instances to one JCFpmPhys instance, with corresponding parameters. See JCFpmMat and [Duriez2016] for details
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
cohesiveTresholdIteration
¶ should new contacts be cohesive? If strictly negativ, they will in any case. If positiv, they will before this iter, they won’t afterward.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
weibullCutOffMax
¶ Factor that cuts off the largest values of the weibull distributed interaction areas.
-
property
weibullCutOffMin
¶ Factor that cuts off the smallest values of the weibull distributed interaction areas.
-
property
xSectionWeibullScaleParameter
¶ Scale parameter used to generate interaction radii for the crosssectional areas (changing strength criteria only) according to Weibull distribution. Activated for any value other than 0. Needs to be combined with a shape parameter
-
property
xSectionWeibullShapeParameter
¶ Shape parameter used to generate interaction radii for the crossSectional areas (changing strength criteria only) according to Weibull distribution. Activated for any value other than 0. Needs to be combined with a scale parameter)
-
property
-
class
yade.wrapper.
Ip2_LudingMat_LudingMat_LudingPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Convert 2 instances of LudingMat to LudingPhys using the rule of consecutive connection.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_MortarMat_MortarMat_MortarPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Ip2 creating MortarPhys from two MortarMat instances.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
cohesiveThresholdIter
¶ Should new contacts be cohesive? They will before this iter#, they will not be afterwards. If <=0, they will never be.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys
(inherits IPhysFunctor → Functor → Serializable)¶ -
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_ViscElCapMat_ViscElCapMat_ViscElCapPhys
(inherits Ip2_ViscElMat_ViscElMat_ViscElPhys → IPhysFunctor → Functor → Serializable)¶ Convert 2 instances of ViscElCapMat to ViscElCapPhys using the rule of consecutive connection.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
en
¶ Instance of MatchMaker determining restitution coefficient in normal direction
-
property
et
¶ Instance of MatchMaker determining restitution coefficient in tangential direction
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
tc
¶ Instance of MatchMaker determining contact time
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_ViscElMat_ViscElMat_ViscElPhys
(inherits IPhysFunctor → Functor → Serializable)¶ Convert 2 instances of ViscElMat to ViscElPhys using the rule of consecutive connection.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
en
¶ Instance of MatchMaker determining restitution coefficient in normal direction
-
property
et
¶ Instance of MatchMaker determining restitution coefficient in tangential direction
-
property
frictAngle
¶ Instance of MatchMaker determining how to compute interaction’s friction angle. If
None
, minimum value is used.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
tc
¶ Instance of MatchMaker determining contact time
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Ip2_WireMat_WireMat_WirePhys
(inherits IPhysFunctor → Functor → Serializable)¶ Converts 2 WireMat instances to WirePhys with corresponding parameters.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
linkThresholdIteration
¶ Iteration to create the link.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
IPhysDispatcher¶
-
class
yade.wrapper.
IPhysDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((IPhysDispatcher)arg1, (Material)arg2, (Material)arg3) → IPhysFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((IPhysDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Constitutive laws¶
LawFunctor¶
![digraph LawFunctor {
rankdir=RL;
margin="0.2,0.05";
"LawFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.LawFunctor"];
"Law2_ScGeom_MortarPhys_Lourenco" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_MortarPhys_Lourenco"];
"Law2_ScGeom_MortarPhys_Lourenco" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM"];
"Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_VirtualLubricationPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_VirtualLubricationPhys"];
"Law2_ScGeom_VirtualLubricationPhys" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_TTetraSimpleGeom_NormPhys_Simple" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_TTetraSimpleGeom_NormPhys_Simple"];
"Law2_TTetraSimpleGeom_NormPhys_Simple" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_L6Geom_FrictPhys_Linear" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_L6Geom_FrictPhys_Linear"];
"Law2_L6Geom_FrictPhys_Linear" -> "Law2_L3Geom_FrictPhys_ElPerfPl" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment"];
"Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_CpmPhys_Cpm" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_CpmPhys_Cpm"];
"Law2_ScGeom_CpmPhys_Cpm" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_ViscoFrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_ViscoFrictPhys_CundallStrack"];
"Law2_ScGeom_ViscoFrictPhys_CundallStrack" -> "Law2_ScGeom_FrictPhys_CundallStrack" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_ImplicitLubricationPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_ImplicitLubricationPhys"];
"Law2_ScGeom_ImplicitLubricationPhys" -> "Law2_ScGeom_VirtualLubricationPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_MindlinPhys_HertzWithLinearShear" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_MindlinPhys_HertzWithLinearShear"];
"Law2_ScGeom_MindlinPhys_HertzWithLinearShear" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGridCoGeom_FrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGridCoGeom_FrictPhys_CundallStrack"];
"Law2_ScGridCoGeom_FrictPhys_CundallStrack" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_BubblePhys_Bubble" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_BubblePhys_Bubble"];
"Law2_ScGeom_BubblePhys_Bubble" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom6D_CohFrictPhys_CohesionMoment" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom6D_CohFrictPhys_CohesionMoment"];
"Law2_ScGeom6D_CohFrictPhys_CohesionMoment" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_ViscElCapPhys_Basic" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_ViscElCapPhys_Basic"];
"Law2_ScGeom_ViscElCapPhys_Basic" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment"];
"Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_ViscElPhys_Basic" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_ViscElPhys_Basic"];
"Law2_ScGeom_ViscElPhys_Basic" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_PotentialLubricationPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_PotentialLubricationPhys"];
"Law2_ScGeom_PotentialLubricationPhys" -> "Law2_ScGeom_ImplicitLubricationPhys" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_CylScGeom_FrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_CylScGeom_FrictPhys_CundallStrack"];
"Law2_CylScGeom_FrictPhys_CundallStrack" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_GridCoGridCoGeom_FrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_GridCoGridCoGeom_FrictPhys_CundallStrack"];
"Law2_GridCoGridCoGeom_FrictPhys_CundallStrack" -> "Law2_ScGeom_FrictPhys_CundallStrack" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_LudingPhys_Basic" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_LudingPhys_Basic"];
"Law2_ScGeom_LudingPhys_Basic" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_PolyhedraGeom_PolyhedraPhys_Volumetric" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_PolyhedraGeom_PolyhedraPhys_Volumetric"];
"Law2_PolyhedraGeom_PolyhedraPhys_Volumetric" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGridCoGeom_CohFrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGridCoGeom_CohFrictPhys_CundallStrack"];
"Law2_ScGridCoGeom_CohFrictPhys_CundallStrack" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_WirePhys_WirePM" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_WirePhys_WirePM"];
"Law2_ScGeom_WirePhys_WirePM" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_SCG_KnKsPhys_KnKsLaw" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_SCG_KnKsPhys_KnKsLaw"];
"Law2_SCG_KnKsPhys_KnKsLaw" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_MindlinPhys_Mindlin" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_MindlinPhys_Mindlin"];
"Law2_ScGeom_MindlinPhys_Mindlin" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_MindlinPhys_MindlinDeresiewitz" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_MindlinPhys_MindlinDeresiewitz"];
"Law2_ScGeom_MindlinPhys_MindlinDeresiewitz" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_FrictViscoPhys_CundallStrackVisco" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_FrictViscoPhys_CundallStrackVisco"];
"Law2_ScGeom_FrictViscoPhys_CundallStrackVisco" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_CylScGeom6D_CohFrictPhys_CohesionMoment" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_CylScGeom6D_CohFrictPhys_CohesionMoment"];
"Law2_CylScGeom6D_CohFrictPhys_CohesionMoment" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_L3Geom_FrictPhys_ElPerfPl" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_L3Geom_FrictPhys_ElPerfPl"];
"Law2_L3Geom_FrictPhys_ElPerfPl" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Law2_ScGeom_FrictPhys_CundallStrack" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Law2_ScGeom_FrictPhys_CundallStrack"];
"Law2_ScGeom_FrictPhys_CundallStrack" -> "LawFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-b4371a3bb3d2a3b9be14ede0d26874b3a66aa7c1.png)
Inheritance graph of LawFunctor.¶
-
class
yade.wrapper.
LawFunctor
(inherits Functor → Serializable)¶ Functor for applying constitutive laws on interactions.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment
(inherits LawFunctor → Functor → Serializable)¶ Law for linear compression, and Mohr-Coulomb plasticity surface without cohesion. This law implements the classical linear elastic-plastic law from [CundallStrack1979] (see also [Pfc3dManual30]). The normal force is (with the convention of positive tensile forces) \(F_n=\min(k_n u_n, 0)\). The shear force is \(F_s=k_s u_s\), the plasticity condition defines the maximum value of the shear force : \(F_s^{\max}=F_n\tan(\phi)\), with \(\phi\) the friction angle.
Note
This law is well tested in the context of triaxial simulation, and has been used for a number of published results (see e.g. [Scholtes2009b] and other papers from the same authors). It is generalised by Law2_ScGeom6D_CohFrictPhys_CohesionMoment, which adds cohesion and moments at contact.
-
property
always_use_moment_law
¶ If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creep_viscosity
¶ creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys…
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
shear_creep
¶ activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
twist_creep
¶ activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useIncrementalForm
¶ use the incremental formulation to compute bending and twisting moments. Creep on the twisting moment is not included in such a case.
-
property
-
class
yade.wrapper.
Law2_CylScGeom6D_CohFrictPhys_CohesionMoment
(inherits LawFunctor → Functor → Serializable)¶ This law generalises Law2_CylScGeom_FrictPhys_CundallStrack by adding cohesion and moments at contact.
-
property
always_use_moment_law
¶ If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creep_viscosity
¶ creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys…
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
shear_creep
¶ activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
twist_creep
¶ activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useIncrementalForm
¶ use the incremental formulation to compute bending and twisting moments. Creep on the twisting moment is not included in such a case.
-
property
-
class
yade.wrapper.
Law2_CylScGeom_FrictPhys_CundallStrack
(inherits LawFunctor → Functor → Serializable)¶ Law for linear compression, and Mohr-Coulomb plasticity surface without cohesion. This law implements the classical linear elastic-plastic law from [CundallStrack1979] (see also [Pfc3dManual30]). The normal force is (with the convention of positive tensile forces) \(F_n=\min(k_n u_n, 0)\). The shear force is \(F_s=k_s u_s\), the plasticity condition defines the maximum value of the shear force : \(F_s^{\max}=F_n\tan(\phi)\), with \(\phi\) the friction angle.
Note
This law uses ScGeom.
Note
This law is well tested in the context of triaxial simulation, and has been used for a number of published results (see e.g. [Scholtes2009b] and other papers from the same authors). It is generalised by Law2_ScGeom6D_CohFrictPhys_CohesionMoment, which adds cohesion and moments at contact.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack
(inherits Law2_ScGeom_FrictPhys_CundallStrack → LawFunctor → Functor → Serializable)¶ Frictional elastic contact law between two gridConnection . See Law2_ScGeom_FrictPhys_CundallStrack for more details.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Compute and return the total elastic energy in all “FrictPhys” contacts
-
initPlasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
plasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if Law2_ScGeom_FrictPhys_CundallStrack::traceEnergy is true.
-
property
sphericalBodies
¶ If true, compute branch vectors from radii (faster), else use contactPoint-position. Turning this flag true is safe for sphere-sphere contacts and a few other specific cases. It will give wrong values of torques on facets or boxes.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts. This will trace only plastic energy in this law, see O.trackEnergy for a more complete energies tracing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_L3Geom_FrictPhys_ElPerfPl
(inherits LawFunctor → Functor → Serializable)¶ Basic law for testing L3Geom; it bears no cohesion (unless noBreak is
True
), and plastic slip obeys the Mohr-Coulomb criterion (unless noSlip isTrue
).-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noBreak
¶ Do not break contacts when particles separate.
-
property
noSlip
¶ No plastic slipping.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_L6Geom_FrictPhys_Linear
(inherits Law2_L3Geom_FrictPhys_ElPerfPl → LawFunctor → Functor → Serializable)¶ Basic law for testing L6Geom – linear in both normal and shear sense, without slip or breakage.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
charLen
¶ Characteristic length with the meaning of the stiffness ratios bending/shear and torsion/normal.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
noBreak
¶ Do not break contacts when particles separate.
-
property
noSlip
¶ No plastic slipping.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_PolyhedraGeom_PolyhedraPhys_Volumetric
(inherits LawFunctor → Functor → Serializable)¶ Calculate physical response of 2 vector in interaction, based on penetration configuration given by PolyhedraGeom. Normal force is proportional to the volume of intersection
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_PolyhedraGeom_PolyhedraPhys_Volumetric)arg1) → float :¶ Compute and return the total elastic energy in all “FrictPhys” contacts
-
initPlasticDissipation
((Law2_PolyhedraGeom_PolyhedraPhys_Volumetric)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
plasticDissipation
((Law2_PolyhedraGeom_PolyhedraPhys_Volumetric)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if Law2_PolyhedraGeom_PolyhedraPhys_Volumetric::traceEnergy is true.
-
property
shearForce
¶ Shear force from last step
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts. This will trace only plastic energy in this law, see O.trackEnergy for a more complete energies tracing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
volumePower
¶ Power of volume used in evaluation of normal force. Default is 1.0 - normal force is linearly proportional to volume. 1.0/3.0 would mean that normal force is proportional to the cube root of volume, approximation of penetration depth.
-
property
-
class
yade.wrapper.
Law2_SCG_KnKsPhys_KnKsLaw
(inherits LawFunctor → Functor → Serializable)¶ Law for linear compression, without cohesion and Mohr-Coulomb plasticity surface.
Note
This law uses ScGeom; there is also functionally equivalent Law2_Dem3DofGeom_FrictPhys_Basic, which uses Dem3DofGeom (sphere-box interactions are not implemented for the latest).
-
property
Talesnick
¶ Use contact law developed for validation against model test
-
property
allowBreakage
¶ Allow cohesion to break. Once broken, cohesion = 0
-
property
allowViscousAttraction
¶ Whether to allow attractive forces due to viscous damping
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_SCG_KnKsPhys_KnKsLaw)arg1) → float :¶ Compute and return the total elastic energy in all “FrictPhys” contacts. Computed only if Law2_SCG_KnKsPhys_KnKsLaw::traceEnergy is true.
-
initPlasticDissipation
((Law2_SCG_KnKsPhys_KnKsLaw)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
initialOverlapDistance
¶ Initial overlap distance, defining the offset distance for tension overlap, i.e. negative overlap.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
normDampDissip
((Law2_SCG_KnKsPhys_KnKsLaw)arg1) → float :¶ Total energy dissipated in normal viscous damping. Computed only if Law2_SCG_KnKsPhys_KnKsLaw::traceEnergy is true.
-
plasticDissipation
((Law2_SCG_KnKsPhys_KnKsLaw)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if Law2_SCG_KnKsPhys_KnKsLaw::traceEnergy is true.
-
property
preventGranularRatcheting
¶ bool to avoid granular ratcheting
-
ratioSlidingContacts
((Law2_SCG_KnKsPhys_KnKsLaw)arg1) → float :¶ Return the ratio between the number of contacts sliding to the total number at a given time.
-
shearDampDissip
((Law2_SCG_KnKsPhys_KnKsLaw)arg1) → float :¶ Total energy dissipated in shear viscous damping. Computed only if Law2_SCG_KnKsPhys_KnKsLaw::traceEnergy is true.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom6D_CohFrictPhys_CohesionMoment
(inherits LawFunctor → Functor → Serializable)¶ Law for linear traction-compression-bending-twisting, with cohesion+friction and Mohr-Coulomb plasticity surface. This law adds adhesion and moments to Law2_ScGeom_FrictPhys_CundallStrack.
The normal force is (with the convention of positive tensile forces) \(F_n=min(k_n*(u_n-u_n^p), a_n)\), with \(a_n\) the normal adhesion and \(u_n^p\) the plastic part of normal displacement. The shear force is \(F_s=k_s*u_s\), the plasticity condition defines the maximum value of the shear force, by default \(F_s^{max}=F_n*tan(\phi)+a_s\), with \(\phi\) the friction angle and \(a_s\) the shear adhesion. If CohFrictPhys::cohesionDisablesFriction is True, friction is ignored as long as adhesion is active, and the maximum shear force is only \(F_s^{max}=a_s\).
If the maximum tensile or maximum shear force is reached and CohFrictPhys::fragile =True (default), the cohesive link is broken, and \(a_n, a_s\) are set back to zero. If a tensile force is present, the contact is lost, else the shear strength is \(F_s^{max}=F_n*tan(\phi)\). If CohFrictPhys::fragile =False, the behaviour is perfectly plastic, and the shear strength is kept constant.
If Law2_ScGeom6D_CohFrictPhys_CohesionMoment::momentRotationLaw =True, bending and twisting moments are computed using a linear law with moduli respectively \(k_t\) and \(k_r\), so that the moments are : \(M_b=k_b*\Theta_b\) and \(M_t=k_t*\Theta_t\), with \(\Theta_{b,t}\) the relative rotations between interacting bodies (details can be found in [Bourrier2013]). The maximum value of moments can be defined and takes the form of rolling friction. Cohesive -type moment may also be included in the future.
Creep at contact is implemented in this law, as defined in [Hassan2010]. If activated, there is a viscous behaviour of the shear and twisting components, and the evolution of the elastic parts of shear displacement and relative twist is given by \(du_{s,e}/dt=-F_s/\nu_s\) and \(d\Theta_{t,e}/dt=-M_t/\nu_t\).
-
property
always_use_moment_law
¶ If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
bendingElastEnergy
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Compute bending elastic energy.
-
property
creep_viscosity
¶ creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Compute total elastic energy.
-
initPlasticDissipation
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
normElastEnergy
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Compute normal elastic energy.
-
plasticDissipation
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Total energy dissipated in plastic slips at all CohFrictPhys contacts. Computed only if Law2_ScGeom_FrictPhys_CundallStrack::traceEnergy is true.
-
shearElastEnergy
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Compute shear elastic energy.
-
property
shear_creep
¶ activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at contacts. Note that it will not reflect any energy associated to de-bonding, as it may occur for fragile contacts, nor does it include plastic dissipation in traction.
-
twistElastEnergy
((Law2_ScGeom6D_CohFrictPhys_CohesionMoment)arg1) → float :¶ Compute twist elastic energy.
-
property
twist_creep
¶ activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useIncrementalForm
¶ use the incremental formulation to compute bending and twisting moments. Creep on the twisting moment is not included in such a case.
-
property
-
class
yade.wrapper.
Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment
(inherits LawFunctor → Functor → Serializable)¶ This law is currently under developpement. Final version and documentation will come before the end of 2014.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
normElastEnergy
((Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment)arg1) → float :¶ Compute normal elastic energy.
-
shearElastEnergy
((Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment)arg1) → float :¶ Compute shear elastic energy.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_BubblePhys_Bubble
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for Bubble model.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
pctMaxForce
¶ Chan[2011] states the contact law is valid only for small interferences; therefore an exponential force-displacement curve models the contact stiffness outside that regime (large penetration). This artificial stiffening ensures that bubbles will not pass through eachother or completely overlap during the simulation. The maximum force is Fmax = (2*pi*surfaceTension*rAvg). pctMaxForce is the percentage of the maximum force dictates the separation threshold, Dmax, for each contact. Penetrations less than Dmax calculate the reaction force from the derived contact law, while penetrations equal to or greater than Dmax calculate the reaction force from the artificial exponential curve.
-
property
surfaceTension
¶ The surface tension in the liquid surrounding the bubbles. The default value is that of water at 25 degrees Celcius.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_CpmPhys_Cpm
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for the cpm-model.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom_CpmPhys_Cpm)arg1) → float :¶ Compute and return the total elastic energy in all “CpmPhys” contacts
-
property
epsSoft
¶ Strain at which softening in compression starts (non-negative to deactivate). The default value is such that plasticity does not occur
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
omegaThreshold
¶ damage after which the contact disappears (<1), since omega reaches 1 only for strain →+∞
-
property
relKnSoft
¶ Relative rigidity of the softening branch in compression (0=perfect elastic-plastic, <0 softening, >0 hardening)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
yieldEllipseShift
¶ horizontal scaling of the ellipse (shifts on the +x axis as interactions with +y are given)
-
property
yieldLogSpeed
¶ scaling in the logarithmic yield surface (should be <1 for realistic results; >=0 for meaningful results)
-
yieldSigmaTMagnitude
((Law2_ScGeom_CpmPhys_Cpm)arg1, (float)sigmaN, (float)omega, (float)undamagedCohesion, (float)tanFrictionAngle) → float :¶ Return radius of yield surface for given material and state parameters; uses attributes of the current instance (yieldSurfType etc), change them before calling if you need that.
-
property
yieldSurfType
¶ yield function: 0: mohr-coulomb (original); 1: parabolic; 2: logarithmic, 3: log+lin_tension, 4: elliptic, 5: elliptic+log
-
property
-
class
yade.wrapper.
Law2_ScGeom_FrictPhys_CundallStrack
(inherits LawFunctor → Functor → Serializable)¶ Law for linear compression, and Mohr-Coulomb plasticity surface without cohesion. This law implements the classical linear elastic-plastic law from [CundallStrack1979] (see also [Pfc3dManual30]). The normal force is (with the convention of positive tensile forces) \(F_n=\min(k_n u_n, 0)\). The shear force is \(F_s=k_s u_s\), the plasticity condition defines the maximum value of the shear force : \(F_s^{\max}=F_n\tan(\phi)\), with \(\phi\) the friction angle.
This law is well tested in the context of triaxial simulation, and has been used for a number of published results (see e.g. [Scholtes2009b] and other papers from the same authors). It is generalised by Law2_ScGeom6D_CohFrictPhys_CohesionMoment, which adds cohesion and moments at contact.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Compute and return the total elastic energy in all “FrictPhys” contacts
-
initPlasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
plasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if Law2_ScGeom_FrictPhys_CundallStrack::traceEnergy is true.
-
property
sphericalBodies
¶ If true, compute branch vectors from radii (faster), else use contactPoint-position. Turning this flag true is safe for sphere-sphere contacts and a few other specific cases. It will give wrong values of torques on facets or boxes.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts. This will trace only plastic energy in this law, see O.trackEnergy for a more complete energies tracing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_FrictViscoPhys_CundallStrackVisco
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for the FrictViscoPM. Corresponds to Law2_ScGeom_FrictPhys_CundallStrack with the only difference that viscous damping in normal direction can be considered.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom_FrictViscoPhys_CundallStrackVisco)arg1) → float :¶ Compute and return the total elastic energy in all “FrictViscoPhys” contacts
-
initPlasticDissipation
((Law2_ScGeom_FrictViscoPhys_CundallStrackVisco)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
plasticDissipation
((Law2_ScGeom_FrictViscoPhys_CundallStrackVisco)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if :yref:Law2_ScGeom_FrictViscoPhys_CundallStrackVisco::traceEnergy` is true.
-
property
sphericalBodies
¶ If true, compute branch vectors from radii (faster), else use contactPoint-position. Turning this flag true is safe for sphere-sphere contacts and a few other specific cases. It will give wrong values of torques on facets or boxes.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts. This will trace only plastic energy in this law, see O.trackEnergy for a more complete energies tracing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_ImplicitLubricationPhys
(inherits Law2_ScGeom_VirtualLubricationPhys → LawFunctor → Functor → Serializable)¶ Material law for lubrication and contact between two spheres, solved using implicit method. Several resolution methods are available. Iterative exact, solving the 2nd order polynomia. Other resolutions methods are numerical (Newton-Rafson and Dichotomy) with a variable change \(\delta=\log(u)\), solved in dimentionless coordinates.
-
property
MaxDist
¶ Maximum distance (d/a) for the interaction
-
property
MaxIter
¶ Maximum iterations for numerical resolution (Dichotomy and Newton-Rafson)
-
property
SolutionTol
¶ Tolerance for numerical resolution (Dichotomy and Newton-Rafson)
-
property
activateRollLubrication
¶ Activate roll lubrication (default: true)
-
property
activateTangencialLubrication
¶ Activate tangencial lubrication (default: true)
-
property
activateTwistLubrication
¶ Activate twist lubrication (default: true)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
static
getStressForEachBody
() → tuple :¶ Get stresses tensors for each bodies: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
static
getTotalStresses
() → tuple :¶ Get total stresses tensors: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
maxSubSteps
¶ max recursion depth of adaptative timestepping in the theta-method, the minimal time interval is thus Omega::dt\(/2^{depth}\). If still not converged the integrator will switch to backward Euler.
-
property
resolution
¶ Change normal component resolution method, 0: Iterative exact resolution with substepping (theta method, linear contact), 1: Newton-Rafson dimensionless resolution (theta method, linear contact), 2: (default) Dichotomy dimensionless resolution (theta method, linear contact), 3: Exact dimensionless solution with contact prediction (theta method, linear contact). Method 3 is better if the volumic fraction is not too high. Use 2 otherwise.
-
property
theta
¶ parameter of the ‘theta’-method, 1: backward Euler, 0.5: trapezoidal rule, 0: not used, 0.55: suggested optimum)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM
(inherits LawFunctor → Functor → Serializable)¶ Interaction law for cohesive frictional material, e.g. rock, possibly presenting joint surfaces, that can be mechanically described with a smooth contact logic [Ivars2011] (implemented in Yade in [Scholtes2012]). See examples/jointedCohesiveFrictionalPM for script examples. Joint surface definitions (through stl meshes or direct definition with gts module) are illustrated there.
-
property
Key
¶ string specifying the name of saved file ‘cracks___.txt’, when recordCracks is true.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
clusterMoments
¶ computer clustered moments? (on by default
-
property
computedCentroid
¶ computer clustered moments?
-
property
cracksFileExist
¶ if true (and if recordCracks), data are appended to an existing ‘cracksKey’ text file; otherwise its content is reset.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
eventNumber
¶ cluster event number (used for clustering and paraview visualization of groups).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
momentFudgeFactor
¶ Fudge factor used by Hazzard and Damjanac 2013 to improve moment size accuracy (set to 1 for no impact by default)
-
property
momentRadiusFactor
¶ Average particle diameter multiplier for moment magnitude calculation
-
property
momentsFileExist
¶ if true (and if recordCracks), data are appended to an existing ‘momentsKey’ text file; otherwise its content is reset.
-
property
nbShearCracks
¶ number of shear microcracks.
-
property
nbTensCracks
¶ number of tensile microcracks.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene
-
property
recordCracks
¶ if true, data about interactions that lose their cohesive feature are stored in the text file cracksKey.txt (see Key and cracksFileExist). It contains 9 columns: the break iteration, the 3 coordinates of the contact point, the type (1 means shear break, while 0 corresponds to tensile break), the ‘’cross section’’ (mean radius of the 2 spheres) and the 3 coordinates of the contact normal.
-
property
recordMoments
¶ Combines with :yref: Key<Law2ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM.Key> to compute acoustic emissions according to clustered broken bond method? (off by default)
-
property
smoothJoint
¶ if true, interactions of particles belonging to joint surface (JCFpmPhys.isOnJoint) are handled according to a smooth contact logic [Ivars2011], [Scholtes2012].
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
totalCracksSurface
¶ calculate the total cracked surface.
-
property
totalShearCracksE
¶ calculate the overall energy dissipated by interparticle microcracking in shear.
-
property
totalTensCracksE
¶ calculate the overall energy dissipated by interparticle microcracking in tension.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
useStrainEnergy
¶ use strain energy for moment magnitude estimation (if false, use kinetic energy)
-
property
-
class
yade.wrapper.
Law2_ScGeom_LudingPhys_Basic
(inherits LawFunctor → Functor → Serializable)¶ Linear viscoelastic model operating on ScGeom and LudingPhys. See [Luding2008] ,[Singh2013]_ for more details.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_MindlinPhys_HertzWithLinearShear
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for the Hertz formulation (using MindlinPhys.kno) and linear beahvior in shear (using MindlinPhys.kso for stiffness and FrictPhys.tangensOfFrictionAngle).
Note
No viscosity or damping. If you need those, look at Law2_ScGeom_MindlinPhys_Mindlin, which also includes non-linear Mindlin shear.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
nonLin
¶ Shear force nonlinearity (the value determines how many features of the non-linearity are taken in account). 1: ks as in HM 2: shearElastic increment computed as in HM 3. granular ratcheting disabled.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_MindlinPhys_Mindlin
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for the Hertz-Mindlin formulation. It includes non linear elasticity in the normal direction as predicted by Hertz for two non-conforming elastic contact bodies. In the shear direction, instead, it reseambles the simplified case without slip discussed in Mindlin’s paper, where a linear relationship between shear force and tangential displacement is provided. Finally, the Mohr-Coulomb criterion is employed to established the maximum friction force which can be developed at the contact. Moreover, it is also possible to include the effect of linear viscous damping through the definition of the parameters \(\beta_{n}\) and \(\beta_{s}\).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
calcEnergy
¶ bool to calculate energy terms (shear potential energy, dissipation of energy due to friction and dissipation of energy due to normal and tangential damping)
-
contactsAdhesive
((Law2_ScGeom_MindlinPhys_Mindlin)arg1) → float :¶ Compute total number of adhesive contacts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
frictionDissipation
¶ Energy dissipation due to sliding
-
property
includeAdhesion
¶ bool to include the adhesion force following the DMT formulation. If true, also the normal elastic energy takes into account the adhesion effect.
-
property
includeMoment
¶ bool to consider rolling resistance (if Ip2_FrictMat_FrictMat_MindlinPhys::eta is 0.0, no plastic condition is applied.)
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
normDampDissip
¶ Energy dissipated by normal damping
-
normElastEnergy
((Law2_ScGeom_MindlinPhys_Mindlin)arg1) → float :¶ Compute normal elastic potential energy. It handles the DMT formulation if Law2_ScGeom_MindlinPhys_Mindlin::includeAdhesion is set to true.
-
property
preventGranularRatcheting
¶ bool to avoid granular ratcheting
-
ratioSlidingContacts
((Law2_ScGeom_MindlinPhys_Mindlin)arg1) → float :¶ Return the ratio between the number of contacts sliding to the total number at a given time.
-
property
shearDampDissip
¶ Energy dissipated by tangential damping
-
property
shearEnergy
¶ Shear elastic potential energy
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_MindlinPhys_MindlinDeresiewitz
(inherits LawFunctor → Functor → Serializable)¶ Hertz-Mindlin contact law with partial slip solution, as described in [Thornton1991].
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_MortarPhys_Lourenco
(inherits LawFunctor → Functor → Serializable)¶ Material law for mortar layer according to [Lourenco1994]. The contact behaves elastic until brittle failure when reaching strength envelope. The envelope has three parts.
Tensile with condition \(\sigma_N-f_t\).
Shear part with Mohr-Coulomb condition \(|\sigma_T|+\sigma_N\tan\varphi-c\).
Compressive part with condition \(\sigma_N^2+A^2\sigma_T^2-f_c^2\)
The main idea is to begin simulation with this model and when the contact is broken, to use standard non-cohesive Law2_PolyhedraGeom_PolyhedraPhys_Volumetric.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_PotentialLubricationPhys
(inherits Law2_ScGeom_ImplicitLubricationPhys → Law2_ScGeom_VirtualLubricationPhys → LawFunctor → Functor → Serializable)¶ Material law for lubrication + potential between two spheres. The potential model include contact. This material law will solve the system with lubrication and the provided potential.
-
property
MaxDist
¶ Maximum distance (d/a) for the interaction
-
property
MaxIter
¶ Maximum iterations for numerical resolution (Dichotomy and Newton-Rafson)
-
property
SolutionTol
¶ Tolerance for numerical resolution (Dichotomy and Newton-Rafson)
-
property
activateRollLubrication
¶ Activate roll lubrication (default: true)
-
property
activateTangencialLubrication
¶ Activate tangencial lubrication (default: true)
-
property
activateTwistLubrication
¶ Activate twist lubrication (default: true)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
static
getStressForEachBody
() → tuple :¶ Get stresses tensors for each bodies: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
static
getTotalStresses
() → tuple :¶ Get total stresses tensors: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
maxSubSteps
¶ max recursion depth of adaptative timestepping in the theta-method, the minimal time interval is thus Omega::dt\(/2^{depth}\). If still not converged the integrator will switch to backward Euler.
-
property
potential
¶ Physical potential force between spheres.
-
property
resolution
¶ Change normal component resolution method, 0: Iterative exact resolution with substepping (theta method, linear contact), 1: Newton-Rafson dimensionless resolution (theta method, linear contact), 2: (default) Dichotomy dimensionless resolution (theta method, linear contact), 3: Exact dimensionless solution with contact prediction (theta method, linear contact). Method 3 is better if the volumic fraction is not too high. Use 2 otherwise.
-
property
theta
¶ parameter of the ‘theta’-method, 1: backward Euler, 0.5: trapezoidal rule, 0: not used, 0.55: suggested optimum)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_VirtualLubricationPhys
(inherits LawFunctor → Functor → Serializable)¶ Virtual class for sheared lubrication functions. This don’t do any computation and shouldn’t be used directly!
-
property
MaxDist
¶ Maximum distance (d/a) for the interaction
-
property
activateRollLubrication
¶ Activate roll lubrication (default: true)
-
property
activateTangencialLubrication
¶ Activate tangencial lubrication (default: true)
-
property
activateTwistLubrication
¶ Activate twist lubrication (default: true)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
static
getStressForEachBody
() → tuple :¶ Get stresses tensors for each bodies: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
static
getTotalStresses
() → tuple :¶ Get total stresses tensors: normal contact stress, shear contact stress, normal lubrication stress, shear lubrication stress, stress from additionnal potential forces.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_ViscElCapPhys_Basic
(inherits LawFunctor → Functor → Serializable)¶ Extended version of Linear viscoelastic model with capillary parameters.
-
property
NLiqBridg
¶ The total number of liquid bridges
-
property
VLiqBridg
¶ The total volume of liquid bridges
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGeom_ViscElPhys_Basic
(inherits LawFunctor → Functor → Serializable)¶ Linear viscoelastic model operating on ScGeom and ViscElPhys. The contact law is visco-elastic in the normal direction, and visco-elastic frictional in the tangential direction. The normal contact is modelled as a spring of equivalent stiffness \(k_n\), placed in parallel with a viscous damper of equivalent viscosity \(c_n\). As for the tangential contact, it is made of a spring-dashpot system (in parallel with equivalent stiffness \(k_s\) and viscosity \(c_s\)) in serie with a slider of friction coefficient \(\mu = \tan \phi\).
The friction coefficient \(\mu = \tan \phi\) is always evaluated as \(\tan(\min(\phi_1,\phi_2))\), where \(\phi_1\) and \(\phi_2\) are respectively the friction angle of particle 1 and 2. For the other parameters, depending on the material input, the equivalent parameters of the contact (\(K_n\),\(C_n\),\(K_s\),\(C_s\),\(\phi\)) are evaluated differently. In the following, the quantities in parenthesis are the material constant which are precised for each particle. They are then associated to particle 1 and 2 (e.g. \(kn_1\),\(kn_2\),\(cn_1\)…), and should not be confused with the equivalent parameters of the contact (\(K_n\),\(C_n\),\(K_s\),\(C_s\),\(\phi\)).
If contact time (tc), normal and tangential restitution coefficient (en,et) are precised, the equivalent parameters are evaluated following the formulation of Pournin [Pournin2001].
If normal and tangential stiffnesses (kn, ks) and damping constant (cn,cs) of each particle are precised, the equivalent stiffnesses and damping constants of each contact made of two particles 1 and 2 is made \(A = 2\frac{a_1 a_2}{a_1 + a_2}\), where A is \(K_n\), \(K_s\), \(C_n\) and \(C_s\), and 1 and 2 refer to the value associated to particle 1 and 2.
Alternatively it is possible to precise the Young modulus (young) and poisson’s ratio (poisson) instead of the normal and spring constant (kn and ks). In this case, the equivalent parameters are evaluated the same way as the previous case with \(kn_x = E_x d_x\), \(ks_x = v_x kn_x\), where \(E_x\), \(v_x\) and \(d_x\) are Young modulus, poisson’s ratio and diameter of particle x.
If Yound modulus (young), poisson’s ratio (poisson), normal and tangential restitution coefficient (en,et) are precised, the equivalent stiffnesses are evaluated as previously: \(K_n = 2\frac{kn_1 kn_2}{kn_1 + kn_2}\), \(kn_x = E_x d_x\), \(K_s = 2(ks_1 ks_2)/(ks_1 + ks_2)\), \(ks_x = v kn_x\). The damping constant is computed at each contact in order to fulfill the normal restitution coefficient \(e_n = (en_1 en_2)/(en_1 + en_2)\). This is achieved resolving numerically equation 21 of [Schwager2007] (There is in fact a mistake in the article from equation 18 to 19, so that there is a change in sign). Be careful in this configuration the tangential restitution coefficient is set to 1 (no tangential damping). This formulation imposes directly the normal restitution coefficient of the collisions instead of the damping constant.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
class
yade.wrapper.
Law2_ScGeom_ViscoFrictPhys_CundallStrack
(inherits Law2_ScGeom_FrictPhys_CundallStrack → LawFunctor → Functor → Serializable)¶ Law similar to Law2_ScGeom_FrictPhys_CundallStrack with the addition of shear creep at contacts.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
property
creepStiffness
¶
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
elasticEnergy
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Compute and return the total elastic energy in all “FrictPhys” contacts
-
initPlasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1, (float)arg2) → None :¶ Initialize cummulated plastic dissipation to a value (0 by default).
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
plasticDissipation
((Law2_ScGeom_FrictPhys_CundallStrack)arg1) → float :¶ Total energy dissipated in plastic slips at all FrictPhys contacts. Computed only if Law2_ScGeom_FrictPhys_CundallStrack::traceEnergy is true.
-
property
shearCreep
¶
-
property
sphericalBodies
¶ If true, compute branch vectors from radii (faster), else use contactPoint-position. Turning this flag true is safe for sphere-sphere contacts and a few other specific cases. It will give wrong values of torques on facets or boxes.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
property
traceEnergy
¶ Define the total energy dissipated in plastic slips at all contacts. This will trace only plastic energy in this law, see O.trackEnergy for a more complete energies tracing
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
viscosity
¶
-
property
-
class
yade.wrapper.
Law2_ScGeom_WirePhys_WirePM
(inherits LawFunctor → Functor → Serializable)¶ Constitutive law for the wire model.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
linkThresholdIteration
¶ Iteration to create the link.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGridCoGeom_CohFrictPhys_CundallStrack
(inherits LawFunctor → Functor → Serializable)¶ Law between a cohesive frictional GridConnection and a cohesive frictional Sphere. Almost the same than Law2_ScGeom6D_CohFrictPhys_CohesionMoment, but THE ROTATIONAL MOMENTS ARE NOT COMPUTED.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_ScGridCoGeom_FrictPhys_CundallStrack
(inherits LawFunctor → Functor → Serializable)¶ Law between a frictional GridConnection and a frictional Sphere. Almost the same than Law2_ScGeom_FrictPhys_CundallStrack, but the force is divided and applied on the two GridNodes only.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
neverErase
¶ Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Law2_TTetraSimpleGeom_NormPhys_Simple
(inherits LawFunctor → Functor → Serializable)¶ EXPERIMENTAL. TODO
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
LawDispatcher¶
-
class
yade.wrapper.
LawDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((LawDispatcher)arg1, (IGeom)arg2, (IPhys)arg3) → LawFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((LawDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Internal forces¶
InternalForceFunctor¶
![digraph InternalForceFunctor {
rankdir=RL;
margin="0.2,0.05";
"InternalForceFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.InternalForceFunctor"];
"If2_2xLin4NodeTetra_LinCohesiveStiffPropDampElastMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.If2_2xLin4NodeTetra_LinCohesiveStiffPropDampElastMat"];
"If2_2xLin4NodeTetra_LinCohesiveStiffPropDampElastMat" -> "InternalForceFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"If2_Lin4NodeTetra_LinIsoRayleighDampElast" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.If2_Lin4NodeTetra_LinIsoRayleighDampElast"];
"If2_Lin4NodeTetra_LinIsoRayleighDampElast" -> "InternalForceFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-a506055a2b97c4536e13af610020acc55854328f.png)
Inheritance graph of InternalForceFunctor.¶
-
class
yade.wrapper.
InternalForceFunctor
(inherits Functor → Serializable)¶ Functor for creating/updating Body::bound.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
If2_2xLin4NodeTetra_LinCohesiveStiffPropDampElastMat
(inherits InternalForceFunctor → Functor → Serializable)¶ Apply internal forces of the tetrahedral element using lumped mass theory
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
If2_Lin4NodeTetra_LinIsoRayleighDampElast
(inherits InternalForceFunctor → Functor → Serializable)¶ Apply internal forces of the tetrahedral element using lumped mass theory
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
InternalForceDispatcher¶
-
class
yade.wrapper.
InternalForceDispatcher
(inherits Dispatcher → Engine → Serializable)¶ Dispatcher calling functors based on received argument type(s).
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dispFunctor
((InternalForceDispatcher)arg1, (Shape)arg2, (Material)arg3) → InternalForceFunctor :¶ Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
-
dispMatrix
((InternalForceDispatcher)arg1[, (bool)names=True]) → dict :¶ Return dictionary with contents of the dispatch matrix.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
functors
¶ Functors associated with this dispatcher.
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
Callbacks¶
![digraph IntrCallback {
rankdir=RL;
margin="0.2,0.05";
"IntrCallback" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IntrCallback"];
"SumIntrForcesCb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SumIntrForcesCb"];
"SumIntrForcesCb" -> "IntrCallback" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-8a4f0345616595e17b13b371bf9c8561ae5d0e0a.png)
Inheritance graph of IntrCallback.¶
-
class
yade.wrapper.
IntrCallback
(inherits Serializable)¶ Abstract callback object which will be called for every (real) Interaction after the interaction has been processed by InteractionLoop.
At the beginning of the interaction loop,
stepInit
is called, initializing the object; it returns eitherNULL
(to deactivate the callback during this time step) or pointer to function, which will then be passed (1) pointer to the callback object itself and (2) pointer to Interaction.Note
(NOT YET DONE) This functionality is accessible from python by passing 4th argument to InteractionLoop constructor, or by appending the callback object to InteractionLoop::callbacks.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
SumIntrForcesCb
(inherits IntrCallback → Serializable)¶ Callback summing magnitudes of forces over all interactions. IPhys of interactions must derive from NormShearPhys (responsability fo the user).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
Preprocessors¶
![digraph FileGenerator {
rankdir=RL;
margin="0.2,0.05";
"FileGenerator" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.FileGenerator"];
"TriaxialTest" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.TriaxialTest"];
"TriaxialTest" -> "FileGenerator" [arrowsize=0.5,style="setlinewidth(0.5)"];
"SimpleShear" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.SimpleShear"];
"SimpleShear" -> "FileGenerator" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-dec4f9eae3b0da6023118f04bd9ba9789a7cd0f3.png)
Inheritance graph of FileGenerator.¶
-
class
yade.wrapper.
FileGenerator
(inherits Serializable)¶ Base class for scene generators, preprocessors.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
generate
((FileGenerator)arg1, (str)out) → None :¶ Generate scene, save to given file
-
load
((FileGenerator)arg1) → None :¶ Generate scene, save to temporary file and load immediately
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
SimpleShear
(inherits FileGenerator → Serializable)¶ Preprocessor for a simple shear box model. The packing initially conforms a gas-like, very loose, state (see utils.makeCloud function), but importing some existing packing from a text file can be also performed after little change in the source code. In its current state, the preprocessor carries out an oedometric compression, until a value of normal stress equal to 2 MPa (and a stable mechanical state). Others Engines such as KinemCNDEngine, KinemCNSEngine and KinemCNLEngine, could be used to apply resp. constant normal displacement, constant normal rigidity and constant normal stress paths using such a simple shear box.
-
property
density
¶ density of the spheres [\(kg/m^3\)]
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
generate
((FileGenerator)arg1, (str)out) → None :¶ Generate scene, save to given file
-
property
gravApplied
¶ depending on this, GravityEngine is added or not to the scene to take into account the weight of particles
-
property
gravity
¶ vector corresponding to used gravity (if gravApplied) [\(m/s^2\)]
-
property
height
¶ initial height (along y-axis) of the shear box [\(m\)]
-
property
length
¶ initial length (along x-axis) of the shear box [\(m\)]
-
load
((FileGenerator)arg1) → None :¶ Generate scene, save to temporary file and load immediately
-
property
matFrictionDeg
¶ value of FrictMat.frictionAngle within the packing and for the two horizontal boundaries (friction is zero along other boundaries) [\(^\circ\)] (the necessary conversion in [\(rad\)] is done automatically)
-
property
matPoissonRatio
¶ value of FrictMat.poisson for the bodies [-]
-
property
matYoungModulus
¶ value of FrictMat.young for the bodies [\(Pa\)]
-
property
thickness
¶ thickness of the boxes constituting the shear box [\(m\)]
-
property
timeStepUpdateInterval
¶ value of TimeStepper::timeStepUpdateInterval for the TimeStepper used here
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
width
¶ initial width (along z-axis) of the shear box [\(m\)]
-
property
-
class
yade.wrapper.
TriaxialTest
(inherits FileGenerator → Serializable)¶ Create a scene for triaxal test.
- Introduction
Yade includes tools to simulate triaxial tests on particles assemblies. This pre-processor (and variants like e.g. CapillaryTriaxialTest) illustrate how to use them. It generates a scene which will - by default - go through the following steps :
generate random loose packings in a parallelepiped.
compress the packing isotropicaly, either squeezing the packing between moving rigid boxes or expanding the particles while boxes are fixed (depending on flag internalCompaction). The confining pressure in this stage is defined via sigmaIsoCompaction.
when the packing is dense and stable, simulate a loading path and get the mechanical response as a result.
The default loading path corresponds to a constant lateral stress (sigmaLateralConfinement) in 2 directions and constant strain rate on the third direction. This default loading path is performed when the flag autoCompressionActivation it
True
, otherwise the simulation stops after isotropic compression.Different loading paths might be performed. In order to define them, the user can modify the flags found in engine TriaxialStressController at any point in the simulation (in c++). If
TriaxialStressController.wall_X_activated
istrue
boundary X is moved automatically to maintain the defined stress level sigmaN (see axis conventions below). Iffalse
the boundary is not controlled by the engine at all. In that case the user is free to prescribe fixed position, constant velocity, or more complex conditions.Note
Axis conventions. Boundaries perpendicular to the x axis are called “left” and “right”, y corresponds to “top” and “bottom”, and axis z to “front” and “back”. In the default loading path, strain rate is assigned along y, and constant stresses are assigned on x and z.
- Essential engines
The TriaxialCompressionEngine is used for controlling the state of the sample and simulating loading paths. TriaxialCompressionEngine inherits from TriaxialStressController, which computes stress- and strain-like quantities in the packing and maintain a constant level of stress at each boundary. TriaxialCompressionEngine has few more members in order to impose constant strain rate and control the transition between isotropic compression and triaxial test. Transitions are defined by changing some flags of the TriaxialStressController, switching from/to imposed strain rate to/from imposed stress.
The class TriaxialStateRecorder is used to write to a file the history of stresses and strains.
TriaxialTest is using GlobalStiffnessTimeStepper to compute an appropriate \(\Dt\) for the numerical scheme.
Note
TriaxialStressController::ComputeUnbalancedForce
returns a value that can be useful for evaluating the stability of the packing. It is defined as (mean force on particles)/(mean contact force), so that it tends to 0 in a stable packing. This parameter is checked by TriaxialCompressionEngine to switch from one stage of the simulation to the next one (e.g. stop isotropic confinment and start axial loading)
Frequently Asked Questions
- How is generated the packing? How to change particles sizes distribution? Why do I have a message “Exceeded 3000 tries to insert non-overlapping sphere?
The initial positioning of spheres is done by generating random (x,y,z) in a box and checking if a sphere of radius R (R also randomly generated with respect to a uniform distribution between mean*(1-std_dev) and mean*(1+std_dev) can be inserted at this location without overlaping with others.
If the sphere overlaps, new (x,y,z)’s are generated until a free position for the new sphere is found. This explains the message you have: after 3000 trial-and-error, the sphere couldn’t be placed, and the algorithm stops.
You get the message above if you try to generate an initialy dense packing, which is not possible with this algorithm. It can only generate clouds. You should keep the default value of porosity (n~0.7), or even increase if it is still to low in some cases. The dense state will be obtained in the second step (compaction, see below).
- How is the compaction done, what are the parameters maxWallVelocity and finalMaxMultiplier?
- Compaction is done
by moving rigid boxes or
by increasing the sizes of the particles (decided using the option internalCompaction ⇒ size increase).
Both algorithm needs numerical parameters to prevent instabilities. For instance, with the method (1) maxWallVelocity is the maximum wall velocity, with method (2) finalMaxMultiplier is the max value of the multiplier applied on sizes at each iteration (always something like 1.00001).
- During the simulation of triaxial compression test, the wall in one direction moves with an increment of strain while the stresses in other two directions are adjusted to sigma_iso. How the stresses in other directions are maintained constant to sigma_iso? What is the mechanism? Where is it implemented in Yade?
The control of stress on a boundary is based on the total stiffness K of all contacts between the packing and this boundary. In short, at each step, displacement=stress_error/K. This algorithm is implemented in TriaxialStressController, and the control itself is in
TriaxialStressController::ControlExternalStress
. The control can be turned off independently for each boundary, using the flagswall_XXX_activated
, with XXX∈{top, bottom, left, right, back, front}. The imposed sress is a unique value (sigma_iso) for all directions if TriaxialStressController.isAxisymetric, or 3 independent values sigma1, sigma2, sigma3.
- Which value of friction angle do you use during the compaction phase of the Triaxial Test?
The friction during the compaction (whether you are using the expansion method or the compression one for the specimen generation) can be anything between 0 and the final value used during the Triaxial phase. Note that higher friction than the final one would result in volumetric collapse at the beginning of the test. The purpose of using a different value of friction during this phase is related to the fact that the final porosity you get at the end of the sample generation essentially depends on it as well as on the assumed Particle Size Distribution. Changing the initial value of friction will get to a different value of the final porosity.
- Which is the aim of the
bool isRadiusControlIteration
? This internal variable (updated automatically) is true each N timesteps (with N=radiusControlInterval). For other timesteps, there is no expansion. Cycling without expanding is just a way to speed up the simulation, based on the idea that 1% increase each 10 iterations needs less operations than 0.1% at each iteration, but will give similar results.
- Which is the aim of the
- How comes the unbalanced force reaches a low value only after many timesteps in the compaction phase?
The value of unbalanced force (dimensionless) is expected to reach low value (i.e. identifying a static-equilibrium condition for the specimen) only at the end of the compaction phase. The code is not aiming at simulating a quasistatic isotropic compaction process, it is only giving a stable packing at the end of it.
-
property
Key
¶ A code that is added to output filenames.
-
property
StabilityCriterion
¶ Value of unbalanced force for which the system is considered stable. Used in conditionals to switch between loading stages.
-
property
WallStressRecordFile
¶
-
property
autoCompressionActivation
¶ Do we just want to generate a stable packing under isotropic pressure (false) or do we want the triaxial loading to start automatically right after compaction stage (true)?
-
property
autoStopSimulation
¶ freeze the simulation when conditions are reached (don’t activate this if you want to be able to run/stop from Qt GUI)
-
property
autoUnload
¶ auto adjust the isotropic stress state from TriaxialTest::sigmaIsoCompaction to TriaxialTest::sigmaLateralConfinement if they have different values. See docs for TriaxialCompressionEngine::autoUnload
-
property
biaxial2dTest
¶ FIXME : what is that?
-
property
boxFrictionDeg
¶ Friction angle [°] of boundaries contacts.
-
property
boxKsDivKn
¶ Ratio of shear vs. normal contact stiffness for boxes.
-
property
boxYoungModulus
¶ Stiffness of boxes.
-
property
compactionFrictionDeg
¶ Friction angle [°] of spheres during compaction (different values result in different porosities)]. This value is overridden by TriaxialTest::sphereFrictionDeg before triaxial testing.
-
property
dampingForce
¶ Coefficient of Cundal-Non-Viscous damping (applied on on the 3 components of forces)
-
property
dampingMomentum
¶ Coefficient of Cundal-Non-Viscous damping (applied on on the 3 components of torques)
-
property
defaultDt
¶ Max time-step. Used as initial value if defined. Latter adjusted by the time stepper.
-
property
density
¶ density of spheres
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
facetWalls
¶ Use facets for boundaries (not tested)
-
property
finalMaxMultiplier
¶ max multiplier of diameters during internal compaction (secondary precise adjustment)
-
property
fixedBoxDims
¶ string that contains some subset (max. 2) of {‘x’,’y’,’z’} ; contains axes will have box dimension hardcoded, even if box is scaled as mean_radius is prescribed: scaling will be applied on the rest.
-
generate
((FileGenerator)arg1, (str)out) → None :¶ Generate scene, save to given file
-
property
importFilename
¶ File with positions and sizes of spheres.
-
property
internalCompaction
¶ flag for choosing between moving boundaries or increasing particles sizes during the compaction stage.
-
load
((FileGenerator)arg1) → None :¶ Generate scene, save to temporary file and load immediately
-
property
lowerCorner
¶ Lower corner of the box.
-
property
maxMultiplier
¶ max multiplier of diameters during internal compaction (initial fast increase)
-
property
maxWallVelocity
¶ max velocity of boundaries. Usually useless, but can help stabilizing the system in some cases.
-
property
noFiles
¶ Do not create any files during run (.xml, .spheres, wall stress records)
-
property
numberOfGrains
¶ Number of generated spheres.
-
property
radiusControlInterval
¶ interval between size changes when growing spheres.
-
property
radiusMean
¶ Mean radius. If negative (default), autocomputed to as a function of box size and TriaxialTest::numberOfGrains
-
property
radiusStdDev
¶ Normalized standard deviation of generated sizes.
-
property
recordIntervalIter
¶ interval between file outputs
-
property
seed
¶ Seed used for the call to makeCloud
-
property
sigmaIsoCompaction
¶ Confining stress during isotropic compaction (< 0 for real - compressive - compaction).
-
property
sigmaLateralConfinement
¶ Lateral stress during triaxial loading (< 0 for classical compressive cases). An isotropic unloading is performed if the value is not equal to TriaxialTest::sigmaIsoCompaction.
-
property
sphereFrictionDeg
¶ Friction angle [°] of spheres assigned just before triaxial testing.
-
property
sphereKsDivKn
¶ Ratio of shear vs. normal contact stiffness for spheres.
-
property
sphereYoungModulus
¶ Stiffness of spheres.
-
property
strainRate
¶ Strain rate in triaxial loading.
-
property
thickness
¶ thickness of boundaries. It is arbitrary and should have no effect
-
property
timeStepUpdateInterval
¶ interval for GlobalStiffnessTimeStepper
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
upperCorner
¶ Upper corner of the box.
-
property
wallOversizeFactor
¶ Make boundaries larger than the packing to make sure spheres don’t go out during deformation.
-
property
wallStiffnessUpdateInterval
¶ interval for updating the stiffness of sample/boundaries contacts
-
property
wallWalls
¶ Use walls for boundaries (not tested)
Rendering¶
OpenGLRenderer¶
-
class
yade.wrapper.
OpenGLRenderer
(inherits Serializable)¶ Class responsible for rendering scene on OpenGL devices.
-
property
bgColor
¶ Color of the background canvas (RGB)
-
property
cellColor
¶ Color of the periodic cell (RGB).
-
property
clipPlaneActive
¶ Activate/deactivate respective clipping planes
-
property
clipPlaneSe3
¶ Position and orientation of clipping planes
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
dispScale
¶ Artificially enlarge (scale) dispalcements from bodies’ reference positions by this relative amount, so that they become better visible (independently in 3 dimensions). Disbled if (1,1,1).
-
property
dof
¶ Show which degrees of freedom are blocked for each body
-
property
extraDrawers
¶ Additional rendering components (GlExtraDrawer).
-
property
ghosts
¶ Render objects crossing periodic cell edges by cloning them in multiple places (periodic simulations only).
-
hideBody
((OpenGLRenderer)arg1, (int)id) → None :¶ Hide body from id (see OpenGLRenderer::showBody)
-
property
id
¶ Show body id’s
-
property
intrAllWire
¶ Draw wire for all interactions, blue for potential and green for real ones (mostly for debugging)
-
property
intrGeom
¶ Render Interaction::geom objects.
-
property
intrPhys
¶ Render Interaction::phys objects
-
property
intrWire
¶ If rendering interactions, use only wires to represent them.
-
property
light1
¶ Turn light 1 on.
-
property
light2
¶ Turn light 2 on.
-
property
light2Color
¶ Per-color intensity of secondary light (RGB).
-
property
light2Pos
¶ Position of secondary OpenGL light source in the scene.
-
property
lightColor
¶ Per-color intensity of primary light (RGB).
-
property
lightPos
¶ Position of OpenGL light source in the scene.
-
property
mask
¶ Bitmask for showing only bodies where ((mask & Body::mask)!=0)
-
render
((OpenGLRenderer)arg1) → None :¶ Render the scene in the current OpenGL context.
-
property
rotScale
¶ Artificially enlarge (scale) rotations of bodies relative to their reference orientation, so the they are better visible.
-
property
selId
¶ Id of particle that was selected by the user.
-
setRefSe3
((OpenGLRenderer)arg1) → None :¶ Make current positions and orientation reference for scaleDisplacements and scaleRotations.
-
showBody
((OpenGLRenderer)arg1, (int)id) → None :¶ Make body visible (see OpenGLRenderer::hideBody)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
wire
¶ Render all bodies with wire only (faster)
-
property
GlShapeFunctor¶
![digraph GlShapeFunctor {
rankdir=RL;
margin="0.2,0.05";
"GlShapeFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlShapeFunctor"];
"Gl1_Node" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Node"];
"Gl1_Node" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_DeformableElement" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_DeformableElement"];
"Gl1_DeformableElement" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Tetra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Tetra"];
"Gl1_Tetra" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_PFacet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_PFacet"];
"Gl1_PFacet" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Box" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Box"];
"Gl1_Box" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Facet" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Facet"];
"Gl1_Facet" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Polyhedra" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Polyhedra"];
"Gl1_Polyhedra" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Sphere" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Sphere"];
"Gl1_Sphere" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Cylinder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Cylinder"];
"Gl1_Cylinder" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_GridConnection" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_GridConnection"];
"Gl1_GridConnection" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_Wall" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Wall"];
"Gl1_Wall" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_ChainedCylinder" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_ChainedCylinder"];
"Gl1_ChainedCylinder" -> "Gl1_Cylinder" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_PotentialParticle" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_PotentialParticle"];
"Gl1_PotentialParticle" -> "GlShapeFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-8304d42f3422316648b8a3c6f5dbde0c5c7e8a03.png)
Inheritance graph of GlShapeFunctor.¶
-
class
yade.wrapper.
GlShapeFunctor
(inherits Functor → Serializable)¶ Abstract functor for rendering Shape objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_Box
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Box object
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_ChainedCylinder
(inherits Gl1_Cylinder → GlShapeFunctor → Functor → Serializable)¶ Renders ChainedCylinder object including a shift for compensating flexion.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
glutNormalize
= True¶
-
glutSlices
= 8¶
-
glutStacks
= 4¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
property
-
class
yade.wrapper.
Gl1_Cylinder
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Cylinder object
-
wire
(=false) [static]¶ Only show wireframe (controlled by
glutSlices
andglutStacks
.
-
glutNormalize
(=true) [static]¶ Fix normals for non-wire rendering
-
glutSlices
(=8) [static]¶ Number of sphere slices.
-
glutStacks
(=4) [static]¶ Number of sphere stacks.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
glutNormalize
= True¶
-
glutSlices
= 8¶
-
glutStacks
= 4¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_DeformableElement
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Node object
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_Facet
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Facet object
-
normals
(=false) [static]¶ In wire mode, render normals of facets and edges; facet’s colors are disregarded in that case.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
normals
= False¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
Gl1_GridConnection
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Cylinder object
-
wire
(=false) [static]¶ Only show wireframe (controlled by
glutSlices
andglutStacks
.
-
glutNormalize
(=true) [static]¶ Fix normals for non-wire rendering
-
glutSlices
(=8) [static]¶ Number of cylinder slices.
-
glutStacks
(=4) [static]¶ Number of cylinder stacks.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
glutNormalize
= True¶
-
glutSlices
= 8¶
-
glutStacks
= 4¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_Node
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Node object
-
quality
(=1.0) [static]¶ Change discretization level of spheres. quality>1 for better image quality, at the price of more cpu/gpu usage, 0<quality<1 for faster rendering. If mono-color spheres are displayed (Gl1_Node::stripes = False), quality mutiplies Gl1_Node::glutSlices and Gl1_Node::glutStacks. If striped spheres are displayed (Gl1_Node::stripes = True), only integer increments are meaningfull : quality=1 and quality=1.9 will give the same result, quality=2 will give finer result.
-
wire
(=false) [static]¶ Only show wireframe (controlled by
glutSlices
andglutStacks
.
-
stripes
(=false) [static]¶ In non-wire rendering, show stripes clearly showing particle rotation.
-
localSpecView
(=true) [static]¶ Compute specular light in local eye coordinate system.
-
glutSlices
(=12) [static]¶ Base number of sphere slices, multiplied by Gl1_Node::quality before use); not used with
stripes
(see glut{Solid,Wire}Sphere reference)
-
glutStacks
(=6) [static]¶ Base number of sphere stacks, multiplied by Gl1_Node::quality before use; not used with
stripes
(see glut{Solid,Wire}Sphere reference)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
glutSlices
= 12¶
-
glutStacks
= 6¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
localSpecView
= True¶
-
quality
= 1.0¶
-
stripes
= False¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_PFacet
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Facet object
-
wire
(=false) [static]¶ Only show wireframe (controlled by
glutSlices
andglutStacks
.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_Polyhedra
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Polyhedra object
-
wire
(=false) [static]¶ Only show wireframe
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_PotentialParticle
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders PotentialParticle object
-
sizeX
(=20) [static]¶ Number of divisions in the X direction for triangulation
-
sizeY
(=20) [static]¶ Number of divisions in the Y direction for triangulation
-
sizeZ
(=20) [static]¶ Number of divisions in the Z direction for triangulation
-
store
(=true) [static]¶ Whether to store computed triangulation or not
-
initialized
(=false) [static]¶ Whether the triangulation is initialized
-
aabbEnlargeFactor
(=1.3) [static]¶ Enlargement factor of the Marching Cubes drawing grid, used for displaying purposes. Try different value if the particles are not displayed properly
-
wire
(=false) [static]¶ Only show wireframe
-
aabbEnlargeFactor
= 1.3¶
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
initialized
= False¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
sizeX
= 20¶
-
sizeY
= 20¶
-
sizeZ
= 20¶
-
store
= True¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_Sphere
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Sphere object
-
quality
(=1.0) [static]¶ Change discretization level of spheres. quality>1 for better image quality, at the price of more cpu/gpu usage, 0<quality<1 for faster rendering. If mono-color spheres are displayed (Gl1_Sphere::stripes = False), quality mutiplies Gl1_Sphere::glutSlices and Gl1_Sphere::glutStacks. If striped spheres are displayed (Gl1_Sphere::stripes = True), only integer increments are meaningfull : quality=1 and quality=1.9 will give the same result, quality=2 will give finer result.
-
wire
(=false) [static]¶ Only show wireframe (controlled by
glutSlices
andglutStacks
.
-
stripes
(=false) [static]¶ In non-wire rendering, show stripes clearly showing particle rotation.
-
localSpecView
(=true) [static]¶ Compute specular light in local eye coordinate system.
-
glutSlices
(=12) [static]¶ Base number of sphere slices, multiplied by Gl1_Sphere::quality before use); not used with
stripes
(see glut{Solid,Wire}Sphere reference)
-
glutStacks
(=6) [static]¶ Base number of sphere stacks, multiplied by Gl1_Sphere::quality before use; not used with
stripes
(see glut{Solid,Wire}Sphere reference)
-
circleView
(=false) [static]¶ For 2D simulations : display tori instead of spheres, so they will appear like circles if the viewer is looking in the right direction. In this case, remember to disable perspective by pressing “t”-key in the viewer.
-
circleRelThickness
(=0.2) [static]¶ If Gl1_Sphere::circleView is enabled, this is the torus diameter relative to the sphere radius (i.e. the circle relative thickness).
-
circleAllowedRotationAxis
(='z') [static]¶ If Gl1_Sphere::circleView is enabled, this is the only axis (‘x’, ‘y’ or ‘z’) along which rotation is allowed for the 2D simulation. It allows right orientation of the tori to appear like circles in the viewer. For example, if circleAllowedRotationAxis=’x’ is set, blockedDOFs=”YZ” should also be set for all your particles.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
circleAllowedRotationAxis
= 'z'¶
-
circleRelThickness
= 0.2¶
-
circleView
= False¶
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
glutSlices
= 12¶
-
glutStacks
= 6¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
localSpecView
= True¶
-
quality
= 1.0¶
-
stripes
= False¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= False¶
-
-
class
yade.wrapper.
Gl1_Tetra
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Tetra object
-
wire
(=true) [static]¶ TODO
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
wire
= True¶
-
-
class
yade.wrapper.
Gl1_Wall
(inherits GlShapeFunctor → Functor → Serializable)¶ Renders Wall object
-
div
(=20) [static]¶ Number of divisions of the wall inside visible scene part.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
div
= 20¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
GlStateFunctor¶
-
class
yade.wrapper.
GlStateFunctor
(inherits Functor → Serializable)¶ Abstract functor for rendering State objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
GlBoundFunctor¶
![digraph GlBoundFunctor {
rankdir=RL;
margin="0.2,0.05";
"GlBoundFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlBoundFunctor"];
"Gl1_Aabb" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_Aabb"];
"Gl1_Aabb" -> "GlBoundFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-026e1bdf412147766472ddfdaf48b32402babcac.png)
Inheritance graph of GlBoundFunctor.¶
-
class
yade.wrapper.
GlBoundFunctor
(inherits Functor → Serializable)¶ Abstract functor for rendering Bound objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_Aabb
(inherits GlBoundFunctor → Functor → Serializable)¶ Render Axis-aligned bounding box (Aabb).
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
GlIGeomFunctor¶
![digraph GlIGeomFunctor {
rankdir=RL;
margin="0.2,0.05";
"GlIGeomFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlIGeomFunctor"];
"Gl1_L6Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_L6Geom"];
"Gl1_L6Geom" -> "Gl1_L3Geom" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_PolyhedraGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_PolyhedraGeom"];
"Gl1_PolyhedraGeom" -> "GlIGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_L3Geom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_L3Geom"];
"Gl1_L3Geom" -> "GlIGeomFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-528d0ea24bc501d62066f638ed3d742351e64e02.png)
Inheritance graph of GlIGeomFunctor.¶
-
class
yade.wrapper.
GlIGeomFunctor
(inherits Functor → Serializable)¶ Abstract functor for rendering IGeom objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_L3Geom
(inherits GlIGeomFunctor → Functor → Serializable)¶ Render L3Geom geometry.
-
axesLabels
(=false) [static]¶ Whether to display labels for local axes (x,y,z)
-
axesScale
(=1.) [static]¶ Scale local axes, their reference length being half of the minimum radius.
-
axesWd
(=1.) [static]¶ Width of axes lines, in pixels; not drawn if non-positive
-
uPhiWd
(=2.) [static]¶ Width of lines for drawing displacements (and rotations for L6Geom); not drawn if non-positive.
-
uScale
(=1.) [static]¶ Scale local displacements (u - u0); 1 means the true scale, 0 disables drawing local displacements; negative values are permissible.
-
axesLabels
= False¶
-
axesScale
= 1.0¶
-
axesWd
= 1.0¶
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
uPhiWd
= 2.0¶
-
uScale
= 1.0¶
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
Gl1_L6Geom
(inherits Gl1_L3Geom → GlIGeomFunctor → Functor → Serializable)¶ Render L6Geom geometry.
-
phiScale
(=1.) [static]¶ Scale local rotations (phi - phi0). The default scale is to draw \(\pi\) rotation with length equal to minimum radius.
-
axesLabels
= False¶
-
axesScale
= 1.0¶
-
axesWd
= 1.0¶
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
phiScale
= 1.0¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
uPhiWd
= 2.0¶
-
uScale
= 1.0¶
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
Gl1_PolyhedraGeom
(inherits GlIGeomFunctor → Functor → Serializable)¶ Render PolyhedraGeom geometry.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
GlIPhysFunctor¶
![digraph GlIPhysFunctor {
rankdir=RL;
margin="0.2,0.05";
"GlIPhysFunctor" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlIPhysFunctor"];
"Gl1_PolyhedraPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_PolyhedraPhys"];
"Gl1_PolyhedraPhys" -> "GlIPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_CpmPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_CpmPhys"];
"Gl1_CpmPhys" -> "GlIPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
"Gl1_NormPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Gl1_NormPhys"];
"Gl1_NormPhys" -> "GlIPhysFunctor" [arrowsize=0.5,style="setlinewidth(0.5)"];
}](_images/graphviz-71e2fb507eabce1ed624c41ed222fa29fd11e2cc.png)
Inheritance graph of GlIPhysFunctor.¶
-
class
yade.wrapper.
GlIPhysFunctor
(inherits Functor → Serializable)¶ Abstract functor for rendering IPhys objects.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
Gl1_CpmPhys
(inherits GlIPhysFunctor → Functor → Serializable)¶ Render CpmPhys objects of interactions.
-
contactLine
(=true) [static]¶ Show contact line
-
dmgLabel
(=true) [static]¶ Numerically show contact damage parameter
-
dmgPlane
(=false) [static]¶ [what is this?]
-
epsT
(=false) [static]¶ Show shear strain
-
epsTAxes
(=false) [static]¶ Show axes of shear plane
-
normal
(=false) [static]¶ Show contact normal
-
colorStrainRatio
(=-1) [static]¶ If positive, set the interaction (wire) color based on \(\eps_N\) normalized by \(\eps_0\) x colorStrainRatio (\(\eps_0\) = CpmPhys.epsCrackOnset ). Otherwise, color based on the residual strength.
-
epsNLabel
(=false) [static]¶ Numerically show normal strain
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
colorStrainRatio
= -1.0¶
-
contactLine
= True¶
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
dmgLabel
= True¶
-
dmgPlane
= False¶
-
epsNLabel
= False¶
-
epsT
= False¶
-
epsTAxes
= False¶
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
normal
= False¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
Gl1_NormPhys
(inherits GlIPhysFunctor → Functor → Serializable)¶ Renders NormPhys objects as cylinders of which diameter and color depends on NormPhys.normalForce magnitude.
-
maxFn
(=0) [static]¶ Value of NormPhys.normalForce corresponding to maxRadius. This value will be increased (but not decreased ) automatically.
-
signFilter
(=0) [static]¶ If non-zero, only display contacts with negative (-1) or positive (+1) normal forces; if zero, all contacts will be displayed.
-
refRadius
(=std::numeric_limits<Real>::infinity()) [static]¶ Reference (minimum) particle radius; used only if maxRadius is negative. This value will be decreased (but not increased ) automatically. (auto-updated)
-
maxRadius
(=-1) [static]¶ Cylinder radius corresponding to the maximum normal force. If negative, auto-updated refRadius will be used instead.
-
slices
(=6) [static]¶ Number of sphere slices; (see glutCylinder reference)
-
stacks
(=1) [static]¶ Number of sphere stacks; (see glutCylinder reference)
-
maxWeakFn
(=NaN) [static]¶ Value that divides contacts by their normal force into the ‘weak fabric’ and ‘strong fabric’. This value is set as side-effect by utils.fabricTensor.
-
weakFilter
(=0) [static]¶ If non-zero, only display contacts belonging to the ‘weak’ (-1) or ‘strong’ (+1) fabric.
-
weakScale
(=1.) [static]¶ If maxWeakFn is set, scale radius of the weak fabric by this amount (usually smaller than 1). If zero, 1 pixel line is displayed. Colors are not affected by this value.
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
maxFn
= 0.0¶
-
maxRadius
= -1.0¶
-
maxWeakFn
= nan¶
-
refRadius
= inf¶
-
signFilter
= 0¶
-
slices
= 6¶
-
stacks
= 1¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
weakFilter
= 0¶
-
weakScale
= 1.0¶
-
-
class
yade.wrapper.
Gl1_PolyhedraPhys
(inherits GlIPhysFunctor → Functor → Serializable)¶ Renders PolyhedraPhys objects as cylinders of which diameter and color depends on PolyhedraPhys::normForce magnitude.
-
maxFn
(=0) [static]¶ Value of NormPhys.normalForce corresponding to maxDiameter. This value will be increased (but not decreased ) automatically.
-
refRadius
(=std::numeric_limits<Real>::infinity()) [static]¶ Reference (minimum) particle radius
-
signFilter
(=0) [static]¶ If non-zero, only display contacts with negative (-1) or positive (+1) normal forces; if zero, all contacts will be displayed.
-
maxRadius
(=-1) [static]¶ Cylinder radius corresponding to the maximum normal force.
-
slices
(=6) [static]¶ Number of sphere slices; (see glutCylinder reference)
-
stacks
(=1) [static]¶ Number of sphere stacks; (see glutCylinder reference)
-
property
bases
¶ Ordered list of types (as strings) this functor accepts.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
label
¶ Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
-
maxFn
= 0.0¶
-
maxRadius
= -1.0¶
-
refRadius
= inf¶
-
signFilter
= 0¶
-
slices
= 6¶
-
stacks
= 1¶
-
property
timingDeltas
¶ Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
Simulation data¶
Omega¶
-
class
yade.wrapper.
Omega
¶ -
addScene
((Omega)arg1) → int :¶ Add new scene to Omega, returns its number
-
property
bodies
¶ Bodies in the current simulation (container supporting index access by id and iteration)
-
bufferFromIntrsct
((Omega)arg1, (Subdomain)subdomain, (int)rank, (int)size, (bool)mirror) → object :¶ returns a (char*) pointer to the underying buffer of intersections[rank], so that it can be overwritten. Size must be passed in advance. Pointer to mirrorIntersections[rank] is returned if mirror=True. Python syntax: bufferFromIntrsct(…)[:]=bytes(something)
-
property
cell
¶ Periodic cell of the current scene (None if the scene is aperiodic).
-
childClassesNonrecursive
((Omega)arg1, (str)arg2) → list :¶ Return list of all classes deriving from given class, as registered in the class factory
-
disableGdb
((Omega)arg1) → None :¶ Revert SEGV and ABRT handlers to system defaults.
-
property
dt
¶ Current timestep (Δt) value.
-
property
dynDt
¶ Whether a TimeStepper is used for dynamic Δt control. See dt on how to enable/disable TimeStepper.
-
property
dynDtAvailable
¶ Whether a TimeStepper is amongst O.engines, activated or not.
-
property
energy
¶ EnergyTracker of the current simulation. (meaningful only with O.trackEnergy)
-
property
engines
¶ List of engines in the simulation (corresponds to Scene::engines in C++ source code).
-
exitNoBacktrace
((Omega)arg1[, (int)status=0]) → None :¶ Disable SEGV handler and exit, optionally with given status number.
-
property
filename
¶ Filename under which the current simulation was saved (None if never saved).
-
property
forceSyncCount
¶ Counter for number of syncs in ForceContainer, for profiling purposes.
-
property
forces
¶ ForceContainer (forces, torques, displacements) in the current simulation.
-
property
interactions
¶ Access to interactions of simulation, by using
id’s of both Bodies of the interactions, e.g.
O.interactions[23,65]
iteraction over the whole container:
for i in O.interactions: print i.id1,i.id2
Note
Iteration silently skips interactions that are not real.
-
intrsctToBytes
((Omega)arg1, (Subdomain)subdomain, (int)rank, (bool)mirror) → object :¶ returns a copy of intersections[rank] (a vector<int>) from a subdomain in the form of bytes. Returns a copy mirrorIntersections[rank] if mirror=True.
-
isChildClassOf
((Omega)arg1, (str)arg2, (str)arg3) → bool :¶ Tells whether the first class derives from the second one (both given as strings).
-
property
iter
¶ Get current step number
-
labeledEngine
((Omega)arg1, (str)arg2) → object :¶ Return instance of engine/functor with the given label. This function shouldn’t be called by the user directly; every ehange in O.engines will assign respective global python variables according to labels.
For example:
O.engines=[InsertionSortCollider(label=’collider’)]
collider.nBins=5 # collider has become a variable after assignment to O.engines automatically
-
load
((Omega)arg1, (str)file[, (bool)quiet=False]) → None :¶ Load simulation from file. The file should be saved in the same version of Yade, otherwise compatibility is not guaranteed.
-
loadTmp
((Omega)arg1[, (str)mark=''[, (bool)quiet=False]]) → None :¶ Load simulation previously stored in memory by saveTmp. mark optionally distinguishes multiple saved simulations
-
lsTmp
((Omega)arg1) → list :¶ Return list of all memory-saved simulations.
-
property
materials
¶ Shared materials; they can be accessed by id or by label
-
property
miscParams
¶ MiscParams in the simulation (Scene::mistParams), usually used to save serializables that don’t fit anywhere else, like GL functors
-
property
numThreads
¶ Get maximum number of threads openMP can use.
-
pause
((Omega)arg1) → None :¶ Stop simulation execution. (May be called from within the loop, and it will stop after the current step).
-
property
periodic
¶ Get/set whether the scene is periodic or not (True/False).
-
plugins
((Omega)arg1) → list :¶ Return list of all plugins registered in the class factory.
-
property
realtime
¶ Return clock (human world) time the simulation has been running.
-
reload
((Omega)arg1[, (bool)quiet=False]) → None :¶ Reload current simulation
-
reset
((Omega)arg1) → None :¶ Reset simulations completely (including another scenes!).
-
resetAllScenes
((Omega)arg1) → None :¶ Reset all scenes.
-
resetCurrentScene
((Omega)arg1) → None :¶ Reset current scene.
-
resetThisScene
((Omega)arg1) → None :¶ Reset current scene.
-
resetTime
((Omega)arg1) → None :¶ Reset simulation time: step number, virtual and real time. (Doesn’t touch anything else, including timings).
-
run
((Omega)arg1[, (int)nSteps=-1[, (bool)wait=False]]) → None :¶ Run the simulation. nSteps how many steps to run, then stop (if positive); wait will cause not returning to python until simulation will have stopped.
-
runEngine
((Omega)arg1, (Engine)arg2) → None :¶ Run given engine exactly once; simulation time, step number etc. will not be incremented (use only if you know what you do).
-
property
running
¶ Whether background thread is currently running a simulation.
-
save
((Omega)arg1, (str)file[, (bool)quiet=False]) → None :¶ Save current simulation to file (should be .xml or .xml.bz2 or .yade or .yade.gz). .xml files are bigger than .yade, but can be more or less easily (due to their size) opened and edited, e.g. with text editors. .bz2 and .gz correspond both to compressed versions. All saved files should be loaded in the same version of Yade, otherwise compatibility is not guaranteed.
-
saveTmp
((Omega)arg1[, (str)mark=''[, (bool)quiet=False]]) → None :¶ Save simulation to memory (disappears at shutdown), can be loaded later with loadTmp. mark optionally distinguishes different memory-saved simulations.
-
sceneToString
((Omega)arg1) → object :¶ Return the entire scene as a string. Equivalent to using O.save(…) except that the scene goes to a string instead of a file. (see also stringToScene())
-
property
speed
¶ Return current calculation speed [iter/sec].
-
step
((Omega)arg1) → None :¶ Advance the simulation by one step. Returns after the step will have finished.
-
property
stopAtIter
¶ Get/set number of iteration after which the simulation will stop.
-
property
stopAtTime
¶ Get/set time after which the simulation will stop.
-
stringToScene
((Omega)arg1, (str)arg2[, (str)mark='']) → None :¶ Load simulation from a string passed as argument (see also sceneToString).
-
property
subStep
¶ Get the current subStep number (only meaningful if O.subStepping==True); -1 when outside the loop, otherwise either 0 (O.subStepping==False) or number of engine to be run (O.subStepping==True)
-
property
subStepping
¶ Get/set whether subStepping is active.
-
switchScene
((Omega)arg1) → None :¶ Switch to alternative simulation (while keeping the old one). Calling the function again switches back to the first one. Note that most variables from the first simulation will still refer to the first simulation even after the switch (e.g. b=O.bodies[4]; O.switchScene(); [b still refers to the body in the first simulation here])
-
switchToScene
((Omega)arg1, (int)arg2) → None :¶ Switch to defined scene. Default scene has number 0, other scenes have to be created by addScene method.
Tags (string=string dictionary) of the current simulation (container supporting string-index access/assignment)
-
property
thisScene
¶ Return current scene’s id.
-
property
time
¶ Return virtual (model world) time of the simulation.
-
property
timingEnabled
¶ Globally enable/disable timing services (see documentation of the timing module).
-
tmpFilename
((Omega)arg1) → str :¶ Return unique name of file in temporary directory which will be deleted when yade exits.
-
tmpToFile
((Omega)arg1, (str)fileName[, (str)mark='']) → None :¶ Save XML of saveTmp’d simulation into fileName.
-
property
trackEnergy
¶ When energy tracking is enabled or disabled in this simulation.
-
wait
((Omega)arg1) → None :¶ Don’t return until the simulation will have been paused. (Returns immediately if not running).
-
BodyContainer¶
-
class
yade.wrapper.
BodyContainer
¶ -
__init__
((object)arg1, (BodyContainer)arg2) → None¶
-
addToClump
((BodyContainer)arg1, (object)arg2, (int)arg3[, (int)discretization=0]) → None :¶ Add body b (or a list of bodies) to an existing clump c. c must be clump and b may not be a clump member of c. Clump masses and inertia are adapted automatically (for details see clump()).
See examples/clumps/addToClump-example.py for an example script.
Note
If b is a clump itself, then all members will be added to c and b will be deleted. If b is a clump member of clump d, then all members from d will be added to c and d will be deleted. If you need to add just clump member b, release this member from d first.
-
append
((BodyContainer)arg1, (Body)arg2) → int :¶ Append one Body instance, return its id.
- append( (BodyContainer)arg1, (object)arg2) -> object :
Append list of Body instance, return list of ids
-
appendClumped
((BodyContainer)arg1, (object)arg2[, (int)discretization=0]) → tuple :¶ Append given list of bodies as a clump (rigid aggregate); returns a tuple of
(clumpId,[memberId1,memberId2,...])
. Clump masses and inertia are adapted automatically (for details see clump()).
-
clear
((BodyContainer)arg1) → None :¶ Remove all bodies (interactions not checked)
-
clump
((BodyContainer)arg1, (object)arg2[, (int)discretization=0]) → int :¶ Clump given bodies together (creating a rigid aggregate); returns
clumpId
. Clump masses and inertia are adapted automatically when discretization>0. If clump members are overlapping this is done by integration/summation over mass points using a regular grid of cells (grid cells length is defined as \(R_{min}/discretization\), where \(R_{min}\) is minimum clump member radius). For non-overlapping members inertia of the clump is the sum of inertias from members. If discretization<=0 sum of inertias from members is used (faster, but inaccurate).
-
deleteClumpBody
((BodyContainer)arg1, (Body)arg2) → None :¶ Erase clump member.
-
deleteClumpMember
((BodyContainer)arg1, (Body)arg2, (Body)arg3) → None :¶ Erase clump member.
-
property
enableRedirection
¶ let collider switch to optimized algorithm with body redirection when bodies are erased - true by default
-
erase
((BodyContainer)arg1, (int)arg2[, (bool)eraseClumpMembers=0]) → bool :¶ Erase body with the given id; all interaction will be deleted by InteractionLoop in the next step. If a clump is erased use O.bodies.erase(clumpId,True) to erase the clump AND its members.
-
getRoundness
((BodyContainer)arg1[, (list)excludeList=[]]) → float :¶ Returns roundness coefficient RC = R2/R1. R1 is the equivalent sphere radius of a clump. R2 is the minimum radius of a sphere, that imbeds the clump. If just spheres are present RC = 1. If clumps are present 0 < RC < 1. Bodies can be excluded from the calculation by giving a list of ids: O.bodies.getRoundness([ids]).
See examples/clumps/replaceByClumps-example.py for an example script.
-
insertAtId
((BodyContainer)arg1, (Body)arg2, (int)insertatid) → int :¶ Insert a body at theid, (no body should exist in this id)
-
releaseFromClump
((BodyContainer)arg1, (int)arg2, (int)arg3[, (int)discretization=0]) → None :¶ Release body b from clump c. b must be a clump member of c. Clump masses and inertia are adapted automatically (for details see clump()).
See examples/clumps/releaseFromClump-example.py for an example script.
Note
If c contains only 2 members b will not be released and a warning will appear. In this case clump c should be erased.
-
replace
((BodyContainer)arg1, (object)arg2) → object¶
-
replaceByClumps
((BodyContainer)arg1, (list)arg2, (object)arg3[, (int)discretization=0]) → list :¶ Replace spheres by clumps using a list of clump templates and a list of amounts; returns a list of tuples:
[(clumpId1,[memberId1,memberId2,...]),(clumpId2,[memberId1,memberId2,...]),...]
. A new clump will have the same volume as the sphere, that was replaced. Clump masses and inertia are adapted automatically (for details see clump()).O.bodies.replaceByClumps( [utils.clumpTemplate([1,1],[.5,.5])] , [.9] ) #will replace 90 % of all standalone spheres by ‘dyads’
See examples/clumps/replaceByClumps-example.py for an example script.
-
subdomainBodies
((BodyContainer)arg1) → object :¶ id’s of bodies with bounds in MPI subdomain
-
updateClumpProperties
((BodyContainer)arg1[, (list)excludeList=[][, (int)discretization=5]]) → None :¶ Manually force Yade to update clump properties mass, volume and inertia (for details of ‘discretization’ value see clump()). Can be used, when clumps are modified or erased during a simulation. Clumps can be excluded from the calculation by giving a list of ids: O.bodies.updateProperties([ids]).
-
InteractionContainer¶
-
class
yade.wrapper.
InteractionContainer
¶ Access to interactions of simulation, by using
id’s of both Bodies of the interactions, e.g.
O.interactions[23,65]
iteraction over the whole container:
for i in O.interactions: print i.id1,i.id2
Note
Iteration silently skips interactions that are not real.
-
__init__
((object)arg1, (InteractionContainer)arg2) → None¶
-
all
((InteractionContainer)arg1[, (bool)onlyReal=False]) → list :¶ Return list of all interactions. Virtual interaction are filtered out if onlyReal=True, else (default) it dumps the full content.
-
clear
((InteractionContainer)arg1) → None :¶ Remove all interactions, and invalidate persistent collider data (if the collider supports it).
-
countReal
((InteractionContainer)arg1) → int :¶ Return number of interactions that are “real”, i.e. they have phys and geom.
-
erase
((InteractionContainer)arg1, (int)arg2, (int)arg3) → None :¶ Erase one interaction, given by id1, id2 (internally,
requestErase
is called – the interaction might still exist as potential, if the Collider decides so).
-
has
((InteractionContainer)arg1, (int)arg2, (int)arg3) → bool :¶ Tell if a pair of ids corresponds to an existing interaction (real or not)
-
nth
((InteractionContainer)arg1, (int)arg2) → Interaction :¶ Return n-th interaction from the container (usable for picking random interaction). The virtual interactions are not reached.
-
property
serializeSorted
¶
-
withBody
((InteractionContainer)arg1, (int)arg2) → list :¶ Return list of real interactions of given body.
-
withBodyAll
((InteractionContainer)arg1, (int)arg2) → list :¶ Return list of all (real as well as non-real) interactions of given body.
ForceContainer¶
-
class
yade.wrapper.
ForceContainer
¶ -
__init__
((object)arg1, (ForceContainer)arg2) → None¶
-
addF
((ForceContainer)arg1, (int)id, (Vector3)f[, (bool)permanent=False]) → None :¶ Apply force on body (accumulates). The force applies for one iteration, then it is reset by ForceResetter. # permanent parameter is deprecated, instead of addF(…,permanent=True) use setPermF(…).
-
addT
((ForceContainer)arg1, (int)id, (Vector3)t[, (bool)permanent=False]) → None :¶ Apply torque on body (accumulates). The torque applies for one iteration, then it is reset by ForceResetter. # permanent parameter is deprecated, instead of addT(…,permanent=True) use setPermT(…).
-
f
((ForceContainer)arg1, (int)id[, (bool)sync=False]) → Vector3 :¶ Force applied on body. For clumps in openMP, synchronize the force container with sync=True, else the value will be wrong.
-
getPermForceUsed
((ForceContainer)arg1) → bool :¶ Check wether permanent forces are present.
-
m
((ForceContainer)arg1, (int)id[, (bool)sync=False]) → Vector3 :¶ Deprecated alias for t (torque).
-
permF
((ForceContainer)arg1, (int)id) → Vector3 :¶ read the value of permanent force on body (set with setPermF()).
-
permT
((ForceContainer)arg1, (int)id) → Vector3 :¶ read the value of permanent torque on body (set with setPermT()).
-
reset
((ForceContainer)arg1[, (bool)resetAll=True]) → None :¶ Reset the force container, including user defined permanent forces/torques. resetAll=False will keep permanent forces/torques unchanged.
-
setPermF
((ForceContainer)arg1, (int)arg2, (Vector3)arg3) → None :¶ set the value of permanent force on body.
-
setPermT
((ForceContainer)arg1, (int)arg2, (Vector3)arg3) → None :¶ set the value of permanent torque on body.
-
property
syncCount
¶ Number of synchronizations of ForceContainer (cummulative); if significantly higher than number of steps, there might be unnecessary syncs hurting performance.
-
t
((ForceContainer)arg1, (int)id[, (bool)sync=False]) → Vector3 :¶ Torque applied on body. For clumps in openMP, synchronize the force container with sync=True, else the value will be wrong.
-
MaterialContainer¶
-
class
yade.wrapper.
MaterialContainer
¶ Container for Materials. A material can be accessed using
numerical index in range(0,len(cont)), like cont[2];
textual label that was given to the material, like cont[‘steel’]. This etails traversing all materials and should not be used frequently.
-
__init__
((object)arg1, (MaterialContainer)arg2) → None¶
-
append
((MaterialContainer)arg1, (Material)arg2) → int :¶ Add new shared Material; changes its id and return it.
- append( (MaterialContainer)arg1, (object)arg2) -> object :
Append list of Material instances, return list of ids.
-
index
((MaterialContainer)arg1, (str)arg2) → int :¶ Return id of material, given its label.
Scene¶
-
class
yade.wrapper.
Scene
(inherits Serializable)¶ Object comprising the whole simulation.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
doSort
¶ Used, when new body is added to the scene.
-
property
dt
¶ Current timestep for integration.
-
property
isPeriodic
¶ Whether periodic boundary conditions are active.
-
property
iter
¶ Current iteration (computational step) number
-
property
selectedBody
¶ Id of body that is selected by the user
-
property
speed
¶ Current calculation speed [iter/s]
-
property
stopAtIter
¶ Iteration after which to stop the simulation.
-
property
stopAtTime
¶ Time after which to stop the simulation
-
property
subD
¶ subdomain (shape) attached to this proc.
-
property
subStep
¶ Number of sub-step; not to be changed directly. -1 means to run loop prologue (cell integration), 0…n-1 runs respective engines (n is number of engines), n runs epilogue (increment step number and time.
-
property
subStepping
¶ Whether we currently advance by one engine in every step (rather than by single run through all engines).
-
property
subdomain
¶ the subdomain this scene is assigned in MPI/domain decomposition.
Arbitrary key=value associations (tags like mp3 tags: author, date, version, description etc.)
-
property
time
¶ Simulation time (virtual time) [s]
-
property
trackEnergy
¶ Whether energies are being traced.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
Cell¶
-
class
yade.wrapper.
Cell
(inherits Serializable)¶ Parameters of periodic boundary conditions. Only applies if O.isPeriodic==True.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
getDefGrad
((Cell)arg1) → Matrix3 :¶ Returns deformation gradient tensor \(\mat{F}\) of the cell deformation (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getEulerianAlmansiStrain
((Cell)arg1) → Matrix3 :¶ Returns Eulerian-Almansi strain tensor \(\mat{e}=\frac{1}{2}(\mat{I}-\mat{b}^{-1})=\frac{1}{2}(\mat{I}-(\mat{F}\mat{F}^T)^{-1})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLCauchyGreenDef
((Cell)arg1) → Matrix3 :¶ Returns left Cauchy-Green deformation tensor \(\mat{b}=\mat{F}\mat{F}^T\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLagrangianStrain
((Cell)arg1) → Matrix3 :¶ Returns Lagrangian strain tensor \(\mat{E}=\frac{1}{2}(\mat{C}-\mat{I})=\frac{1}{2}(\mat{F}^T\mat{F}-\mat{I})=\frac{1}{2}(\mat{U}^2-\mat{I})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLeftStretch
((Cell)arg1) → Matrix3 :¶ Returns left (spatial) stretch tensor of the cell (matrix \(\mat{U}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
-
getPolarDecOfDefGrad
((Cell)arg1) → tuple :¶ Returns orthogonal matrix \(\mat{R}\) and symmetric positive semi-definite matrix \(\mat{U}\) as polar decomposition of deformation gradient \(\mat{F}\) of the cell ( \(\mat{F}=\mat{RU}\) )
-
getRCauchyGreenDef
((Cell)arg1) → Matrix3 :¶ Returns right Cauchy-Green deformation tensor \(\mat{C}=\mat{F}^T\mat{F}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getRightStretch
((Cell)arg1) → Matrix3 :¶ Returns right (material) stretch tensor of the cell (matrix \(\mat{V}\) from polar decomposition \(\mat{F}=\mat{RU}=\mat{VR}\ \rightarrow\ \mat{V}=\mat{FR}^T\) )
-
getRotation
((Cell)arg1) → Matrix3 :¶ Returns rotation of the cell (orthogonal matrix \(\mat{R}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
-
getSmallStrain
((Cell)arg1) → Matrix3 :¶ Returns small strain tensor \(\mat{\varepsilon}=\frac{1}{2}(\mat{F}+\mat{F}^T)-\mat{I}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
property
hSize
¶ Base cell vectors (columns of the matrix), updated at every step from velGrad (trsf accumulates applied velGrad transformations). Setting hSize during a simulation is not supported by most contact laws, it is only meant to be used at iteration 0 before any interactions have been created.
-
property
hSize0
¶ Value of untransformed hSize, with respect to current trsf (computed as trsf ⁻¹ × hSize.
-
property
homoDeform
¶ If >0, deform (velGrad) the cell homothetically by adjusting positions and velocities of bodies. The velocity change is obtained by deriving the expression v=∇v.x, where ∇v is the macroscopic velocity gradient, giving in an incremental form: Δv=Δ ∇v x + ∇v Δx. As a result, velocities are modified as soon as
velGrad
changes, according to the first term: Δv(t)=Δ ∇v x(t), while the 2nd term reflects a convective term: Δv’= ∇v v(t-dt/2). The second term is neglected if homoDeform=1. All terms are included if homoDeform=2 (default)
-
property
nextVelGrad
¶ see Cell.velGrad.
-
property
prevHSize
¶ hSize from the previous step, used in the definition of relative velocity across periods.
-
property
prevVelGrad
¶ Velocity gradient in the previous step.
-
property
refHSize
¶ Reference cell configuration, only used with OpenGLRenderer.dispScale. Updated automatically when hSize or trsf is assigned directly; also modified by utils.setRefSe3 (called e.g. by the
Reference
button in the UI).
-
property
refSize
¶ Reference size of the cell (lengths of initial cell vectors, i.e. column norms of hSize).
Note
Modifying this value is deprecated, use setBox instead.
-
setBox
((Cell)arg1, (Vector3)arg2) → None :¶ Set Cell shape to be rectangular, with dimensions along axes specified by given argument. Shorthand for assigning diagonal matrix with respective entries to hSize.
-
shearPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Apply shear (cell skew+rot) on the point
-
property
shearTrsf
¶ Current skew+rot transformation (no resize)
-
property
size
¶ Current size of the cell, i.e. lengths of the 3 cell lateral vectors contained in Cell.hSize columns. Updated automatically at every step.
-
property
trsf
¶ Current transformation matrix of the cell, obtained from time integration of Cell.velGrad.
-
unshearPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Apply inverse shear on the point (removes skew+rot of the cell)
-
property
unshearTrsf
¶ Inverse of the current skew+rot transformation (no resize)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
velGrad
¶ Velocity gradient of the transformation; used in NewtonIntegrator. Values of velGrad accumulate in trsf at every step.
NOTE: changing velGrad at the beginning of a simulation loop would lead to inaccurate integration for one step, as it should normally be changed after the contact laws (but before Newton). To avoid this problem, assignment is deferred automatically. The target value typed in terminal is actually stored in Cell.nextVelGrad and will be applied right in time by Newton integrator.
Note
Assigning individual components instead of the whole matrix is not possible through this velGrad attribute (it will not return any error but it will have no effect) but can be achieved, as a trick, through nextVelGrad, as in O.cell.nextVelGrad[1,2]=1.
-
property
velGradChanged
¶ true when velGrad has been changed manually (see also Cell.nextVelGrad)
-
property
volume
¶ Current volume of the cell.
-
wrap
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Transform an arbitrary point into a point in the reference cell
-
wrapPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Wrap point inside the reference cell, assuming the cell has no skew+rot.
-
Other classes¶
-
class
yade.wrapper.
GlExtra_LawTester
(inherits GlExtraDrawer → Serializable)¶ Find an instance of LawTester and show visually its data.
-
property
dead
¶ Deactivate the object (on error/exception).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
LBMlink
(inherits Serializable)¶ Link class for Lattice Boltzmann Method
-
property
DistMid
¶ Distance between middle of the link and mass center of body
-
property
PointingOutside
¶ True if it is a link pointing outside to the system (from a fluid or solid node)
-
property
VbMid
¶ Velocity of boundary at midpoint
-
property
ct
¶ Coupling term in modified bounce back rule
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
fid
¶ Fluid node identifier
-
property
i
¶ direction index of the link
-
property
idx_sigma_i
¶ sigma_i direction index (Fluid->Solid)
-
property
isBd
¶ True if it is a boundary link
-
property
nid1
¶ fixed node identifier
-
property
nid2
¶ fixed node identifier or -1 if node points outside
-
property
sid
¶ Solid node identifier
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlExtra_OctreeCubes
(inherits GlExtraDrawer → Serializable)¶ Render boxed read from file
-
property
boxesFile
¶ File to read boxes from; ascii files with
x0 y0 z0 x1 y1 z1 c
records, wherec
is an integer specifying fill (0 for wire, 1 for filled).
-
property
dead
¶ Deactivate the object (on error/exception).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
fillRangeDraw
¶ Range of fill indices that will be rendered.
-
property
fillRangeFill
¶ Range of fill indices that will be filled.
-
property
levelRangeDraw
¶ Range of levels that will be rendered.
-
property
noFillZero
¶ Do not fill 0-fill boxed (those that are further subdivided)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
GlExtraDrawer
(inherits Serializable)¶ Performing arbitrary OpenGL drawing commands; called from OpenGLRenderer (see OpenGLRenderer.extraDrawers) once regular rendering routines will have finished.
This class itself does not render anything, derived classes should override the render method.
-
property
dead
¶ Deactivate the object (on error/exception).
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
LBMnode
(inherits Serializable)¶ Node class for Lattice Boltzmann Method
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
ParallelEngine
(inherits Engine → Serializable)¶ Engine for running other Engine in parallel.
-
__init__
((object)arg1) → None¶ object __init__(tuple args, dict kwds)
- __init__( (object)arg1, (list)arg2) -> object :
Construct from (possibly nested) list of slaves.
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
slaves
¶ List of lists of Engines; each top-level group will be run in parallel with other groups, while Engines inside each group will be run sequentially, in given order.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
CundallStrackPotential
(inherits GenericPotential)¶ Potential with only Cundall-and-Strack-like contact.
-
property
alpha
¶ Bulk-to-roughness stiffness ratio
-
contactForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return contact force norm.
contactForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
hasContact
((GenericPotential)arg1, (float)arg2, (float)arg3) → bool :¶ This function should return true if there are contact.
hasContact( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
potentialForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return potential force norm.
potentialForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
property
-
class
yade.wrapper.
GenericPotential
(inherits Serializable)¶ Generic class for potential representation in PotentialLubrication law. Don’t do anything. If set as potential, the result will be a lubrication-only simulation.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
Engine
(inherits Serializable)¶ Basic execution unit of simulation, called from the simulation loop (O.engines)
-
property
dead
¶ If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
execCount
¶ Cumulative count this engine was run (only used if O.timingEnabled==
True
).
-
property
execTime
¶ Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
-
property
label
¶ Textual label for this object; must be valid python identifier, you can refer to it directly from python.
-
property
ompThreads
¶ Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
-
property
timingDeltas
¶ Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
TimingDeltas
¶ -
property
data
¶ Get timing data as list of tuples (label, execTime[nsec], execCount) (one tuple per checkpoint)
-
reset
((TimingDeltas)arg1) → None :¶ Reset timing information
-
property
-
class
yade.wrapper.
Cell
(inherits Serializable)¶ Parameters of periodic boundary conditions. Only applies if O.isPeriodic==True.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
getDefGrad
((Cell)arg1) → Matrix3 :¶ Returns deformation gradient tensor \(\mat{F}\) of the cell deformation (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getEulerianAlmansiStrain
((Cell)arg1) → Matrix3 :¶ Returns Eulerian-Almansi strain tensor \(\mat{e}=\frac{1}{2}(\mat{I}-\mat{b}^{-1})=\frac{1}{2}(\mat{I}-(\mat{F}\mat{F}^T)^{-1})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLCauchyGreenDef
((Cell)arg1) → Matrix3 :¶ Returns left Cauchy-Green deformation tensor \(\mat{b}=\mat{F}\mat{F}^T\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLagrangianStrain
((Cell)arg1) → Matrix3 :¶ Returns Lagrangian strain tensor \(\mat{E}=\frac{1}{2}(\mat{C}-\mat{I})=\frac{1}{2}(\mat{F}^T\mat{F}-\mat{I})=\frac{1}{2}(\mat{U}^2-\mat{I})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getLeftStretch
((Cell)arg1) → Matrix3 :¶ Returns left (spatial) stretch tensor of the cell (matrix \(\mat{U}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
-
getPolarDecOfDefGrad
((Cell)arg1) → tuple :¶ Returns orthogonal matrix \(\mat{R}\) and symmetric positive semi-definite matrix \(\mat{U}\) as polar decomposition of deformation gradient \(\mat{F}\) of the cell ( \(\mat{F}=\mat{RU}\) )
-
getRCauchyGreenDef
((Cell)arg1) → Matrix3 :¶ Returns right Cauchy-Green deformation tensor \(\mat{C}=\mat{F}^T\mat{F}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
getRightStretch
((Cell)arg1) → Matrix3 :¶ Returns right (material) stretch tensor of the cell (matrix \(\mat{V}\) from polar decomposition \(\mat{F}=\mat{RU}=\mat{VR}\ \rightarrow\ \mat{V}=\mat{FR}^T\) )
-
getRotation
((Cell)arg1) → Matrix3 :¶ Returns rotation of the cell (orthogonal matrix \(\mat{R}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
-
getSmallStrain
((Cell)arg1) → Matrix3 :¶ Returns small strain tensor \(\mat{\varepsilon}=\frac{1}{2}(\mat{F}+\mat{F}^T)-\mat{I}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
-
property
hSize
¶ Base cell vectors (columns of the matrix), updated at every step from velGrad (trsf accumulates applied velGrad transformations). Setting hSize during a simulation is not supported by most contact laws, it is only meant to be used at iteration 0 before any interactions have been created.
-
property
hSize0
¶ Value of untransformed hSize, with respect to current trsf (computed as trsf ⁻¹ × hSize.
-
property
homoDeform
¶ If >0, deform (velGrad) the cell homothetically by adjusting positions and velocities of bodies. The velocity change is obtained by deriving the expression v=∇v.x, where ∇v is the macroscopic velocity gradient, giving in an incremental form: Δv=Δ ∇v x + ∇v Δx. As a result, velocities are modified as soon as
velGrad
changes, according to the first term: Δv(t)=Δ ∇v x(t), while the 2nd term reflects a convective term: Δv’= ∇v v(t-dt/2). The second term is neglected if homoDeform=1. All terms are included if homoDeform=2 (default)
-
property
nextVelGrad
¶ see Cell.velGrad.
-
property
prevHSize
¶ hSize from the previous step, used in the definition of relative velocity across periods.
-
property
prevVelGrad
¶ Velocity gradient in the previous step.
-
property
refHSize
¶ Reference cell configuration, only used with OpenGLRenderer.dispScale. Updated automatically when hSize or trsf is assigned directly; also modified by utils.setRefSe3 (called e.g. by the
Reference
button in the UI).
-
property
refSize
¶ Reference size of the cell (lengths of initial cell vectors, i.e. column norms of hSize).
Note
Modifying this value is deprecated, use setBox instead.
-
setBox
((Cell)arg1, (Vector3)arg2) → None :¶ Set Cell shape to be rectangular, with dimensions along axes specified by given argument. Shorthand for assigning diagonal matrix with respective entries to hSize.
-
shearPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Apply shear (cell skew+rot) on the point
-
property
shearTrsf
¶ Current skew+rot transformation (no resize)
-
property
size
¶ Current size of the cell, i.e. lengths of the 3 cell lateral vectors contained in Cell.hSize columns. Updated automatically at every step.
-
property
trsf
¶ Current transformation matrix of the cell, obtained from time integration of Cell.velGrad.
-
unshearPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Apply inverse shear on the point (removes skew+rot of the cell)
-
property
unshearTrsf
¶ Inverse of the current skew+rot transformation (no resize)
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
velGrad
¶ Velocity gradient of the transformation; used in NewtonIntegrator. Values of velGrad accumulate in trsf at every step.
NOTE: changing velGrad at the beginning of a simulation loop would lead to inaccurate integration for one step, as it should normally be changed after the contact laws (but before Newton). To avoid this problem, assignment is deferred automatically. The target value typed in terminal is actually stored in Cell.nextVelGrad and will be applied right in time by Newton integrator.
Note
Assigning individual components instead of the whole matrix is not possible through this velGrad attribute (it will not return any error but it will have no effect) but can be achieved, as a trick, through nextVelGrad, as in O.cell.nextVelGrad[1,2]=1.
-
property
velGradChanged
¶ true when velGrad has been changed manually (see also Cell.nextVelGrad)
-
property
volume
¶ Current volume of the cell.
-
wrap
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Transform an arbitrary point into a point in the reference cell
-
wrapPt
((Cell)arg1, (Vector3)arg2) → Vector3 :¶ Wrap point inside the reference cell, assuming the cell has no skew+rot.
-
-
class
yade.wrapper.
CundallStrackAdhesivePotential
(inherits CundallStrackPotential → GenericPotential)¶ CundallStrack model with adhesive part. Contact is created when \(u/a-\varepsilon < 0\) and released when \(u/a-\varepsilon > l_{adh}\), where \(l_{adh} = f_{adh}/k_n\). This lead to an hysteretic attractive part.
-
property
alpha
¶ Bulk-to-roughness stiffness ratio
-
contactForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return contact force norm.
contactForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
property
fadh
¶ Adhesion force.
-
hasContact
((GenericPotential)arg1, (float)arg2, (float)arg3) → bool :¶ This function should return true if there are contact.
hasContact( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
potentialForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return potential force norm.
potentialForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
property
-
class
yade.wrapper.
LBMbody
(inherits Serializable)¶ Body class for Lattice Boltzmann Method
-
property
AVel
¶ Angular velocity of body
-
property
Fh
¶ Hydrodynamical force on body
-
property
Mh
¶ Hydrodynamical momentum on body
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
fm
¶ Hydrodynamic force (LB unit) at t-0.5dt
-
property
force
¶ Hydrodynamic force, need to be reinitialized (LB unit)
-
property
fp
¶ Hydrodynamic force (LB unit) at t+0.5dt
-
property
isEroded
¶ Hydrodynamical force on body
-
property
mm
¶ Hydrodynamic momentum (LB unit) at t-0.5dt
-
property
momentum
¶ Hydrodynamic momentum,need to be reinitialized (LB unit)
-
property
mp
¶ Hydrodynamic momentum (LB unit) at t+0.5dt
-
property
pos
¶ Position of body
-
property
radius
¶ Radius of body (for sphere)
-
property
saveProperties
¶ To save properties of the body
-
property
type
¶
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
vel
¶ Velocity of body
-
property
-
class
yade.wrapper.
MPIBodyContainer
(inherits Serializable)¶ a dummy container to serialize and send.
-
property
bContainer
¶ a dummy body container to serialize
-
clearContainer
((MPIBodyContainer)arg1) → None :¶ clear bodies in the container
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
getCount
((MPIBodyContainer)arg1) → int :¶ get container count
-
insertBody
((MPIBodyContainer)arg1, (int)bodyId) → None :¶ insert a body (by id) in this container
-
insertBodyListPy
((MPIBodyContainer)arg1, (list)listOfIds) → None :¶ inset a list of bodies (by ids)
-
property
subdomainRank
¶ origin rank of this container
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
MatchMaker
(inherits Serializable)¶ Class matching pair of ids to return pre-defined (for a pair of ids defined in matches) or derived value (computed using algo) of a scalar parameter. It can be called (
id1
,id2
,val1=NaN
,val2=NaN
) in both python and c++.Note
There is a converter from python number defined for this class, which creates a new MatchMaker returning the value of that number; instead of giving the object instance therefore, you can only pass the number value and it will be converted automatically.
-
property
algo
¶ Algorithm used to compute value when no match for ids is found. Possible values are
‘avg’ (arithmetic average)
‘min’ (minimum value)
‘max’ (maximum value)
‘harmAvg’ (harmonic average)
The following algo algorithms do not require meaningful input values in order to work:
‘val’ (return value specified by val)
‘zero’ (always return 0.)
-
computeFallback
((MatchMaker)arg1, (float)val1, (float)val2) → float :¶ Compute algo value for val1 and val2, using algorithm specified by algo.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
matches
¶ Array of
(id1,id2,value)
items; queries matchingid1
+id2
orid2
+id1
will returnvalue
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
property
-
class
yade.wrapper.
PhaseCluster
(inherits Serializable)¶ Preliminary.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
entryPore
¶ the pore of the cluster incident to the throat with smallest entry Pc.
-
property
entryRadius
¶ smallest entry capillary pressure.
-
getCapPressure
((PhaseCluster)arg1, (int)numf) → float :¶ get local capillary pressure
-
getCapVol
((PhaseCluster)arg1, (int)numf) → float :¶ get position of the meniscus - in terms of volume
-
getConductivity
((PhaseCluster)arg1, (int)numf) → float :¶ get conductivity
-
getFlux
((PhaseCluster)arg1, (int)interface) → float :¶ get flux at an interface (i.e. velocity of the menicus), the index to be used is the rank of the interface in the same order as in getInterfaces().
-
getInterfaces
((PhaseCluster)arg1[, (int)CellId=-1]) → list :¶ get the list of interfacial pore-throats associated to a cluster, listed as [id1,id2,area,index] where id2 is the neighbor pore outside the cluster and index is the position in the global cluster’s list of interfaces. If CellId>=0 only the interfaces adjacent to the corresponding inner cell are returned.
-
getPores
((PhaseCluster)arg1) → object :¶ get the list of pores by index
-
property
interfacialArea
¶ interfacial area of the cluster
-
property
label
¶ Unique label of this cluster, should be reflected in pores of this cluster.
-
setCapPressure
((PhaseCluster)arg1, (int)numf, (float)pCap) → None :¶ set local capillary pressure
-
setCapVol
((PhaseCluster)arg1, (int)numf, (float)vCap) → None :¶ set position of the meniscus - in terms of volume
-
solvePressure
((PhaseCluster)arg1) → None :¶ Solve 1-phase flow in one single cluster defined by its id.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
updateCapVol
((PhaseCluster)arg1, (int)numf, (float)dt) → float :¶ increments throat’s volume of given interface by flux*dt
-
updateCapVolList
((PhaseCluster)arg1, (float)dt) → None :¶ increments throat’s volume of all interfaces by flux*dt
-
property
volume
¶ cumulated volume of all pores.
-
-
class
yade.wrapper.
Serializable
¶ -
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-
-
class
yade.wrapper.
LinExponentialPotential
(inherits CundallStrackPotential → GenericPotential)¶ LinExponential Potential with only Cundall-and-Strack-like contact. The LinExponential potential formula is \(F(u) = \frac{k*(x_e-x_0)}{x_e}(u/a-x_0)\exp\left(\frac{-(u/a)}{x_e-x_0}\right)\). Where \(k\) is the slope at the origin, \(x_0\) is the position where the potential cross \(0\) and \(x_e\) is the position of the extremum.
-
property
F0
¶ Force at contact. Force when \(F_0 = F(u=0)\) (LinExponential)
-
property
Fe
¶ Extremum force. Value of force at extremum. (LinExponential)
-
property
alpha
¶ Bulk-to-roughness stiffness ratio
-
computeParametersFromF0
((LinExponentialPotential)arg1, (float)F0, (float)xe, (float)k) → None :¶ Set parameters of the potential, with \(k\) computed from \(F_0\)
-
computeParametersFromF0Fe
((LinExponentialPotential)arg1, (float)xe, (float)Fe, (float)F0) → None :¶ Set parameters of the potential, with \(k\) and \(x_0\) computed from \(F_0\) and \(F_e\)
-
contactForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return contact force norm.
contactForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
hasContact
((GenericPotential)arg1, (float)arg2, (float)arg3) → bool :¶ This function should return true if there are contact.
hasContact( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
property
k
¶ Slope at the origin (stiffness). (LinExponential)
-
potential
((LinExponentialPotential)arg1, (float)u) → float :¶ Get potential value at any point.
-
potentialForce
((GenericPotential)arg1, (float)arg2, (float)arg3) → float :¶ This function should return potential force norm.
potentialForce( (GenericPotential)arg1, (float)arg2, (float)arg3) -> None
-
setParameters
((LinExponentialPotential)arg1, (float)x0, (float)xe, (float)k) → None :¶ Set parameters of the potential
-
property
x0
¶ Equilibrium distance. Potential force is 0 at \(x_0\) (LinExponential)
-
property
xe
¶ Extremum position. Position of local max/min of force. (LinExponential)
-
property
-
class
yade.wrapper.
EnergyTracker
(inherits Serializable)¶ Storage for tracing energies. Only to be used if O.trackEnergy is True.
-
clear
((EnergyTracker)arg1) → None :¶ Clear all stored values.
-
dict
((Serializable)arg1) → dict :¶ Return dictionary of attributes.
-
property
energies
¶ Energy values, in linear array
-
items
((EnergyTracker)arg1) → list :¶ Return contents as list of (name,value) tuples.
-
keys
((EnergyTracker)arg1) → list :¶ Return defined energies.
-
total
((EnergyTracker)arg1) → float :¶ Return sum of all energies.
-
updateAttrs
((Serializable)arg1, (dict)arg2) → None :¶ Update object attributes from given dictionary
-