Class reference (yade.wrapper module)

Bodies

Body

class yade.wrapper.Body((object)arg1)

A particle, basic element of simulation; interacts with other bodies.

aspherical(=false)

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.

bound(=uninitalized)

Bound, approximating volume for the purposes of collision detection.

bounded(=true)

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)

chain

Returns Id of chain to which the body belongs.

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() → dict

Return dictionary of attributes.

dynamic(=true)

Whether this body will be moved by forces. (In c++, use Body::isDynamic/Body::setDynamic)

flags(=FLAG_BOUNDED)

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.

groupMask(=1)

Bitmask for determining interactions.

id(=Body::ID_NONE)

Unique id of this body.

intrs() → list

Return all interactions in which this body participates.

isClump

True if this body is clump itself, false otherwise.

isClumpMember

True if this body is clump member, false otherwise.

isStandalone

True if this body is neither clump, nor clump member; false otherwise.

iterBorn

Returns step number at which the body was added to simulation.

mask

Shorthand for Body::groupMask

mat

Shorthand for Body::material

material(=uninitalized)

Material instance associated with this body.

shape(=uninitalized)

Geometrical Shape.

state(=new State)

Physical state.

timeBorn

Returns time at which the body was added to simulation.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

Shape

digraph Shape {
        rankdir=RL;
        margin=.2;
        "Shape" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Shape"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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" [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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.Shape((object)arg1)

Geometry of a body

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Box((object)arg1)

Box (cuboid) particle geometry. (Avoid using in new code, prefer Facet instead.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

extents(=uninitalized)

Half-size of the cuboid

highlight(=false)

Whether this Shape will be highlighted when rendered.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.ChainedCylinder((object)arg1)

Geometry of a deformable chained cylinder, using geometry Cylinder.

chainedOrientation(=Quaternionr::Identity())

Deviation of node1 orientation from node-to-node vector

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

initLength(=0)

tensile-free length, used as reference for tensile strain

length(=NaN)

Length [m]

radius(=NaN)

Radius [m]

segment(=Vector3r::Zero())

Length vector

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Clump((object)arg1)

Rigid aggregate of bodies

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

ids(=uninitalized)

Ids of constituent particles (only informative; direct modifications will have no effect).

members

Return clump members as {‘id1’:(relPos,relOri),...}

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Cylinder((object)arg1)

Geometry of a cylinder, as Minkowski sum of line and sphere.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

length(=NaN)

Length [m]

radius(=NaN)

Radius [m]

segment(=Vector3r::Zero())

Length vector

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.DeformableCohesiveElement((object)arg1)

Tetrahedral Deformable Element Composed of Nodes

addFace((Vector3)arg2) → None

Add a face into the element

addNode((Body)arg2) → None

Add a node shared_pt<:yref:’Body’>& as into the element

addPair((Body)arg2, (Body)arg3) → None

Add a node shared_pt<:yref:’Body’>& as into the element

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

delNode((Body)arg2) → None

Remove a node shared_pt<:yref:’Body’>& from the element

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

elementframe
faces(=uninitalized)

Faces of the element for drawing

getNode((int)arg2) → Body

Get a node shared_pt<:yref:’Body’>& as into the element

getVolume() → float

Get volume of the element

highlight(=false)

Whether this Shape will be highlighted when rendered.

localmap(=uninitalized)

Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)

nodepairs(=uninitalized)

Ids and relative position+orientation difference of members of the cohesive deformable element in the inital condition (should not be accessed directly)

removeLastFace() → None

Remove a face from the element

removePair((Body)arg2, (Body)arg3) → None

Add a node shared_pt<:yref:’Body’>& as into the element

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Deformable aggregate of nodes

addFace((Vector3)arg2) → None

Add a face into the element

addNode((Body)arg2) → None

Add a node shared_pt<:yref:’Body’>& as into the element

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

delNode((Body)arg2) → None

Remove a node shared_pt<:yref:’Body’>& from the element

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

elementframe
faces(=uninitalized)

Faces of the element for drawing

getNode((int)arg2) → Body

Get a node shared_pt<:yref:’Body’>& as into the element

getVolume() → float

Get volume of the element

highlight(=false)

Whether this Shape will be highlighted when rendered.

localmap(=uninitalized)

Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)

removeLastFace() → None

Remove a face from the element

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Facet (triangular particle) geometry.

area(=NaN)

Facet’s area

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

normal(=Vector3r(NaN, NaN, NaN))

Facet’s normal (in local coordinate system)

setVertices((Vector3)arg2, (Vector3)arg3, (Vector3)arg4) → None

TODO

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vertices(=vector<Vector3r>(3, Vector3r(NaN, NaN, NaN)))

Vertex positions in local coordinates.

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.GridConnection((object)arg1)

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((Body)Body) → None

Add a PFacet to the GridConnection.

cellDist(=Vector3i(0, 0, 0))

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.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

node1(=uninitalized)

First Body the GridConnection is connected to.

node2(=uninitalized)

Second Body the GridConnection is connected to.

periodic(=false)

true if two nodes from different periods are connected.

pfacetList(=uninitalized)

List of PFacet the GridConnection is connected to.

radius(=NaN)

Radius [m]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

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.

ConnList(=uninitalized)

List of GridConnections the GridNode is connected to.

addConnection((Body)Body) → None

Add a GridConnection to the GridNode.

addPFacet((Body)Body) → None

Add a PFacet to the GridNode.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

pfacetList(=uninitalized)

List of PFacets the GridConnection is connected to.

radius(=NaN)

Radius [m]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Tetrahedral Deformable Element Composed of Nodes

addFace((Vector3)arg2) → None

Add a face into the element

addNode((Body)arg2) → None

Add a node shared_pt<:yref:’Body’>& as into the element

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

delNode((Body)arg2) → None

Remove a node shared_pt<:yref:’Body’>& from the element

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

elementframe
faces(=uninitalized)

Faces of the element for drawing

getNode((int)arg2) → Body

Get a node shared_pt<:yref:’Body’>& as into the element

getVolume() → float

Get volume of the element

highlight(=false)

Whether this Shape will be highlighted when rendered.

localmap(=uninitalized)

Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)

removeLastFace() → None

Remove a face from the element

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Tetrahedral Deformable Element Composed of Nodes

addFace((Vector3)arg2) → None

Add a face into the element

addNode((Body)arg2) → None

Add a node shared_pt<:yref:’Body’>& as into the element

addPair((Body)arg2, (Body)arg3) → None

Add a node shared_pt<:yref:’Body’>& as into the element

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

delNode((Body)arg2) → None

Remove a node shared_pt<:yref:’Body’>& from the element

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

elementframe
faces(=uninitalized)

Faces of the element for drawing

getNode((int)arg2) → Body

Get a node shared_pt<:yref:’Body’>& as into the element

getVolume() → float

Get volume of the element

highlight(=false)

Whether this Shape will be highlighted when rendered.

localmap(=uninitalized)

Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)

nodepairs(=uninitalized)

Ids and relative position+orientation difference of members of the cohesive deformable element in the inital condition (should not be accessed directly)

removeLastFace() → None

Remove a face from the element

removePair((Body)arg2, (Body)arg3) → None

Add a node shared_pt<:yref:’Body’>& as into the element

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Geometry of node particle.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

radius(=0.1)

Radius [m]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.PFacet((object)arg1)

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.

area(=NaN)

PFacet’s area

cellDist(=Vector3i(0, 0, 0))

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.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

conn1(=uninitalized)

First Body the Pfacet is connected to.

conn2(=uninitalized)

Second Body the Pfacet is connected to.

conn3(=uninitalized)

third Body the Pfacet is connected to.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

node1(=uninitalized)

First Body the Pfacet is connected to.

node2(=uninitalized)

Second Body the Pfacet is connected to.

node3(=uninitalized)

third Body the Pfacet is connected to.

normal(=Vector3r(NaN, NaN, NaN))

PFacet’s normal (in local coordinate system)

radius(=-1)

PFacet’s radius

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Polyhedra((object)arg1)

Polyhedral (convex) geometry.

GetCentroid() → Vector3

return polyhedra’s centroid

GetInertia() → Vector3

return polyhedra’s inertia tensor

GetOri() → Quaternion

return polyhedra’s orientation

GetSurfaceTriangulation() → object

triangulation of facets (for plotting)

GetSurfaces() → object

get indices of surfaces’ vertices (for postprocessing)

GetVolume() → float

return polyhedra’s volume

Initialize() → None

Initialization

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

seed(=time(__null))

Seed for random generator.

setVertices((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((Vector3)arg2, (Vector3)arg3, (Vector3)arg4, (Vector3)arg5) → None

set 4 vertices and update receiver. Each vertex is single argument.

size(=Vector3r(1., 1., 1.))

Size of the grain in meters - x,y,z - before random rotation

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

v(=uninitalized)

Tetrahedron vertices in global coordinate system.

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Sphere((object)arg1)

Geometry of spherical particle.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

radius(=NaN)

Radius [m]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

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((object)arg1)

Tetrahedron geometry.

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

v(=std::vector<Vector3r>(4))

Tetrahedron vertices (in local coordinate system).

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

class yade.wrapper.Wall((object)arg1)

Object representing infinite plane aligned with the coordinate system (axis-aligned wall).

axis(=0)

Axis of the normal; can be 0,1,2 for +x, +y, +z respectively (Body’s orientation is disregarded for walls)

color(=Vector3r(1, 1, 1))

Color for rendering (normalized RGB).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

highlight(=false)

Whether this Shape will be highlighted when rendered.

sense(=0)

Which side of the wall interacts: -1 for negative only, 0 for both, +1 for positive only

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

wire(=false)

Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).

State

digraph State {
        rankdir=RL;
        margin=.2;
        "State" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.State"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.State((object)arg1)

State of a body (spatial configuration, internal variables).

angMom(=Vector3r::Zero())

Current angular momentum

angVel(=Vector3r::Zero())

Current angular velocity

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).

densityScaling(=-1)

(auto-updated) see GlobalStiffnessTimeStepper::targetDt.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displ() → Vector3

Displacement from reference position (pos - refPos)

inertia(=Vector3r::Zero())

Inertia of associated body, in local coordinate system.

isDamped(=true)

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.

mass(=0)

Mass of this body

ori

Current orientation.

pos

Current position.

refOri(=Quaternionr::Identity())

Reference orientation

refPos(=Vector3r::Zero())

Reference position

rot() → Vector3

Rotation from reference orientation (as rotation vector)

se3(=Se3r(Vector3r::Zero(), Quaternionr::Identity()))

Position and orientation as one object.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vel(=Vector3r::Zero())

Current linear velocity.

class yade.wrapper.ChainedState((object)arg1)

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.

addToChain((int)bodyId) → None

Add body to current active chain

angMom(=Vector3r::Zero())

Current angular momentum

angVel(=Vector3r::Zero())

Current angular velocity

bId(=-1)

id of the body containing - for postLoad operations only.

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).

chainNumber(=0)

chain id.

currentChain = 0
densityScaling(=-1)

(auto-updated) see GlobalStiffnessTimeStepper::targetDt.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displ() → Vector3

Displacement from reference position (pos - refPos)

inertia(=Vector3r::Zero())

Inertia of associated body, in local coordinate system.

isDamped(=true)

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.

mass(=0)

Mass of this body

ori

Current orientation.

pos

Current position.

rank(=0)

rank in the chain.

refOri(=Quaternionr::Identity())

Reference orientation

refPos(=Vector3r::Zero())

Reference position

rot() → Vector3

Rotation from reference orientation (as rotation vector)

se3(=Se3r(Vector3r::Zero(), Quaternionr::Identity()))

Position and orientation as one object.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vel(=Vector3r::Zero())

Current linear velocity.

class yade.wrapper.CpmState((object)arg1)

State information about body use by cpm-model.

None of that is used for computation (at least not now), only for post-processing.

angMom(=Vector3r::Zero())

Current angular momentum

angVel(=Vector3r::Zero())

Current angular velocity

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).

damageTensor(=Matrix3r::Zero())

Damage tensor computed with microplane theory averaging. state.damageTensor.trace() = state.normDmg

densityScaling(=-1)

(auto-updated) see GlobalStiffnessTimeStepper::targetDt.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displ() → Vector3

