yade.plot module¶
Module containing utility functions for plotting inside yade. See examples/simple-scene/simple-scene-plot.py or examples/concrete/uniax.py for example of usage.
- class yade.plot.Aabb(inherits Bound → Serializable)¶
Axis-aligned bounding box, for use with InsertionSortCollider. (This class is quasi-redundant since min,max are already contained in Bound itself. That might change at some point, though.)
- property color¶
Color for rendering this object
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Bound)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property lastUpdateIter¶
record iteration of last reference position update (auto-updated)
- property refPos¶
Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)
- property sweepLength¶
The length used to increase the bounding boxe size, can be adjusted on the basis of previous displacement if BoundDispatcher::targetInterv>0. (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.AlignedBox2¶
Axis-aligned box object in 2d, defined by its minimum and maximum corners
- __init__((object)arg1) None ¶
__init__( (object)arg1, (AlignedBox2)other) -> None
__init__( (object)arg1, (Vector2)min, (Vector2)max) -> None
- clamp((AlignedBox2)arg1, (AlignedBox2)arg2) None ¶
- contains((AlignedBox2)arg1, (Vector2)arg2) bool ¶
contains( (AlignedBox2)arg1, (AlignedBox2)arg2) -> bool
- empty((AlignedBox2)arg1) bool ¶
- extend((AlignedBox2)arg1, (Vector2)arg2) None ¶
extend( (AlignedBox2)arg1, (AlignedBox2)arg2) -> None
- intersection((AlignedBox2)arg1, (AlignedBox2)arg2) AlignedBox2 ¶
- property max¶
- merged((AlignedBox2)arg1, (AlignedBox2)arg2) AlignedBox2 ¶
- property min¶
- volume((AlignedBox2)arg1) float ¶
- class yade.plot.AlignedBox3¶
Axis-aligned box object, defined by its minimum and maximum corners
- __init__((object)arg1) None ¶
__init__( (object)arg1, (AlignedBox3)other) -> None
__init__( (object)arg1, (Vector3)min, (Vector3)max) -> None
- clamp((AlignedBox3)arg1, (AlignedBox3)arg2) None ¶
- contains((AlignedBox3)arg1, (Vector3)arg2) bool ¶
contains( (AlignedBox3)arg1, (AlignedBox3)arg2) -> bool
- empty((AlignedBox3)arg1) bool ¶
- extend((AlignedBox3)arg1, (Vector3)arg2) None ¶
extend( (AlignedBox3)arg1, (AlignedBox3)arg2) -> None
- intersection((AlignedBox3)arg1, (AlignedBox3)arg2) AlignedBox3 ¶
- property max¶
- merged((AlignedBox3)arg1, (AlignedBox3)arg2) AlignedBox3 ¶
- property min¶
- volume((AlignedBox3)arg1) float ¶
- class yade.plot.AttrFlags¶
- __init__()¶
- as_integer_ratio()¶
Return a pair of integers, whose ratio is equal to the original int.
The ratio is in lowest terms and has a positive denominator.
>>> (10).as_integer_ratio() (10, 1) >>> (-10).as_integer_ratio() (-10, 1) >>> (0).as_integer_ratio() (0, 1)
- bit_count()¶
Number of ones in the binary representation of the absolute value of self.
Also known as the population count.
>>> bin(13) '0b1101' >>> (13).bit_count() 3
- bit_length()¶
Number of bits necessary to represent self in binary.
>>> bin(37) '0b100101' >>> (37).bit_length() 6
- conjugate()¶
Returns self, the complex conjugate of any int.
- denominator¶
the denominator of a rational number in lowest terms
- from_bytes(byteorder='big', *, signed=False)¶
Return the integer represented by the given array of bytes.
- bytes
Holds the array of bytes to convert. The argument must either support the buffer protocol or be an iterable object producing bytes. Bytes and bytearray are examples of built-in objects that support the buffer protocol.
- byteorder
The byte order used to represent the integer. If byteorder is ‘big’, the most significant byte is at the beginning of the byte array. If byteorder is ‘little’, the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder’ as the byte order value. Default is to use ‘big’.
- signed
Indicates whether two’s complement is used to represent the integer.
- imag¶
the imaginary part of a complex number
- is_integer()¶
Returns True. Exists for duck type compatibility with float.is_integer.
- name¶
- names = {'noResize': yade.wrapper.AttrFlags.noResize, 'noSave': yade.wrapper.AttrFlags.noSave, 'readonly': yade.wrapper.AttrFlags.readonly, 'triggerPostLoad': yade.wrapper.AttrFlags.triggerPostLoad}¶
- noResize = yade.wrapper.AttrFlags.noResize¶
- noSave = yade.wrapper.AttrFlags.noSave¶
- numerator¶
the numerator of a rational number in lowest terms
- readonly = yade.wrapper.AttrFlags.readonly¶
- real¶
the real part of a complex number
- to_bytes(length=1, byteorder='big', *, signed=False)¶
Return an array of bytes representing an integer.
- length
Length of bytes object to use. An OverflowError is raised if the integer is not representable with the given number of bytes. Default is length 1.
- byteorder
The byte order used to represent the integer. If byteorder is ‘big’, the most significant byte is at the beginning of the byte array. If byteorder is ‘little’, the most significant byte is at the end of the byte array. To request the native byte order of the host system, use `sys.byteorder’ as the byte order value. Default is to use ‘big’.
- signed
Determines whether two’s complement is used to represent the integer. If signed is False and a negative integer is given, an OverflowError is raised.
- triggerPostLoad = yade.wrapper.AttrFlags.triggerPostLoad¶
- values = {1: yade.wrapper.AttrFlags.noSave, 2: yade.wrapper.AttrFlags.readonly, 4: yade.wrapper.AttrFlags.triggerPostLoad, 16: yade.wrapper.AttrFlags.noResize}¶
- class yade.plot.AxialGravityEngine(inherits FieldApplier → GlobalEngine → Engine → Serializable)¶
Apply acceleration (independent of distance) directed towards an axis.
- property acceleration¶
Acceleration magnitude [kgms⁻²]
- property axisDirection¶
direction of the gravity axis (will be normalized automatically)
- property axisPoint¶
Point through which the axis is passing.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property mask¶
If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BicyclePedalEngine(inherits KinematicEngine → PartialEngine → Engine → Serializable)¶
Engine applying the linear motion of
bicycle pedal
e.g. moving points around the axis without rotation- property angularVelocity¶
Angular velocity. [rad/s]
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property fi¶
Initial phase [radians]
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property radius¶
Rotation radius. [m]
- property rotationAxis¶
Axis of rotation (direction); will be normalized automatically.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BlockGen(inherits FileGenerator → Serializable)¶
Prepare a scene for Block Generation using the Potential Blocks.
- property Kn¶
Volumetric contact normal stiffness
- property Ks¶
Volumetric contact shear stiffness
- property RForPP¶
R in Potential Particles
- property Talesnick¶
Whether to choose the Talesnick contact law, used for validating code previously against model test
- property boundaries¶
Whether to check for filename boundaries
- property boundarySizeXmax¶
Max X of domain
- property boundarySizeXmin¶
Min X of domain
- property boundarySizeYmax¶
Max Y of domain
- property boundarySizeYmin¶
Min Y of domain
- property boundarySizeZmax¶
Max Z of domain
- property boundarySizeZmin¶
Min Z of domain
- property calContactArea¶
Whether to calculate jointLength for 2-D contacts and contactArea for 2-D and 3-D contacts
- property color¶
color of generated blocks (random color will be assigned to each sub-block if a color is not specified)
- property dampingMomentum¶
Coefficient of global damping
- property defaultDt¶
Max time-step. Used as initial value if defined. Later adjusted by the time stepper
- property density¶
Density of blocks
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property directionA¶
Local x-direction to check minSize
- property directionB¶
Local y-direction to check minSize
- property directionC¶
Local z-direction to check minSize
- property exactRotation¶
Whether to handle the rotational motion of aspherical bodies more accurately
- property filenameBoundaries¶
filename to look for joint with probabilistic models
- property filenameOpening¶
filename to look for joint outline of joints
- property filenamePersistentPlanes¶
filename to look for joint properties
- property filenameProbabilistic¶
filename to look for joint with probabilistic models
- property filenameSliceBoundaries¶
filename to look for joint outline of joints
- property filenameSlopeFace¶
filename to look for joint outline of joints
- property frictionDeg¶
Friction angle [°]
- generate((FileGenerator)arg1, (str)out) None : ¶
Generate scene, save to given file
- property globalOrigin¶
Global origin (reference point) for the discontinuities to be imposed
- property gravity¶
Gravity
- property inertiaFactor¶
Scaling of inertia
- property initialOverlap¶
Initial overlap between blocks
- property intactRockDegradation¶
Whether to activate degradation of parameters for contact
- property jointProbabilistic¶
Whether to check for filename jointProbabilistic
- property joint_a¶
Introduce discontinuities from Python: List of a coefficients of plane normals
- property joint_b¶
Introduce discontinuities from Python: List of b coefficients of plane normals
- property joint_c¶
Introduce discontinuities from Python: List of c coefficients of plane normals
- property joint_d¶
Introduce discontinuities from Python: List of d coefficients of plane equations
- property kForPP¶
k in Potential Particles
- load((FileGenerator)arg1) None : ¶
Generate scene, save to temporary file and load immediately
- property maxRatio¶
Minimum ratio for all blocks
- property minSize¶
Minimum size for all blocks
- property neverErase¶
Whether to erase non interacting contacts
- property opening¶
Whether to check for filename opening
- property outputFile¶
Filename where the data of the block generation are saved. Leave blank if an output file is not needed
- property persistentPlanes¶
Whether to check persistence
- property probabilisticOrientation¶
Whether to generate rock joints randomly
- property rForPP¶
r in Potential Particles
- property saveBlockGenData¶
Whether to write the data of the block generation in a text file (if true) or display on the terminal (if false)
- property shrinkFactor¶
Ratio to shrink r
- property sliceBoundaries¶
Whether to check for filename sliceBoundaries
- property slopeFace¶
Whether to check for filename slopeFace
- property timeStepUpdateInterval¶
Interval for GlobalStiffnessTimeStepper
- property traceEnergy¶
Whether to calculate energy terms (elastic potential energy (normal and shear), plastic dissipation due to friction and dissipation of energy (normal and tangential) due to viscous damping)
- property twoDimension¶
Whether the model is 2D
- property unitWidth2D¶
Unit width in 2D (out of plane distance)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property useFaceProperties¶
Whether to use face properties
- property useGlobalStiffnessTimeStepper¶
Whether to use GlobalStiffnessTimeStepper
- property viscousDamping¶
Viscous damping
- class yade.plot.Bo1_Box_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Create/update an Aabb of a Box.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_ChainedCylinder_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from ChainedCylinder.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Cylinder_Cylinder_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Cylinder_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from Cylinder.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Cylinder_Cylinder_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_DeformableElement_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from DeformableElement.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Facet_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Creates/updates an Aabb of a Facet.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_FluidDomainBbox_Aabb(inherits BoundFunctor → Functor → Serializable)¶
creates/updates an Aabb of a FluidDomainBbox.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_GridConnection_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from a GridConnection.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_LevelSet_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Creates/updates an Aabb of a LevelSet
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Node_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from Node.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_PFacet_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from a PFacet.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Polyhedra_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Create/update Aabb of a Polyhedra
- property aabbEnlargeFactor¶
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Sphere_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Functor creating Aabb from Sphere.
- property aabbEnlargeFactor¶
Relative enlargement of the bounding box; deactivated if negative.
Note
This attribute is used to create distant interaction, but is only meaningful with an IGeomFunctor which will not simply discard such interactions: Ig2_Sphere_Sphere_ScGeom::interactionDetectionFactor should have the same value as aabbEnlargeFactor.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Subdomain_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Creates/updates an Aabb of a Subdomain (mpi parallel simulations).
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Tetra_Aabb(inherits BoundFunctor → Functor → Serializable)¶
-
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Bo1_Wall_Aabb(inherits BoundFunctor → Functor → Serializable)¶
Creates/updates an Aabb of a Wall
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Body(inherits Serializable)¶
A particle, basic element of simulation; interacts with other bodies.
- property aspherical¶
Whether this body has different inertia along principal axes; NewtonIntegrator makes use of this flag to call rotation integration routine for aspherical bodies, which is more expensive.
- property bounded¶
Whether this body should have Body.bound created. Note that bodies without a bound do not participate in collision detection. (In c++, use
Body::isBounded
/Body::setBounded
)
- property clumpId¶
Id of clump this body makes part of; invalid number if not part of clump; see Body::isStandalone, Body::isClump, Body::isClumpMember properties.
Not meant to be modified directly from Python, use O.bodies.appendClumped instead.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property dynamic¶
Whether this body will be moved by forces. (In c++, use
Body::isDynamic
/Body::setDynamic
)
- property flags¶
Bits of various body-related flags. Do not access directly. In c++, use isDynamic/setDynamic, isBounded/setBounded, isAspherical/setAspherical. In python, use Body.dynamic, Body.bounded, Body.aspherical.
- property groupMask¶
Bitmask for interaction detection purposes: it is required that two bodies have at least one bit in common in their groupMask for their interaction to be possible from the Collider point of view.
- property id¶
Unique id of this body.
- intrs((Body)arg1) list : ¶
Return list of all real interactions in which this body participates.
- property isClump¶
True if this body is clump itself, false otherwise.
- property isClumpMember¶
True if this body is clump member, false otherwise.
- property isFluidDomainBox¶
Whether this body is a Fluid grid bounding box should have Body.bound created. FluidDomainBboxes` do not participate to collision detection with their own bodies, they may interact with external bodies and other subdomains through virtual interactions. (In c++, use
Body::getIsFluidDomainBbox
/Body::setIsFluidDomainBbox
)
- property isStandalone¶
True if this body is neither clump, nor clump member; false otherwise.
- property isSubdomain¶
Whether this body is a subdomain should have Body.bound created. Subdomains` do not participate to collision detection with their own bodies, they may interact with external bodies and other subdomains through virtual interactions. (In c++, use
Body::getIsSubdomain
/Body::setIsSubdomain
)
- property iterBorn¶
Step number at which the body was added to simulation.
- property mask¶
Shorthand for Body::groupMask
- property mat¶
Shorthand for Body::material
- property subdomain¶
the subdomain this body belongs to.
- property timeBorn¶
Time at which the body was added to simulation.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BodyContainer¶
- __init__((object)arg1, (BodyContainer)arg2) None ¶
- addToClump((BodyContainer)arg1, (object)arg2, (int)arg3[, (int)discretization=0]) None : ¶
Add body b (or a list of bodies) to an existing clump c. c must be clump and b may not be a clump member of c. Clump masses and inertia are adapted automatically (for details see clump()).
See examples/clumps/addToClump-example.py for an example script.
Note
If b is a clump itself, then all members will be added to c and b will be deleted. If b is a clump member of clump d, then all members from d will be added to c and d will be deleted. If you need to add just clump member b, release this member from d first.
- append((BodyContainer)arg1, (Body)arg2) int : ¶
Append one Body instance, return its id.
- append( (BodyContainer)arg1, (object)arg2) -> object :
Append list of Body instance, return list of ids
- appendClumped((BodyContainer)arg1, (object)arg2[, (int)discretization=0]) tuple : ¶
Append given list of bodies as a clump (rigid aggregate); returns a tuple of
(clumpId,[memberId1,memberId2,...])
. Clump masses and inertia are computed automatically depending upon discretization (for details see clump()).
- clear((BodyContainer)arg1) None : ¶
Remove all bodies (interactions not checked)
- clump((BodyContainer)arg1, (object)arg2[, (int)discretization=0]) int : ¶
Clump given bodies together (creating a rigid aggregate); returns
clumpId
. A precise definition of clump masses and inertia when clump members overlap requires spherical members together with discretization>0 and is achieved in this case by integration/summation over mass points using a regular grid of cells (grid cells length is defined as \(L_{min}/discretization\), where \(L_{min}\) is the minimum length of an Axis-Aligned Bounding Box. If *discretization*<=0 sum of inertias from members is simply used, which is faster but accurate only for non-overlapping members).
- deleteClumpBody((BodyContainer)arg1, (Body)arg2) None : ¶
Erase clump member.
- deleteClumpMember((BodyContainer)arg1, (Body)arg2, (Body)arg3) None : ¶
Erase clump member.
- property enableRedirection¶
let collider switch to optimized algorithm with body redirection when bodies are erased - true by default
- erase((BodyContainer)arg1, (int)arg2[, (bool)eraseClumpMembers=0]) bool : ¶
Erase body with the given id; all interaction will be deleted by InteractionLoop in the next step. If a clump is erased use O.bodies.erase(clumpId,True) to erase the clump AND its members.
- getRoundness((BodyContainer)arg1[, (list)excludeList=[]]) float : ¶
Returns roundness coefficient RC = R2/R1. R1 is the equivalent sphere radius of a clump. R2 is the minimum radius of a sphere, that imbeds the clump. If just spheres are present RC = 1. If clumps are present 0 < RC < 1. Bodies can be excluded from the calculation by giving a list of ids: O.bodies.getRoundness([ids]).
See examples/clumps/replaceByClumps-example.py for an example script.
- insertAtId((BodyContainer)arg1, (Body)arg2, (int)insertatid) int : ¶
Insert a body at theid, (no body should exist in this id)
- releaseFromClump((BodyContainer)arg1, (int)arg2, (int)arg3[, (int)discretization=0]) None : ¶
Release body b from clump c. b must be a clump member of c. Clump masses and inertia are adapted automatically (for details see clump()).
See examples/clumps/releaseFromClump-example.py for an example script.
Note
If c contains only 2 members b will not be released and a warning will appear. In this case clump c should be erased.
- replace((BodyContainer)arg1, (object)arg2) object ¶
- replaceByClumps((BodyContainer)arg1, (list)arg2, (object)arg3[, (int)discretization=0]) list : ¶
Replace spheres by clumps using a list of clump templates and a list of amounts; returns a list of tuples:
[(clumpId1,[memberId1,memberId2,...]),(clumpId2,[memberId1,memberId2,...]),...]
. A new clump will have the same volume as the sphere, that was replaced. Clump masses and inertia are adapted automatically (for details see clump()).O.bodies.replaceByClumps( [utils.clumpTemplate([1,1],[.5,.5])] , [.9] ) #will replace 90 % of all standalone spheres by ‘dyads’
See examples/clumps/replaceByClumps-example.py for an example script.
- subdomainBodies((BodyContainer)arg1) object : ¶
id’s of bodies with bounds in MPI subdomain
- updateClumpProperties((BodyContainer)arg1[, (list)excludeList=[][, (int)discretization=5]]) None : ¶
Manually force Yade to update clump properties mass, volume and inertia (for details of ‘discretization’ value see clump()). Can be used, when clumps are modified or erased during a simulation. Clumps can be excluded from the calculation by giving a list of ids: O.bodies.updateProperties([ids]).
- property useRedirection¶
true if the scene uses up-to-date lists for boundedBodies and realBodies; turned true automatically 1/ after removal of bodies if enableRedirection=True , and 2/ in MPI execution. (auto-updated)
- class yade.plot.BodyIterator¶
- __init__((object)arg1, (BodyIterator)arg2) None ¶
- next()¶
__next__( (BodyIterator)arg1) -> Body
- class yade.plot.Bound(inherits Serializable)¶
Object bounding part of space taken by associated body; might be larger, used to optimalize collision detection
- property color¶
Color for rendering this object
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Bound)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property lastUpdateIter¶
record iteration of last reference position update (auto-updated)
- property refPos¶
Reference position, updated at current body position each time the bound dispatcher update bounds (auto-updated)
- property sweepLength¶
The length used to increase the bounding boxe size, can be adjusted on the basis of previous displacement if BoundDispatcher::targetInterv>0. (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BoundDispatcher(inherits Dispatcher → Engine → Serializable)¶
Dispatcher calling functors based on received argument type(s).
- property activated¶
Whether the engine is activated (only should be changed by the collider)
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispFunctor((BoundDispatcher)arg1, (Shape)arg2) BoundFunctor : ¶
Return functor that would be dispatched for given argument(s); None if no dispatch; ambiguous dispatch throws.
- dispMatrix((BoundDispatcher)arg1[, (bool)names=True]) dict : ¶
Return dictionary with contents of the dispatch matrix.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property functors¶
Functors associated with this dispatcher.
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property minSweepDistFactor¶
Minimal distance by which enlarge all bounding boxes; superseeds computed value of sweepDist when lower that (minSweepDistFactor x sweepDist). Updated by the collider. (auto-updated).
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property sweepDist¶
Distance by which enlarge all bounding boxes, to prevent collider from being run at every step (only should be changed by the collider).
- property targetInterv¶
see InsertionSortCollider::targetInterv (auto-updated)
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property updatingDispFactor¶
see InsertionSortCollider::updatingDispFactor (auto-updated)
- class yade.plot.BoundFunctor(inherits Functor → Serializable)¶
Functor for creating/updating Body::bound.
- property bases¶
Ordered list of types (as strings) this functor accepts.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property label¶
Textual label for this object; must be a valid python identifier, you can refer to it directly from python.
- property timingDeltas¶
Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BoundaryController(inherits GlobalEngine → Engine → Serializable)¶
Base for engines controlling boundary conditions of simulations. Not to be used directly.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Box(inherits Shape → Serializable)¶
- property color¶
Color for rendering (normalized RGB).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property extents¶
Half-size of the cuboid
- property highlight¶
Whether this Shape will be highlighted when rendered.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.BoxFactory(inherits SpheresFactory → GlobalEngine → Engine → Serializable)¶
Box geometry of the SpheresFactory region, given by extents and center
- property PSDcalculateMass¶
PSD-Input is in mass (true), otherwise the number of particles will be considered.
- property PSDcum¶
PSD-dispersion, cumulative procent meanings [-]
- property PSDsizes¶
PSD-dispersion, sizes of cells, Diameter [m]
- property blockedDOFs¶
Blocked degress of freedom
- property center¶
Center of the region
- property color¶
Use the color for newly created particles, if specified
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property exactDiam¶
If true, the particles only with the defined in PSDsizes diameters will be created. Otherwise the diameter will be randomly chosen in the range [PSDsizes[i-1]:PSDsizes[i]], in this case the length of PSDsizes should be more on 1, than the length of PSDcum.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property extents¶
Extents of the region
- property goalMass¶
Total mass that should be attained at the end of the current step. (auto-updated)
- property ids¶
ids of created bodies
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property mask¶
groupMask to apply for newly created spheres
- property massFlowRate¶
Mass flow rate [kg/s]
- property materialId¶
Shared material id to use for newly created spheres (can be negative to count from the end)
- property maxAttempt¶
Maximum number of attempts to position a new sphere randomly.
- property maxMass¶
Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.
- property maxParticles¶
The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .
- property normal¶
Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.
- property normalVel¶
Direction of particle’s velocites.
- property numParticles¶
Cummulative number of particles produces so far (auto-updated)
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property rMax¶
Maximum radius of generated spheres (uniform distribution)
- property rMin¶
Minimum radius of generated spheres (uniform distribution)
- property silent¶
If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).
- property stopIfFailed¶
If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property totalMass¶
Mass of spheres that was produced so far. (auto-updated)
- property totalVolume¶
Volume of spheres that was produced so far. (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vAngle¶
Maximum angle by which the initial sphere velocity deviates from the normal.
- property vMax¶
Maximum velocity norm of generated spheres (uniform distribution)
- property vMin¶
Minimum velocity norm of generated spheres (uniform distribution)
- class yade.plot.BubbleMat(inherits Material → Serializable)¶
material for bubble interactions, for use with other Bubble classes
- property density¶
Density of the material [kg/m³]
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- property surfaceTension¶
The surface tension in the fluid surrounding the bubbles. The default value is that of water at 25 degrees Celcius.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.BubblePhys(inherits IPhys → Serializable)¶
Physics of bubble-bubble interactions, for use with BubbleMat
- property Dmax¶
Maximum penetrationDepth of the bubbles before the force displacement curve changes to an artificial exponential curve. Setting this value will have no effect. See Law2_ScGeom_BubblePhys_Bubble::pctMaxForce for more information
- static computeForce((float)arg1, (float)arg2, (float)arg3, (int)arg4, (float)arg5, (float)arg6, (float)arg7, (BubblePhys)arg8) float : ¶
Computes the normal force acting between the two interacting bubbles using the Newton-Rhapson method
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property fN¶
Contact normal force
- property newtonIter¶
Maximum number of force iterations allowed
- property newtonTol¶
Convergence criteria for force iterations
- property normalForce¶
Normal force
- property rAvg¶
Average radius of the two interacting bubbles
- property surfaceTension¶
Surface tension of the surrounding liquid
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CapillarityEngine(inherits GlobalEngine → Engine → Serializable)¶
This engine loops over interactions with physics CapillaryPhysDelaunay and it assign pendular bridges to them. It is a reimplementation of [Scholtes2009b], adding the option of imposing the bridge volume (instead of only capillary pressure) and enabling using unstructured input data by triangulation. This reimplementation also provides more geometrical quantities in order to define interfacial energy terms, it was used specifically in [Chalak2017].
If :yref:`CapillarityEngine.imposePressure`==True, a uniform capillary pressure is assigned to all bridges, the liquid volume of each bridge is a result and it will change if the distance between the spheres changes. If :yref:`CapillarityEngine.imposePressure`==False, then the volume of each bridge remains constant during motion, and capillary pressure is updated, instead.
For references, see [Scholtes2009b] and a couple papers by the same authors; [Scholtes2009d] (in french) is the most detailed.
The engine needs an input data file available in yade-data package.
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:yref:interactionDetectionFactor<Ig2_Sphere_Sphere_ScGeom::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 triaxCapillarityDelaunay.py for an example script.
- property binaryFusion¶
If true, capillary forces are set to zero as soon as, at least, 1 overlap (menisci fusion) is detected
- property capillaryPressure¶
Value of the capillary pressure Uc defines as Uc=Ugas-Uliquid
- property createDistantMeniscii¶
Generate meniscii between distant spheres? Else only maintain the existing one. 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]. The engine turns it off automatically after one execution.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property disp¶
Dispersion from the mean Value of the roughness
- property epsilonMean¶
Mean Value of the roughness
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property fusionDetection¶
If true potential menisci overlaps are checked
- property hertzInitialized¶
FIXME: replace by class index
- property hertzOn¶
(auto-updated) true if hertz model is used
- property imposePressure¶
If True, suction is imposed and is constant if not Volume is imposed-Undrained test
- property initialized¶
- property inputFilename¶
the file with meniscus solutions, used for interpolation.
- intEnergy((CapillarityEngine)arg1) float : ¶
define the energy of interfaces in unsaturated pendular state
- property interactionDetectionFactor¶
defines critical distance for deleting interactions. Must be consistent with the Ig2 value.
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property liquidTension¶
Value of the superficial water tension in N/m
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- solveStandalone((CapillarityEngine)arg1, (float)R1, (float)R2, (float)pressure, (float)gap[, (CapillaryPhysDelaunay)bridge=None]) CapillaryPhysDelaunay : ¶
Returns a CapillaryPhysDelaunay object representing a single bridge independently of the scene, using radii R1 and R2, capillary pressure, and gap between two spheres. The returned value contains internals of the interpolation process, it can be passed as an optional argument (‘bridge’). If the resolution is repeated multiple times, re-using cached data will increase performance if the geometrical parameters are changing by small increments
- swInterface((CapillarityEngine)arg1) float : ¶
define the amount of solid-wetting interfaces in unsaturated pendular state
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property totalVolumeConstant¶
in undrained test there are 2 options, If True, the total volume of water is imposed,if false the volume of each meniscus is kept constant: in this case capillary pressure can be imposed for initial distribution of meniscus or it is the total volume that can be imposed initially
- property totalVolumeofWater¶
Value of imposed water volume
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- waterVolume((CapillarityEngine)arg1) float : ¶
return the total value of water in the sample
- wnInterface((CapillarityEngine)arg1) float : ¶
define the amount of wetting-non-wetiing interfaces in unsaturated pendular state
- class yade.plot.CapillaryMindlinPhysDelaunay(inherits MindlinPhys → RotStiffFrictPhys → FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶
An extended version of ̀(iPhysType), adding capillary data for CapillarityEngine.
- property Delta1¶
Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)
- property Delta2¶
Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)
- property Fs¶
Shear force in local axes (computed incrementally)
- property SInterface¶
Fluid-Gaz Interfacial area
- property adhesionForce¶
Force of adhesion as predicted by DMT
- property arcLength¶
Arc Length of the Fluid-Gaz Interface
- property beta¶
Auxiliary parameter used in the viscous damping model of [Mueller2011]
- property betan¶
Normal Damping Ratio. Fraction of the viscous damping coefficient (normal direction) equal to \(\frac{c_{n}}{C_{n,crit}}\).
- property betas¶
Shear Damping Ratio. Fraction of the viscous damping coefficient (shear direction) equal to \(\frac{c_{s}}{C_{s,crit}}\).
- property capillaryPressure¶
Value of the capillary pressure Uc defines as Ugas-Uliquid
- property computeBridge¶
If true, capillary bridge will be computed if not it will be ignored.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property fCap¶
Capillary Force produces by the presence of the meniscus
- property fusionNumber¶
Indicates the number of meniscii that overlap with this one
- property initD¶
initial penetration distance, used for crackaperture estimate
- property isAdhesive¶
bool to identify if the contact is adhesive, that is to say if the contact force is attractive
- property isBroken¶
If true, capillary force is zero and liquid bridge is inactive.
- property isSliding¶
check if the contact is sliding (useful to calculate the ratio of sliding contacts)
- property kn¶
Normal stiffness
- property kno¶
Constant value in the formulation of the normal stiffness
- property kr¶
rotational stiffness [N.m/rad]
- property ks¶
Shear stiffness
- property kso¶
Constant value in the formulation of the tangential stiffness
- property ktw¶
twist stiffness [N.m/rad]
- property maxBendPl¶
Coefficient to determine the maximum plastic moment to apply at the contact
- property meniscus¶
Presence of a meniscus if true
- property momentBend¶
Artificial bending moment to provide rolling resistance in order to account for some degree of interlocking between particles
- property momentTwist¶
Artificial twisting moment (no plastic condition can be applied at the moment)
- property normalForce¶
Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property normalViscous¶
Normal viscous component
- property prevU¶
Previous local displacement; only used with Law2_L3Geom_FrictPhys_HertzMindlin.
- property radius¶
Contact radius (only computed with Law2_ScGeom_MindlinPhys_Mindlin::calcEnergy)
- property shearElastic¶
Total elastic shear force
- property shearForce¶
Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property shearViscous¶
Shear viscous component
- property tangensOfFrictionAngle¶
tan of angle of friction
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property usElastic¶
Total elastic shear displacement (only elastic part)
- property usTotal¶
Total elastic shear displacement (elastic+plastic part)
- property vMeniscus¶
Volume of the menicus
- class yade.plot.CapillaryPhys(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶
Physics (of interaction) for Law2_ScGeom_CapillaryPhys_Capillarity.
- property Delta1¶
Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)
- property Delta2¶
Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)
- property capillaryPressure¶
Value of the capillary pressure Uc. Defined as Ugas-Uliquid, obtained from corresponding Law2 parameter
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property fCap¶
Capillary force produced by the presence of the meniscus. This is the force acting on particle #2
- property fusionNumber¶
Indicates the number of meniscii that overlap with this one
- property isBroken¶
Might be set to true by the user to make liquid bridge inactive (capillary force is zero)
- property kn¶
Normal stiffness
- property ks¶
Shear stiffness
- property meniscus¶
True when a meniscus with a non-zero liquid volume (vMeniscus) has been computed for this interaction
- property nn11¶
\(\iint_A n_1 n_1 \, dS = \iint_A n_2 n_2 \, dS\), \(A\) being the liquid-gas surface of the meniscus, \(\vec n\) the associated normal, and \((1,2,3)\) a local basis with \(3\) the meniscus orientation (ScGeom.normal). NB: \(A\) = 2 nn11 + nn33.
- property nn33¶
\(\iint_A n_3 n_3 \, dS\), \(A\) being the liquid-gas surface of the meniscus, \(\vec n\) the associated normal, and \((1,2,3)\) a local basis with \(3\) the meniscus orientation (ScGeom.normal). NB: \(A\) = 2 nn11 + nn33.
- property normalForce¶
Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property shearForce¶
Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property tangensOfFrictionAngle¶
tan of angle of friction
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vMeniscus¶
Volume of the meniscus
- class yade.plot.CapillaryPhysDelaunay(inherits FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶
An extended version of ̀FrictPhys, adding capillary data for CapillarityEngine.
- property Delta1¶
Defines the surface area wetted by the meniscus on the smallest grains of radius R1 (R1<R2)
- property Delta2¶
Defines the surface area wetted by the meniscus on the biggest grains of radius R2 (R1<R2)
- property SInterface¶
Fluid-Gaz Interfacial area
- property arcLength¶
Arc Length of the Fluid-Gaz Interface
- property capillaryPressure¶
Value of the capillary pressure Uc defines as Ugas-Uliquid
- property computeBridge¶
If true, capillary bridge will be computed if not it will be ignored.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property fCap¶
Capillary Force produces by the presence of the meniscus
- property fusionNumber¶
Indicates the number of meniscii that overlap with this one
- property isBroken¶
If true, capillary force is zero and liquid bridge is inactive.
- property kn¶
Normal stiffness
- property ks¶
Shear stiffness
- property meniscus¶
Presence of a meniscus if true
- property normalForce¶
Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property shearForce¶
Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property tangensOfFrictionAngle¶
tan of angle of friction
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vMeniscus¶
Volume of the menicus
- class yade.plot.CapillaryStressRecorder(inherits Recorder → PeriodicEngine → GlobalEngine → Engine → Serializable)¶
Records information from capillary meniscii on samples submitted to triaxial compressions. Classical sign convention (tension positiv) is used for capillary stresses. -> New formalism needs to be tested!!!
- property addIterNum¶
Adds an iteration number to the file name, when the file was created. Useful for creating new files at each call (false by default)
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property file¶
Name of file to save to; must not be empty.
- property firstIterRun¶
Sets the step number, at each an engine should be executed for the first time (disabled by default).
- property initRun¶
Run the first time we are called as well.
- property iterLast¶
Tracks step number of last run (auto-updated).
- property iterPeriod¶
Periodicity criterion using step number (deactivated if <= 0)
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property nDo¶
Limit number of executions by this number (deactivated if negative)
- property nDone¶
Track number of executions (cummulative) (auto-updated).
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property realLast¶
Tracks real time of last run (auto-updated).
- property realPeriod¶
Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property truncate¶
Whether to delete current file contents, if any, when opening (false by default)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property virtLast¶
Tracks virtual time of last run (auto-updated).
- property virtPeriod¶
Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
- class yade.plot.Cell(inherits Serializable)¶
Parameters of periodic boundary conditions. Only applies if O.isPeriodic==True.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- flipCell((Cell)arg1) Matrix3 : ¶
Flip periodic cell so that angles between \(R^3\) axes and transformed axes are as small as possible, using the two following facts:1. repeating in \(R^3\) space the corners of a periodic cell defines a regular grid; 2. two cells leading through this process to a unique grid are equivalent and can be flipped one over another. Flipping includes adjustment of Interaction.cellDist for interactions that cross the boundary and didn’t before (or vice versa), and re-initialization of collider. See also collision detection
- property flipFlippable¶
flip automatically as soon as a more compact geometry is possible (see trsf)
- getDefGrad((Cell)arg1) Matrix3 : ¶
Returns trsf = deformation gradient tensor \(\mat{F}\) of the cell deformation (http://en.wikipedia.org/wiki/Finite_strain_theory)
- getEulerianAlmansiStrain((Cell)arg1) Matrix3 : ¶
Returns Eulerian-Almansi strain tensor \(\mat{e}=\frac{1}{2}(\mat{I}-\mat{b}^{-1})=\frac{1}{2}(\mat{I}-(\mat{F}\mat{F}^T)^{-1})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
- getFluctuationVelocity((Cell)arg1, (Body)b) Vector3 : ¶
get velocity fluctuation of a body, i.e. the velocity relative to mean field velocity: \(\tilde{\vec{v} }= \vec{v} - (\nabla \vec{v}_m)\cdot \vec{x}\)
- getLCauchyGreenDef((Cell)arg1) Matrix3 : ¶
Returns left Cauchy-Green deformation tensor \(\mat{b}=\mat{F}\mat{F}^T\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
- getLagrangianStrain((Cell)arg1) Matrix3 : ¶
Returns Lagrangian strain tensor \(\mat{E}=\frac{1}{2}(\mat{C}-\mat{I})=\frac{1}{2}(\mat{F}^T\mat{F}-\mat{I})=\frac{1}{2}(\mat{U}^2-\mat{I})\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
- getLeftStretch((Cell)arg1) Matrix3 : ¶
Returns left (spatial) stretch tensor of the cell (matrix \(\mat{U}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
- getPolarDecOfDefGrad((Cell)arg1) tuple : ¶
Returns orthogonal matrix \(\mat{R}\) and symmetric positive semi-definite matrix \(\mat{U}\) as polar decomposition of deformation gradient \(\mat{F}\) of the cell ( \(\mat{F}=\mat{RU}\) )
- getRCauchyGreenDef((Cell)arg1) Matrix3 : ¶
Returns right Cauchy-Green deformation tensor \(\mat{C}=\mat{F}^T\mat{F}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
- getRightStretch((Cell)arg1) Matrix3 : ¶
Returns right (material) stretch tensor of the cell (matrix \(\mat{V}\) from polar decomposition \(\mat{F}=\mat{RU}=\mat{VR}\ \rightarrow\ \mat{V}=\mat{FR}^T\) )
- getRotation((Cell)arg1) Matrix3 : ¶
Returns rotation of the cell (orthogonal matrix \(\mat{R}\) from polar decomposition \(\mat{F}=\mat{RU}\) )
- getSmallStrain((Cell)arg1) Matrix3 : ¶
Returns small strain tensor \(\mat{\varepsilon}=\frac{1}{2}(\mat{F}+\mat{F}^T)-\mat{I}\) of the cell (http://en.wikipedia.org/wiki/Finite_strain_theory)
- property hSize¶
Base cell vectors (columns of the matrix), updated at every step from velGrad (trsf accumulates applied velGrad transformations). Setting hSize during a simulation is not supported by most contact laws, it is only meant to be used at iteration 0 before any interactions have been created.
- property hSize0¶
Value of untransformed hSize with respect to current trsf (computed as trsf ⁻¹ × hSize).
- property homoDeform¶
If >0, deform (velGrad) the cell homothetically by adjusting positions and velocities of bodies. The velocity change is obtained by deriving the expression v=∇v.x with respect to time, where ∇v is the macroscopic velocity gradient, giving in an incremental form: Δv=Δ ∇v x + ∇v Δx across one DEM iteration. As a result, velocities are modified as soon as
velGrad
changes, according to the first term: Δv(t)=Δ ∇v x(t), while the 2nd term reflects a convective term: Δv’= ∇v v(t-dt/2). The second term is neglected if homoDeform=1. All terms are included if homoDeform=2 (default)
- property nextVelGrad¶
see Cell.velGrad.
- property prevHSize¶
hSize from the previous step, used in the definition of relative velocity across periods.
- property prevVelGrad¶
Velocity gradient in the previous step.
- property refHSize¶
Reference cell configuration, only used with OpenGLRenderer.dispScale. Updated automatically when hSize or trsf is assigned directly; also modified by utils.setRefSe3 (called e.g. by the
Reference
button in the UI).
- property refSize¶
Reference size of the cell (lengths of initial cell vectors, i.e. column norms of hSize).
Note
Modifying this value is deprecated, use setBox instead.
- setBox((Cell)arg1, (Vector3)arg2) None : ¶
Set Cell shape to be rectangular, with dimensions along axes specified by given argument. Shorthand for assigning diagonal matrix with respective entries to hSize.
- shearPt((Cell)arg1, (Vector3)arg2) Vector3 : ¶
Apply shear (cell skew+rot) on the point
- property shearTrsf¶
Current skew+rot transformation (no resize)
- property size¶
Current size of the cell, i.e. lengths of the 3 cell lateral vectors contained in Cell.hSize columns. (auto-updated)
- property trsf¶
Current transformation matrix of the cell \(\mat{F}\) giving current Cell vector \(d\vec{x}\) from its reference state \(d\vec{X}\) as per \(d\vec{x} = \mat{F} d\vec{X}\). Obtained from time integration of velGrad\(\times\mat{F}\) as detailed in the documentation during the prologue of a YADE iteration (before the O.engines loop). (auto-updated)
- unshearPt((Cell)arg1, (Vector3)arg2) Vector3 : ¶
Apply inverse shear on the point (removes skew+rot of the cell)
- property unshearTrsf¶
Inverse of the current skew+rot transformation (no resize)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property velGrad¶
Velocity gradient of the transformation of the Cell; used in NewtonIntegrator. Values of velGrad accumulate in trsf at every step.
note: changing velGrad at the beginning of a timestep would lead to inaccurate integration for that step, as it should normally be changed after the contact laws (but before Newton). To avoid this problem, assignment is deferred automatically. The assigned value is internaly stored in Cell.nextVelGrad and will be applied right in time by Newton integrator.
Warning
Assigning individual components as in O.cell.velGrad[0,0]=1 is not possible (it will not return any error but it will have no effect). Instead, the whole matrix should be assigned, as in O.cell.velGrad=Matrix3(…).
- property velGradChanged¶
true when velGrad has been changed manually (see also Cell.nextVelGrad)
- property volume¶
Current volume of the cell.
- wrap((Cell)arg1, (Vector3)arg2) Vector3 : ¶
Transform an arbitrary point into a point in the reference cell
- wrapPt((Cell)arg1, (Vector3)arg2) Vector3 : ¶
Wrap point inside the reference cell, assuming the cell has no skew+rot.
- class yade.plot.CentralConstantAccelerationEngine(inherits FieldApplier → GlobalEngine → Engine → Serializable)¶
Engine applying constant acceleration to all bodies, towards a central body. Ignoring the distance between them.
- property accel¶
Acceleration magnitude [kgms⁻²]
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property mask¶
If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property reciprocal¶
If true, acceleration will be applied on the central body as well.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.ChCylGeom6D(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶
Test
- property bending¶
Bending at contact as a vector defining axis of rotation and angle (angle=norm).
- property contactPoint¶
some reference point for the interaction (usually in the middle). (auto-computed)
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IGeom)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- incidentVel((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) Vector3 : ¶
Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
- property initialOrientation1¶
Orientation of body 1 one at initialisation time (auto-updated)
- property initialOrientation2¶
Orientation of body 2 one at initialisation time (auto-updated)
- property normal¶
Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
- property penetrationDepth¶
Penetration distance of spheres (positive if overlapping)
- property refR1¶
Reference radius of particle #1. (auto-computed)
- property refR2¶
Reference radius of particle #2. (auto-computed)
- relAngVel((ScGeom)arg1, (Interaction)i) Vector3 : ¶
Return relative angular velocity of the interaction.
- property shearInc¶
Shear displacement increment in the last step
- property twist¶
Elastic twist angle (around normal axis) of the contact.
- property twistCreep¶
Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.ChainedCylinder(inherits Cylinder → Sphere → Shape → Serializable)¶
Geometry of a deformable chained cylinder, using geometry Cylinder.
- property chainedOrientation¶
Deviation of node1 orientation from node-to-node vector
- property color¶
Color for rendering (normalized RGB).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property initLength¶
tensile-free length, used as reference for tensile strain
- property length¶
Length [m]
- property radius¶
Radius [m]
- property segment¶
Length vector
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.ChainedState(inherits State → Serializable)¶
State of a chained bodies, containing information on connectivity in order to track contacts jumping over contiguous elements. Chains are 1D lists from which id of chained bodies are retrieved via rank and chainNumber.
- addToChain((ChainedState)arg1, (int)bodyId) None : ¶
Add body to current active chain
- property angMom¶
Current angular momentum
- property angVel¶
Current angular velocity
- property bId¶
id of the body containing - for postLoad operations only.
- property blockedDOFs¶
Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
- property chainNumber¶
chain id.
- currentChain = 0¶
- property densityScaling¶
(auto-updated) see GlobalStiffnessTimeStepper::targetDt.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((State)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- displ((State)arg1) Vector3 : ¶
Displacement from reference position (pos - refPos)
- property inertia¶
Inertia of associated body, in local coordinate system.
- property isDamped¶
Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
- property mass¶
Mass of this body
- property ori¶
Current orientation.
- property pos¶
Current position.
- property rank¶
rank in the chain.
- property refOri¶
Reference orientation
- property refPos¶
Reference position
- rot((State)arg1) Vector3 : ¶
Rotation from reference orientation (as rotation vector)
- property se3¶
Position and orientation as one object.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vel¶
Current linear velocity.
- class yade.plot.CircularFactory(inherits SpheresFactory → GlobalEngine → Engine → Serializable)¶
Circular geometry of the SpheresFactory region. It can be disk (given by radius and center), or cylinder (given by radius, length and center).
- property PSDcalculateMass¶
PSD-Input is in mass (true), otherwise the number of particles will be considered.
- property PSDcum¶
PSD-dispersion, cumulative procent meanings [-]
- property PSDsizes¶
PSD-dispersion, sizes of cells, Diameter [m]
- property blockedDOFs¶
Blocked degress of freedom
- property center¶
Center of the region
- property color¶
Use the color for newly created particles, if specified
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property exactDiam¶
If true, the particles only with the defined in PSDsizes diameters will be created. Otherwise the diameter will be randomly chosen in the range [PSDsizes[i-1]:PSDsizes[i]], in this case the length of PSDsizes should be more on 1, than the length of PSDcum.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property goalMass¶
Total mass that should be attained at the end of the current step. (auto-updated)
- property ids¶
ids of created bodies
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property length¶
Length of the cylindrical region (0 by default)
- property mask¶
groupMask to apply for newly created spheres
- property massFlowRate¶
Mass flow rate [kg/s]
- property materialId¶
Shared material id to use for newly created spheres (can be negative to count from the end)
- property maxAttempt¶
Maximum number of attempts to position a new sphere randomly.
- property maxMass¶
Maximal mass at which to stop generating new particles regardless of massFlowRate. if maxMass=-1 - this parameter is ignored.
- property maxParticles¶
The number of particles at which to stop generating new ones regardless of massFlowRate. if maxParticles=-1 - this parameter is ignored .
- property normal¶
Orientation of the region’s geometry, direction of particle’s velocites if normalVel is not set.
- property normalVel¶
Direction of particle’s velocites.
- property numParticles¶
Cummulative number of particles produces so far (auto-updated)
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property rMax¶
Maximum radius of generated spheres (uniform distribution)
- property rMin¶
Minimum radius of generated spheres (uniform distribution)
- property radius¶
Radius of the region
- property silent¶
If true no complain about excessing maxAttempt but disable the factory (by set massFlowRate=0).
- property stopIfFailed¶
If true, the SpheresFactory stops (sets massFlowRate=0), when maximal number of attempts to insert particle exceed.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property totalMass¶
Mass of spheres that was produced so far. (auto-updated)
- property totalVolume¶
Volume of spheres that was produced so far. (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vAngle¶
Maximum angle by which the initial sphere velocity deviates from the normal.
- property vMax¶
Maximum velocity norm of generated spheres (uniform distribution)
- property vMin¶
Minimum velocity norm of generated spheres (uniform distribution)
- class yade.plot.Clump(inherits Shape → Serializable)¶
Rigid aggregate of bodies whose usage is detailed here
- property color¶
Color for rendering (normalized RGB).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property ids¶
Ids of constituent particles (only informative; direct modifications will have no effect).
- property members¶
Return clump members as {‘id1’:(relPos,relOri),…}
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.CohFrictMat(inherits FrictMat → ElastMat → Material → Serializable)¶
Material description extending FrictMat with cohesive properties and rotational stiffnesses. For use e.g. with Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
- property alphaKr¶
Dimensionless rolling stiffness.
- property alphaKtw¶
Dimensionless twist stiffness.
- property density¶
Density of the material [kg/m³]
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property etaRoll¶
Dimensionless rolling (aka ‘bending’) strength. If negative, rolling moment will be elastic.
- property etaTwist¶
Dimensionless twisting strength. If negative, twist moment will be elastic.
- property fragile¶
does cohesion disappear when contact strength is exceeded?
- property frictionAngle¶
Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property isCohesive¶
Whether this body can form possibly cohesive interactions (if true and depending on other parameters such as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys.setCohesionNow).
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- property momentRotationLaw¶
Use bending/twisting moment at contact. The contact may have moments only if both bodies have this flag true. See Law2_ScGeom6D_CohFrictPhys_CohesionMoment.always_use_moment_law for details.
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- property normalCohesion¶
Tensile strength, homogeneous to a pressure. If negative the normal force is purely elastic.
- property poisson¶
Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
- property shearCohesion¶
Shear strength, homogeneous to a pressure. If negative the shear force is purely elastic.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property young¶
elastic modulus [Pa]. It has different meanings depending on the Ip functor.
- class yade.plot.CohFrictPhys(inherits RotStiffFrictPhys → FrictPhys → NormShearPhys → NormPhys → IPhys → Serializable)¶
An interaction physics that extends RotStiffFrictPhys adding a breakable cohesive nature. Used e.g. by Law2_ScGeom6D_CohFrictPhys_CohesionMoment.
- property cohesionBroken¶
is cohesion active? Set to false at the creation of a cohesive contact, and set to true when a fragile contact is broken
- property cohesionDisablesFriction¶
is shear strength the sum of friction and adhesion or only adhesion?
- property creep_viscosity¶
creep viscosity [Pa.s/m].
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property fragile¶
do cohesion disappear when contact strength is exceeded?
- property initCohesion¶
Initialize the cohesive behaviour with current state as equilibrium state (same as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys::setCohesionNow but acting on only one interaction)
- property kn¶
Normal stiffness
- property kr¶
rotational stiffness [N.m/rad]
- property ks¶
Shear stiffness
- property ktw¶
twist stiffness [N.m/rad]
- property maxRollPl¶
Coefficient of rolling friction (negative means elastic).
- property maxTwistPl¶
Coefficient of twisting friction (negative means elastic).
- property momentRotationLaw¶
set from CohFrictMat::momentRotationLaw in order to possibly use bending/twisting moment at contacts (if true). See Law2_ScGeom6D_CohFrictPhys_CohesionMoment::always_use_moment_law for details.
- property moment_bending¶
Bending moment
- property moment_twist¶
Twist moment
- property normalAdhesion¶
tensile strength
- property normalForce¶
Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property rollingAdhesion¶
maximum bending moment when normal force is null (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction and CohFrictPhys::maxRollPl)
- property shearAdhesion¶
cohesive part of the shear strength (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction)
- property shearForce¶
Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property tangensOfFrictionAngle¶
tan of angle of friction
- property twistingAdhesion¶
maximum twisting moment when normal force is null (a frictional term might be added depending on CohFrictPhys::cohesionDisablesFriction and CohFrictPhys::maxTwistPl)
- property unp¶
plastic normal displacement, only used for tensile behaviour and if CohFrictPhys::fragile =false.
- property unpMax¶
maximum value of plastic normal displacement (counted positively), after that the interaction breaks even if CohFrictPhys::fragile =false. A negative value (i.e. -1) means no maximum.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CohesiveDeformableElementMaterial(inherits Material → Serializable)¶
Deformable Element Material.
- property density¶
Density of the material [kg/m³]
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CohesiveFrictionalContactLaw(inherits GlobalEngine → Engine → Serializable)¶
[DEPRECATED] Loop over interactions applying Law2_ScGeom6D_CohFrictPhys_CohesionMoment on all interactions.
Note
Use InteractionLoop and Law2_ScGeom6D_CohFrictPhys_CohesionMoment instead of this class for performance reasons.
- property always_use_moment_law¶
If false, compute moments only for cohesive contacts, broken contacts will have only normal and shear forces. If true, compute bending/twisting moments at all contacts and use the frictional coefficients CohFrictMat::etaRoll and CohFrictMat::etaTwist to define the strength of the broken contacts.
- property creep_viscosity¶
creep viscosity [Pa.s/m]. probably should be moved to Ip2_CohFrictMat_CohFrictMat_CohFrictPhys…
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property neverErase¶
Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property shear_creep¶
activate creep on the shear force, using CohesiveFrictionalContactLaw::creep_viscosity.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property twist_creep¶
activate creep on the twisting moment, using CohesiveFrictionalContactLaw::creep_viscosity.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Collider(inherits GlobalEngine → Engine → Serializable)¶
Abstract class for finding spatial collisions between bodies.
Special constructor
Derived colliders (unless they override
pyHandleCustomCtorArgs
) can be given list of BoundFunctors which is used to initialize the internal boundDispatcher instance.- property avoidSelfInteractionMask¶
This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
- property boundDispatcher¶
BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CombinedKinematicEngine(inherits PartialEngine → Engine → Serializable)¶
Engine for applying combined displacements on pre-defined bodies. Constructed using
+
operator on regular KinematicEngines. Theids
operated on are those of the first engine in the combination (assigned automatically).- property comb¶
Kinematic engines that will be combined by this one, run in the order given.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CpmMat(inherits FrictMat → ElastMat → Material → Serializable)¶
Concrete material, for use with other Cpm classes.
Note
Density is initialized to 4800 kgm⁻³automatically, which gives approximate 2800 kgm⁻³ on 0.5 density packing.
Concrete Particle Model (CPM)
CpmMat is particle material, Ip2_CpmMat_CpmMat_CpmPhys averages two particles’ materials, creating CpmPhys, which is then used in interaction resultion by Law2_ScGeom_CpmPhys_Cpm. CpmState is associated to CpmMat and keeps state defined on particles rather than interactions (such as number of completely damaged interactions).
The model is contained in externally defined macro CPM_MATERIAL_MODEL, which features damage in tension, plasticity in shear and compression and rate-dependence. For commercial reasons, rate-dependence and compression-plasticity is not present in reduced version of the model, used when CPM_MATERIAL_MODEL is not defined. The full model will be described in detail in my (Václav Šmilauer) thesis along with calibration procedures (rigidity, poisson’s ratio, compressive/tensile strength ratio, fracture energy, behavior under confinement, rate-dependent behavior).
Even the public model is useful enough to run simulation on concrete samples, such as uniaxial tension-compression test.
- property damLaw¶
Law for damage evolution in uniaxial tension. 0 for linear stress-strain softening branch, 1 (default) for exponential damage evolution law
- property density¶
Density of the material [kg/m³]
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property dmgRateExp¶
Exponent for normal viscosity function. [-]
- property dmgTau¶
Characteristic time for normal viscosity. [s]
- property epsCrackOnset¶
Limit elastic strain [-]
- property equivStrainShearContrib¶
Coefficient of shear contribution to equivalent strain
- property frictionAngle¶
Contact friction angle (in radians). Hint : use ‘radians(degreesValue)’ in python scripts.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property isoPrestress¶
Isotropic prestress of the whole specimen. [Pa]
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- property neverDamage¶
If true, no damage will occur (for testing only).
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- property plRateExp¶
Exponent for visco-plasticity function. [-]
- property plTau¶
Characteristic time for visco-plasticity. [s]
- property poisson¶
Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
- property relDuctility¶
relative ductility of bonds in normal direction
- property sigmaT¶
Initial cohesion [Pa]
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property young¶
elastic modulus [Pa]. It has different meanings depending on the Ip functor.
- class yade.plot.CpmPhys(inherits NormShearPhys → NormPhys → IPhys → Serializable)¶
Representation of a single interaction of the Cpm type: storage for relevant parameters.
Evolution of the contact is governed by Law2_ScGeom_CpmPhys_Cpm, that includes damage effects and chages of parameters inside CpmPhys. See cpm-model for details.
- property E¶
normal modulus (stiffness / crossSection) [Pa]
- property Fn¶
Magnitude of normal force (auto-updated)
- property Fs¶
Magnitude of shear force (auto-updated)
- property G¶
shear modulus [Pa]
- property crossSection¶
equivalent cross-section associated with this contact [m²]
- cummBetaCount = 0¶
- cummBetaIter = 0¶
- property damLaw¶
Law for softening part of uniaxial tension. 0 for linear, 1 for exponential (default)
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IPhys)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property dmgOverstress¶
damage viscous overstress (at previous step or at current step)
- property dmgRateExp¶
exponent in the rate-dependent damage evolution
- property dmgStrain¶
damage strain (at previous or current step)
- property dmgTau¶
characteristic time for damage (if non-positive, the law without rate-dependence is used)
- property epsCrackOnset¶
strain at which the material starts to behave non-linearly
- property epsFracture¶
strain at which the bond is fully broken [-]
- property epsN¶
Current normal strain (auto-updated)
- property epsNPl¶
normal plastic strain (initially zero) (auto-updated)
- property epsT¶
Current shear strain (auto-updated)
- property epsTPl¶
shear plastic strain (initially zero) (auto-updated)
- property equivStrainShearContrib¶
Coefficient of shear contribution to equivalent strain
- static funcG((float)kappaD, (float)epsCrackOnset, (float)epsFracture[, (bool)neverDamage=False[, (int)damLaw=1]]) float : ¶
Damage evolution law, evaluating the \(\omega\) parameter. \(\kappa_D\) is historically maximum strain, epsCrackOnset (\(\varepsilon_0\)) = CpmPhys.epsCrackOnset, epsFracture = CpmPhys.epsFracture; if neverDamage is
True
, the value returned will always be 0 (no damage). TODO
- static funcGInv((float)omega, (float)epsCrackOnset, (float)epsFracture[, (bool)neverDamage=False[, (int)damLaw=1]]) float : ¶
Inversion of damage evolution law, evaluating the \(\kappa_D\) parameter. \(\omega\) is damage, for other parameters see funcG function
- property isCohesive¶
if not cohesive, interaction is deleted when distance is greater than zero.
- property isoPrestress¶
“prestress” of this link (used to simulate isotropic stress)
- property kappaD¶
Up to now maximum normal strain (semi-norm), non-decreasing in time (auto-updated)
- property kn¶
Normal stiffness
- property ks¶
Shear stiffness
- property neverDamage¶
the damage evolution function will always return virgin state
- property normalForce¶
Normal force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property omega¶
Damage internal variable (auto-updated)
- property plRateExp¶
exponent in the rate-dependent viscoplasticity
- property plTau¶
characteristic time for viscoplasticity (if non-positive, no rate-dependence for shear)
- property refLength¶
initial length of interaction [m]
- property refPD¶
initial penetration depth of interaction [m] (used with ScGeom)
- property relDuctility¶
Relative ductility of bonds in normal direction
- property relResidualStrength¶
Relative residual strength (auto-updated)
- setDamage((CpmPhys)arg1, (float)arg2) None : ¶
TODO
- setRelResidualStrength((CpmPhys)arg1, (float)arg2) None : ¶
TODO
- property shearForce¶
Shear force after previous step (in global coordinates), as sustained by particle #2 (from particle #1).
- property sigmaN¶
Current normal stress (auto-updated)
- property sigmaT¶
Current shear stress (auto-updated)
- property tanFrictionAngle¶
tangens of internal friction angle [-]
- property undamagedCohesion¶
virgin material cohesion [Pa]
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CpmState(inherits State → Serializable)¶
State information about body use by cpm-model.
None of that is used for computation (at least not now), only for post-processing.
- property angMom¶
Current angular momentum
- property angVel¶
Current angular velocity
- property blockedDOFs¶
Degress of freedom where linear/angular velocity will be always constant (equal to zero, or to an user-defined value), regardless of applied force/torque. String that may contain ‘xyzXYZ’ (translations and rotations).
- property damageTensor¶
Damage tensor computed with microplane theory averaging. state.damageTensor.trace() = state.normDmg
- property densityScaling¶
(auto-updated) see GlobalStiffnessTimeStepper::targetDt.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((State)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- displ((State)arg1) Vector3 : ¶
Displacement from reference position (pos - refPos)
- property epsVolumetric¶
Volumetric strain around this body (unused for now)
- property inertia¶
Inertia of associated body, in local coordinate system.
- property isDamped¶
Damping in NewtonIntegrator can be deactivated for individual particles by setting this variable to FALSE. E.g. damping is inappropriate for particles in free flight under gravity but it might still be applicable to other particles in the same simulation.
- property mass¶
Mass of this body
- property normDmg¶
Average damage including already deleted contacts (it is really not damage, but 1-relResidualStrength now)
- property numBrokenCohesive¶
Number of (cohesive) contacts that damaged completely
- property numContacts¶
Number of contacts with this body
- property ori¶
Current orientation.
- property pos¶
Current position.
- property refOri¶
Reference orientation
- property refPos¶
Reference position
- rot((State)arg1) Vector3 : ¶
Rotation from reference orientation (as rotation vector)
- property se3¶
Position and orientation as one object.
- property stress¶
Stress tensor of the spherical particle (under assumption that particle volume = pi*r*r*r*4/3.) for packing fraction 0.62
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vel¶
Current linear velocity.
- class yade.plot.CpmStateUpdater(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶
Update CpmState of bodies based on state variables in CpmPhys of interactions with this bod. In particular, bodies’ colors and CpmState::normDmg depending on average damage of their interactions and number of interactions that were already fully broken and have disappeared is updated. This engine contains its own loop (2 loops, more precisely) over all bodies and should be run periodically to update colors during the simulation, if desired.
- property avgRelResidual¶
Average residual strength at last run.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property firstIterRun¶
Sets the step number, at each an engine should be executed for the first time (disabled by default).
- property initRun¶
Run the first time we are called as well.
- property iterLast¶
Tracks step number of last run (auto-updated).
- property iterPeriod¶
Periodicity criterion using step number (deactivated if <= 0)
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property maxOmega¶
Globally maximum damage parameter at last run.
- property nDo¶
Limit number of executions by this number (deactivated if negative)
- property nDone¶
Track number of executions (cummulative) (auto-updated).
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property realLast¶
Tracks real time of last run (auto-updated).
- property realPeriod¶
Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property virtLast¶
Tracks virtual time of last run (auto-updated).
- property virtPeriod¶
Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
- class yade.plot.CundallStrackAdhesivePotential(inherits CundallStrackPotential → GenericPotential → Serializable)¶
CundallStrack model with adhesive part. Contact is created when \(u/a-\varepsilon < 0\) and released when \(u/a-\varepsilon > l_{adh}\), where \(l_{adh} = f_{adh}/k_n\). This lead to an hysteretic attractive part.
- property alpha¶
Bulk-to-roughness stiffness ratio
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property fadh¶
Adhesion force.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CundallStrackPotential(inherits GenericPotential → Serializable)¶
Potential with only Cundall-and-Strack-like contact.
- property alpha¶
Bulk-to-roughness stiffness ratio
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CylScGeom(inherits ScGeom → GenericSpheresContact → IGeom → Serializable)¶
Geometry of a cylinder-sphere contact.
- property contactPoint¶
some reference point for the interaction (usually in the middle). (auto-computed)
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IGeom)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property end¶
position of 2nd node (auto-updated)
- property id3¶
id of next chained cylinder (auto-updated)
- incidentVel((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) Vector3 : ¶
Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
- property isDuplicate¶
this flag is turned true (1) automatically if the contact is shared between two chained cylinders. A duplicated interaction will be skipped once by the constitutive law, so that only one contact at a time is effective. If isDuplicate=2, it means one of the two duplicates has no longer geometric interaction, and should be erased by the constitutive laws.
- property normal¶
Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
- property onNode¶
contact on node?
- property penetrationDepth¶
Penetration distance of spheres (positive if overlapping)
- property refR1¶
Reference radius of particle #1. (auto-computed)
- property refR2¶
Reference radius of particle #2. (auto-computed)
- relAngVel((ScGeom)arg1, (Interaction)i) Vector3 : ¶
Return relative angular velocity of the interaction.
- property relPos¶
position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)
- property shearInc¶
Shear displacement increment in the last step
- property start¶
position of 1st node (auto-updated)
- property trueInt¶
Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.CylScGeom6D(inherits ScGeom6D → ScGeom → GenericSpheresContact → IGeom → Serializable)¶
Class representing geometry of two bodies in contact. The contact has 6 DOFs (normal, 2×shear, twist, 2xbending) and uses ScGeom incremental algorithm for updating shear.
- property bending¶
Bending at contact as a vector defining axis of rotation and angle (angle=norm).
- property contactPoint¶
some reference point for the interaction (usually in the middle). (auto-computed)
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((IGeom)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property end¶
position of 2nd node (auto-updated)
- property id3¶
id of next chained cylinder (auto-updated)
- incidentVel((ScGeom)arg1, (Interaction)i[, (bool)avoidGranularRatcheting=True]) Vector3 : ¶
Return incident velocity of the interaction (see also Ig2_Sphere_Sphere_ScGeom.avoidGranularRatcheting for explanation of the ratcheting argument).
- property initialOrientation1¶
Orientation of body 1 one at initialisation time (auto-updated)
- property initialOrientation2¶
Orientation of body 2 one at initialisation time (auto-updated)
- property isDuplicate¶
this flag is turned true (1) automatically if the contact is shared between two chained cylinders. A duplicated interaction will be skipped once by the constitutive law, so that only one contact at a time is effective. If isDuplicate=2, it means one of the two duplicates has no longer geometric interaction, and should be erased by the constitutive laws.
- property normal¶
Unit vector oriented along the interaction, from particle #1, towards particle #2. (auto-updated)
- property onNode¶
contact on node?
- property penetrationDepth¶
Penetration distance of spheres (positive if overlapping)
- property refR1¶
Reference radius of particle #1. (auto-computed)
- property refR2¶
Reference radius of particle #2. (auto-computed)
- relAngVel((ScGeom)arg1, (Interaction)i) Vector3 : ¶
Return relative angular velocity of the interaction.
- property relPos¶
position of the contact on the cylinder (0: node-, 1:node+) (auto-updated)
- property shearInc¶
Shear displacement increment in the last step
- property start¶
position of 1st node (auto-updated)
- property trueInt¶
Defines the body id of the cylinder where the contact is real, when CylScGeom::isDuplicate>0.
- property twist¶
Elastic twist angle (around normal axis) of the contact.
- property twistCreep¶
Stored creep, substracted from total relative rotation for computation of elastic moment (auto-updated)
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Cylinder(inherits Sphere → Shape → Serializable)¶
Geometry of a cylinder, as Minkowski sum of line and sphere.
- property color¶
Color for rendering (normalized RGB).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property length¶
Length [m]
- property radius¶
Radius [m]
- property segment¶
Length vector
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.DeformableCohesiveElement(inherits DeformableElement → Shape → Serializable)¶
Tetrahedral Deformable Element Composed of Nodes
- addFace((DeformableElement)arg1, (Vector3)arg2) None : ¶
Add a face into the element
- addNode((DeformableElement)arg1, (Body)arg2) None : ¶
Add a node shared_pt<:yref:’Body’>& as into the element
- addPair((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) None : ¶
Add a node shared_pt<:yref:’Body’>& as into the element
- property color¶
Color for rendering (normalized RGB).
- delNode((DeformableElement)arg1, (Body)arg2) None : ¶
Remove a node shared_pt<:yref:’Body’>& from the element
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property elementframe¶
- property faces¶
Faces of the element for drawing
- getNode((DeformableElement)arg1, (int)arg2) Body : ¶
Get a node shared_pt<:yref:’Body’>& as into the element
- getVolume((DeformableElement)arg1) float : ¶
Get volume of the element
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property localmap¶
Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
- property nodepairs¶
Ids and relative position+orientation difference of members of the cohesive deformable element in the inital condition (should not be accessed directly)
- removeLastFace((DeformableElement)arg1) None : ¶
Remove a face from the element
- removePair((DeformableCohesiveElement)arg1, (Body)arg2, (Body)arg3) None : ¶
Add a node shared_pt<:yref:’Body’>& as into the element
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.DeformableElement(inherits Shape → Serializable)¶
Deformable aggregate of nodes
- addFace((DeformableElement)arg1, (Vector3)arg2) None : ¶
Add a face into the element
- addNode((DeformableElement)arg1, (Body)arg2) None : ¶
Add a node shared_pt<:yref:’Body’>& as into the element
- property color¶
Color for rendering (normalized RGB).
- delNode((DeformableElement)arg1, (Body)arg2) None : ¶
Remove a node shared_pt<:yref:’Body’>& from the element
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property elementframe¶
- property faces¶
Faces of the element for drawing
- getNode((DeformableElement)arg1, (int)arg2) Body : ¶
Get a node shared_pt<:yref:’Body’>& as into the element
- getVolume((DeformableElement)arg1) float : ¶
Get volume of the element
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property localmap¶
Ids and relative positions+orientations of members of the deformable element (should not be accessed directly)
- removeLastFace((DeformableElement)arg1) None : ¶
Remove a face from the element
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.DeformableElementMaterial(inherits Material → Serializable)¶
Deformable Element Material.
- property density¶
Density of the material.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Disp2DPropLoadEngine(inherits BoundaryController → GlobalEngine → Engine → Serializable)¶
Disturbs a simple shear sample in a given displacement direction
This engine allows one to apply, on a simple shear sample, a loading controlled by du/dgamma = cste, which is equivalent to du + cste’ * dgamma = 0 (proportionnal path loadings). To do so, the upper plate of the simple shear box is moved in a given direction (corresponding to a given du/dgamma), whereas lateral plates are moved so that the box remains closed. This engine can easily be used to perform directionnal probes, with a python script launching successivly the same .xml which contains this engine, after having modified the direction of loading (see theta attribute). That’s why this Engine contains a saveData procedure which can save data on the state of the sample at the end of the loading (in case of successive loadings - for successive directions - through a python script, each line would correspond to one direction of loading).
- property Key¶
string to add at the names of the saved files, and of the output file filled by saveData
- property LOG¶
boolean controling the output of messages on the screen
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property id_boxback¶
the id of the wall at the back of the sample
- property id_boxbas¶
the id of the lower wall
- property id_boxfront¶
the id of the wall in front of the sample
- property id_boxleft¶
the id of the left wall
- property id_boxright¶
the id of the right wall
- property id_topbox¶
the id of the upper wall
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property nbre_iter¶
the number of iterations of loading to perform
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property theta¶
the angle, in a (gamma,h=-u) plane from the gamma - axis to the perturbation vector (trigo wise) [degrees]
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property v¶
the speed at which the perturbation is imposed. In case of samples which are more sensitive to normal loadings than tangential ones, one possibility is to take v = V_shear - | (V_shear-V_comp)*sin(theta) | => v=V_shear in shear; V_comp in compression [m/s]
- class yade.plot.Dispatcher(inherits Engine → Serializable)¶
Engine dispatching control to its associated functors, based on types of argument it receives. This abstract base class provides no functionality in itself.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.DomainLimiter(inherits PeriodicEngine → GlobalEngine → Engine → Serializable)¶
Delete particles that are out of axis-aligned box given by lo and hi.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property firstIterRun¶
Sets the step number, at each an engine should be executed for the first time (disabled by default).
- property hi¶
Upper corner of the domain.
- property initRun¶
Run the first time we are called as well.
- property iterLast¶
Tracks step number of last run (auto-updated).
- property iterPeriod¶
Periodicity criterion using step number (deactivated if <= 0)
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property lo¶
Lower corner of the domain.
- property mDeleted¶
Mass of deleted particles.
- property mask¶
If mask is defined, only particles with corresponding groupMask will be deleted.
- property nDeleted¶
Cummulative number of particles deleted.
- property nDo¶
Limit number of executions by this number (deactivated if negative)
- property nDone¶
Track number of executions (cummulative) (auto-updated).
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property realLast¶
Tracks real time of last run (auto-updated).
- property realPeriod¶
Periodicity criterion using real (wall clock, computation, human) time in seconds (deactivated if <=0)
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property virtLast¶
Tracks virtual time of last run (auto-updated).
- property virtPeriod¶
Periodicity criterion using virtual (simulation) time (deactivated if <= 0)
- class yade.plot.DragEngine(inherits PartialEngine → Engine → Serializable)¶
Apply drag force on some particles at each step, decelerating them proportionally to their linear velocities. The applied force reads
\[F_{d}=-\frac{\vec{v}}{|\vec{v}|}\frac{1}{2}\rho|\vec{v}|^2 C_d A\]where \(\rho\) is the medium density (density), \(v\) is particle’s velocity, \(A\) is particle projected area (disc), \(C_d\) is the drag coefficient (0.47 for Sphere),
Note
Drag force is only applied to spherical particles, listed in ids.
- property Cd¶
Drag coefficient <http://en.wikipedia.org/wiki/Drag_coefficient>`_.
- property Rho¶
Density of the medium (fluid or air), by default - the density of the air.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.ElastMat(inherits Material → Serializable)¶
Purely elastic material. The material parameters may have different meanings depending on the IPhysFunctor used : true Young and Poisson in Ip2_FrictMat_FrictMat_MindlinPhys, or contact stiffnesses in Ip2_FrictMat_FrictMat_FrictPhys.
- property density¶
Density of the material [kg/m³]
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Material)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property id¶
Numeric id of this material; is non-negative only if this Material is shared (i.e. in O.materials), -1 otherwise. This value is set automatically when the material is inserted to the simulation via O.materials.append. (This id was necessary since before boost::serialization was used, shared pointers were not tracked properly; it might disappear in the future)
- property label¶
Textual identifier for this material; can be used for shared materials lookup in MaterialContainer.
- newAssocState((Material)arg1) State : ¶
Return new State instance, which is associated with this Material. Some materials have special requirement on Body::state type and calling this function when the body is created will ensure that they match. (This is done automatically if you use utils.sphere, … functions from python).
- property poisson¶
Poisson’s ratio or the ratio between shear and normal stiffness [-]. It has different meanings depending on the Ip functor.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property young¶
elastic modulus [Pa]. It has different meanings depending on the Ip functor.
- class yade.plot.ElasticContactLaw(inherits GlobalEngine → Engine → Serializable)¶
[DEPRECATED] Loop over interactions applying Law2_ScGeom_FrictPhys_CundallStrack on all interactions.
Note
Use InteractionLoop and Law2_ScGeom_FrictPhys_CundallStrack instead of this class for performance reasons.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property neverErase¶
Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. Law2_ScGeom_CapillaryPhys_Capillarity)
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.EnergyTracker(inherits Serializable)¶
Storage for tracing energies. Only to be used if O.trackEnergy is True.
- clear((EnergyTracker)arg1) None : ¶
Clear all stored values.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property energies¶
Energy values, in linear array
- items((EnergyTracker)arg1) list : ¶
Return contents as list of (name,value) tuples.
- keys((EnergyTracker)arg1) list : ¶
Return defined energies.
- total((EnergyTracker)arg1) float : ¶
Return sum of all energies.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Engine(inherits Serializable)¶
Basic execution unit of simulation, called from the simulation loop (O.engines)
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.FEInternalForceEngine(inherits GlobalEngine → Engine → Serializable)¶
Unified dispatcher for handling Finite Element internal force loop at every step, for parallel performance reasons.
Special constructor
Constructs from 3 lists of Ig2, Ip2, Law functors respectively; they will be passed to interal dispatchers, which you might retrieve.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property internalforcedispatcher¶
InternalForceDispatcher object that is used for dispatching of element types.
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.Facet(inherits Shape → Serializable)¶
Facet (triangular particle) geometry.
- property area¶
Facet’s area
- property color¶
Color for rendering (normalized RGB).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- dispHierarchy((Shape)arg1[, (bool)names=True]) list : ¶
Return list of dispatch classes (from down upwards), starting with the class instance itself, top-level indexable at last. If names is true (default), return class names rather than numerical indices.
- property dispIndex¶
Return class index of this instance.
- property highlight¶
Whether this Shape will be highlighted when rendered.
- property normal¶
Facet’s normal \(\vec n\) (in local coordinate system) oriented towards \(\vec{e_0} \times \vec {e_1}\) with \(\vec {e_0} = \vec{V_0V_1}\), \(\vec {e_1} = \vec{V_1V_2}\) and \(\vec {V_i}\) the vertices
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property vertices¶
Vertex positions in local coordinates.
- property wire¶
Whether this Shape is rendered using color surfaces, or only wireframe (can still be overridden by global config of the renderer).
- class yade.plot.FacetTopologyAnalyzer(inherits GlobalEngine → Engine → Serializable)¶
Initializer for filling adjacency geometry data for facets.
Common vertices and common edges are identified and mutual angle between facet faces is written to Facet instances. If facets don’t move with respect to each other, this must be done only at the beginng.
- property commonEdgesFound¶
how many common edges were identified during last run. (auto-updated)
- property commonVerticesFound¶
how many common vertices were identified during last run. (auto-updated)
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property projectionAxis¶
Axis along which to do the initial vertex sort
- property relTolerance¶
maximum distance of ‘identical’ vertices, relative to minimum facet size
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.FastMarchingMethod(inherits Serializable)¶
Executes a Fast Marching Method (FMM) to solve \(||\vec \nabla \phi|| = c\) for a discrete field \(\phi\) defined on grid, with phiIni serving as boundary condition. Typically, \(c=1\) (see speed) and \(\phi\) is a distance field. Note that the minimum search inherent to the FMM is not yet optimal in terms of execution speed and faster implementations of the FMM may be found elsewhere. See [Duriez2021b] for more details, where the class was coined DistFMM.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property grid¶
The underlying regular grid.
- property known¶
Gridpoints (indices) with distance known for good: they have been at some point the shortest gp to the surface while executing the FMM.
- phi((FastMarchingMethod)arg1) object : ¶
Executes the FMM and returns its solution as a list of list of list, with the [i][j][k] element corresponding to grid.gridPoint(i,j,k)
- property phiIni¶
Initial discrete field defined on the grid that will serve as a boundary condition for the FMM. Field values have to be - inf (resp. inf) for points being far inside (resp. outside) and correct (finite) on each side of the interface. Built-in functions distIniSE (for superellipsoids), phiIniCppPy (for a Python user function, through a mixed C++-Py internal implementation) or phiIniPy (for a Python user function through a pure Py internal implementation) may be used for such a purpose.
- property speed¶
Keep to 1 for a true distance, 2 for the flake-like rose verification of [Duriez2021b].
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.FieldApplier(inherits GlobalEngine → Engine → Serializable)¶
Base for engines applying force files on particles. Not to be used directly.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.FileGenerator(inherits Serializable)¶
Base class for scene generators, preprocessors.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- generate((FileGenerator)arg1, (str)out) None : ¶
Generate scene, save to given file
- load((FileGenerator)arg1) None : ¶
Generate scene, save to temporary file and load immediately
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- class yade.plot.FlatGridCollider(inherits Collider → GlobalEngine → Engine → Serializable)¶
Non-optimized grid collider, storing grid as dense flat array. Each body is assigned to (possibly multiple) cells, which are arranged in regular grid between aabbMin and aabbMax, with cell size step (same in all directions). Bodies outsize (aabbMin, aabbMax) are handled gracefully, assigned to closest cells (this will create spurious potential interactions). verletDist determines how much is each body enlarged to avoid collision detection at every step.
Note
This collider keeps all cells in linear memory array, therefore will be memory-inefficient for sparse simulations.
Warning
objects Body::bound are not used, BoundFunctors are not used either: assigning cells to bodies is hard-coded internally. Currently handles Shapes are: Sphere.
Note
Periodic boundary is not handled (yet).
- property aabbMax¶
Upper corner of grid (approximate, might be rouded up to minStep.
- property aabbMin¶
Lower corner of grid.
- property avoidSelfInteractionMask¶
This mask is used to avoid the interactions inside a group of particles. To do so, the particles must have the exact same mask and that mask should have one bit in common with this avoidSelfInteractionMask as for their binary representations.
- property boundDispatcher¶
BoundDispatcher object that is used for creating bounds on collider’s request as necessary.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- property step¶
Step in the grid (cell size)
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- property verletDist¶
Length by which enlarge space occupied by each particle; avoids running collision detection at every step.
- class yade.plot.FlowEngine(inherits FlowEngineT → PartialEngine → Engine → Serializable)¶
An engine to solve flow problem in saturated granular media. Model description can be found in [Chareyre2012a] and [Catalano2014a]. See the example script FluidCouplingPFV/oedometer.py. More documentation to come.
- OSI((FlowEngineT)arg1) float : ¶
Return the number of interactions only between spheres.
- property alphaBound¶
if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
- property alphaBoundValue¶
value of alpha constant pressure condition
- avFlVelOnSph((FlowEngineT)arg1, (int)idSph) object : ¶
compute a sphere-centered average fluid velocity
- property averageCavityPressure¶
true means the pressure in the cavity will be averaged each iteration.
- averagePressure((FlowEngineT)arg1) float : ¶
Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
- averageSlicePressure((FlowEngineT)arg1, (float)posY) float : ¶
Measure slice-averaged pore pressure at height posY
- averageVelocity((FlowEngineT)arg1) Vector3 : ¶
measure the mean velocity in the period
- blockCell((FlowEngineT)arg1, (int)id, (bool)blockPressure) None : ¶
block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
- property blockHook¶
Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
- property bndCondIsPressure¶
defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondIsTemperature¶
defines the type of boundary condition for each side of triangulation (used with ThermalEngine only). True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondValue¶
Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
- bodyNormalLubStress((FlowEngineT)arg1, (int)idSph) Matrix3 : ¶
Return the normal lubrication stress on sphere idSph.
- bodyShearLubStress((FlowEngineT)arg1, (int)idSph) Matrix3 : ¶
Return the shear lubrication stress on sphere idSph.
- property boundaryPressure¶
values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
- property boundaryUseMaxMin¶
If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
- property boundaryVelocity¶
velocity on top boundary, only change it using FlowEngine::setBoundaryVel
- property boundaryXPos¶
values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
- property breakControlledRemesh¶
If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
- property cavityFactor¶
Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
- property cavityFluidDensity¶
>0 means cavity compressibility model considers density changes instead of volume changes.
- property cavityFlux¶
For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
- cholmodStats((FlowEngineT)arg1) None : ¶
get statistics of cholmod solver activity
- property clampKValues¶
If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
- clearImposedFlux((FlowEngineT)arg1) None : ¶
Clear the list of points with flux imposed.
- clearImposedPressure((FlowEngineT)arg1) None : ¶
Clear the list of points with pressure imposed.
- compTessVolumes((FlowEngineT)arg1) None : ¶
Like TesselationWrapper::computeVolumes()
- property controlCavityPressure¶
use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
- property controlCavityVolumeChange¶
cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
- property convertClumps¶
If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- property debug¶
Activate debug messages
- property decoupleForces¶
If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
- property defTolerance¶
Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
- property desiredPorosity¶
Correct the cell volumes to reflect this desired porosity (not active by default (0)).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property doInterpolate¶
Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
- property dt¶
timestep [s]
- edgeSize((FlowEngineT)arg1) float : ¶
Return the number of interactions.
- emulateAction((FlowEngineT)arg1) None : ¶
get scene and run action (may be used to manipulate an engine outside the timestepping loop).
- property eps¶
roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
- property epsVolMax¶
Maximal absolute volumetric strain computed at each iteration. (auto-updated)
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- exportMatrix((FlowEngineT)arg1[, (str)filename='matrix']) None : ¶
Export system matrix to a file with all entries (even zeros will displayed).
- exportTriplets((FlowEngineT)arg1[, (str)filename='triplets']) None : ¶
Export system matrix to a file with only non-zero entries.
- property first¶
Controls the initialization/update phases
- property fixTriUpdatePermInt¶
If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
- property fixedAlpha¶
If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
- property flatThreshold¶
If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
- property fluidBulkModulus¶
Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
- property fluidCp¶
Heat capacity of fluid (for thermalEngine).
- fluidForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the fluid force on sphere idSph.
- property fluidRho¶
Density of fluid (for thermalEngine).
- property forceMetis¶
If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
- getBoundaryFluidArea((FlowEngineT)arg1, (int)boundary) float : ¶
Get total fluid area associated with boundary defined by its body id.
- getBoundaryFlux((FlowEngineT)arg1, (int)boundary) float : ¶
Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- getBoundaryVel((FlowEngineT)arg1, (int)boundary) object : ¶
Get total avg cell velocity associated with boundary defined by its body id.
- getBoundaryVolume((FlowEngineT)arg1, (int)arg2, (float)boundary) float : ¶
Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- property getCHOLMODPerfTimings¶
Print CHOLMOD build, analyze, and factorize timings
- getCavityDensity((FlowEngineT)arg1) float : ¶
Return the density of cavity fluid.
- getCavityFlux((FlowEngineT)arg1) float : ¶
Return the flux through the edge of the cavity.
- getCell((FlowEngineT)arg1, (float)X, (float)Y, (float)Z) int : ¶
get id of the cell containing (X,Y,Z).
- getCellBarycenter((FlowEngineT)arg1, (int)id) Vector3 : ¶
get barycenter of cell ‘id’.
- getCellCenter((FlowEngineT)arg1, (int)id) Vector3 : ¶
get voronoi center of cell ‘id’.
- getCellFlux((FlowEngineT)arg1, (int)cond) float : ¶
Get influx in cell associated to an imposed P (indexed using ‘cond’).
- getCellFluxFromId((FlowEngineT)arg1, (int)id) float : ¶
Get influx in cell.
- getCellInvVoidVolume((FlowEngineT)arg1, (int)id) float : ¶
get the inverse of the cell volume for cell ‘id’ after pore volumes have been initialized and FlowEngine:iniVoidVolumes = True, or compressibility scheme active with FlowEngine::fluidBulkModulus.
- getCellPImposed((FlowEngineT)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed pressure.
- getCellPressure((FlowEngineT)arg1, (int)id) float : ¶
get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
- getCellTImposed((FlowEngineT)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed temperature.
- getCellTemperature((FlowEngineT)arg1, (int)id) float : ¶
get pressure in cell ‘id’.
- getCellVelocity((FlowEngineT)arg1, (Vector3)pos) object : ¶
Get relative cell velocity at position pos[0] pos [1] pos[2].
- getCellVolume((FlowEngineT)arg1, (Vector3)pos) float : ¶
Get volume of cell at position pos[0] pos [1] pos[2].
- getConductivity((FlowEngineT)arg1, (int)cellId, (int)throat) float : ¶
get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
- getConstrictions((FlowEngineT)arg1[, (bool)all=True]) list : ¶
Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
- getConstrictionsFull((FlowEngineT)arg1[, (bool)all=True]) list : ¶
Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
- getDiffusionCoeff((FlowEngineT)arg1, (int)cellId, (int)throat) float : ¶
get the ratio of throat cross-sectional area and distance between two cells
- getEquivalentCompressibility((FlowEngineT)arg1) float : ¶
Return the equivalent compressibility used for modeling air water mixture in cavity.
- getIncidentCells((FlowEngineT)arg1, (int)vertexId) list : ¶
get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
- getNeighbors((FlowEngineT)arg1, (int)arg2) list : ¶
get 4 neigboring cells
- getPorePressure((FlowEngineT)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getPoreTemperature((FlowEngineT)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getVertices((FlowEngineT)arg1, (int)id) list : ¶
get the vertices of a cell
- property idOffset¶
If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
- property ignoredBody¶
DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
- imposeCavity((FlowEngineT)arg1, (Vector3)pos) int : ¶
Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
- imposeFlux((FlowEngineT)arg1, (Vector3)pos, (float)p) None : ¶
Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
- imposePressure((FlowEngineT)arg1, (Vector3)pos, (float)p) int : ¶
Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
- imposePressureFromId((FlowEngineT)arg1, (int)id, (float)p) int : ¶
Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
- property iniVoidVolumes¶
activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
- initializeVolumes((FlowEngineT)arg1) None : ¶
initialize pore volumes.
- property isActivated¶
Activates Flow Engine
- isCellNeighbor((FlowEngineT)arg1, (int)cell1_ID, (int)cell2_ID) bool : ¶
check if cell1 and cell2 are neigbors.
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property mask¶
If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
- property maxKdivKmean¶
define the max K value (see FlowEngine::clampKValues)
- property meanKStat¶
report the local permeabilities’ correction
- property meshUpdateInterval¶
Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
- metisUsed((FlowEngineT)arg1) bool : ¶
check wether metis lib is effectively used
- property minKdivKmean¶
define the min K value (see FlowEngine::clampKValues)
- property minimumPorosity¶
value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
- property multithread¶
Build triangulation and factorize in the background (multi-thread mode)
- nCells((FlowEngineT)arg1) int : ¶
get the total number of finite cells in the triangulation.
- normalLubForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal lubrication force on sphere idSph.
- property normalLubrication¶
compute normal lubrication force as developped by Brule
- normalVect((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal vector between particles.
- normalVelocity((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal velocity of the interaction.
- property numFactorizeThreads¶
number of openblas threads in the factorization phase
- property numSolveThreads¶
number of openblas threads in the solve phase.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- onlySpheresInteractions((FlowEngineT)arg1, (int)interaction) int : ¶
Return the id of the interaction only between spheres.
- property pZero¶
The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
- property permeabilityFactor¶
Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
- property permeabilityMap¶
Enable/disable stocking of average permeability scalar in cell infos.
- property phiZero¶
if >0, considers water aircontent impact on fluid compressibility.
- property porosity¶
Porosity computed at each retriangulation (auto-updated)
- property pressureForce¶
compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
- pressureProfile((FlowEngineT)arg1, (float)wallUpY, (float)wallDownY) None : ¶
Measure pore pressure in 6 equally-spaced points along the height of the sample
- printVertices((FlowEngineT)arg1) None : ¶
Export vertex positions and types
- property pumpTorque¶
Compute pump torque applied on particles
- property relax¶
Gauss-Seidel relaxation
- resetLinearSystem((FlowEngineT)arg1) None : ¶
trigger rebuild of the linear system while keeping the same triangulation
- saveVtk((FlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) None : ¶
Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
- setBoundaryNormal((FlowEngineT)arg1, (int)arg2, (Vector3)arg3) None : ¶
define the unit outward-pointing normal of a boundary (0<=index<=5).
- setCellPImposed((FlowEngineT)arg1, (int)id, (bool)pImposed) None : ¶
make cell ‘id’ assignable with imposed pressure.
- setCellPressure((FlowEngineT)arg1, (int)id, (float)pressure) None : ¶
set pressure in cell ‘id’.
- setCellTImposed((FlowEngineT)arg1, (int)id, (bool)tImposed) None : ¶
make cell ‘id’ assignable with imposed temperature.
- setCellTemperature((FlowEngineT)arg1, (int)id, (float)temperature) None : ¶
set temperature in cell ‘id’.
- setImposedPressure((FlowEngineT)arg1, (int)cond, (float)p) None : ¶
Set pressure value at the point indexed ‘cond’.
- shearLubForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear lubrication force on sphere idSph.
- shearLubTorque((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear lubrication torque on sphere idSph.
- property shearLubrication¶
compute shear lubrication force as developped by Brule (FIXME: ref.)
- shearVelocity((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear velocity of the interaction.
- property sineAverage¶
Pressure value (average) when sinusoidal pressure is applied
- property sineMagnitude¶
Pressure value (amplitude) when sinusoidal pressure is applied (p )
- property slipBoundary¶
Controls friction condition on lateral walls
- property stiffness¶
equivalent contact stiffness used in the lubrication model
- surfaceDistanceParticle((FlowEngineT)arg1, (int)interaction) float : ¶
Return the distance between particles.
- surfaceSolidThroatInPore((FlowEngineT)arg1, (int)cellId, (int)throatIndex) float : ¶
returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
- property tZero¶
The value used for initializing pore temperatures in thermalEngine.
- property tempDependentViscosity¶
boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
- property thermalBndCondValue¶
Imposed temperature boundary condition value for the cells in the triangulation (used with ThermalEngine only).
- property thermalEngine¶
activate thermalEngine within FlowEngine.
- property thermalPorosity¶
>0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property tolerance¶
Gauss-Seidel tolerance
- property twistTorque¶
Compute twist torque applied on particles
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- updateBCs((FlowEngineT)arg1) None : ¶
Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
- property updateTriangulation¶
If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
- updateVolumes((FlowEngineT)arg1) None : ¶
update rates of volume change
- property useSolver¶
Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
- property viscosity¶
viscosity of the fluid
- property viscousNormalBodyStress¶
compute normal viscous stress applied on each body
- property viscousShear¶
compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
- property viscousShearBodyStress¶
compute shear viscous stress applied on each body
- volume((FlowEngineT)arg1[, (int)id=0]) float : ¶
Returns the volume of Voronoi’s cell of a sphere.
- property volumeCorrection¶
Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
- property volumeFactor¶
Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
- property wallIds¶
body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
- property wallThickness¶
Walls thickness
- property waveAction¶
Allow sinusoidal pressure condition to simulate ocean waves
- property xmax¶
See FlowEngine::xmin.
- property xmin¶
Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
- property ymax¶
See FlowEngine::xmin.
- property ymin¶
See FlowEngine::xmin.
- property zmax¶
See FlowEngine::xmin.
- property zmin¶
See FlowEngine::xmin.
- class yade.plot.FlowEngineT(inherits PartialEngine → Engine → Serializable)¶
A generic engine from wich more specialized engines can inherit. It is defined for the sole purpose of inserting the right data classes CellInfo and VertexInfo in the triangulation, and it should not be used directly. Instead, look for specialized engines, e.g. FlowEngine, PeriodicFlowEngine, or DFNFlowEngine.
- OSI((FlowEngineT)arg1) float : ¶
Return the number of interactions only between spheres.
- property alphaBound¶
if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
- property alphaBoundValue¶
value of alpha constant pressure condition
- avFlVelOnSph((FlowEngineT)arg1, (int)idSph) object : ¶
compute a sphere-centered average fluid velocity
- property averageCavityPressure¶
true means the pressure in the cavity will be averaged each iteration.
- averagePressure((FlowEngineT)arg1) float : ¶
Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
- averageSlicePressure((FlowEngineT)arg1, (float)posY) float : ¶
Measure slice-averaged pore pressure at height posY
- averageVelocity((FlowEngineT)arg1) Vector3 : ¶
measure the mean velocity in the period
- blockCell((FlowEngineT)arg1, (int)id, (bool)blockPressure) None : ¶
block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
- property blockHook¶
Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
- property bndCondIsPressure¶
defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondIsTemperature¶
defines the type of boundary condition for each side of triangulation (used with ThermalEngine only). True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondValue¶
Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
- bodyNormalLubStress((FlowEngineT)arg1, (int)idSph) Matrix3 : ¶
Return the normal lubrication stress on sphere idSph.
- bodyShearLubStress((FlowEngineT)arg1, (int)idSph) Matrix3 : ¶
Return the shear lubrication stress on sphere idSph.
- property boundaryPressure¶
values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
- property boundaryUseMaxMin¶
If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
- property boundaryVelocity¶
velocity on top boundary, only change it using FlowEngine::setBoundaryVel
- property boundaryXPos¶
values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
- property breakControlledRemesh¶
If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
- property cavityFactor¶
Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
- property cavityFluidDensity¶
>0 means cavity compressibility model considers density changes instead of volume changes.
- property cavityFlux¶
For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
- cholmodStats((FlowEngineT)arg1) None : ¶
get statistics of cholmod solver activity
- property clampKValues¶
If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
- clearImposedFlux((FlowEngineT)arg1) None : ¶
Clear the list of points with flux imposed.
- clearImposedPressure((FlowEngineT)arg1) None : ¶
Clear the list of points with pressure imposed.
- compTessVolumes((FlowEngineT)arg1) None : ¶
Like TesselationWrapper::computeVolumes()
- property controlCavityPressure¶
use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
- property controlCavityVolumeChange¶
cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
- property convertClumps¶
If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- property debug¶
Activate debug messages
- property decoupleForces¶
If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
- property defTolerance¶
Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
- property desiredPorosity¶
Correct the cell volumes to reflect this desired porosity (not active by default (0)).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property doInterpolate¶
Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
- property dt¶
timestep [s]
- edgeSize((FlowEngineT)arg1) float : ¶
Return the number of interactions.
- emulateAction((FlowEngineT)arg1) None : ¶
get scene and run action (may be used to manipulate an engine outside the timestepping loop).
- property eps¶
roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
- property epsVolMax¶
Maximal absolute volumetric strain computed at each iteration. (auto-updated)
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- exportMatrix((FlowEngineT)arg1[, (str)filename='matrix']) None : ¶
Export system matrix to a file with all entries (even zeros will displayed).
- exportTriplets((FlowEngineT)arg1[, (str)filename='triplets']) None : ¶
Export system matrix to a file with only non-zero entries.
- property first¶
Controls the initialization/update phases
- property fixTriUpdatePermInt¶
If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
- property fixedAlpha¶
If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
- property flatThreshold¶
If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
- property fluidBulkModulus¶
Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
- property fluidCp¶
Heat capacity of fluid (for thermalEngine).
- fluidForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the fluid force on sphere idSph.
- property fluidRho¶
Density of fluid (for thermalEngine).
- property forceMetis¶
If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
- getBoundaryFluidArea((FlowEngineT)arg1, (int)boundary) float : ¶
Get total fluid area associated with boundary defined by its body id.
- getBoundaryFlux((FlowEngineT)arg1, (int)boundary) float : ¶
Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- getBoundaryVel((FlowEngineT)arg1, (int)boundary) object : ¶
Get total avg cell velocity associated with boundary defined by its body id.
- getBoundaryVolume((FlowEngineT)arg1, (int)arg2, (float)boundary) float : ¶
Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- property getCHOLMODPerfTimings¶
Print CHOLMOD build, analyze, and factorize timings
- getCavityDensity((FlowEngineT)arg1) float : ¶
Return the density of cavity fluid.
- getCavityFlux((FlowEngineT)arg1) float : ¶
Return the flux through the edge of the cavity.
- getCell((FlowEngineT)arg1, (float)X, (float)Y, (float)Z) int : ¶
get id of the cell containing (X,Y,Z).
- getCellBarycenter((FlowEngineT)arg1, (int)id) Vector3 : ¶
get barycenter of cell ‘id’.
- getCellCenter((FlowEngineT)arg1, (int)id) Vector3 : ¶
get voronoi center of cell ‘id’.
- getCellFlux((FlowEngineT)arg1, (int)cond) float : ¶
Get influx in cell associated to an imposed P (indexed using ‘cond’).
- getCellFluxFromId((FlowEngineT)arg1, (int)id) float : ¶
Get influx in cell.
- getCellInvVoidVolume((FlowEngineT)arg1, (int)id) float : ¶
get the inverse of the cell volume for cell ‘id’ after pore volumes have been initialized and FlowEngine:iniVoidVolumes = True, or compressibility scheme active with FlowEngine::fluidBulkModulus.
- getCellPImposed((FlowEngineT)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed pressure.
- getCellPressure((FlowEngineT)arg1, (int)id) float : ¶
get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
- getCellTImposed((FlowEngineT)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed temperature.
- getCellTemperature((FlowEngineT)arg1, (int)id) float : ¶
get pressure in cell ‘id’.
- getCellVelocity((FlowEngineT)arg1, (Vector3)pos) object : ¶
Get relative cell velocity at position pos[0] pos [1] pos[2].
- getCellVolume((FlowEngineT)arg1, (Vector3)pos) float : ¶
Get volume of cell at position pos[0] pos [1] pos[2].
- getConductivity((FlowEngineT)arg1, (int)cellId, (int)throat) float : ¶
get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
- getConstrictions((FlowEngineT)arg1[, (bool)all=True]) list : ¶
Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
- getConstrictionsFull((FlowEngineT)arg1[, (bool)all=True]) list : ¶
Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
- getDiffusionCoeff((FlowEngineT)arg1, (int)cellId, (int)throat) float : ¶
get the ratio of throat cross-sectional area and distance between two cells
- getEquivalentCompressibility((FlowEngineT)arg1) float : ¶
Return the equivalent compressibility used for modeling air water mixture in cavity.
- getIncidentCells((FlowEngineT)arg1, (int)vertexId) list : ¶
get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
- getNeighbors((FlowEngineT)arg1, (int)arg2) list : ¶
get 4 neigboring cells
- getPorePressure((FlowEngineT)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getPoreTemperature((FlowEngineT)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getVertices((FlowEngineT)arg1, (int)id) list : ¶
get the vertices of a cell
- property idOffset¶
If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
- property ignoredBody¶
DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
- imposeCavity((FlowEngineT)arg1, (Vector3)pos) int : ¶
Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
- imposeFlux((FlowEngineT)arg1, (Vector3)pos, (float)p) None : ¶
Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative.
- imposePressure((FlowEngineT)arg1, (Vector3)pos, (float)p) int : ¶
Impose pressure in cell of location ‘pos’. The index of the condition is returned (for multiple imposed pressures at different points).
- imposePressureFromId((FlowEngineT)arg1, (int)id, (float)p) int : ¶
Impose pressure in cell of index ‘id’ (after remeshing the same condition will apply for the same location, regardless of what the new cell index is at this location). The index of the condition itself is returned (for multiple imposed pressures at different points).
- property iniVoidVolumes¶
activate the computation of the inverse of the initial void volumes in each cell when pore volumes are initialized.
- initializeVolumes((FlowEngineT)arg1) None : ¶
initialize pore volumes.
- property isActivated¶
Activates Flow Engine
- isCellNeighbor((FlowEngineT)arg1, (int)cell1_ID, (int)cell2_ID) bool : ¶
check if cell1 and cell2 are neigbors.
- property label¶
Textual label for this object; must be valid python identifier, you can refer to it directly from python.
- property mask¶
If mask defined, only bodies with corresponding groupMask will be affected by this engine. If 0, all bodies will be affected.
- property maxKdivKmean¶
define the max K value (see FlowEngine::clampKValues)
- property meanKStat¶
report the local permeabilities’ correction
- property meshUpdateInterval¶
Maximum number of timesteps between re-triangulation events (a negative value will never re-triangulate). See also FlowEngine::defTolerance.
- metisUsed((FlowEngineT)arg1) bool : ¶
check wether metis lib is effectively used
- property minKdivKmean¶
define the min K value (see FlowEngine::clampKValues)
- property minimumPorosity¶
value used to limit the allowable minimum porosity for pore volume calculations. Particularly useful if very small volumes are impacting stability
- property multithread¶
Build triangulation and factorize in the background (multi-thread mode)
- nCells((FlowEngineT)arg1) int : ¶
get the total number of finite cells in the triangulation.
- normalLubForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal lubrication force on sphere idSph.
- property normalLubrication¶
compute normal lubrication force as developped by Brule
- normalVect((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal vector between particles.
- normalVelocity((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the normal velocity of the interaction.
- property numFactorizeThreads¶
number of openblas threads in the factorization phase
- property numSolveThreads¶
number of openblas threads in the solve phase.
- property ompThreads¶
Number of threads to be used in the engine. If ompThreads<0 (default), the number will be typically OMP_NUM_THREADS or the number N defined by ‘yade -jN’ (this behavior can depend on the engine though). This attribute will only affect engines whose code includes openMP parallel regions (e.g. InteractionLoop). This attribute is mostly useful for experiments or when combining ParallelEngine with engines that run parallel regions, resulting in nested OMP loops with different number of threads at each level.
- onlySpheresInteractions((FlowEngineT)arg1, (int)interaction) int : ¶
Return the id of the interaction only between spheres.
- property pZero¶
The value used for initializing pore pressure. It is useless for incompressible fluid, but important for compressible model.
- property permeabilityFactor¶
Permability multiplier (\(m\)): \(m=1\) (default) attempts to predicty the actual hydraulic conductivity using a Poiseuille equation; \(m>0\) multiplies the default values by \(m\); \(m<0\) defines the conductivity independently of particle size and viscosity as if the material was a homogeneous continuum of conductivity \(-m\)
- property permeabilityMap¶
Enable/disable stocking of average permeability scalar in cell infos.
- property phiZero¶
if >0, considers water aircontent impact on fluid compressibility.
- property porosity¶
Porosity computed at each retriangulation (auto-updated)
- property pressureForce¶
compute the pressure field and associated fluid forces. WARNING: turning off means fluid flow is not computed at all.
- pressureProfile((FlowEngineT)arg1, (float)wallUpY, (float)wallDownY) None : ¶
Measure pore pressure in 6 equally-spaced points along the height of the sample
- printVertices((FlowEngineT)arg1) None : ¶
Export vertex positions and types
- property pumpTorque¶
Compute pump torque applied on particles
- property relax¶
Gauss-Seidel relaxation
- resetLinearSystem((FlowEngineT)arg1) None : ¶
trigger rebuild of the linear system while keeping the same triangulation
- saveVtk((FlowEngineT)arg1[, (str)folder='./VTK'[, (bool)withBoundaries=False]]) None : ¶
Save pressure field in vtk format. Specify a folder name for output. The cells adjacent to the bounding spheres are generated conditionally based on FlowEngine::withBoundaries (not compatible with periodic boundaries)
- setBoundaryNormal((FlowEngineT)arg1, (int)arg2, (Vector3)arg3) None : ¶
define the unit outward-pointing normal of a boundary (0<=index<=5).
- setCellPImposed((FlowEngineT)arg1, (int)id, (bool)pImposed) None : ¶
make cell ‘id’ assignable with imposed pressure.
- setCellPressure((FlowEngineT)arg1, (int)id, (float)pressure) None : ¶
set pressure in cell ‘id’.
- setCellTImposed((FlowEngineT)arg1, (int)id, (bool)tImposed) None : ¶
make cell ‘id’ assignable with imposed temperature.
- setCellTemperature((FlowEngineT)arg1, (int)id, (float)temperature) None : ¶
set temperature in cell ‘id’.
- setImposedPressure((FlowEngineT)arg1, (int)cond, (float)p) None : ¶
Set pressure value at the point indexed ‘cond’.
- shearLubForce((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear lubrication force on sphere idSph.
- shearLubTorque((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear lubrication torque on sphere idSph.
- property shearLubrication¶
compute shear lubrication force as developped by Brule (FIXME: ref.)
- shearVelocity((FlowEngineT)arg1, (int)idSph) Vector3 : ¶
Return the shear velocity of the interaction.
- property sineAverage¶
Pressure value (average) when sinusoidal pressure is applied
- property sineMagnitude¶
Pressure value (amplitude) when sinusoidal pressure is applied (p )
- property slipBoundary¶
Controls friction condition on lateral walls
- property stiffness¶
equivalent contact stiffness used in the lubrication model
- surfaceDistanceParticle((FlowEngineT)arg1, (int)interaction) float : ¶
Return the distance between particles.
- surfaceSolidThroatInPore((FlowEngineT)arg1, (int)cellId, (int)throatIndex) float : ¶
returns solid area in the throat (index 0-3), keeping only that part of the throat in cell.
- property tZero¶
The value used for initializing pore temperatures in thermalEngine.
- property tempDependentViscosity¶
boolean to vary viscosity (ultimately cell permeability) with cell temperature. Linear model for viscosity b/w 20-70 degC. If true, kFactor must also be set negative, and becomes the darcy permeability.
- property thermalBndCondValue¶
Imposed temperature boundary condition value for the cells in the triangulation (used with ThermalEngine only).
- property thermalEngine¶
activate thermalEngine within FlowEngine.
- property thermalPorosity¶
>0 means the void volume space will be factored by thermalPorosity for pore internal energy considerations.
- property timingDeltas¶
Detailed information about timing inside the Engine itself. Empty unless enabled in the source code and O.timingEnabled==
True
.
- property tolerance¶
Gauss-Seidel tolerance
- property twistTorque¶
Compute twist torque applied on particles
- updateAttrs((Serializable)arg1, (dict)arg2) None : ¶
Update object attributes from given dictionary
- updateBCs((FlowEngineT)arg1) None : ¶
Update the boundary condition to reflect changes of boundary pressure (needed typically after changing FlowEngine::bndCondValue). It is not sufficient to reflect changes of the type of boundary condition (FlowEngine::bndCondIsPressure), in such case re-triangulation or at least updating the linear system is needed (see FlowEngine::updateTriangulation and FlowEngine::updateLinearSystem). Conversely, the update is not necessary for changing the value of point-wise imposed pressure (FlowEngine::imposePressure)
- property updateTriangulation¶
If true the medium is retriangulated. Can be switched on to force retriangulation after some events (else it will be true periodicaly based on FlowEngine::defTolerance and FlowEngine::meshUpdateInterval. Of course, it costs CPU time. Note that the new triangulation will start to be effectively used only after one iteration (i.e. O.run(2) gives a result with the new one, O.run(1) does not).
- updateVolumes((FlowEngineT)arg1) None : ¶
update rates of volume change
- property useSolver¶
Solver to use. 0:Gauss-Seidel, 3: Cholesky factorization (via Eigen3 interface), 4:multicore CPU or GPU accelerated CHOLMOD (without Eigen3), 1-2: undefined.
- property viscosity¶
viscosity of the fluid
- property viscousNormalBodyStress¶
compute normal viscous stress applied on each body
- property viscousShear¶
compute viscous shear terms as developped by Donia Marzougui (FIXME: ref.)
- property viscousShearBodyStress¶
compute shear viscous stress applied on each body
- volume((FlowEngineT)arg1[, (int)id=0]) float : ¶
Returns the volume of Voronoi’s cell of a sphere.
- property volumeCorrection¶
Volume correction factor (not user controlled. auto computed if FlowEngine::desiredPorosity != 0)
- property volumeFactor¶
Factor used for simulating low porosity (for thermal considerations only) in high porosity DEM packings.
- property wallIds¶
body ids of the boundaries (default values are ok only if aabbWalls are appended before spheres, i.e. numbered 0,…,5)
- property wallThickness¶
Walls thickness
- property waveAction¶
Allow sinusoidal pressure condition to simulate ocean waves
- property xmax¶
See FlowEngine::xmin.
- property xmin¶
Index of the boundary \(x_{min}\). This index is not equal the the id of the corresponding body in general, it may be used to access the corresponding attributes (e.g. flow.bndCondValue[flow.xmin], flow.wallId[flow.xmin],…).
- property ymax¶
See FlowEngine::xmin.
- property ymin¶
See FlowEngine::xmin.
- property zmax¶
See FlowEngine::xmin.
- property zmin¶
See FlowEngine::xmin.
- class yade.plot.FlowEngine_PeriodicInfo(inherits PartialEngine → Engine → Serializable)¶
A generic engine from wich more specialized engines can inherit. It is defined for the sole purpose of inserting the right data classes CellInfo and VertexInfo in the triangulation, and it should not be used directly. Instead, look for specialized engines, e.g. FlowEngine, PeriodicFlowEngine, or DFNFlowEngine.
- OSI((FlowEngine_PeriodicInfo)arg1) float : ¶
Return the number of interactions only between spheres.
- property alphaBound¶
if 0, use an alphaBoundary condition where CGAL finds minimum alpha necessary for a single solid object. Any positive value will be used for the alpha. All negative values deactivate the functionality.
- property alphaBoundValue¶
value of alpha constant pressure condition
- avFlVelOnSph((FlowEngine_PeriodicInfo)arg1, (int)idSph) object : ¶
compute a sphere-centered average fluid velocity
- property averageCavityPressure¶
true means the pressure in the cavity will be averaged each iteration.
- averagePressure((FlowEngine_PeriodicInfo)arg1) float : ¶
Measure averaged pore pressure in the entire volume, the cells adjacent to the boundaries are ignored if includeBoundaries=False
- averageSlicePressure((FlowEngine_PeriodicInfo)arg1, (float)posY) float : ¶
Measure slice-averaged pore pressure at height posY
- averageVelocity((FlowEngine_PeriodicInfo)arg1) Vector3 : ¶
measure the mean velocity in the period
- blockCell((FlowEngine_PeriodicInfo)arg1, (int)id, (bool)blockPressure) None : ¶
block cell ‘id’. The cell will be excluded from the fluid flow problem and the conductivity of all incident facets will be null. If blockPressure=False, deformation is reflected in the pressure, else it is constantly 0.
- property blockHook¶
Python command to be run when remeshing. Anticipated usage: define blocked cells (see also FlowEngine.blockCell), or apply exotic types of boundary conditions which need to visit the newly built mesh
- property bndCondIsPressure¶
defines the type of boundary condition for each side. True if pressure is imposed, False for no-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondIsTemperature¶
defines the type of boundary condition for each side of triangulation (used with ThermalEngine only). True if temperature is imposed, False for no heat-flux. Indexes can be retrieved with FlowEngine::xmin and friends.
- property bndCondValue¶
Imposed value of a boundary condition. Only applies if the boundary condition is imposed pressure, else the imposed flux is always zero presently (may be generalized to non-zero imposed fluxes in the future).
- bodyNormalLubStress((FlowEngine_PeriodicInfo)arg1, (int)idSph) Matrix3 : ¶
Return the normal lubrication stress on sphere idSph.
- bodyShearLubStress((FlowEngine_PeriodicInfo)arg1, (int)idSph) Matrix3 : ¶
Return the shear lubrication stress on sphere idSph.
- property boundaryPressure¶
values defining pressure along x-axis for the top surface. See also FlowEngine::boundaryXPos
- property boundaryUseMaxMin¶
If true (default value) bounding sphere is added as function of max/min sphere coord, if false as function of yade wall position
- property boundaryVelocity¶
velocity on top boundary, only change it using FlowEngine::setBoundaryVel
- property boundaryXPos¶
values of the x-coordinate for which pressure is defined. See also FlowEngine::boundaryPressure
- property breakControlledRemesh¶
If true, remesh will occur everytime a break occurs in JCFpmPhys. Designed to increase accuracy and efficiency in hydraulic fracture simulations.
- property cavityFactor¶
Permeability/viscosity for cavity cell neighbors (arbitrarily high to model triangulated fluid filled cavity).
- property cavityFluidDensity¶
>0 means cavity compressibility model considers density changes instead of volume changes.
- property cavityFlux¶
For adding flux to pressuremanaged cavity model (FlowEngine::controlCavityPressure). Negavite influx, postive outflux.
- cholmodStats((FlowEngine_PeriodicInfo)arg1) None : ¶
get statistics of cholmod solver activity
- property clampKValues¶
If true, clamp local permeabilities in [minKdivKmean,maxKdivKmean]*globalK. This clamping can avoid singular values in the permeability matrix and may reduce numerical errors in the solve phase. It will also hide junk values if they exist, or bias all values in very heterogeneous problems. So, use this with care.
- clearImposedFlux((FlowEngine_PeriodicInfo)arg1) None : ¶
Clear the list of points with flux imposed.
- clearImposedPressure((FlowEngine_PeriodicInfo)arg1) None : ¶
Clear the list of points with pressure imposed.
- compTessVolumes((FlowEngine_PeriodicInfo)arg1) None : ¶
Like TesselationWrapper::computeVolumes()
- property controlCavityPressure¶
use full cavity flux and fluidbulkmodulus to control cavity as dynamic pressure (dirichlet) boundary condition.
- property controlCavityVolumeChange¶
cavity imposes a volume change on neighbor cells (shouldnt be used with controlCavityPressure)
- property convertClumps¶
If true the clumps will be temptatively converted into equivalent spheres in the triangulation, and clump members are skipped. Else clumps are ignored and spherical clump members are triangulated as independent bodies.
- property dead¶
If true, this engine will not run at all; can be used for making an engine temporarily deactivated and only resurrect it at a later point.
- property debug¶
Activate debug messages
- property decoupleForces¶
If true, viscous and pressure forces are not imposed on particles. Useful for speeding up simulations in ultra-stiff cohesive materials.
- property defTolerance¶
Cumulated deformation threshold for which retriangulation of pore space is performed. If negative, the triangulation update will occure with a fixed frequency on the basis of FlowEngine::meshUpdateInterval
- property desiredPorosity¶
Correct the cell volumes to reflect this desired porosity (not active by default (0)).
- dict((Serializable)arg1) dict : ¶
Return dictionary of attributes.
- property doInterpolate¶
Force the interpolation of cell’s info while remeshing. By default, interpolation would be done only for compressible fluids. It can be forced with this flag.
- property dt¶
timestep [s]
- edgeSize((FlowEngine_PeriodicInfo)arg1) float : ¶
Return the number of interactions.
- emulateAction((FlowEngine_PeriodicInfo)arg1) None : ¶
get scene and run action (may be used to manipulate an engine outside the timestepping loop).
- property eps¶
roughness defined as a fraction of particles size, giving the minimum distance between particles in the lubrication model.
- property epsVolMax¶
Maximal absolute volumetric strain computed at each iteration. (auto-updated)
- property execCount¶
Cumulative count this engine was run (only used if O.timingEnabled==
True
).
- property execTime¶
Cumulative time in nanoseconds this Engine took to run (only used if O.timingEnabled==
True
).
- exportMatrix((FlowEngine_PeriodicInfo)arg1[, (str)filename='matrix']) None : ¶
Export system matrix to a file with all entries (even zeros will displayed).
- exportTriplets((FlowEngine_PeriodicInfo)arg1[, (str)filename='triplets']) None : ¶
Export system matrix to a file with only non-zero entries.
- property first¶
Controls the initialization/update phases
- property fixTriUpdatePermInt¶
If positive, triangulation is fixed and DFNFlow trickPermeability is run according to the interval. Activating this automatically sets FlowEngine::meshUpdateInt and FlowEngine::defTolerance to -1 (never retriangulate).
- property fixedAlpha¶
If true, a constant-sized alpha vertex will be placed exactly above each facet. If false, logic is used to improve cell sizes in concave regions.
- property flatThreshold¶
If >=0, pore volumes below flatThreshold value are blocked from flow calc. Useful for compressible flow involving odd triangulations with some very flat pores.
- property fluidBulkModulus¶
Bulk modulus of fluid (inverse of compressibility) K=-dP*V/dV [Pa]. Flow is compressible if fluidBulkModulus > 0, else incompressible.
- property fluidCp¶
Heat capacity of fluid (for thermalEngine).
- fluidForce((FlowEngine_PeriodicInfo)arg1, (int)idSph) Vector3 : ¶
Return the fluid force on sphere idSph.
- property fluidRho¶
Density of fluid (for thermalEngine).
- property forceMetis¶
If true, METIS is used for matrix preconditioning, else Cholmod is free to choose the best method (which may be METIS to, depending on the matrix). See
nmethods
in Cholmod documentation
- getBoundaryFluidArea((FlowEngine_PeriodicInfo)arg1, (int)boundary) float : ¶
Get total fluid area associated with boundary defined by its body id.
- getBoundaryFlux((FlowEngine_PeriodicInfo)arg1, (int)boundary) float : ¶
Get total flux through boundary defined by its body id.
Note
The flux may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such flux evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- getBoundaryVel((FlowEngine_PeriodicInfo)arg1, (int)boundary) object : ¶
Get total avg cell velocity associated with boundary defined by its body id.
- getBoundaryVolume((FlowEngine_PeriodicInfo)arg1, (int)arg2, (float)boundary) float : ¶
Get total volume flowing through boundary defined by its body id in current timestep dt.
Note
The volume may be not zero even for no-flow condition. This artifact comes from cells which are incident to two or more boundaries (along the edges of the sample, typically). Such volume evaluation on impermeable boundary is just irrelevant, it does not imply that the boundary condition is not applied properly.
- property getCHOLMODPerfTimings¶
Print CHOLMOD build, analyze, and factorize timings
- getCavityDensity((FlowEngine_PeriodicInfo)arg1) float : ¶
Return the density of cavity fluid.
- getCavityFlux((FlowEngine_PeriodicInfo)arg1) float : ¶
Return the flux through the edge of the cavity.
- getCell((FlowEngine_PeriodicInfo)arg1, (float)X, (float)Y, (float)Z) int : ¶
get id of the cell containing (X,Y,Z).
- getCellBarycenter((FlowEngine_PeriodicInfo)arg1, (int)id) Vector3 : ¶
get barycenter of cell ‘id’.
- getCellCenter((FlowEngine_PeriodicInfo)arg1, (int)id) Vector3 : ¶
get voronoi center of cell ‘id’.
- getCellFlux((FlowEngine_PeriodicInfo)arg1, (int)cond) float : ¶
Get influx in cell associated to an imposed P (indexed using ‘cond’).
- getCellFluxFromId((FlowEngine_PeriodicInfo)arg1, (int)id) float : ¶
Get influx in cell.
- getCellInvVoidVolume((FlowEngine_PeriodicInfo)arg1, (int)id) float : ¶
get the inverse of the cell volume for cell ‘id’ after pore volumes have been initialized and FlowEngine:iniVoidVolumes = True, or compressibility scheme active with FlowEngine::fluidBulkModulus.
- getCellPImposed((FlowEngine_PeriodicInfo)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed pressure.
- getCellPressure((FlowEngine_PeriodicInfo)arg1, (int)id) float : ¶
get pressure by cell ‘id’. Note: getting pressure at position (x,y,z) might be more usefull, see :yref`FlowEngine::getPorePressure`:
- getCellTImposed((FlowEngine_PeriodicInfo)arg1, (int)id) bool : ¶
get the status of cell ‘id’ wrt imposed temperature.
- getCellTemperature((FlowEngine_PeriodicInfo)arg1, (int)id) float : ¶
get pressure in cell ‘id’.
- getCellVelocity((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) object : ¶
Get relative cell velocity at position pos[0] pos [1] pos[2].
- getCellVolume((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) float : ¶
Get volume of cell at position pos[0] pos [1] pos[2].
- getConductivity((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) float : ¶
get conductivity from cell and throat, with throat between 0 and 3 (same ordering as incident cells)
- getConstrictions((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) list : ¶
Get the list of constriction radii (inscribed circle) for all finite facets (if all==True) or all facets not incident to a virtual bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres.
- getConstrictionsFull((FlowEngine_PeriodicInfo)arg1[, (bool)all=True]) list : ¶
Get the list of constrictions (inscribed circle) for all finite facets (if all==True), or all facets not incident to a fictious bounding sphere (if all==False). When all facets are returned, negative radii denote facet incident to one or more fictious spheres. The constrictions are returned in the format {{cell1,cell2}{rad,nx,ny,nz}}
- getDiffusionCoeff((FlowEngine_PeriodicInfo)arg1, (int)cellId, (int)throat) float : ¶
get the ratio of throat cross-sectional area and distance between two cells
- getEquivalentCompressibility((FlowEngine_PeriodicInfo)arg1) float : ¶
Return the equivalent compressibility used for modeling air water mixture in cavity.
- getIncidentCells((FlowEngine_PeriodicInfo)arg1, (int)vertexId) list : ¶
get ids of all cells of which vertexId is a vertex. Typical usage is for getting cells indident to a boundary.
- getNeighbors((FlowEngine_PeriodicInfo)arg1, (int)arg2) list : ¶
get 4 neigboring cells
- getPorePressure((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getPoreTemperature((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) float : ¶
Measure pore pressure in position pos[0],pos[1],pos[2]
- getVertices((FlowEngine_PeriodicInfo)arg1, (int)id) list : ¶
get the vertices of a cell
- property idOffset¶
If the bounding walls of the fluid mesh are not walls of the scene (i.e. are not elements of O.bodies), the offset should be set equal to the size of O.bodies. If the bounding walls are bodies of the scene but are not numbered as 0-5 then offset should be the number of bodies comming before the walls. Set offset<0 to get it set equal to O.bodies.size(), it will also update FlowEngine::wallIds.
- property ignoredBody¶
DEPRECATED, USE MASK - Id of a sphere to exclude from the triangulation.)
- imposeCavity((FlowEngine_PeriodicInfo)arg1, (Vector3)pos) int : ¶
Cell with location ‘pos’ participates in a cavity (high conductivity and no volume factoring). The index of the condition is returned (for multiple imposed pressures at different points).
- imposeFlux((FlowEngine_PeriodicInfo)arg1, (Vector3)pos, (float)p) None : ¶
Impose a flux in cell located at ‘pos’ (i.e. add a source term in the flow problem). Outflux positive, influx negative