\( \usepackage{euler} % must be loaded before fontspec for the whole doc (below); this must be kept for pngmath, however \usepackage{hyperref} \usepackage{amsmath} \usepackage{amsbsy} %\usepackage{mathabx} \usepackage{underscore} \usepackage[all]{xy} % Metadata of the pdf output \hypersetup{pdftitle={Yade Documentation}} \hypersetup{pdfauthor={Smilauer, V., et al.}} \hypersetup{pdfkeywords={Discrete element method, granular materials, contact law, hydromechanical coupling}} % symbols \renewcommand{\mat}{\boldsymbol} \renewcommand{\vec}{\boldsymbol} \renewcommand{\tens}{\boldsymbol} %normalized and locfram here \def\normalized#1{\widehat{#1}} \def\locframe#1{\widetilde{#1}} % timestep \def\Dt{\Delta t} \def\Dtcr{\Dt_{\rm cr}} % algorithm complexity \def\bigO#1{{\mathcal{O}(#1)}} % variants for greek symbols \let\epsilon\varepsilon \let\theta\vartheta \let\phi\varphi % shorthands \let\sig\sigma \let\eps\epsilon % variables at different points of time \def\prev#1{#1^-} \def\pprev#1{#1^\ominus} \def\curr#1{#1^{\circ}} \def\nnext#1{#1^\oplus} \def\next#1{#1^+} % shorthands for geometry \def\currn{\curr{\vec{n}}} \def\currC{\curr{\vec{C}}} \def\uT{\vec{u}_T} \def\curruT{\curr{\vec{u}}_T} \def\prevuT{\prev{\vec{u}}_T} \def\currn{\curr{\vec{n}}} \def\prevn{\prev{\vec{n}}} % motion \def\pprevvel{\pprev{\dot{\vec{u}}}} \def\nnextvel{\nnext{\dot{\vec{u}}}} \def\curraccel{\curr{\ddot{\vec{u}}}} \def\prevpos{\prev{\vec{u}}} \def\currpos{\curr{\vec{u}}} \def\nextpos{\next{\vec{u}}} \def\curraaccel{\curr{\dot{\vec{\omega}}}} \def\pprevangvel{\pprev{\vec{\omega}}} \def\nnextangvel{\nnext{\vec{\omega}}} \def\loccurr#1{\curr{\locframe{#1}}} \def\numCPU{n_{\rm cpu}} \DeclareMathOperator{\Align}{Align} \DeclareMathOperator{\sign}{sgn} % sorting algorithms \def\isleq#1{\currelem{#1}\ar@/^/[ll]^{\leq}} \def\isnleq#1{\currelem{#1}\ar@/^/[ll]^{\not\leq}} \def\currelem#1{\fbox{$#1$}} \def\sortSep{||} \def\sortInv{\hbox{\phantom{||}}} \def\sortlines#1{\xymatrix@=3pt{#1}} \def\crossBound{||\mkern-18mu<} \)

# Yade modules reference

- yade.bf module
  - Overview
  - Clump breakage algorithm
  - `checkFailure()`
  - `evalClump()`
  - `replaceSphere()`
  - `stressTensor()`
- yade.bodiesHandling module
  - `facetsDimensions()`
  - `sphereDuplicate()`
  - `spheresModify()`
  - `spheresPackDimensions()`
- yade.export module
  - `VTKExporter`
  - `VTKWriter`
  - `gmshGeo()`
  - `text()`
  - `text2vtk()`
  - `text2vtkSection()`
  - `textClumps()`
  - `textExt()`
  - `textPolyhedra()`
- yade.geom module
  - `facetBox()`
  - `facetBunker()`
  - `facetCone()`
  - `facetCylinder()`
  - `facetCylinderConeGenerator()`
  - `facetHelix()`
  - `facetParallelepiped()`
  - `facetPolygon()`
  - `facetPolygonHelixGenerator()`
  - `facetSphere()`
- yade.gridpfacet module
  - `chainedCylinder()`
  - `cylinder()`
  - `cylinderConnection()`
  - `gmshPFacet()`
  - `gridConnection()`
  - `gridNode()`
  - `gtsPFacet()`
  - `pfacet()`
  - `pfacetCreator1()`
  - `pfacetCreator2()`
  - `pfacetCreator3()`
  - `pfacetCreator4()`
- yade.libVersions module
  - `getAllVersions()`
  - `getAllVersionsCmake()`
  - `getArchitecture()`
  - `getLinuxVersion()`
  - `getVersion()`
  - `printAllVersions()`
  - `getAllVersionsCpp()`
- yade.linterpolation module
  - `integral()`
  - `revIntegrateLinear()`
  - `sanitizeInterpolation()`
  - `xFractionalFromIntegral()`
  - `xFromIntegral()`
- yade.log module
  - `defaultConfigFileName()`
  - `getAllLevels()`
  - `getDefaultLogLevel()`
  - `getMaxLevel()`
  - `getUsedLevels()`
  - `readConfigFile()`
  - `resetOutputStream()`
  - `saveConfigFile()`
  - `setDefaultLogLevel()`
  - `setLevel()`
  - `setOutputStream()`
  - `setUseColors()`
  - `testAllLevels()`
  - `testOnceLevels()`
  - `testTimedLevels()`
  - `unsetLevel()`
- yade.math module
  - `Real1()`
  - `degrees()`
  - `degreesHP1()`
  - `eig()`
  - `getRealHPCppDigits10()`
  - `getRealHPPythonDigits10()`
  - `linspace()`
  - `needsMpmathAtN()`
  - `radians()`
  - `radiansHP1()`
  - `toHP1()`
  - `usesHP()`
  - `Catalan()`
  - `Euler()`
  - `HP1`
  - `HP2`
  - `Log2()`
  - `Pi()`
  - `RealHPConfig`
  - `Var`
  - `abs()`
  - `acos()`
  - `acosh()`
  - `arg()`
  - `asin()`
  - `asinh()`
  - `atan()`
  - `atan2()`
  - `atanh()`
  - `cbrt()`
  - `ceil()`
  - `conj()`
  - `cos()`
  - `cosh()`
  - `cylBesselJ()`
  - `dummy_precision()`
  - `epsilon()`
  - `erf()`
  - `erfc()`
  - `exp()`
  - `exp2()`
  - `expm1()`
  - `fabs()`
  - `factorial()`
  - `floor()`
  - `fma()`
  - `fmod()`
  - `frexp()`
  - `fromBits()`
  - `getDecomposedReal()`
  - `getDemangledName()`
  - `getDemangledNameComplex()`
  - `getEigenFlags()`
  - `getEigenStorageOrders()`
  - `getFloatDistanceULP()`
  - `getRawBits()`
  - `getRealHPErrors()`
  - `highest()`
  - `hypot()`
  - `ilogb()`
  - `imag()`
  - `isApprox()`
  - `isApproxOrLessThan()`
  - `isEqualFuzzy()`
  - `isMuchSmallerThan()`
  - `isThisSystemLittleEndian()`
  - `isfinite()`
  - `isinf()`
  - `isnan()`
  - `laguerre()`
  - `ldexp()`
  - `lgamma()`
  - `log()`
  - `log10()`
  - `log1p()`
  - `log2()`
  - `logb()`
  - `lowest()`
  - `max()`
  - `min()`
  - `modf()`
  - `polar()`
  - `pow()`
  - `proj()`
  - `random()`
  - `real()`
  - `remainder()`
  - `remquo()`
  - `rint()`
  - `round()`
  - `roundTrip()`
  - `sgn()`
  - `sign()`
  - `sin()`
  - `sinh()`
  - `smallest_positive()`
  - `sphericalHarmonic()`
  - `sqrt()`
  - `squaredNorm()`
  - `tan()`
  - `tanh()`
  - `testArray()`
  - `testConstants()`
  - `testLoopRealHP()`
  - `tgamma()`
  - `toDouble()`
  - `toHP1()`
  - `toHP2()`
  - `toInt()`
  - `toLong()`
  - `toLongDouble()`
  - `trunc()`
- yade.minieigenHP module
  - `AlignedBox2`
  - `AlignedBox3`
  - `HP1`
  - `HP2`
  - `Matrix3`
  - `Matrix3c`
  - `Matrix6`
  - `Matrix6c`
  - `MatrixX`
  - `MatrixXc`
  - `Quaternion`
  - `Vector2`
  - `Vector2c`
  - `Vector2i`
  - `Vector3`
  - `Vector3c`
  - `Vector3i`
  - `Vector4`
  - `Vector6`
  - `Vector6c`
  - `Vector6i`
  - `VectorX`
  - `VectorXc`
- yade.mpy module
  - Logic:
  - Rules:
  - Hint:
  - `MAX_RANK_OUTPUT`
  - `REALLOCATE_FILTER()`
  - `Timing_comm`
  - `bodyErase()`
  - `checkAndCollide()`
  - `colorDomains()`
  - `configure()`
  - `declareMasterInteractive()`
  - `disconnect()`
  - `eraseRemote()`
  - `genLocalIntersections()`
  - `genUpdatedStates()`
  - `initialize()`
  - `isendRecvForces()`
  - `makeColorScale()`
  - `makeMpiArgv()`
  - `maskedConnection()`
  - `maskedPFacet()`
  - `medianFilter()`
  - `mergeScene()`
  - `migrateBodies()`
  - `mpiStats()`
  - `mpirun()`
  - `mprint()`
  - `pairOp()`
  - `parallelCollide()`
  - `probeRecvMessage()`
  - `projectedBounds()`
  - `reallocateBodiesPairWiseBlocking()`
  - `reallocateBodiesToSubdomains()`
  - `reboundRemoteBodies()`
  - `receiveForces()`
  - `recordMpiTiming()`
  - `runOnSynchronouslPairs()`
  - `sendCommand()`
  - `sendRecvStates()`
  - `shrinkIntersections()`
  - `spawnedProcessWaitCommand()`
  - `splitScene()`
  - `unboundRemoteBodies()`
  - `updateAllIntersections()`
  - `updateDomainBounds()`
  - `updateMirrorOwners()`
  - `updateRemoteStates()`
  - `waitForces()`
  - `wprint()`
- yade.pack module
  - `SpherePack_toSimulation()`
  - `filterSpherePack()`
  - `gtsSurface2Facets()`
  - `gtsSurfaceBestFitOBB()`
  - `hexaNet()`
  - `inConvexPolyhedron`
  - `inGtsSurface_py`
  - `inHalfSpace`
  - `inSpace`
  - `randomDensePack()`
  - `randomPeriPack()`
  - `regularHexa()`
  - `regularOrtho()`
  - `revolutionSurfaceMeridians()`
  - `sweptPolylines2gtsSurface()`
  - `SpherePack`
  - `SpherePackIterator`
  - `Predicate`
  - `PredicateBoolean`
  - `PredicateDifference`
  - `PredicateIntersection`
  - `PredicateSymmetricDifference`
  - `PredicateUnion`
  - `inAlignedBox`
  - `inCylinder`
  - `inEllipsoid`
  - `inGtsSurface`
  - `inHyperboloid`
  - `inParallelepiped`
  - `inSphere`
  - `notInNotch`
  - `cloudBestFitOBB()`
- yade.plot module
  - `LineRef`
  - `addAutoData()`
  - `addData()`
  - `addDataColumns()`
  - `addImgData()`
  - `addPointTypeSpecifier()`
  - `afterCurrentAlpha`
  - `autozoom`
  - `axesWd`
  - `createPlots()`
  - `createTitleFrame()`
  - `current`
  - `cycler()`
  - `data`
  - `imgData`
  - `labels`
  - `legendLoc`
  - `live`
  - `liveForceAlwaysUpdate`
  - `liveInterval`
  - `liveUpdate()`
  - `plot()`
  - `plotSyncLock`
  - `plots`
  - `reset()`
  - `resetData()`
  - `reverseData()`
  - `saveDataTxt()`
  - `saveGnuplot()`
  - `savePlotSequence()`
  - `savePylab()`
  - `scatterMarkerKw`
  - `scientific`
  - `setLiveForceAlwaysUpdate()`
  - `splitData()`
  - `tuplifyYAxis()`
  - `xlateLabel()`
  - `xylabels`
- yade.polyhedra_utils module
- yade.post2d module
  - Flatteners
  - Extractors
  - Example
  - `AxisFlatten`
  - `CylinderFlatten`
  - `Flatten`
  - `HelixFlatten`
  - `data()`
  - `plot()`
- yade.potential_utils module
  - `aabbPlates()`
  - `cuboid()`
  - `cylindricalPlates()`
  - `platonic_solid()`
  - `potentialblock()`
  - `prism()`
- yade.qt module
- yade.timing module
  - `reset()`
  - `runtime()`
  - `stats()`
- yade.utils module
  - `NormalRestitution2DampingRate()`
  - `SpherePWaveTimeStep()`
  - `TableParamReader`
  - `YadeColorStyle`
  - `aabbDim()`
  - `aabbExtrema2d()`
  - `aabbWalls()`
  - `avgNumInteractions()`
  - `box()`
  - `clumpTemplate`
  - `defaultMaterial()`
  - `facet()`
  - `fractionalBox()`
  - `levelSetBody()`
  - `loadVars()`
  - `makeVideo()`
  - `perpendicularArea()`
  - `phiIniPy()`
  - `plotDirections()`
  - `plotNumInteractionsHistogram()`
  - `polyhedron()`
  - `psd()`
  - `randomColor()`
  - `randomOrientation()`
  - `randomizeColors()`
  - `readParamsFromTable()`
  - `replaceCollider()`
  - `runningInBatch()`
  - `saveVars()`
  - `sphere()`
  - `tetra()`
  - `tetraPoly()`
  - `trackPerfomance()`
  - `typedEngine()`
  - `uniaxialTestFeatures()`
  - `vmData()`
  - `voxelPorosityTriaxial()`
  - `waitIfBatch()`
  - `wall()`
  - `xMirror()`
  - `PWaveTimeStep()`
  - `RayleighWaveTimeStep()`
  - `TetrahedronCentralInertiaTensor()`
  - `TetrahedronInertiaTensor()`
  - `TetrahedronSignedVolume()`
  - `TetrahedronVolume()`
  - `TetrahedronWithLocalAxesPrincipal()`
  - `aabbExtrema()`
  - `angularMomentum()`
  - `approxSectionArea()`
  - `bodyNumInteractionsHistogram()`
  - `bodyStressTensors()`
  - `calm()`
  - `cart2spher()`
  - `coordsAndDisplacements()`
  - `createInteraction()`
  - `distApproxRose()`
  - `distApproxSE()`
  - `distIniClump()`
  - `distIniSE()`
  - `fabricTensor()`
  - `flipCell()`
  - `forcesOnCoordPlane()`
  - `forcesOnPlane()`
  - `getBodyIdsContacts()`
  - `getCapillaryStress()`
  - `getDepthProfiles()`
  - `getDepthProfiles_center()`
  - `getDynamicStress()`
  - `getSlicedProfiles()`
  - `getSpheresMass()`
  - `getSpheresVolume()`
  - `getSpheresVolume2D()`
  - `getStress()`
  - `getStressAndTangent()`
  - `getStressProfile()`
  - `getStressProfile_contact()`
  - `getTotalDynamicStress()`
  - `getViscoelasticFromSpheresInteraction()`
  - `growParticle()`
  - `growParticles()`
  - `highlightNone()`
  - `initMPI()`
  - `inscribedCircleCenter()`
  - `insideClump()`
  - `interactionAnglesHistogram()`
  - `intrsOfEachBody()`
  - `kineticEnergy()`
  - `lsSimpleShape()`
  - `maxOverlapRatio()`
  - `momentum()`
  - `nGP()`
  - `negPosExtremeIds()`
  - `normalShearStressTensors()`
  - `numIntrsOfEachBody()`
  - `phiIniCppPy()`
  - `pointInsidePolygon()`
  - `porosity()`
  - `ptInAABB()`
  - `scalarOnColorScale()`
  - `setBodyAngularVelocity()`
  - `setBodyColor()`
  - `setBodyOrientation()`
  - `setBodyPosition()`
  - `setBodyVelocity()`
  - `setContactFriction()`
  - `setNewVerticesOfFacet()`
  - `setRefSe3()`
  - `shiftBodies()`
  - `spher2cart()`
  - `spiralProject()`
  - `sumFacetNormalForces()`
  - `sumForces()`
  - `sumTorques()`
  - `totalForceInVolume()`
  - `unbalancedForce()`
  - `voidratio2D()`
  - `voxelPorosity()`
  - `wireAll()`
  - `wireNoSpheres()`
  - `wireNone()`
- yade.ymport module
  - `blockMeshDict()`
  - `ele()`
  - `gengeo()`
  - `gengeoFile()`
  - `gmsh()`
  - `gts()`
  - `iges()`
  - `polyMesh()`
  - `stl()`
  - `text()`
  - `textClumps()`
  - `textExt()`
  - `textFacets()`
  - `textPolyhedra()`
  - `unv()`