Displacement from reference position (pos - refPos)

epsVolumetric(=0)

Volumetric strain around this body (unused for now)

inertia(=Vector3r::Zero())

Inertia of associated body, in local coordinate system.

isDamped(=true)

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.

mass(=0)

Mass of this body

normDmg(=0)

Average damage including already deleted contacts (it is really not damage, but 1-relResidualStrength now)

numBrokenCohesive(=0)

Number of (cohesive) contacts that damaged completely

numContacts(=0)

Number of contacts with this body

ori

Current orientation.

pos

Current position.

refOri(=Quaternionr::Identity())

Reference orientation

refPos(=Vector3r::Zero())

Reference position

rot() → Vector3

Rotation from reference orientation (as rotation vector)

se3(=Se3r(Vector3r::Zero(), Quaternionr::Identity()))

Position and orientation as one object.

stress(=Matrix3r::Zero())

Stress tensor of the spherical particle (under assumption that particle volume = pi*r*r*r*4/3.) for packing fraction 0.62

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vel(=Vector3r::Zero())

Current linear velocity.

class yade.wrapper.JCFpmState((object)arg1)

JCFpm state information about each body.

angMom(=Vector3r::Zero())

Current angular momentum

angVel(=Vector3r::Zero())

Current angular velocity

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).

damageIndex(=0)

Ratio of broken bonds over initial bonds. [-]

densityScaling(=-1)

(auto-updated) see GlobalStiffnessTimeStepper::targetDt.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displ() → Vector3

Displacement from reference position (pos - refPos)

inertia(=Vector3r::Zero())

Inertia of associated body, in local coordinate system.

isDamped(=true)

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.

joint(=0)

Indicates the number of joint surfaces to which the particle belongs (0-> no joint, 1->1 joint, etc..). [-]

jointNormal1(=Vector3r::Zero())

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. [-]

jointNormal2(=Vector3r::Zero())

Specifies the normal direction to the joint plane 2. [-]

jointNormal3(=Vector3r::Zero())

Specifies the normal direction to the joint plane 3. [-]

mass(=0)

Mass of this body

nbBrokenBonds(=0)

Number of broken bonds. [-]

nbInitBonds(=0)

Number of initial bonds. [-]

onJoint(=false)

Identifies if the particle is on a joint surface.

ori

Current orientation.

pos

Current position.

refOri(=Quaternionr::Identity())

Reference orientation

refPos(=Vector3r::Zero())

Reference position

rot() → Vector3

Rotation from reference orientation (as rotation vector)

se3(=Se3r(Vector3r::Zero(), Quaternionr::Identity()))

Position and orientation as one object.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vel(=Vector3r::Zero())

Current linear velocity.

class yade.wrapper.WireState((object)arg1)

Wire state information of each body.

None of that is used for computation (at least not now), only for post-processing.

angMom(=Vector3r::Zero())

Current angular momentum

angVel(=Vector3r::Zero())

Current angular velocity

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).

densityScaling(=-1)

(auto-updated) see GlobalStiffnessTimeStepper::targetDt.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displ() → Vector3

Displacement from reference position (pos - refPos)

inertia(=Vector3r::Zero())

Inertia of associated body, in local coordinate system.

isDamped(=true)

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.

mass(=0)

Mass of this body

Number of broken links (e.g. number of wires connected to the body which are broken). [-]

ori

Current orientation.

pos

Current position.

refOri(=Quaternionr::Identity())

Reference orientation

refPos(=Vector3r::Zero())

Reference position

rot() → Vector3

Rotation from reference orientation (as rotation vector)

se3(=Se3r(Vector3r::Zero(), Quaternionr::Identity()))

Position and orientation as one object.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vel(=Vector3r::Zero())

Current linear velocity.

Material

digraph Material {
        rankdir=RL;
        margin=.2;
        "Material" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.Material"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "ElectrostaticMat" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ElectrostaticMat"];
        "ElectrostaticMat" -> "CohFrictMat" [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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.Material((object)arg1)

Material properties of a body.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.BubbleMat((object)arg1)

material for bubble interactions, for use with other Bubble classes

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

surfaceTension(=0.07197)

The surface tension in the fluid surrounding the bubbles. The default value is that of water at 25 degrees Celcius.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CohFrictMat((object)arg1)
alphaKr(=2.0)

Dimensionless rolling stiffness.

alphaKtw(=2.0)

Dimensionless twist stiffness.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

etaRoll(=-1.)

Dimensionless rolling (aka ‘bending’) strength. If negative, rolling moment will be elastic.

etaTwist(=-1.)

Dimensionless twisting strength. If negative, twist moment will be elastic.

fragile(=true)

do cohesion disappear when contact strength is exceeded

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

isCohesive(=true)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

momentRotationLaw(=false)

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() → 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).

normalCohesion(=-1)

Tensile strength, homogeneous to a pressure. If negative the normal force is purely elastic.

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

shearCohesion(=-1)

Shear strength, homogeneous to a pressure. If negative the shear force is purely elastic.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.CohesiveDeformableElementMaterial((object)arg1)

Deformable Element Material.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CpmMat((object)arg1)

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.

damLaw(=1)

Law for damage evolution in uniaxial tension. 0 for linear stress-strain softening branch, 1 (default) for exponential damage evolution law

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

dmgRateExp(=0)

Exponent for normal viscosity function. [-]

dmgTau(=-1, deactivated if negative)

Characteristic time for normal viscosity. [s]

epsCrackOnset(=NaN)

Limit elastic strain [-]

equivStrainShearContrib(=0)

Coefficient of shear contribution to equivalent strain

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

isoPrestress(=0)

Isotropic prestress of the whole specimen. [Pa]

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

neverDamage(=false)

If true, no damage will occur (for testing only).

newAssocState() → 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).

plRateExp(=0)

Exponent for visco-plasticity function. [-]

plTau(=-1, deactivated if negative)

Characteristic time for visco-plasticity. [s]

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

relDuctility(=NaN)

relative ductility of bonds in normal direction

sigmaT(=NaN)

Initial cohesion [Pa]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.DeformableElementMaterial((object)arg1)

Deformable Element Material.

density(=1)

Density of the material.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ElastMat((object)arg1)

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.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.ElectrostaticMat((object)arg1)

Electrostatic material, used in Ip2_ElectrostaticMat_ElectrostaticMat_ElectrostaticPhys and Law2_ScGeom_ElectrostaticPhys.

alphaKr(=2.0)

Dimensionless rolling stiffness.

alphaKtw(=2.0)

Dimensionless twist stiffness.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

etaRoll(=-1.)

Dimensionless rolling (aka ‘bending’) strength. If negative, rolling moment will be elastic.

etaTwist(=-1.)

Dimensionless twisting strength. If negative, twist moment will be elastic.

fragile(=true)

do cohesion disappear when contact strength is exceeded

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

isCohesive(=true)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

momentRotationLaw(=false)

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() → 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).

normalCohesion(=-1)

Tensile strength, homogeneous to a pressure. If negative the normal force is purely elastic.

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

shearCohesion(=-1)

Shear strength, homogeneous to a pressure. If negative the shear force is purely elastic.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.FrictMat((object)arg1)

Elastic material with contact friction. See also ElastMat.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.FrictViscoMat((object)arg1)

Material for use with the FrictViscoPM classes

betan(=0.)

Fraction of the viscous damping coefficient in normal direction equal to \frac{c_{n}}{C_{n,crit}}.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.InelastCohFrictMat((object)arg1)
alphaKr(=2.0)

Dimensionless coefficient used for the rolling stiffness.

alphaKtw(=2.0)

Dimensionless coefficient used for the twist stiffness.

compressionModulus(=0.0)

Compresion elasticity modulus

creepBending(=0.0)

Bending creeping coefficient. Usual values between 0 and 1.

creepTension(=0.0)

Tension/compression creeping coefficient. Usual values between 0 and 1.

creepTwist(=0.0)

Twist creeping coefficient. Usual values between 0 and 1.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

epsilonMaxCompression(=0.0)

Maximal plastic strain compression

epsilonMaxTension(=0.0)

Maximal plastic strain tension

etaMaxBending(=0.0)

Maximal plastic bending strain

etaMaxTwist(=0.0)

Maximal plastic twist strain

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

nuBending(=0.0)

Bending elastic stress limit

nuTwist(=0.0)

Twist elastic stress limit

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

shearCohesion(=0.0)

Shear elastic stress limit

shearModulus(=0.0)

shear elasticity modulus

sigmaCompression(=0.0)

Compression elastic stress limit

sigmaTension(=0.0)

Tension elastic stress limit

tensionModulus(=0.0)

Tension elasticity modulus

unloadBending(=0.0)

Bending plastic unload coefficient. Usual values between 0 and +infinity.

unloadTension(=0.0)

Tension/compression plastic unload coefficient. Usual values between 0 and +infinity.

unloadTwist(=0.0)

Twist plastic unload coefficient. Usual values between 0 and +infinity.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.JCFpmMat((object)arg1)

Possibly jointed, cohesive frictional material, for use with other JCFpm classes

cohesion(=0.)

Defines the maximum admissible tangential force in shear, for Fn=0, in the matrix (FsMax = cohesion * crossSection). [Pa]

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

jointCohesion(=0.)

Defines the maximum admissible tangential force in shear, for Fn=0, on the joint surface. [Pa]

jointDilationAngle(=0)

Defines the dilatancy of the joint surface (only valid for smooth contact logic). [rad]

jointFrictionAngle(=-1)

Defines Coulomb friction on the joint surface. [rad]

jointNormalStiffness(=0.)

Defines the normal stiffness on the joint surface. [Pa/m]

jointShearStiffness(=0.)

Defines the shear stiffness on the joint surface. [Pa/m]

jointTensileStrength(=0.)

Defines the maximum admissible normal force in traction on the joint surface. [Pa]

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

residualFrictionAngle(=-1.)

Defines the residual friction angle (when contacts are not cohesive). residualFrictionAngle=frictionAngle if not specified. [degrees]

tensileStrength(=0.)

Defines the maximum admissible normal force in traction in the matrix (FnMax = tensileStrength * crossSection). [Pa]

type(=0)

If particles of two different types interact, it will be with friction only (no cohesion).[-]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.LinCohesiveElasticMaterial((object)arg1)

Linear Isotropic Elastic material

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poissonratio(=.33)

Poisson ratio. Initially aluminium.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

youngmodulus(=.78e5)

Young’s modulus. Initially aluminium.

class yade.wrapper.LinCohesiveStiffPropDampElastMat((object)arg1)

Elastic material with Rayleigh Damping.

alpha(=0)

Mass propotional damping constant of Rayleigh Damping.

beta(=0)

Stiffness propotional damping constant of Rayleigh Damping.

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poissonratio(=.33)

Poisson ratio. Initially aluminium.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

youngmodulus(=.78e5)

Young’s modulus. Initially aluminium.

class yade.wrapper.LinIsoElastMat((object)arg1)

Linear Isotropic Elastic material

density(=1)

Density of the material.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poissonratio(=.33)

Poisson ratio. Initially aluminium.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

youngmodulus(=.78e5)

Young’s modulus. Initially aluminium.

class yade.wrapper.LinIsoRayleighDampElastMat((object)arg1)

Elastic material with Rayleigh Damping.

alpha(=0)

Mass propotional damping constant of Rayleigh Damping.

beta(=0)

Stiffness propotional damping constant of Rayleigh Damping.

density(=1)

Density of the material.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poissonratio(=.33)

Poisson ratio. Initially aluminium.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

youngmodulus(=.78e5)

Young’s modulus. Initially aluminium.

class yade.wrapper.LudingMat((object)arg1)

