\( \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.potential_utils module

Auxiliary functions for the Potential Blocks

yade.potential_utils.aabbPlates(material, extrema=None, thickness=0.0, r=0.0, R=0.0, mask=1, isBoundary=False, fixed=True, color=None)

  Return 6 cuboids that will wrap existing packing as walls from all sides. #FIXME: Correct this comment

  Parameters:

    - material (Material) – material of new bodies (FrictMat)

    - extrema ([Vector3, Vector3]) – extremal points of the Aabb of the packing, as a list of two Vector3, or any equivalent type (will not be calculated if not specified)

    - thickness (float) – wall thickness (equal to 1/10 of the smallest dimension if not specified)

    - r (float) – radius of inner Potential Particle (see PotentialBlock docs)

    - R (float) – distance R of the Potential Blocks (see PotentialBlock docs)

    - mask (int) – groupMask for the new bodies

  Returns:

    a list of 6 PotentialBlock Bodies enclosing the packing, in the order minX,maxX,minY,maxY,minZ,maxZ.

yade.potential_utils.cuboid(material, edges=Vector3(1, 1, 1), r=0.0, R=0.0, center=[0, 0, 0], mask=1, isBoundary=False, fixed=False, color=[-1, -1, -1])

  creates cuboid using the Potential Blocks

  Parameters:

    - edges (Vector3) – edges of the cuboid

    - material (Material) – material of new body (FrictMat)

    - center (Vector3) – center of the new body

yade.potential_utils.cylindricalPlates(material, radius=0.0, height=0.0, thickness=0.0, numFaces=3, r=0.0, R=0.0, mask=1, isBoundary=False, fixed=True, lid=[True, True], color=None)

  Return numFaces cuboids that will wrap existing packing as walls from all sides. #FIXME: Correct this comment

  Parameters:

    - material (Material) – material of new bodies (FrictMat)

    - radius (float) – radius of the cylinder

    - height (float) – height of cylinder

    - thickness (float) – thickness of cylinder faces (equal to 1/10 of the cylinder inradius if not specified)

    - numFaces (int) – number of cylinder faces (>3)

    - r (float) – radius of inner Potential Particle (see PotentialBlock docs)

    - R (float) – distance R of the Potential Blocks (see PotentialBlock docs)

    - mask (int) – groupMask for the new bodies

    - [bool] (lid) – list of booleans, whether to create the bottom and top lids of the cylindrical plates

  Returns:

    a list of cuboidal Potential Blocks forming a hollow cylinder

yade.potential_utils.platonic_solid(material, numFaces, edge=0.0, ri=0.0, rm=0.0, rc=0.0, volume=0.0, r=0.0, R=None, center=[0, 0, 0], mask=1, isBoundary=False, fixed=False, color=[-1, -1, -1])

yade.potential_utils.potentialblock(material, a=[], b=[], c=[], d=[], r=0.0, R=0.0, mask=1, isBoundary=False, fixed=False, color=[-1, -1, -1])

  creates potential block.

  Parameters:

    - material (Material) – material of new body

    - a,b,c,d ([float]) – lists of plane coefficients of the particle faces (see PotentialBlock docs)

    - r (float) – radius of inner Potential Particle (see PotentialBlock docs)

    - R (float) – distance R of the Potential Blocks (see PotentialBlock docs)

    - isBoundary (bool) – whether this is a boundary body (see PotentialBlock docs)

yade.potential_utils.prism(material, radius1=0.0, radius2=-1, thickness=0.0, numFaces=3, r=0.0, R=0.0, center=None, color=[1, 0, 0], mask=1, isBoundary=False, fixed=False)

  Return regular prism with numFaces

  Parameters:

    - material (Material) – material of new bodies (FrictMat)

    - radius1 (float) – inradius of the start cross-section of the prism

    - radius2 (float) – inradius of the end cross-section of the prism (equal to radius1 if not specified)

    - thickness (float) – thickness of the prism (equal to radius1 if not specified)

    - numFaces (int) – number of prisms’ faces (>3)

    - r (float) – radius of inner Potential Particle (see PotentialBlock docs)

    - R (float) – distance R of the Potential Blocks (see PotentialBlock docs)

    - center (Vector3) – center of the Potential Blocks (not currently used)

    - mask (int) – groupMask for the new bodies

  Returns:

    an axial-symmetric Potential Block with variable cross-section, which can become either a regular prism (radius1=radius2), a pyramid (radius2=0) or a cylinder or cone respectively, for a large enough numFaces value.