Material for simple Luding`s model of contact [Luding2008] ,[Singh2013]_ .

G0(=NaN)

Viscous damping

PhiF(=NaN)

Dimensionless plasticity depth

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=NaN)

Friction angle [rad]

id(=-1, not shared)

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)

k1(=NaN)

Slope of loading plastic branch

kc(=NaN)

Slope of irreversible, tensile adhesive branch

kp(=NaN)

Slope of unloading and reloading limit elastic branch

ks(=NaN)

Shear stiffness

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.MortarMat((object)arg1)

Material for mortar interface, used in Ip2_MortarMat_MortarMat_MortarPhys and Law2_ScGeom_MortarPhys_Lourenco. Default values according to

cohesion(=1e6)

cohesion [Pa]

compressiveStrength(=10e6)

compressiveStrength [Pa]

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

ellAspect(=3)

aspect ratio of elliptical ‘cap’. Value >1 means the ellipse is longer along normal stress axis.

frictionAngle(=.25)

Friction angle

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

neverDamage(=false)

If true, interactions remain elastic regardless stresses

newAssocState() → 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).

poisson(=1)

Shear to normal modulus ratio

tensileStrength(=1e6)

tensileStrength [Pa]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

Normal elastic modulus [Pa]

class yade.wrapper.PolyhedraMat((object)arg1)

Elastic material with Coulomb friction.

IsSplitable(=0)

To be splitted ... or not

Wei_P(=-1)

Weibull Formulation, failure probability, P, [Gladky2017].

Wei_S0(=-1)

Weibull Formulation, Sigma0, Pa, (if negative - disabled), [Gladky2017]

Wei_V0(=1e-9)

Weibull Formulation, V0, m^3, representative volume, [Gladky2017].

Wei_m(=-1)

Weibull Formulation, Weibull modulus, m, (if negative - disabled), [Gladky2017]

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

sigmaCD(=-1)

Mohr-Coulomb failure criterium SigmaCD, Pa, maximal compressive strength (if negative - disabled), [Gladky2017]

sigmaCZ(=-1)

Mohr-Coulomb failure criterium SigmaCZ, Pa, maximal tensile strength (if negative - disabled), [Gladky2017]

strength(=100)

Stress at which polyhedra of volume 4/3*pi [mm] breaks.

strengthTau(=-1)

Tangential stress at which polyhedra of volume 4/3*pi [mm] breaks.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e8)

Young modulus

class yade.wrapper.ViscElCapMat((object)arg1)

Material for extended viscoelastic model of contact with capillary parameters.

Capillar(=false)

True, if capillar forces need to be added.

CapillarType(="")

Different types of capillar interaction: Willett_numeric, Willett_analytic [Willett2000] , Weigert [Weigert1999] , Rabinovich [Rabinov2005] , Lambert (simplified, corrected Rabinovich model) [Lambert2008]

Vb(=0.0)

Liquid bridge volume [m^3]

cn(=NaN)

Normal viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!

cs(=NaN)

Shear viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!

dcap(=0.0)

Damping coefficient for the capillary phase [-]

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

en(=NaN)

Restitution coefficient in normal direction

et(=NaN)

Restitution coefficient in tangential direction

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

gamma(=0.0)

Surface tension [N/m]

id(=-1, not shared)

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)

kn(=NaN)

Normal elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!

ks(=NaN)

Shear elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

mR(=0.0)

Rolling resistance, see [Zhou1999536].

mRtype(=1)

Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536].

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

tc(=NaN)

Contact time

theta(=0.0)

Contact angle [°]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.ViscElMat((object)arg1)

Material for simple viscoelastic model of contact from analytical solution of a pair spheres interaction problem [Pournin2001] .

cn(=NaN)

Normal viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!

cs(=NaN)

Shear viscous constant. Attention, this parameter cannot be set if tc, en or es is defined!

density(=1000)

Density of the material [kg/m³]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

en(=NaN)

Restitution coefficient in normal direction

et(=NaN)

Restitution coefficient in tangential direction

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

kn(=NaN)

Normal elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!

ks(=NaN)

Shear elastic stiffness. Attention, this parameter cannot be set if tc, en or es is defined!

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

mR(=0.0)

Rolling resistance, see [Zhou1999536].

mRtype(=1)

Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536].

newAssocState() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

tc(=NaN)

Contact time

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

class yade.wrapper.WireMat((object)arg1)

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.

as(=0.)

Cross-section area of a single wire used to transform stress into force. [m²]

density(=1000)

Density of the material [kg/m³]

diameter(=0.0027)

Diameter of the single wire in [m] (the diameter is used to compute the cross-section area of the wire).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

frictionAngle(=.5)

Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.

id(=-1, not shared)

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)

isDoubleTwist(=false)

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.

label(=uninitalized)

Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.

lambdaEps(=0.47)

Parameter between 0 and 1 to reduce strain at failure of a double-twisted wire (as used by [Bertrand2008]). [-]

lambdaF(=1.0)

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}}. [-]

lambdak(=0.73)

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). [-]

lambdau(=0.2)

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() → 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).

poisson(=.25)

Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.

seed(=12345)

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. [-]

strainStressValues(=uninitalized)

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!

strainStressValuesDT(=uninitalized)

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]).

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((dict)arg2) → None

Update object attributes from given dictionary

young(=1e9)

elastic modulus [Pa]. It has different meanings depending on the Ip functor.

Bound

digraph Bound {
        rankdir=RL;
        margin=.2;
        "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)"];
}

class yade.wrapper.Bound((object)arg1)

Object bounding part of space taken by associated body; might be larger, used to optimalize collision detection

color(=Vector3r(1, 1, 1))

Color for rendering this object

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

lastUpdateIter(=0)

record iteration of last reference position update (auto-updated)

max(=Vector3r(NaN, NaN, NaN))

Upper corner of box containing this bound (and the Body as well)

min(=Vector3r(NaN, NaN, NaN))

Lower corner of box containing this bound (and the Body as well)

refPos(=Vector3r(NaN, NaN, NaN))

Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)

sweepLength(=0)

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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.Aabb((object)arg1)

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.)

color(=Vector3r(1, 1, 1))

Color for rendering this object

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

lastUpdateIter(=0)

record iteration of last reference position update (auto-updated)

max(=Vector3r(NaN, NaN, NaN))

Upper corner of box containing this bound (and the Body as well)

min(=Vector3r(NaN, NaN, NaN))

Lower corner of box containing this bound (and the Body as well)

refPos(=Vector3r(NaN, NaN, NaN))

Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)

sweepLength(=0)

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((dict)arg2) → None

Update object attributes from given dictionary

Interactions

Interaction

class yade.wrapper.Interaction((object)arg1)

Interaction between pair of bodies.

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() → dict

Return dictionary of attributes.

geom(=uninitalized)

Geometry part of the interaction.

id1(=0)

Id of the first body in this interaction.

id2(=0)

Id of the second body in this interaction.

isActive

True if this interaction is active. Otherwise the forces from this interaction will not be taken into account. True by default.

isReal

True if this interaction has both geom and phys; False otherwise.

iterBorn(=-1)

Step number at which the interaction was added to simulation.

iterMadeReal(=-1)

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

phys(=uninitalized)

Physical (material) part of the interaction.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

IGeom

digraph IGeom {
        rankdir=RL;
        margin=.2;
        "IGeom" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IGeom"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.IGeom((object)arg1)

Geometrical configuration of interaction

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ChCylGeom6D((object)arg1)

Test

bending(=Vector3r::Zero())

Bending at contact as a vector defining axis of rotation and angle (angle=norm).

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

incidentVel((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).

initialOrientation1(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 1 one at initialisation time (auto-updated)

initialOrientation2(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 2 one at initialisation time (auto-updated)

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

twist(=0)

Elastic twist angle (around normal axis) of the contact.

twistCreep(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CylScGeom((object)arg1)

Geometry of a cylinder-sphere contact.

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

end(=Vector3r::Zero())

position of 2nd node (auto-updated)

id3(=0)

id of next chained cylinder (auto-updated)

incidentVel((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).

isDuplicate(=0)

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.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

onNode(=false)

contact on node?

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

relPos(=0)

position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

start(=Vector3r::Zero())

position of 1st node (auto-updated)

trueInt(=-1)

Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CylScGeom6D((object)arg1)

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.

bending(=Vector3r::Zero())

Bending at contact as a vector defining axis of rotation and angle (angle=norm).

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

end(=Vector3r::Zero())

position of 2nd node (auto-updated)

id3(=0)

id of next chained cylinder (auto-updated)

incidentVel((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).

initialOrientation1(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 1 one at initialisation time (auto-updated)

initialOrientation2(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 2 one at initialisation time (auto-updated)

isDuplicate(=0)

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.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

onNode(=false)

contact on node?

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

relPos(=0)

position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

start(=Vector3r::Zero())

position of 1st node (auto-updated)

trueInt(=-1)

Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.

twist(=0)

Elastic twist angle (around normal axis) of the contact.

twistCreep(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.GenericSpheresContact((object)arg1)

Class uniting ScGeom and L3Geom, for the purposes of GlobalStiffnessTimeStepper. (It might be removed in the future). Do not use this class directly.

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.GridCoGridCoGeom((object)arg1)

Geometry of a GridConnection-GridConnection contact.

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

incidentVel((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).

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

relPos1(=0)

position of the contact on the first connection (0: node-, 1:node+) (auto-updated)

relPos2(=0)

position of the contact on the first connection (0: node-, 1:node+) (auto-updated)

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.GridNodeGeom6D((object)arg1)

Geometry of a GridNode-GridNode contact. Inherits almost everything from ScGeom6D.

bending(=Vector3r::Zero())

Bending at contact as a vector defining axis of rotation and angle (angle=norm).

connectionBody(=uninitalized)

Reference to the GridNode Body who is linking the two GridNodes.

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

incidentVel((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).

initialOrientation1(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 1 one at initialisation time (auto-updated)

initialOrientation2(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 2 one at initialisation time (auto-updated)

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

twist(=0)

Elastic twist angle (around normal axis) of the contact.

twistCreep(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.L3Geom((object)arg1)

Geometry of contact given in local coordinates with 3 degress of freedom: normal and two in shear plane. [experimental]

F(=Vector3r::Zero())

Applied force in local coordinates [debugging only, will be removed]

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

trsf(=Matrix3r::Identity())

Transformation (rotation) from global to local coordinates. (the translation part is in GenericSpheresContact.contactPoint)

u(=Vector3r::Zero())

Displacement components, in local coordinates. (auto-updated)

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

  1. by IGeomFunctor, e.g. to take in account large shear displacement value unrepresentable by underlying geomeric algorithm based on quaternions)
  2. by LawFunctor, to account for normal equilibrium position different from zero geometric overlap (set once, just after the interaction is created)
  3. 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.L6Geom((object)arg1)

Geometric of contact in local coordinates with 6 degrees of freedom. [experimental]

F(=Vector3r::Zero())

Applied force in local coordinates [debugging only, will be removed]

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

phi(=Vector3r::Zero())

Rotation components, in local coordinates. (auto-updated)

phi0(=Vector3r::Zero())

Zero rotation, should be always subtracted from phi to get the value. See L3Geom.u0.

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

trsf(=Matrix3r::Identity())

Transformation (rotation) from global to local coordinates. (the translation part is in GenericSpheresContact.contactPoint)

u(=Vector3r::Zero())

Displacement components, in local coordinates. (auto-updated)

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

  1. by IGeomFunctor, e.g. to take in account large shear displacement value unrepresentable by underlying geomeric algorithm based on quaternions)
  2. by LawFunctor, to account for normal equilibrium position different from zero geometric overlap (set once, just after the interaction is created)
  3. 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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.PolyhedraGeom((object)arg1)

Geometry of interaction between 2 vector, including volumetric characteristics

contactPoint(=Vector3r::Zero())

Contact point (global coords), centriod of the overlapping polyhedron

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

equivalentCrossSection(=NaN)

Cross-section area of the overlap (perpendicular to the normal) - not used

equivalentPenetrationDepth(=NaN)

volume / equivalentCrossSection - not used

normal(=Vector3r::Zero())

Normal direction of the interaction

orthonormal_axis(=Vector3r::Zero())

penetrationVolume(=NaN)

Volume of overlap [m³]

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

twist_axis(=Vector3r::Zero())

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ScGeom((object)arg1)

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 interactions (reason for the ‘Sc’ namming); 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.

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

incidentVel((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).

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ScGeom6D((object)arg1)

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.

bending(=Vector3r::Zero())

Bending at contact as a vector defining axis of rotation and angle (angle=norm).

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

incidentVel((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).

initialOrientation1(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 1 one at initialisation time (auto-updated)

initialOrientation2(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 2 one at initialisation time (auto-updated)

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

twist(=0)

Elastic twist angle (around normal axis) of the contact.

twistCreep(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ScGridCoGeom((object)arg1)

Geometry of a GridConnection-Sphere contact.

bending(=Vector3r::Zero())

Bending at contact as a vector defining axis of rotation and angle (angle=norm).

contactPoint(=uninitalized)

some reference point for the interaction (usually in the middle). (auto-computed)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

id3(=0)

id of the first GridNode. (auto-updated)

id4(=0)

id of the second GridNode. (auto-updated)

id5(=-1)

id of the third GridNode. (auto-updated)

incidentVel((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).

initialOrientation1(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 1 one at initialisation time (auto-updated)

initialOrientation2(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Orientation of body 2 one at initialisation time (auto-updated)

isDuplicate(=0)

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.

normal(=uninitalized)

Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)

penetrationDepth(=NaN)

Penetration distance of spheres (positive if overlapping)

refR1(=uninitalized)

Reference radius of particle #1. (auto-computed)

refR2(=uninitalized)

Reference radius of particle #2. (auto-computed)

relAngVel((Interaction)i) → Vector3

Return relative angular velocity of the interaction.

relPos(=0)

position of the contact on the connection (0: node-, 1:node+) (auto-updated)

shearInc(=Vector3r::Zero())

Shear displacement increment in the last step

trueInt(=-1)

Defines the body id of the GridConnection where the contact is real, when ScGridCoGeom::isDuplicate>0.

twist(=0)

Elastic twist angle (around normal axis) of the contact.

twistCreep(=Quaternionr(1.0, 0.0, 0.0, 0.0))

Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

weight(=Vector3r(0, 0, 0))

barycentric coordinates of the projection point (auto-updated)

class yade.wrapper.TTetraGeom((object)arg1)

Geometry of interaction between 2 tetrahedra, including volumetric characteristics

contactPoint(=uninitalized)

Contact point (global coords)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

equivalentCrossSection(=NaN)

Cross-section of the overlap (perpendicular to the axis of least inertia

equivalentPenetrationDepth(=NaN)

??

maxPenetrationDepthA(=NaN)

??

maxPenetrationDepthB(=NaN)

??

normal(=uninitalized)

Normal of the interaction, directed in the sense of least inertia of the overlap volume

penetrationVolume(=NaN)

Volume of overlap [m³]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.TTetraSimpleGeom((object)arg1)

EXPERIMENTAL. Geometry of interaction between 2 tetrahedra

contactPoint(=uninitalized)

Contact point (global coords)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

flag(=0)

TODO

normal(=uninitalized)

Normal of the interaction TODO

penetrationVolume(=NaN)

Volume of overlap [m³]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

IPhys

digraph IPhys {
        rankdir=RL;
        margin=.2;
        "IPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.IPhys"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "ElectrostaticPhys" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.ElectrostaticPhys"];
        "ElectrostaticPhys" -> "CohFrictPhys" [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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.IPhys((object)arg1)

Physical (material) properties of interaction.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.BubblePhys((object)arg1)

Physics of bubble-bubble interactions, for use with BubbleMat

Dmax(=NaN)

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

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() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

fN(=NaN)

Contact normal force

newtonIter(=50)

Maximum number of force iterations allowed

newtonTol(=1e-6)

Convergence criteria for force iterations

normalForce(=Vector3r::Zero())

Normal force

rAvg(=NaN)

Average radius of the two interacting bubbles

surfaceTension(=NaN)

Surface tension of the surrounding liquid

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CapillaryPhys((object)arg1)

Physics (of interaction) for Law2_ScGeom_CapillaryPhys_Capillarity.

Delta1(=0.)

Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)

Delta2(=0.)

Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)

capillaryPressure(=0.)

Value of the capillary pressure Uc. Defined as Ugas-Uliquid, obtained from corresponding Law2 parameter

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

fCap(=Vector3r::Zero())

Capillary force produced by the presence of the meniscus. This is the force acting on particle #2

fusionNumber(=0.)

Indicates the number of meniscii that overlap with this one

isBroken(=false)

Might be set to true by the user to make liquid bridge inactive (capillary force is zero)

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

meniscus(=false)

True when a meniscus with a non-zero liquid volume (vMeniscus) has been computed for this interaction

nn11(=0.)

\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.

nn33(=0.)

\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.

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vMeniscus(=0.)

Volume of the meniscus

class yade.wrapper.CohFrictPhys((object)arg1)
cohesionBroken(=true)

is cohesion active? Set to false at the creation of a cohesive contact, and set to true when a fragile contact is broken

cohesionDisablesFriction(=false)

is shear strength the sum of friction and adhesion or only adhesion?

creep_viscosity(=-1)

creep viscosity [Pa.s/m].

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

fragile(=true)

do cohesion disappear when contact strength is exceeded?

initCohesion(=false)

Initialize the cohesive behaviour with current state as equilibrium state (same as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys::setCohesionNow but acting on only one interaction)

kn(=0)

Normal stiffness

kr(=0)

rotational stiffness [N.m/rad]

ks(=0)

Shear stiffness

ktw(=0)

twist stiffness [N.m/rad]

maxRollPl(=0.0)

Coefficient of rolling friction (negative means elastic).

maxTwistPl(=0.0)

Coefficient of twisting friction (negative means elastic).

momentRotationLaw(=false)

use bending/twisting moment at contacts. See Law2_ScGeom6D_CohFrictPhys_CohesionMoment::always_use_moment_law for details.

moment_bending(=Vector3r(0, 0, 0))

Bending moment

moment_twist(=Vector3r(0, 0, 0))

Twist moment

normalAdhesion(=0)

tensile strength

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearAdhesion(=0)

cohesive part of the shear strength (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction)

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

unp(=0)

plastic normal displacement, only used for tensile behaviour and if CohFrictPhys::fragile =false.

unpMax(=0)

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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CpmPhys((object)arg1)

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.

E(=NaN)

normal modulus (stiffness / crossSection) [Pa]

Fn

Magnitude of normal force (auto-updated)

Fs

Magnitude of shear force (auto-updated)

G(=NaN)

shear modulus [Pa]

crossSection(=NaN)

equivalent cross-section associated with this contact [m²]

cummBetaCount = 0
cummBetaIter = 0
damLaw(=1)

Law for softening part of uniaxial tension. 0 for linear, 1 for exponential (default)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

dmgOverstress(=0)

damage viscous overstress (at previous step or at current step)

dmgRateExp(=0)

exponent in the rate-dependent damage evolution

dmgStrain(=0)

damage strain (at previous or current step)

dmgTau(=-1)

characteristic time for damage (if non-positive, the law without rate-dependence is used)

epsCrackOnset(=NaN)

strain at which the material starts to behave non-linearly

epsFracture(=NaN)

strain at which the bond is fully broken [-]

epsN

Current normal strain (auto-updated)

epsNPl

normal plastic strain (initially zero) (auto-updated)

epsT

Current shear strain (auto-updated)

epsTPl

shear plastic strain (initially zero) (auto-updated)

equivStrainShearContrib(=NaN)

Coefficient of shear contribution to equivalent strain

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

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

isCohesive(=false)

if not cohesive, interaction is deleted when distance is greater than zero.

isoPrestress(=0)

“prestress” of this link (used to simulate isotropic stress)

kappaD

Up to now maximum normal strain (semi-norm), non-decreasing in time (auto-updated)

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

neverDamage(=false)

the damage evolution function will always return virgin state

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

omega

Damage internal variable (auto-updated)

plRateExp(=0)

exponent in the rate-dependent viscoplasticity

plTau(=-1)

characteristic time for viscoplasticity (if non-positive, no rate-dependence for shear)

refLength(=NaN)

initial length of interaction [m]

refPD(=NaN)

initial penetration depth of interaction [m] (used with ScGeom)

relDuctility(=NaN)

Relative ductility of bonds in normal direction

relResidualStrength

Relative residual strength (auto-updated)

setDamage((float)arg2) → None

TODO

setRelResidualStrength((float)arg2) → None

TODO

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

sigmaN

Current normal stress (auto-updated)

sigmaT

Current shear stress (auto-updated)

tanFrictionAngle(=NaN)

tangens of internal friction angle [-]

undamagedCohesion(=NaN)

virgin material cohesion [Pa]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ElectrostaticPhys((object)arg1)

IPhys class containing parameters of ElectrostaticMat. Used by Law2_ScGeom_ElectrostaticPhys.

A

Hamaker Constant A [J]

DebyeLength

Debye Length kappa^-1 [m]

InterConst

Interaction Constant Z [J]

cohesionBroken(=true)

is cohesion active? Set to false at the creation of a cohesive contact, and set to true when a fragile contact is broken

cohesionDisablesFriction(=false)

is shear strength the sum of friction and adhesion or only adhesion?

creep_viscosity(=-1)

creep viscosity [Pa.s/m].

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

eps(=0.001)

Rugosity [-]

fragile(=true)

do cohesion disappear when contact strength is exceeded?

initCohesion(=false)

Initialize the cohesive behaviour with current state as equilibrium state (same as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys::setCohesionNow but acting on only one interaction)

kn(=0)

Normal stiffness

kr(=0)

rotational stiffness [N.m/rad]

ks(=0)

Shear stiffness

ktw(=0)

twist stiffness [N.m/rad]

maxRollPl(=0.0)

Coefficient of rolling friction (negative means elastic).

maxTwistPl(=0.0)

Coefficient of twisting friction (negative means elastic).

momentRotationLaw(=false)

use bending/twisting moment at contacts. See Law2_ScGeom6D_CohFrictPhys_CohesionMoment::always_use_moment_law for details.

moment_bending(=Vector3r(0, 0, 0))

Bending moment

moment_twist(=Vector3r(0, 0, 0))

Twist moment

normalAdhesion(=0)

tensile strength

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearAdhesion(=0)

cohesive part of the shear strength (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction)

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

unp(=0)

plastic normal displacement, only used for tensile behaviour and if CohFrictPhys::fragile =false.

unpMax(=0)

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((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.FrictPhys((object)arg1)

The simple linear elastic-plastic interaction with friction angle, like in the traditional [CundallStrack1979]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.FrictViscoPhys((object)arg1)

Representation of a single interaction of the FrictViscoPM type, storage for relevant parameters

cn(=NaN)

Normal viscous constant defined as \c_{n}=c_{n,crit}\beta_n.

cn_crit(=NaN)

Normal viscous constant for ctitical damping defined as \c_{n}=C_{n,crit}\beta_n.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

normalViscous(=Vector3r::Zero())

Normal viscous component

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.InelastCohFrictPhys((object)arg1)
cohesionBroken(=false)

is cohesion active? will be set false when a fragile contact is broken

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

isBroken(=false)

true if compression plastic fracture achieved

kDam(=0)

Damage coefficient on bending, computed from maximum bending moment reached and pure creep behaviour. Its values will vary between InelastCohFrictPhys::kr and InelastCohFrictPhys::kRCrp .

kRCrp(=0.0)

Bending creep stiffness

kRUnld(=0.0)

Bending plastic unload stiffness

kTCrp(=0.0)

Tension/compression creep stiffness

kTUnld(=0.0)

Tension/compression plastic unload stiffness

kTwCrp(=0.0)

Twist creep stiffness

kTwUnld(=0.0)

Twist plastic unload stiffness

kn(=0)

Normal stiffness

knC(=0)

compression stiffness

knT(=0)

tension stiffness

kr(=0)

bending stiffness

ks(=0)

shear stiffness

ktw(=0)

twist shear stiffness

maxBendMom(=0.0)

Plastic failure bending moment.

maxContract(=0.0)

Plastic failure contraction (shrinkage).

maxCrpRchdB(=Vector3r(0, 0, 0))

maximal bending moment reached on plastic deformation.

maxCrpRchdC(=Vector2r(0, 0))

maximal compression reached on plastic deformation. maxCrpRchdC[0] stores un and maxCrpRchdC[1] stores Fn.

maxCrpRchdT(=Vector2r(0, 0))

maximal extension reached on plastic deformation. maxCrpRchdT[0] stores un and maxCrpRchdT[1] stores Fn.

maxCrpRchdTw(=Vector2r(0, 0))

maximal twist reached on plastic deformation. maxCrpRchdTw[0] stores twist angle and maxCrpRchdTw[1] stores twist moment.

maxElB(=0.0)

Maximum bending elastic moment.

maxElC(=0.0)

Maximum compression elastic force.

maxElT(=0.0)

Maximum tension elastic force.

maxElTw(=0.0)

Maximum twist elastic moment.

maxExten(=0.0)

Plastic failure extension (stretching).

maxTwist(=0.0)

Plastic failure twist angle

moment_bending(=Vector3r(0, 0, 0))

Bending moment

moment_twist(=Vector3r(0, 0, 0))

Twist moment

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

onPlastB(=false)

true if plasticity achieved on bending

onPlastC(=false)

true if plasticity achieved on compression

onPlastT(=false)

true if plasticity achieved on traction

onPlastTw(=false)

true if plasticity achieved on twisting

pureCreep(=Vector3r(0, 0, 0))

Pure creep curve, used for comparison in calculation.

shearAdhesion(=0)

Maximum elastic shear force (cohesion).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

twp(=0)

plastic twist penetration depth describing the equilibrium state.

unp(=0)

plastic normal penetration depth describing the equilibrium state.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.JCFpmPhys((object)arg1)

Representation of a single interaction of the JCFpm type, storage for relevant parameters

FnMax(=0.)

positiv value computed from tensile strength (or joint variant) to define the maximum admissible normal force in traction: Fn >= -FnMax. [N]

FsMax(=0.)

computed from cohesion (or jointCohesion) to define the maximum admissible tangential force in shear, for Fn=0. [N]

breakOccurred(=0)

Flag used to trigger retriangulation as soon as a cohesive bond breaks in FlowEngine (for DFNFlow use only)

checkedForCluster(=false)

Have we checked if this int belongs in cluster?

clusterInts(=uninitalized)

vector of pointers to the broken interactions nearby constituting a cluster

clusteredEvent(=false)

is this interaction part of a cluster?

computedCentroid(=false)

Flag for moment calculation

crackJointAperture(=0.)

Relative displacement between 2 spheres (in case of a crack it is equivalent of the crack aperture)

crossSection(=0.)

crossSection=pi*Rmin^2. [m2]

dict() → dict

Return dictionary of attributes.

dilation(=0.)

defines the normal displacement in the joint after sliding treshold. [m]

dispHierarchy([(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.

dispIndex

Return class index of this instance.

elapsedIter(=0)

number of elapsed iterations for moment calculation

eventNumber(=0)

cluster event number

firstMomentCalc(=true)

Flag for moment calculation

initD(=0.)

equilibrium distance for interacting particles. Computed as the interparticular distance at first contact detection.

interactionsAdded(=false)

have we added the ints associated with this event?

isBroken(=false)

flag for broken interactions

isCohesive(=false)

If false, particles interact in a frictional way. If true, particles are bonded regarding the given cohesion and tensile strength (or their jointed variants).

isOnJoint(=false)

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).

isOnSlot(=false)

defined as true when interaction is located in the perforation slot (surface).

jointCumulativeSliding(=0.)

sliding distance for particles interacting on a joint. Used, when is true, to take into account dilatancy due to shearing. [-]

jointNormal(=Vector3r::Zero())

normal direction to the joint, deduced from e.g. .

kineticEnergy(=0)

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)

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

momentBroken(=false)

Flag for moment calculation

momentCalculated(=false)

Flag for moment calculation

momentCentroid(=Vector3r::Zero())

centroid of the AE event (avg location of clustered breaks)

momentEnergy(=0)

reference strain (or kinetic) energy of surrounding interactions (particles)

momentEnergyChange(=0)

storage of the maximum strain (or kinetic) energy change for surrounding interactions (particles)

momentMagnitude(=0)

Moment magnitude of a failed interaction

more(=false)

specifies if the interaction is crossed by more than 3 joints. If true, interaction is deleted (temporary solution).

nearbyFound(=0)

Count used to debug moment calc

nearbyInts(=uninitalized)

vector of pointers to the nearby ints used for moment calc

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

originalClusterEvent(=false)

the original AE event for a cluster

originalEvent(=uninitalized)

pointer to the original interaction of a cluster

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

strainEnergy(=0)

strain energy of interaction

tanDilationAngle(=0.)

tangent of the angle defining the dilatancy of the joint surface (auto. computed from JCFpmMat.jointDilationAngle). [-]

tanFrictionAngle(=0.)

tangent of Coulomb friction angle for this interaction (auto. computed). [-]

temporalWindow(=0)

temporal window for the clustering algorithm

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.LubricationPhys((object)arg1)

IPhys class for Lubrication w/o FlowEngine. Used by Law2_ScGeom_ImplicitLubricationPhys.

Fn(=0.0)

Normal force of the contact

Fv(=0.0)

Viscous force of the contact

cn(=NaN)

Normal viscous constant

contact(=false)

Spheres in contact

cs(=NaN)

Shear viscous constant

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

eps(=0.001)

Rugosity: fraction of radius used as rugosity [-]

eta(=1)

Fluid viscosity [Pa.s]

kn(=0)

Normal stiffness

kno(=0.0)

Coeficient for normal stiffness

ks(=0)

Shear stiffness

kso(=0.0)

Coeficient for tangeancial stiffness

mR(=0.0)

Rolling resistance, see [Zhou1999536].

mRtype(=1)

Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]

mum(=0.3)

Friction coefficient [-]

normalContactForce(=Vector3r::Zero())

Normal contact force

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

normalLubricationForce(=Vector3r::Zero())

Normal lubrication force

nun(=0.0)

Normal viscosity coefficient

prevDotU(=0)

nu/k*du/dt from previous integration - used for trapezoidal scheme (LubricationPhys::trapezoidalScheme)

prev_un(=0)

un at t-dt [m]

shearContactForce(=Vector3r::Zero())

Frictional contact force

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearLubricationForce(=Vector3r::Zero())

Shear lubrication force

slip(=false)

Slip condition

tangensOfFrictionAngle(=NaN)

tan of angle of friction

u(=-1)

u at t-dt [m]

ue(=0.)

Surface deflection at t-dt [m]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.LudingPhys((object)arg1)

IPhys created from LudingMat, for use with Law2_ScGeom_LudingPhys_Basic.

DeltMax(=NaN)

Maximum overlap between particles for a collision

DeltMin(=NaN)

MinimalDelta value of delta

DeltNull(=NaN)

Force free overlap, plastic contact deformation

DeltPMax(=NaN)

Maximum overlap between particles for the limit case

DeltPNull(=NaN)

Max force free overlap, plastic contact deformation

DeltPrev(=NaN)

Previous value of delta

G0(=NaN)

Viscous damping

PhiF(=NaN)

Dimensionless plasticity depth

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

k1(=NaN)

Slope of loading plastic branch

k2(=NaN)

Slope of unloading and reloading elastic branch

kc(=NaN)

Slope of irreversible, tensile adhesive branch

kn(=0)

Normal stiffness

kp(=NaN)

Slope of unloading and reloading limit elastic branch

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.MindlinCapillaryPhys((object)arg1)

Adds capillary physics to Mindlin’s interaction physics.

Delta1(=0.)

Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)

Delta2(=0.)

Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)

Fs(=Vector2r::Zero())

Shear force in local axes (computed incrementally)

adhesionForce(=0.0)

Force of adhesion as predicted by DMT

alpha(=0.0)

Constant coefficient to define contact viscous damping for non-linear elastic force-displacement relationship.

betan(=0.0)

Normal Damping Ratio. Fraction of the viscous damping coefficient (normal direction) equal to \frac{c_{n}}{C_{n,crit}}.

betas(=0.0)

Shear Damping Ratio. Fraction of the viscous damping coefficient (shear direction) equal to \frac{c_{s}}{C_{s,crit}}.

capillaryPressure(=0.)

Value of the capillary pressure Uc. Defined as Ugas-Uliquid, obtained from corresponding Law2 parameter

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

fCap(=Vector3r::Zero())

Capillary Force produces by the presence of the meniscus. This is the force acting on particle #2

fusionNumber(=0.)

Indicates the number of meniscii that overlap with this one

isAdhesive(=false)

bool to identify if the contact is adhesive, that is to say if the contact force is attractive

isBroken(=false)

Might be set to true by the user to make liquid bridge inactive (capillary force is zero)

isSliding(=false)

check if the contact is sliding (useful to calculate the ratio of sliding contacts)

kn(=0)

Normal stiffness

kno(=0.0)

Constant value in the formulation of the normal stiffness

kr(=0.0)

Rotational stiffness

ks(=0)

Shear stiffness

kso(=0.0)

Constant value in the formulation of the tangential stiffness

ktw(=0.0)

Rotational stiffness

maxBendPl(=0.0)

Coefficient to determine the maximum plastic moment to apply at the contact

meniscus(=false)

True when a meniscus with a non-zero liquid volume (vMeniscus) has been computed for this interaction

momentBend(=Vector3r::Zero())

Artificial bending moment to provide rolling resistance in order to account for some degree of interlocking between particles

momentTwist(=Vector3r::Zero())

Artificial twisting moment (no plastic condition can be applied at the moment)

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

normalViscous(=Vector3r::Zero())

Normal viscous component

prevU(=Vector3r::Zero())

Previous local displacement; only used with Law2_L3Geom_FrictPhys_HertzMindlin.

radius(=NaN)

Contact radius (only computed with Law2_ScGeom_MindlinPhys_Mindlin::calcEnergy)

shearElastic(=Vector3r::Zero())

Total elastic shear force

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearViscous(=Vector3r::Zero())

Shear viscous component

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

usElastic(=Vector3r::Zero())

Total elastic shear displacement (only elastic part)

usTotal(=Vector3r::Zero())

Total elastic shear displacement (elastic+plastic part)

vMeniscus(=0.)

Volume of the meniscus

class yade.wrapper.MindlinPhys((object)arg1)

Representation of an interaction of the Hertz-Mindlin type.

Fs(=Vector2r::Zero())

Shear force in local axes (computed incrementally)

adhesionForce(=0.0)

Force of adhesion as predicted by DMT

alpha(=0.0)

Constant coefficient to define contact viscous damping for non-linear elastic force-displacement relationship.

betan(=0.0)

Normal Damping Ratio. Fraction of the viscous damping coefficient (normal direction) equal to \frac{c_{n}}{C_{n,crit}}.

betas(=0.0)

Shear Damping Ratio. Fraction of the viscous damping coefficient (shear direction) equal to \frac{c_{s}}{C_{s,crit}}.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

isAdhesive(=false)

bool to identify if the contact is adhesive, that is to say if the contact force is attractive

isSliding(=false)

check if the contact is sliding (useful to calculate the ratio of sliding contacts)

kn(=0)

Normal stiffness

kno(=0.0)

Constant value in the formulation of the normal stiffness

kr(=0.0)

Rotational stiffness

ks(=0)

Shear stiffness

kso(=0.0)

Constant value in the formulation of the tangential stiffness

ktw(=0.0)

Rotational stiffness

maxBendPl(=0.0)

Coefficient to determine the maximum plastic moment to apply at the contact

momentBend(=Vector3r::Zero())

Artificial bending moment to provide rolling resistance in order to account for some degree of interlocking between particles

momentTwist(=Vector3r::Zero())

Artificial twisting moment (no plastic condition can be applied at the moment)

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

normalViscous(=Vector3r::Zero())

Normal viscous component

prevU(=Vector3r::Zero())

Previous local displacement; only used with Law2_L3Geom_FrictPhys_HertzMindlin.

radius(=NaN)

Contact radius (only computed with Law2_ScGeom_MindlinPhys_Mindlin::calcEnergy)

shearElastic(=Vector3r::Zero())

Total elastic shear force

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearViscous(=Vector3r::Zero())

Shear viscous component

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

usElastic(=Vector3r::Zero())

Total elastic shear displacement (only elastic part)

usTotal(=Vector3r::Zero())

Total elastic shear displacement (elastic+plastic part)

class yade.wrapper.MortarPhys((object)arg1)

IPhys class containing parameters of MortarMat. Used by Law2_ScGeom_MortarPhys_Lourenco.

cohesion(=NaN)

cohesion [Pa]

compressiveStrength(=NaN)

compressiveStrength [Pa]

crossSection(=NaN)

Crosssection of interaction

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

ellAspect(=NaN)

aspect ratio of elliptical ‘cap’. Value >1 means the ellipse is longer along normal stress axis.

failureCondition((float)arg2, (float)arg3) → bool

Failure condition from normal stress and norm of shear stress (false=elastic, true=damaged)

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

neverDamage(=false)

If true, interactions remain elastic regardless stresses

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

sigmaN

Current normal stress (auto-updated)

sigmaT

Current shear stress (auto-updated)

tangensOfFrictionAngle(=NaN)

tan of angle of friction

tensileStrength(=NaN)

tensileStrength [Pa]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.NormPhys((object)arg1)

Abstract class for interactions that have normal stiffness.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.NormShearPhys((object)arg1)

Abstract class for interactions that have shear stiffnesses, in addition to normal stiffness. This class is used in the PFC3d-style stiffness timestepper.

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.PolyhedraPhys((object)arg1)

Simple elastic material with friction for volumetric constitutive laws

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ViscElCapPhys((object)arg1)

IPhys created from ViscElCapMat, for use with Law2_ScGeom_ViscElCapPhys_Basic.

Capillar(=false)

True, if capillar forces need to be added.

CapillarType(=None_Capillar)

Different types of capillar interaction: Willett_numeric, Willett_analytic, Weigert, Rabinovich, Lambert, Soulie

Fn(=0.0)

Normal force of the contact

Fv(=0.0)

Viscous force of the contact

Vb(=0.0)

Liquid bridge volume [m^3]

cn(=NaN)

Normal viscous constant

cs(=NaN)

Shear viscous constant

dcap(=0.0)

Damping coefficient for the capillary phase [-]

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

gamma(=0.0)

Surface tension [N/m]

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

liqBridgeActive(=false)

Whether liquid bridge is active at the moment

liqBridgeCreated(=false)

Whether liquid bridge was created, only after a normal contact of spheres

mR(=0.0)

Rolling resistance, see [Zhou1999536].

mRtype(=1)

Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

sCrit(=false)

Critical bridge length [m]

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

theta(=0.0)

Contact angle [rad]

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ViscElPhys((object)arg1)

IPhys created from ViscElMat, for use with Law2_ScGeom_ViscElPhys_Basic.

Fn(=0.0)

Normal force of the contact

Fv(=0.0)

Viscous force of the contact

cn(=NaN)

Normal viscous constant

cs(=NaN)

Shear viscous constant

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

mR(=0.0)

Rolling resistance, see [Zhou1999536].

mRtype(=1)

Rolling resistance type, see [Zhou1999536]. mRtype=1 - equation (3) in [Zhou1999536]; mRtype=2 - equation (4) in [Zhou1999536]

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ViscoFrictPhys((object)arg1)

Temporary version of FrictPhys for compatibility reasons

creepedShear(=Vector3r(0, 0, 0))

Creeped force (parallel)

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.WirePhys((object)arg1)

Representation of a single interaction of the WirePM type, storage for relevant parameters

dL(=0.)

Additional wire length for considering the distortion for WireMat type=2 (see [Thoeni2013]).

dict() → dict

Return dictionary of attributes.

dispHierarchy([(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.

dispIndex

Return class index of this instance.

displForceValues(=uninitalized)

Defines the values for force-displacement curve.

initD(=0.)

Equilibrium distance for particles. Computed as the initial inter-particular distance when particle are linked.

isDoubleTwist(=false)

If true the properties of the interaction will be defined as a double-twisted wire.

isLinked(=false)

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).

isShifted(=false)

If true WireMat type=2 and the force-displacement curve will be shifted.

kn(=0)

Normal stiffness

ks(=0)

Shear stiffness

limitFactor(=0.)

This value indicates on how far from failing the wire is, e.g. actual normal displacement divided by admissible normal displacement.

normalForce(=Vector3r::Zero())

Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

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.

shearForce(=Vector3r::Zero())

Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).

stiffnessValues(=uninitalized)

Defines the values for the various stiffnesses (the elastic stiffness is stored as kn).

tangensOfFrictionAngle(=NaN)

tan of angle of friction

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

Global engines

GlobalEngine

digraph GlobalEngine {
        rankdir=RL;
        margin=.2;
        "GlobalEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.GlobalEngine"];
        "Collider" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.Collider"];
        "Collider" -> "GlobalEngine" [arrowsize=0.5,style="setlinewidth(0.5)"];
        "PeriodicEngine" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.PeriodicEngine"];
        "PeriodicEngine" -> "GlobalEngine" [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)"];
        "BoundaryController" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.BoundaryController"];
        "BoundaryController" -> "GlobalEngine" [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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "FieldApplier" [shape="box",fontsize=8,style="setlinewidth(0.5),filled,dashed",fillcolor=grey,height=0.2,URL="yade.wrapper.html#yade.wrapper.FieldApplier"];
        "FieldApplier" -> "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.GlobalEngine((object)arg1)

Engine that will generally affect the whole simulation (contrary to PartialEngine).

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.BoxFactory((object)arg1)

Box geometry of the SpheresFactory region, given by extents and center

PSDcalculateMass(=true)

PSD-Input is in mass (true), otherwise the number of particles will be considered.

PSDcum(=uninitalized)

PSD-dispersion, cumulative procent meanings [-]

PSDsizes(=uninitalized)

PSD-dispersion, sizes of cells, Diameter [m]

blockedDOFs(="")

Blocked degress of freedom

center(=Vector3r(NaN, NaN, NaN))

Center of the region

color(=Vector3r(-1, -1, -1))

Use the color for newly created particles, if specified

dead(=false)

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() → dict

Return dictionary of attributes.

exactDiam(=true)

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.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

extents(=Vector3r(NaN, NaN, NaN))

Extents of the region

goalMass(=0)

Total mass that should be attained at the end of the current step. (auto-updated)

ids(=uninitalized)

ids of created bodies

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

mask(=-1)

groupMask to apply for newly created spheres

massFlowRate(=NaN)

Mass flow rate [kg/s]

materialId(=-1)

Shared material id to use for newly created spheres (can be negative to count from the end)

maxAttempt(=5000)

Maximum number of attempts to position a new sphere randomly.

maxMass(=-1)

Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.

maxParticles(=100)

The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .

normal(=Vector3r(NaN, NaN, NaN))

Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.

normalVel(=Vector3r(NaN, NaN, NaN))

Direction of particle’s velocites.

numParticles(=0)

Cummulative number of particles produces so far (auto-updated)

ompThreads(=-1)

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.

rMax(=NaN)

Maximum radius of generated spheres (uniform distribution)

rMin(=NaN)

Minimum radius of generated spheres (uniform distribution)

silent(=false)

If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).

stopIfFailed(=true)

If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

totalMass(=0)

Mass of spheres that was produced so far. (auto-updated)

totalVolume(=0)

Volume of spheres that was produced so far. (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vAngle(=NaN)

Maximum angle by which the initial sphere velocity deviates from the normal.

vMax(=NaN)

Maximum velocity norm of generated spheres (uniform distribution)

vMin(=NaN)

Minimum velocity norm of generated spheres (uniform distribution)

class yade.wrapper.CapillaryStressRecorder((object)arg1)

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!!!

addIterNum(=false)

Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

file(=uninitalized)

Name of file to save to; must not be empty.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

truncate(=false)

Whether to delete current file contents, if any, when opening (false by default)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.CircularFactory((object)arg1)

Circular geometry of the SpheresFactory region. It can be disk (given by radius and center), or cylinder (given by radius, length and center).

PSDcalculateMass(=true)

PSD-Input is in mass (true), otherwise the number of particles will be considered.

PSDcum(=uninitalized)

PSD-dispersion, cumulative procent meanings [-]

PSDsizes(=uninitalized)

PSD-dispersion, sizes of cells, Diameter [m]

blockedDOFs(="")

Blocked degress of freedom

center(=Vector3r(NaN, NaN, NaN))

Center of the region

color(=Vector3r(-1, -1, -1))

Use the color for newly created particles, if specified

dead(=false)

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() → dict

Return dictionary of attributes.

exactDiam(=true)

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.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

goalMass(=0)

Total mass that should be attained at the end of the current step. (auto-updated)

ids(=uninitalized)

ids of created bodies

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

length(=0)

Length of the cylindrical region (0 by default)

mask(=-1)

groupMask to apply for newly created spheres

massFlowRate(=NaN)

Mass flow rate [kg/s]

materialId(=-1)

Shared material id to use for newly created spheres (can be negative to count from the end)

maxAttempt(=5000)

Maximum number of attempts to position a new sphere randomly.

maxMass(=-1)

Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.

maxParticles(=100)

The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .

normal(=Vector3r(NaN, NaN, NaN))

Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.

normalVel(=Vector3r(NaN, NaN, NaN))

Direction of particle’s velocites.

numParticles(=0)

Cummulative number of particles produces so far (auto-updated)

ompThreads(=-1)

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.

rMax(=NaN)

Maximum radius of generated spheres (uniform distribution)

rMin(=NaN)

Minimum radius of generated spheres (uniform distribution)

radius(=NaN)

Radius of the region

silent(=false)

If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).

stopIfFailed(=true)

If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

totalMass(=0)

Mass of spheres that was produced so far. (auto-updated)

totalVolume(=0)

Volume of spheres that was produced so far. (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vAngle(=NaN)

Maximum angle by which the initial sphere velocity deviates from the normal.

vMax(=NaN)

Maximum velocity norm of generated spheres (uniform distribution)

vMin(=NaN)

Minimum velocity norm of generated spheres (uniform distribution)

class yade.wrapper.CohesiveFrictionalContactLaw((object)arg1)

[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.

always_use_moment_law(=false)

If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts.

creep_viscosity(=false)

creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys...

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

neverErase(=false)

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)

ompThreads(=-1)

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.

shear_creep(=false)

activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

twist_creep(=false)

activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.CpmStateUpdater((object)arg1)

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.

avgRelResidual(=NaN)

Average residual strength at last run.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

maxOmega(=NaN)

Globally maximum damage parameter at last run.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.DomainLimiter((object)arg1)

Delete particles that are out of axis-aligned box given by lo and hi.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

hi(=Vector3r(0, 0, 0))

Upper corner of the domain.

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

lo(=Vector3r(0, 0, 0))

Lower corner of the domain.

mDeleted(=0)

Mass of deleted particles.

mask(=-1)

If mask is defined, only particles with corresponding groupMask will be deleted.

nDeleted(=0)

Cummulative number of particles deleted.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vDeleted(=0)

Volume of deleted spheres (clumps not counted, in that case check mDeleted)

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.ElasticContactLaw((object)arg1)

[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.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

neverErase(=false)

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)

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.FEInternalForceEngine((object)arg1)

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.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

internalforcedispatcher(=new InternalForceDispatcher)

InternalForceDispatcher object that is used for dispatching of element types.

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.FacetTopologyAnalyzer((object)arg1)

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.

commonEdgesFound(=0)

how many common edges were identified during last run. (auto-updated)

commonVerticesFound(=0)

how many common vertices were identified during last run. (auto-updated)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

projectionAxis(=Vector3r::UnitX())

Axis along which to do the initial vertex sort

relTolerance(=1e-4)

maximum distance of ‘identical’ vertices, relative to minimum facet size

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.ForceRecorder((object)arg1)

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.

addIterNum(=false)

Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

file(=uninitalized)

Name of file to save to; must not be empty.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

ids(=uninitalized)

List of bodies whose state will be measured

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

totalForce(=Vector3r::Zero())

Resultant force, returning by the function.

truncate(=false)

Whether to delete current file contents, if any, when opening (false by default)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.ForceResetter((object)arg1)

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.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.GlobalStiffnessTimeStepper((object)arg1)

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.

active(=true)

is the engine active?

dead(=false)

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.

defaultDt(=-1)

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

densityScaling(=false)

(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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

maxDt(=Mathr::MAX_REAL)

if positive, used as max value of the timestep whatever the computed value

ompThreads(=-1)

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.

previousDt(=1)

last computed dt (auto-updated)

targetDt(=1)

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.

timeStepUpdateInterval(=1)

dt update interval

timestepSafetyCoefficient(=0.8)

safety factor between the minimum eigen-period and the final assigned dt (less than 1)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

viscEl(=false)

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.

class yade.wrapper.HydrodynamicsLawLBM((object)arg1)

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

ConvergenceThreshold(=0.000001)

CstBodyForce(=Vector3r::Zero())

A constant body force (=that does not vary in time or space, otherwise the implementation introduces errors)

DemIterLbmIterRatio(=-1)

Ratio between DEM and LBM iterations for subcycling

EndTime(=-1)

the time to stop the simulation

EngineIsActivated(=true)

To activate (or not) the engine

IterMax(=1)

This variable can be used to do several LBM iterations during one DEM iteration.

IterPrint(=1)

Print info on screen every IterPrint iterations

IterSave(=100)

Data are saved every IterSave LBM iteration (or see TimeSave)

IterSubCyclingStart(=-1)

Iteration number when the subcycling process starts

LBMSavedData(=" ")

a list of data that will be saved. Can use velocity,velXY,forces,rho,bodies,nodeBD,newNode,observedptc,observednode,contacts,spheres,bz2

Nu(=0.000001)

Fluid kinematic viscosity

Nx(=1000)

The number of grid division in x direction

ObservedNode(=-1)

The identifier of the node that will be observed (-1 means none)

ObservedPtc(=-1)

The identifier of the particle that will be observed (-1 means the first one)

RadFactor(=1.0)

The radius of DEM particules seen by the LBM is the real radius of particules*RadFactor

Rho(=1000.)

Fluid density

SaveGridRatio(=1)

Grid data are saved every SaveGridRatio * IterSave LBM iteration (with SaveMode=1)

SaveMode(=1)

Save Mode (1-> default, 2-> in time (not yet implemented)

TimeSave(=-1)

Data are saved at constant time interval (or see IterSave)

VbCutOff(=-1)

the minimum boundary velocity that is taken into account

VelocityThreshold(=-1.)

Velocity threshold when removingCriterion=2

WallXm_id(=2)

Identifier of the X- wall

WallXp_id(=3)

Identifier of the X+ wall

WallYm_id(=0)

Identifier of the Y- wall

WallYp_id(=1)

Identifier of the Y+ wall

WallZm_id(=4)

Identifier of the Z- wall

WallZp_id(=5)

Identifier of the Z+ wall

XmBCType(=1)

Boundary condition for the wall in Xm (-1: unused, 1: pressure condition, 2: velocity condition).

XmBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

XmBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

XmYmZmBCType(=-1)

Boundary condition for the corner node XmYmZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).

XmYmZpBCType(=2)

Boundary condition for the corner node XmYmZp (-1: unused, 1: pressure condition, 2: velocity condition).

XmYpZmBCType(=-1)

Boundary condition for the corner node XmYpZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).

XmYpZpBCType(=2)

Boundary condition for the corner node XmYpZp (-1: unused, 1: pressure condition, 2: velocity condition).

XpBCType(=1)

Boundary condition for the wall in Xp (-1: unused, 1: pressure condition, 2: velocity condition).

XpBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

XpBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

XpYmZmBCType(=-1)

Boundary condition for the corner node XpYmZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).

XpYmZpBCType(=2)

Boundary condition for the corner node XpYmZp (-1: unused, 1: pressure condition, 2: velocity condition).

XpYpZmBCType(=-1)

Boundary condition for the corner node XpYpZm (not used with d2q9, -1: unused, 1: pressure condition, 2: velocity condition).

XpYpZpBCType(=2)

Boundary condition for the corner node XpYpZp (-1: unused, 1: pressure condition, 2: velocity condition).

YmBCType(=2)

Boundary condition for the wall in Ym (-1: unused, 1: pressure condition, 2: velocity condition).

YmBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

YmBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

YpBCType(=2)

Boundary condition for the wall in Yp (-1: unused, 1: pressure condition, 2: velocity condition).

YpBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

YpBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

ZmBCType(=-1)

Boundary condition for the wall in Zm (-1: unused, 1: pressure condition, 2: velocity condition).

ZmBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

ZmBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

ZpBCType(=-1)

Boundary condition for the wall in Zp (-1: unused, 1: pressure condition, 2: velocity condition).

ZpBcVel(=Vector3r::Zero())

(!!! not fully implemented !!) The velocity imposed at the boundary

applyForcesAndTorques(=true)

Switch to apply forces and torques

bc(=" ")

Boundary condition

dP(=Vector3r(0., 0., 0.))

Pressure difference between input and output

dead(=false)

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.

defaultLbmInitMode(=0)

Switch between the two initialisation methods

dict() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

model(="d2q9")

The LB model. Until now only d2q9 is implemented

ompThreads(=-1)

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.

periodicity(=" ")

periodicity

removingCriterion(=0)

Criterion to remove a sphere (1->based on particle position, 2->based on particle velocity

tau(=0.6)

Relaxation time

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

useWallXm(=false)

Set true if you want that the LBM see the wall in Xm

useWallXp(=false)

Set true if you want that the LBM see the wall in Xp

useWallYm(=true)

Set true if you want that the LBM see the wall in Ym

useWallYp(=true)

Set true if you want that the LBM see the wall in Yp

useWallZm(=false)

Set true if you want that the LBM see the wall in Zm

useWallZp(=false)

Set true if you want that the LBM see the wall in Zp

zpBcRho(=-1)

(!!! not fully implemented !!) The density imposed at the boundary

class yade.wrapper.Integrator((object)arg1)

Integration Engine Interface.

active(=true)

is the engine active?

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

integrationsteps(=uninitalized)

all integrationsteps count as all succesfull substeps

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

maxVelocitySq(=NaN)

store square of max. velocity, for informative purposes; computed again at every step. (auto-updated)

ompThreads(=-1)

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.

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.

timeStepUpdateInterval(=1)

dt update interval

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.InteractionLoop((object)arg1)

Unified dispatcher for handling interaction 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.

callbacks(=uninitalized)

Callbacks which will be called for every Interaction, if activated.

dead(=false)

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() → dict

Return dictionary of attributes.

eraseIntsInLoop(=false)

Defines if the interaction loop should erase pending interactions, else the collider takes care of that alone (depends on what collider is used).

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

geomDispatcher(=new IGeomDispatcher)

IGeomDispatcher object that is used for dispatch.

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

lawDispatcher(=new LawDispatcher)

LawDispatcher object used for dispatch.

ompThreads(=-1)

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.

physDispatcher(=new IPhysDispatcher)

IPhysDispatcher object used for dispatch.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.Law2_ScGeom_CapillaryPhys_Capillarity((object)arg1)

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.

binaryFusion(=true)

If true, capillary forces are set to zero as soon as, at least, 1 overlap (menisci fusion) is detected. Otherwise fCap = fCap / (fusionNumber + 1 )

capillaryPressure(=0.)

Value of the capillary pressure Uc defined as Uc=Ugas-Uliquid

createDistantMeniscii(=false)

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]

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

fusionDetection(=false)

If true potential menisci overlaps are checked, computing fusionNumber for each capillary interaction, and reducing fCap according to binaryFusion

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

suffCapFiles(="")

Capillary files suffix: M(r=X)suffCapFiles

surfaceTension(=0.073)

Value of considered surface tension

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.MeasureCapStress((object)arg1)

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 expression detailled in [Duriez2016b], [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 aabbExtrema function otherwise.

capStrTens(=Matrix3r::Zero())

The capillary stress tensor itself, equal to capStrTens1 + capStrTens2 + capStrTens3 + capStrTens4. (auto-updated)

capStrTens1(=Matrix3r::Zero())

Wetting fluid volume spherical stress contribution to capStrTens: u_c / V \boldsymbol{\mu_{Vw}} in [Duriez2017c]. (auto-updated)

capStrTens2(=Matrix3r::Zero())

Wetted solid surfaces stress contribution to capStrTens: u_c / V \boldsymbol{\mu_{Ssw}} in [Duriez2017c]. (auto-updated)

capStrTens3(=Matrix3r::Zero())

Wetting/non-wetting interface (e.g. liquid-gas) stress contribution to capStrTens: \gamma_{nw} / V \boldsymbol{\mu_{Snw}} in [Duriez2017c]. (auto-updated)

capStrTens4(=Matrix3r::Zero())

Contact lines stress contribution to capStrTens: \gamma_{nw} / V \boldsymbol{\mu_{\Gamma}} in [Duriez2017c]. (auto-updated)

capillaryPressure(=0)

Capillary pressure u_c, to be defined equal to Law2_ScGeom_CapillaryPhys_Capillarity.capillaryPressure (Pa).

dead(=false)

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.

debug(=0)

To output some debugging messages.

dict() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

surfaceTension(=0.073)

Fluid-fluid surface tension \gamma_{nw}, to be defined equal to Law2_ScGeom_CapillaryPhys_Capillarity.surfaceTension (N/m).

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vLiq(=0)

Wetting fluid volume (m3), summing menisci volumes (faster here than through python loops). (auto-updated)

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

wettAngle(=0)

Wetting, i.e. contact, angle value (radians). To be defined consistenly with the value upon which the capillary files (used by Law2_ScGeom_CapillaryPhys_Capillarity) are founded.

class yade.wrapper.MicroMacroAnalyser((object)arg1)

compute fabric tensor, local porosity, local deformation, and other micromechanicaly defined quantities based on triangulation/tesselation of the packing.

compDeformation(=false)

Is the engine just saving states or also computing and outputing deformations for each increment?

compIncrt(=false)

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).

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

incrtNumber(=1)

interval(=100)

Number of timesteps between analyzed states.

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nonSphereAsFictious(=true)

bodies that are not spheres will be used to defines bounds (else just skipped).

ompThreads(=-1)

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.

outputFile(="MicroMacroAnalysis")

Base name for increment analysis output file.

stateFileName(="state")

Base name of state files.

stateNumber(=0)

A number incremented and appended at the end of output files to reflect increment number.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.NewtonIntegrator((object)arg1)

Engine integrating newtonian motion equations.

damping(=0.2)

damping coefficient for Cundall’s non viscous damping (see numerical damping and [Chareyre2005])

dead(=false)

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.

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() → dict

Return dictionary of attributes.

exactAsphericalRot(=true)

Enable more exact body rotation integrator for aspherical bodies only, using formulation from [Allen1989], pg. 89.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

gravity(=Vector3r::Zero())

Gravitational acceleration (effectively replaces GravityEngine).

kinSplit(=false)

Whether to separately track translational and rotational kinetic energy.

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

mask(=-1)

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.

maxVelocitySq(=NaN)

store square of max. velocity, for informative purposes; computed again at every step. (auto-updated)

ompThreads(=-1)

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.

prevVelGrad(=Matrix3r::Zero())

Store previous velocity gradient (Cell::velGrad) to track acceleration. (auto-updated)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

warnNoForceReset(=true)

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.

class yade.wrapper.PeriodicEngine((object)arg1)

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 interal 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, whiever comes first since it was last run.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.PolyhedraSplitter((object)arg1)

Engine that splits polyhedras.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.PyRunner((object)arg1)

Execute a python command periodically, with defined (and adjustable) periodicity. See PeriodicEngine documentation for details.

command(="")

Command to be run by python interpreter. Not run if empty.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.Recorder((object)arg1)

Engine periodically storing some data to (one) external file. In addition PeriodicEngine, it handles opening the file as needed. See PeriodicEngine for controlling periodicity.

addIterNum(=false)

Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

file(=uninitalized)

Name of file to save to; must not be empty.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

truncate(=false)

Whether to delete current file contents, if any, when opening (false by default)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.ResetRandomPosition((object)arg1)

Creates spheres during simulation, placing them at random positions. Every time called, one new sphere will be created and inserted in the simulation.

angularVelocity(=Vector3r::Zero())

Mean angularVelocity of spheres.

angularVelocityRange(=Vector3r::Zero())

Half size of a angularVelocity distribution interval. New sphere will have random angularVelocity within the range angularVelocity±angularVelocityRange.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

factoryFacets(=uninitalized)

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.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

maxAttempts(=20)

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.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

normal(=Vector3r(0, 1, 0))

??

ompThreads(=-1)

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.

point(=Vector3r::Zero())

??

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

subscribedBodies(=uninitalized)

Affected bodies.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

velocity(=Vector3r::Zero())

Mean velocity of spheres.

velocityRange(=Vector3r::Zero())

Half size of a velocities distribution interval. New sphere will have random velocity within the range velocity±velocityRange.

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

volumeSection(=false, define factory by facets.)

Create new spheres inside factory volume rather than on its surface.

class yade.wrapper.RungeKuttaCashKarp54Integrator((object)arg1)

RungeKuttaCashKarp54Integrator engine.

__init__() → None

object __init__(tuple args, dict kwds)

__init__((list)arg2) → object :
Construct from (possibly nested) list of slaves.
a_dxdt(=1.0)

a_x(=1.0)

abs_err(=1e-6)

Relative integration tolerance

active(=true)

is the engine active?

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

integrationsteps(=uninitalized)

all integrationsteps count as all succesfull substeps

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

maxVelocitySq(=NaN)

store square of max. velocity, for informative purposes; computed again at every step. (auto-updated)

ompThreads(=-1)

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.

rel_err(=1e-6)

Absolute integration tolerance

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.

stepsize(=1e-6)

It is not important for an adaptive integration but important for the observer for setting the found states after integration

timeStepUpdateInterval(=1)

dt update interval

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.SnapshotEngine((object)arg1)

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).

counter(=0)

Number that will be appended to fileBase when the next snapshot is saved (incremented at every save). (auto-updated)

dead(=false)

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.

deadTimeout(=3)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

fileBase(="")

Basename for snapshots

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

format(="PNG")

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.

ignoreErrors(=true)

Only report errors instead of throwing exceptions, in case of timeouts.

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

msecSleep(=0)

number of msec to sleep after snapshot (to prevent 3d hw problems) [ms]

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

plot(=uninitalized)

Name of field in plot.imgData to which taken snapshots will be appended automatically.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

snapshots(=uninitalized)

Files that have been created so far

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.SpheresFactory((object)arg1)

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.

PSDcalculateMass(=true)

PSD-Input is in mass (true), otherwise the number of particles will be considered.

PSDcum(=uninitalized)

PSD-dispersion, cumulative procent meanings [-]

PSDsizes(=uninitalized)

PSD-dispersion, sizes of cells, Diameter [m]

blockedDOFs(="")

Blocked degress of freedom

color(=Vector3r(-1, -1, -1))

Use the color for newly created particles, if specified

dead(=false)

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() → dict

Return dictionary of attributes.

exactDiam(=true)

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.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

goalMass(=0)

Total mass that should be attained at the end of the current step. (auto-updated)

ids(=uninitalized)

ids of created bodies

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

mask(=-1)

groupMask to apply for newly created spheres

massFlowRate(=NaN)

Mass flow rate [kg/s]

materialId(=-1)

Shared material id to use for newly created spheres (can be negative to count from the end)

maxAttempt(=5000)

Maximum number of attempts to position a new sphere randomly.

maxMass(=-1)

Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.

maxParticles(=100)

The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .

normal(=Vector3r(NaN, NaN, NaN))

Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.

normalVel(=Vector3r(NaN, NaN, NaN))

Direction of particle’s velocites.

numParticles(=0)

Cummulative number of particles produces so far (auto-updated)

ompThreads(=-1)

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.

rMax(=NaN)

Maximum radius of generated spheres (uniform distribution)

rMin(=NaN)

Minimum radius of generated spheres (uniform distribution)

silent(=false)

If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).

stopIfFailed(=true)

If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

totalMass(=0)

Mass of spheres that was produced so far. (auto-updated)

totalVolume(=0)

Volume of spheres that was produced so far. (auto-updated)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

vAngle(=NaN)

Maximum angle by which the initial sphere velocity deviates from the normal.

vMax(=NaN)

Maximum velocity norm of generated spheres (uniform distribution)

vMin(=NaN)

Minimum velocity norm of generated spheres (uniform distribution)

class yade.wrapper.SplitPolyMohrCoulomb((object)arg1)

Split polyhedra according to Mohr-Coulomb criterion.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

fileName(="")

Base.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.SplitPolyTauMax((object)arg1)

Split polyhedra along TauMax.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.TesselationWrapper((object)arg1)

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.)

_images/localstrain.png
computeDeformations() → None

compute per-particle deformation. Get it with TesselationWrapper::deformation (id,i,j).

computeVolumes() → None

compute volumes of all Voronoi’s cells.

dead(=false)

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([(str)outputFile='def.vtk']) → None

Write local deformations in vtk format from states 0 and 1.

defToVtkFromPositions([(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([(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((int)id, (int)i, (int)j) → float

Get particle deformation

dict() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

far(=10000.)

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.

getAlphaCaps([(float)alpha=0[, (float)shrinkedAlpha=0[, (bool)fixedAlpha=False]]]) → list

Get the list of area vectors for the polyhedral caps associated to boundary particles (‘extended’ alpha-contour). If alpha is not specified or null the minimum alpha resulting in a unique connected domain is used

getAlphaFaces([(float)alpha=0]) → list

Get the list of alpha faces for a given alpha. If alpha is not specified or null the minimum alpha resulting in a unique connected domain is used

getAlphaGraph([(float)alpha=0[, (float)shrinkedAlpha=0[, (bool)fixedAlpha=False]]]) → list

Get the list of area vectors for the polyhedral caps associated to boundary particles (‘extended’ alpha-contour). If alpha is not specified or null the minimum alpha resulting in a unique connected domain is used

getAlphaVertices([(float)alpha=0]) → list

Get the list of ‘alpha’ bounding spheres for a given alpha. If alpha is not specified or null the minimum alpha resulting in a unique connected domain is used. This function is generating a new alpha shape for each call, not to be used intensively.

getVolPoroDef([(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).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

loadState([(str)inputFile='state'[, (bool)state=0[, (bool)bz2=True]]]) → None

Load a file with positions to define state 0 or 1.

n_spheres(=0)

(auto-computed)

ompThreads(=-1)

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([(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([(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.

testAlphaShape([(float)alpha=0]) → None

transitory function, testing AlphaShape feature

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

triangulate([(bool)reset=True]) → None

triangulate spheres of the packing

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

volume([(int)id=0]) → float

Returns the volume of Voronoi’s cell of a sphere.

class yade.wrapper.TetraVolumetricLaw((object)arg1)

Calculate physical response of 2 tetrahedra in interaction, based on penetration configuration given by TTetraGeom.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.TimeStepper((object)arg1)

Engine defining time-step (fundamental class)

active(=true)

is the engine active?

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timeStepUpdateInterval(=1)

dt update interval

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.TorqueRecorder((object)arg1)

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.

addIterNum(=false)

Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

file(=uninitalized)

Name of file to save to; must not be empty.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

ids(=uninitalized)

List of bodies whose state will be measured

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

rotationAxis(=Vector3r::UnitX())

Rotation axis

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

totalTorque(=0)

Resultant torque, returning by the function.

truncate(=false)

Whether to delete current file contents, if any, when opening (false by default)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

zeroPoint(=Vector3r::Zero())

Point of rotation center

class yade.wrapper.TriaxialStateRecorder((object)arg1)

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).

addIterNum(=false)

Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

file(=uninitalized)

Name of file to save to; must not be empty.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

porosity(=1)

porosity of the packing [-]

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

truncate(=false)

Whether to delete current file contents, if any, when opening (false by default)

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

class yade.wrapper.VTKRecorder((object)arg1)

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.

Key(="")

Necessary if recorders contains ‘cracks’. A string specifying the name of file ‘cracks___.txt’ that is considered in this case (see corresponding attribute).

ascii(=false)

Store data as readable text in the XML file (sets vtkXMLWriter data mode to vtkXMLWriter::Ascii, while the default is Appended

compress(=false)

Compress output XML files [experimental].

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

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.

firstIterRun(=0)

Sets the step number, at each an engine should be executed for the first time (disabled by default).

initRun(=false)

Run the first time we are called as well.

iterLast(=0)

Tracks step number of last run (auto-updated).

iterPeriod(=0, deactivated)

Periodicity criterion using step number (deactivated if <= 0)

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

mask(=0)

If mask defined, only bodies with corresponding groupMask will be exported. If 0, all bodies will be exported.

multiblock(=false)

Use multi-block (.vtm) files to store data, rather than separate .vtu files.

nDo(=-1, deactivated)

Limit number of executions by this number (deactivated if negative)

nDone(=0)

Track number of executions (cummulative) (auto-updated).

ompThreads(=-1)

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.

realLast(=0)

Tracks real time of last run (auto-updated).

realPeriod(=0, deactivated)

Periodicity criterion using real (wall clock, computation, human) time (deactivated if <=0)

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 if spheres is active.
mass
Saves masses (field mass) of spheres; active only if spheres is active.
clumpId
Saves id’s of clumps to which each sphere belongs (field clumpId); active only if spheres is active.
colors
Saves colors of spheres and of facets (field color); only active if spheres or facets are activated.
mask
Saves groupMasks of spheres and of facets (field mask); only active if spheres or facets are activated.
materialId
Saves materialID of spheres and of facets; only active if spheres or facets are activated.
coordNumber
Saves coordination number (number of neighbours) of spheres and of facets; only active if spheres or facets are activated.
velocity
Saves linear and angular velocities of spherical particles as Vector3 and length(fields linVelVec, linVelLen and angVelVec, angVelLen respectively``); only effective with spheres.
stress
Saves stresses of spheres and of facets as Vector3 and length; only active if spheres or facets are activated.
force
Saves force and torque of spheres, facets and boxes as Vector3 and length (norm); only active if spheres, facets or boxes are activated.
pericell
Saves the shape of the cell (simulation has to be periodic).
bstresses
Saves per-particle principal stresses (sigI >= sigII >= sigIII) and associated principal directions (dirI/II/III). Per-particle stress tensors are given by bodyStressTensors (positive values for tensile states).

Specific recorders

The following should only be activated in appropriate cases, 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 by cpm
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 by jcfpm, 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.

skipFacetIntr(=true)

Skip interactions that are not of sphere-sphere type (e.g. sphere-facet, sphere-box...), when saving interactions

skipNondynamic(=false)

Skip non-dynamic spheres (but not facets).

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

virtLast(=0)

Tracks virtual time of last run (auto-updated).

virtPeriod(=0, deactivated)

Periodicity criterion using virtual (simulation) time (deactivated if <= 0)

BoundaryController

digraph BoundaryController {
        rankdir=RL;
        margin=.2;
        "BoundaryController" [shape="box",fontsize=8,style="setlinewidth(0.5),solid",height=0.2,URL="yade.wrapper.html#yade.wrapper.BoundaryController"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
        "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)"];
}

class yade.wrapper.BoundaryController((object)arg1)

Base for engines controlling boundary conditions of simulations. Not to be used directly.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

ompThreads(=-1)

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.

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

class yade.wrapper.Disp2DPropLoadEngine((object)arg1)

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).

Key(="")

string to add at the names of the saved files, and of the output file filled by saveData

LOG(=false)

boolean controling the output of messages on the screen

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

id_boxback(=4)

the id of the wall at the back of the sample

id_boxbas(=1)

the id of the lower wall

id_boxfront(=5)

the id of the wall in front of the sample

id_boxleft(=0)

the id of the left wall

id_boxright(=2)

the id of the right wall

id_topbox(=3)

the id of the upper wall

label(=uninitalized)

Textual label for this object; must be valid python identifier, you can refer to it directly from python.

nbre_iter(=0)

the number of iterations of loading to perform

ompThreads(=-1)

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.

theta(=0.0)

the angle, in a (gamma,h=-u) plane from the gamma - axis to the perturbation vector (trigo wise) [degrees]

timingDeltas

Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==True.

updateAttrs((dict)arg2) → None

Update object attributes from given dictionary

v(=0.0)

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]

class yade.wrapper.KinemCNDEngine((object)arg1)

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.

Key(="")

string to add at the names of the saved files

LOG(=false)

boolean controling the output of messages on the screen

alpha(=Mathr::PI/2.0)

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.

dead(=false)

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() → dict

Return dictionary of attributes.

execCount

Cummulative count this engine was run (only used if O.timingEnabled==True).

execTime

Cummulative time this Engine took to run (only used if O.timingEnabled==True).

f0(=0.0)

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.

firstRun(=true)

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.