Abstract
Disordered structures such as liquids and glasses, grains and foams, galaxies, etc. are often represented as polyhedral tilings. Characterizing the associated polyhedral tiling is a promising strategy to understand the disordered structure. However, since a variety of polyhedra are arranged in complex ways, it is challenging to describe what polyhedra are tiled in what way. Here, to solve this problem, we create the theory of how the polyhedra are tiled. We first formulate an algorithm to convert a polyhedron into a codeword that instructs how to construct the polyhedron from its buildingblock polygons. By generalizing the method to polyhedral tilings, we describe the arrangements of polyhedra. Our theory allows us to characterize polyhedral tilings and thereby paves the way to study from short to longrange order of disordered structures in a systematic way.
Introduction
Disordered structures are often represented as polyhedral tilings^{1,2,3,4,5,6,7,8,9,10,11}. For example, in studying the atomic structures of amorphous materials, the space can be divided into the socalled Voronoi polyhedra, where each polyhedron encloses its associated atom^{1,2,3,4,5,6,7,8}. The shape of the polyhedron relates to how the associated atom is surrounded by its neighbouring atoms. The shortrange order of a disordered structure can be thus characterized by what polyhedra constitute its associated polyhedral tiling, while the longrange order by how the polyhedra are arranged. So far, some attempts have been made to classify individual polyhedra^{1,11,12,13,14,15,16} and periodic tilings for crystals^{17,18}. However, there have been no methods to describe what polyhedra are tiled in what way. If we could describe the arrangements of polyhedra, our understanding of the disordered structures would be deepened.
In this work, we create the theory of how the polyhedra are tiled. For this purpose, we use the hierarchy of structures of polytopes^{19,20}: a polyhedron (3polytope) is a tiling by polygons (2polytopes), a polychoron (4polytope) is a tiling by polyhedra and so on. We first formulate a code for polyhedra (p_{3}code) and then generalize it to polychora. The code for polychora (p_{4}code) allows us to describe what polyhedra are tiled in what way.
Results
Polygonsequence codeword
A polyhedron can be regarded as a tiling by polygons of the surface of a threedimensional object that is topologically the same as a threedimensional sphere. According to the idea developed by L. Euler, A. M. Legendre, F. Möbius and P. R. Cromwell^{19}, we assume that polygons are glued such that (1) any pair of polygons meet only at their sides or corners and that (2) each side of each polygon meets exactly one other polygon along an edge. In this picture, the vertex is a point on the polyhedron at which the corners of polygons meet (Supplementary Fig. S1a) and we say that the corners contribute to the vertex. We also say that a polygon (side) contributes to a vertex if one of its corners (endpoints) contributes to the vertex. Similarly, the edge is a line segment on the polyhedron along which the sides of polygons meet (Supplementary Fig. S1b). The interior area of a polygon is the face of the polyhedron.
We first deal with simple polyhedra, where every vertex is degree three. Here, the degree of a vertex is the number of edges connected to that vertex^{21}. Afterwards, the method will be generalized to nonsimple ones. We formulate the p_{3}code in such a way that the codeword of a polyhedron (simply, p_{3}) instructs how to construct it from its buildingblock polygons. For this purpose, we combine a polygonsequence codeword (ps_{2}) and a sidepairing codeword (sp) as p_{3} = ps_{2};sp, where “;” is a separator.
The ps_{2}codeword is denoted as
Here, p_{2}(i) is the number of sides on the polygon i, where i is the identification number (ID). F is the number of faces on the polyhedron. Generating ps_{2} thus reduces to assigning polygon IDs. To visually distinguish alreadyencoded polygons from tobeencoded ones, we assume that all polygons are coloured at first and make each polygon transparent when encoded. We call a side of a transparent polygon glued to a coloured one a dangling side. To identify each side, we introduce the sideID i_{j}. Here, the side i_{j} means the jth side of the polygon i and the sideID i_{j} represents an integer: i_{j} = j + . We also assign corner IDs so that the endpoints of the side i_{j} are the corners i_{j + 1} and i_{j} for 1 ≤ j < p_{2}(i) (Fig. 1a). The smallestID dangling side (sside) plays a key role in encoding. The ps_{2}codeword is generated as follows (Fig. 1b,c):

1

(a) Choose a side as the initial side and the polygon 1 is the one having that side.

(b) Assign IDs (1_{1}, 1_{2}, 1_{3}, ···, ) to the sides of the polygon 1 from the initial side in a clockwise (CW) direction.

(c) Make the polygon 1 transparent except for the corners and sides.


2

(a) The next polygon i (2 ≤ i ≤ F) is the coloured one glued to the sside.

(b) Assign IDs (i_{1}, i _{2}, i _{3}, ···, ) to the sides of the polygon i from the side glued to the sside in a CW direction.

(c) Make the polygon i transparent except for the corners and sides.


3

(a) Repeat the procedure 2 until all polygons get transparent.

For latter convenience in formulating the p_{4}code, we assign edge IDs as follows. First we tentatively assign the smaller side ID to the edge and then relabel the IDs so that the edge i is the one with the ith smallest tentative ID as illustrated in Fig. 1d. We also assign vertex IDs in a similar manner. First we tentatively assign the smallest corner ID to the vertex and then relabel the IDs. Since the properties of simple polyhedra are not assumed, the algorithm for generating ps_{2} can be used to assign face, edge and vertex IDs not only to simple polyhedra, but also to nonsimple ones.
We note that p_{2}(F − 1) and p_{2}(F) can be deduced from p_{2}(1) p_{2}(2) p_{2}(3) ··· p_{2}(F −2) (see Supplementary Note and Supplementary Fig. S2). However, we purposely admit the small redundancy in ps_{2} to explicitly express all information about the polygons of the polyhedron.
Tentative sidepairing codeword
To formulate sp and the decoding algorithm, we first introduce the zeroth tentative sidepairing codeword (tsp^{(0)}). We then formulate an algorithm to recover the original polyhedron from ps_{2};tsp^{(0)}. Finally, we remove redundancy in tsp^{(0)} stepbystep to obtain sp.
We first introduce a plot as follows. A plot consists of a single dangling side or a chain of dangling sides. Here, two dangling sides are considered to be chained when they contribute to the same vertex contributed by two transparent polygons. Let x be the smallest side ID of a plot. We define the ID of that plot as x (Fig. 2a). We call the smallestID plot the splot. Note that all the sides of each plot are glued to the same coloured polygon.
If we encode a polyhedron twice, we know all the IDs of the polygons and sides from the beginning in the second time of encoding. When the polygon (i − 1) gets transparent, the coloured polygon i is glued to the sside, so that the splot is glued to the polygon i. For example, in encoding the polyhedron shown in Fig. 2b, the polygon 2 in P_{1} is glued to the splot 1_{1} (Fig. 2c). Here, P_{i} is the object obtained when the polygon i gets transparent. In P_{7} (Fig. 2d), the polygon 8 is glued to the plot 5_{6} in addition to the splot 3_{4}. We call such an additional plot an aplot. The smallestID side of the aplot 5_{6}, which is the side 5_{6}, is glued to the side 8_{5}. We call such a pair an apair 8_{5}5_{6}. The sides 10_{4} and 5_{4} also form the apair 10_{4}5_{4} (Fig. 2e).
By collecting the apairs, we define tsp^{(0)} as
Here, the sides y_{a}(i) and x_{a}(i) form the apair y_{a}(i)x_{a}(i), where y_{a}(i) > x_{a}(i) and y_{a}(i) < y_{a}(i + 1). N_{a} is the number of apairs. For example, tsp^{(0)} of the polyhedron shown in Fig. 2b is 8_{5}5_{6}10_{4}5_{4}.
Decoding algorithm
To formulate a decoding algorithm, we consider the sequence D_{1} D_{2} D_{3} ··· D_{F}, where D_{i} is the partial polyhedron obtained when the polygon i is decoded. For the encoding process, we also consider the sequence E_{1} E_{2} E_{3} ··· E_{F}. Here, E_{i} is the partial polyhedron obtained by removing the coloured polygons from P_{i} (Fig. 3a,b). For D_{i} and E_{i}, if a side is not glued to the other polygon, we call it a dangling side. To define the plot, we consider a pair of two dangling sides to be chained if they contribute to the same vertex contributed by two polygons.
We formulate an algorithm to recover the original polyhedron from ps_{2};tsp^{(0)} so as to satisfy D_{i} = E_{i} at any i. If we assign side IDs (1_{1}, 1_{2}, 1_{3}, ···, ) to a p_{2}(1)gon, then the resultant object D_{1} is identical with E_{1}. Assume D_{i − 1} = E_{i − 1} for 2 ≤ i ≤ F. To construct D_{i} (=E_{i}) from D_{i − 1} and ps_{2};tsp^{(0)}, we introduce a rectification mechanism as follows. Since D_{i} is the partial polyhedron of a simple polyhedron, D_{i} must not have any degreefour vertex contributed by three polygons. We call such a vertex an illegal vertex (ivertex). However, we allow intermediate products to transiently have ivertices. When an ivertex is generated, we rectify it by gluing together the two dangling sides contributing to it (Fig. 3c). Using the rectification mechanism, D_{i} can be constructed as follows. We first glue the side i_{1} of the polygon i to the sside of D_{i − 1} (Fig. 3d,e). This is because E_{i} consists of the polygon i and E_{i − 1} in such a way that the side i_{1} of the polygon i is glued to the sside of E_{i − 1}. In addition, if y_{a}(n) (1 ≤ n ≤ N_{a}) is the side ID of the polygon i, then we glue the side y_{a}(n) to the side x_{a}(n) of D_{i − 1} (Fig. 3f) –for the polygon i in E_{i} is glued to not only the splot, but also the aplot x_{a}(n) of E_{i − 1} (Fig. 3b). If the product has ivertices, we rectify them so that all the sides of the splot and aplots get glued to the polygon i properly to satisfy D_{i} = E_{i} (Fig. 3g,h).
To summarize, the original polyhedron can be recovered from ps_{2};tsp^{(0)} as follows (Fig. 1e):

1

(a) The polygon 1 is a p_{2}(1)gon.

(b) Assign IDs (1_{1}, 1_{2}, 1_{3}, ···, ) to its sides in a CW direction. The resultant object is D_{1}.


2

(a) The next polygon i (2 ≤ i ≤ F) is a p_{2}(i)gon.

(b) Assign IDs (i_{1}, i _{2}, i _{3}, ···, ) to its sides in a CW direction.

(c) Glue the side i_{1} of the polygon i to the sside of D_{i − 1}.

(d) If y_{a}(n) (1 ≤ n ≤ N_{a}) is the side ID of the polygon i, then glue the side y_{a}(n) to the side x_{a}(n) of D_{i − 1}.

(e) If ivertices are generated, then rectify them and repeat this procedure until no ivertices remain. The resultant object is D_{i}.


3

(a) Repeat the procedure 2 until all polygons are placed.

Sidepairing codeword
In decoding ps_{2};tsp^{(0)}, D_{i} = E_{i} at any i. However, what we need is just D_{F} = E_{F}. By allowing D_{i} ≠ E_{i} for 1 ≤ i ≤ F − 1, we can make the more compact sp as described below.
We remove redundancy in tsp^{(0)} stepbystep. To examine y_{a}(N_{a})x_{a}(N_{a}) for necessity, we consider the first test codeword denoted as
which is obtained by stripping y_{a}(N_{a})x_{a}(N_{a}) off from tsp^{(0)}. Then we attempt to decode ps_{2};test^{(1)}. When the polygon having the side y_{a}(N_{a}) is decoded, we will fail to glue the sides y_{a}(N_{a}) and x_{a}(N_{a}) together, because the apair y_{a}(N_{a})x_{a}(N_{a}) is missing in test^{(1)}. However, we can proceed decoding. If the missing apair is cured and the original polyhedron is successfully reproduced in the subsequent decoding process, then we call the apair the curable apair. Otherwise, we call it the noncurable apair. If the apair is curable, then we can remove y_{a}(N_{a})x_{a}(N_{a}) from tsp^{(0)}. We therefore set the first tentative sidepairing codeword as tsp^{(1)} = test^{(1)}. On the other hand, if the apair is noncurable, then tsp^{(1)} = tsp^{(0)}.
To examine y_{a}(N_{a}+1 − i)x_{a}(N_{a }+ 1 − i) (2 ≤ i ≤ N_{a}) for curability, we consider the ith test codeword test^{(i)}, which is obtained by stripping y_{a}(N_{a} + 1 − i)x_{a}(N_{a} + 1 − i) off from tsp^{(i − 1)}. Then we attempt to decode ps_{2};test^{(i)}. If the apair is curable, then tsp^{(i)} = test^{(i)}, otherwise, tsp^{(i)} = tsp^{(i − 1)}.
We repeat the abovementioned procedure and is what we call sp. For example, tsp^{(0)} of the polyhedron shown in Fig. 2b is 8_{5}5_{6}10_{4}5_{4}. The apair 10_{4}5_{4} is noncurable (Supplementary Fig. S3a), while the apair 8_{5}5_{6} is curable (Supplementary Fig. S3b). As a result, sp = 10_{4}5_{4}. Since the polyhedron is encoded as 458585574755433: 10_{4}5_{4}, we call it a 458585574755433;10_{4}5_{4}polyhedron, or a 4(58)^{2}5^{2}7475^{2}43^{2};10_{4}5_{4}polyhedron for short.
Representative codeword
Our encoding starts with choosing an initial side. A different initial side for the same polyhedron may give a different p_{3}codeword. There are 2E possible initial sides for a polyhedron. Here, E is the number of edges on the polyhedron. We also examine the mirrorimage polyhedron, which gives additional 2E possibilities. A maximum of 4E different codewords can be obtained from a polyhedron and its mirror image. To determine the representative one, we introduce the lexicographical number Lex(p_{3}). Given that ps_{2} and sp can be read as positive F and 2N_{na}digit integers, we define Lex(p_{3}) as the concatenation of the two numbers. Here, N_{na} is the number of noncurable apairs. We use the codeword with the smallest Lex(p_{3}) as the representative one.
Nonsimple polyhedron
On the analogy of the nregular graph^{21}, we call the polyhedron whose vertices are all degree n the nregular polyhedron. 3regular polyhedra are simple, while, for n > 3, nregular polyhedra are nonsimple. In encoding [decoding], if we regard that two dangling sides are chained when they contribute to the same vertex contributed by (n − 1) transparent polygons [polygons] and modify an ivertex to be a vertex contributed by a pair of two dangling sides and n transparent polygons [polygons], our p_{3}code is straightforwardly applicable to nregular polyhedra. For example, the octahedron is encoded as “4regular 3^{8}”. The icosahedron is “5regular 3^{20}”. However, if a nonsimple polyhedron is nonregular, this method cannot be used. To deal with all nonsimple polyhedra, we formulate a method that uses a onetoone correspondence between a nonsimple polyhedron and its associated simple one as described below.
Any nonsimple polyhedron can be transformed into its associated simple polyhedron by cutting every vertex of degree d (>3) and replacing it with a dgonal cross section^{22}. For example, a nonsimple pentagonal pyramid can be transformed into a pentagonal prism by cutting the apex (Fig. 4a,b). By marking the cross sections, a onetoone correspondence can be established between any nonsimple polyhedron and its associated simple one. Using the onetoone correspondence, we encode a nonsimple polyhedron. Here, we modify the sside to be the smallestID dangling side in real polygons (not cross sections) so that the face, edge and vertex IDs of a nonsimple polyhedron determined from its associated simple polyhedron using an algorithm described below conform to those determined directly from itself using the algorithm described above. The p_{3}codeword of a nonsimple polyhedron is generated as follows:

1
Choose a side of a nonsimple polyhedron as an initial side.

2
Construct its associated simple polyhedron by cutting every vertex of degree d (>3) and replacing it with a dgonal cross section.

3
Encode the associated simple polyhedron from the initial side corresponding to the one determined in the procedure 1.

4
Put a dot on p_{2}(i) if the polygon i is the cross section; for example, a codeword for the pentagonal pyramid is , or for short, indicating that the polygon 7 is a cross section.

5
The edge and face IDs can be assigned as illustrated in Fig. 4c.
Since ps_{2} contains dots, it is not a number. We therefore define Lex(ps_{2}) as the concatenation of two numbers ps_{2}^{(1)} and ps_{2}^{(2)}. Here, ps_{2}^{(1)} is a number obtained from ps_{2} by replacing every number without a dot to 0 and then by removing all dots, while ps_{2}^{(2)} is obtained by removing all dots from ps_{2}. For example, Lex is the concatenation of 0000005 and 5444445, namely, 00000055444445.
Note that, if a vertex is concave, cutting the vertex may not be well defined. However, by assuming that a polyhedron is flexible, we can inflate it so that a concave vertex becomes a convex one. Then we can cut the vertex.
Decoding is achieved easily. We first construct the associated simple polyhedron and then shrink the cutting sections to the vertices.
The duality of polyhedra can be used to make a codeword more compact. Every polyhedron has its associated dual, which is constructed as follows^{21}:

1
Draw a vertex v_{i}^{*} of the dual polyhedron on each face f_{i} of the original polyhedron.

2
Draw an edge e_{ij}^{*} of the dual, if the faces f_{i} and f_{j} share an edge e, to connect the vertices v_{i}^{*} and v_{j}^{*} such that e_{ij}^{*} crosses e, but does not cross the other edges.
There is a onetoone correspondence between the original polyhedron and its dual. For example, the dual of an octahedron is a hexahedron (Fig. 5a,b). Reversely, the dual of a hexahedron is an octahedron (Fig. 5b). A p_{3}codeword for the octahedron is 66()^{6}, while a p_{3}codeword for the hexahedron is 4^{6}. Using the duality, we encode the octahedron as ^{★}4^{6}. Here, “^{★}” indicates that the octahedron is the dual of the 4^{6}polyhedron. We define Lex (^{★}4^{6}) as the concatenation of Lex (^{★}), which we define as 1 and Lex(4^{6}). Therefore, Lex (^{★}4^{6}) is 1444444. On the other hand, Lex(66()^{6}) is 0040404040404066464646464646. Since Lex (^{★}4^{6}) is the smallest, the representative p_{3} for the octahedron is ^{★}4^{6}, which is more compact than 66()^{6}. We also note that the hexahedron can be encoded as ^{★}66()^{6}, but it is not the representative codeword. For reference, the representative p_{3}codewords for the tetrahedron, hexahedron, octahedron, dodecahedron and icosahedron are 3^{4}, 4^{6}, ^{★}4^{6}, 5^{12} and ^{★}5^{12}, respectively.
Consider that we calculate p_{3} for a polyhedron by encoding its dual for a given initial side of the original polyhedron. To determine the initial side for encoding the dual, we use the onetoone correspondence between the original polyhedron and its dual. For example, in encoding an octahedron shown in Fig. 5, when we choose the side cb of the polygon cbf as the initial side, the edge cb is the edge 1 and the vertex c is the vertex 1. The edge and vertex are mapped to the edge hl and face hlmi of the dual. Using this relation, we choose the initial side for encoding the dual so that 1s are assigned to the edge hl and face hlmi. Thus, the initial side is determined to be the side hl of the polygon hlmi.
Our p_{3}code is more robust and efficient than the previous methods for polyhedra^{1,11,12,13,14,15,16} (see Supplementary Note). However, what is really stupendous is that only our theory can be generalized to polyhedral tilings as described below.
Code for polychora
We regard a polychoron as a tiling by polyhedra of the surface of a fourdimensional object that is topologically the same as a fourdimensional sphere. We assume that polyhedra are glued together such that (1) any pair of polyhedra meet only at their faces, edges, or vertices and that (2) each face of each polyhedron meets exactly one other polyhedron along a ridge. The 0face, peak and ridge are a point, line segment and area on the polychoron, where the vertices, edges and faces of polyhedra meet, respectively (Supplementary Fig. S1c–e). The interior space of a polyhedron is the cell of the polychoron.
We first deal with polychora whose peaks are all contributed by three polyhedra. Afterwards, the method will be generalized to polychora in general. The p_{4}codeword consists of a polyhedronsequence codeword (ps_{3}) and a facepairing codeword (fp) and is denoted as p_{4} = ps_{3};fp.
The ps_{3}codeword is denoted as
where C is the number of cells on the polychoron and p_{3}(i) is the p_{3}codeword for the polyhedron i. To assign IDs to the polyhedra, we use edge (face) IDs i_{j}. Here, the edge (face) i_{j} is the jth edge (face) of the polyhedron i. In encoding, each polyhedron is coloured at first, but gets transparent when encoded. We call a face of a transparent polyhedron glued to a coloured one a dangling face. The smallestID dangling face (sface) plays a key role in encoding. The ps_{3}codeword is generated as follows (Fig. 6 and Supplementary Fig. S4):

1

(a) Choose a face of a polyhedron and an edge of that face as the initial face and edge, respectively; the polyhedron 1 is the one having the initial face.

(b) Determine p_{3}(1) by encoding the polyhedron 1 in such a way that the face 1_{1} (edge 1_{1}) becomes the initial face (edge).

(c) Make the polyhedron 1 transparent except for the vertices and edges.


2

(a) The next polyhedron i (2 ≤ i ≤ C) is the coloured one glued to the sface.

(b) Determine p_{3}(i) by encoding the polyhedron i in such a way that the face i_{1} (edge i_{1}) is glued to the sface (the smallestID edge of the sface).

(c) Make the polyhedron i transparent except for the vertices and edges.


3

(a) Repeat the procedure 2 until all polyhedra get transparent.

As with the case of polyhedra, this method can be used to assign cell, ridge, peak and 0face IDs to polychora in general.
To define zeroth tentative facepairing codeword tfp^{(0)}, we explain plots for polychora. If a pair of two dangling faces contribute to a peak contributed by two transparent polyhedra, the dangling faces are considered to be chained. A single dangling face or chained dangling faces form a plot; the plot here is a twodimensional object. We assign plot IDs so that the smallestID face of the plot x is the face x. If the polyhedron i in P_{i − 1} is glued to plots other than the splot, we call them aplots. By the apair wzv, we mean that the face w (of the polyhedron i) is glued to the face v of the aplot v in such a way that the edge z (of the face w) is glued to the smallestID edge of the face v. By collecting the apairs, tfp^{(0)} is denoted as
Here, w_{a}(i) > v_{a}(i) and w_{a}(i) < w_{a}(i + 1).
In decoding, by a dangling face, we mean a face that is not glued to the other polyhedron. If a pair of dangling faces contribute to a peak that is also contributed by three polyhedra, we call that peak an illegal peak (ipeak). The ipeak can be rectified by gluing together the two dangling faces contributing to it. The original polychoron can be recovered from its ps_{3};tfp^{(0)} as follows (Supplementary Figs S5 to S7):
1.

(a) Decode p_{3}(1) to obtain the polyhedron 1, assigning face and edge IDs.
2.

(a) Decode p_{3}(i) to obtain the next polyhedron i (2 ≤ i ≤ C), assigning face and edge IDs.

(b) Glue the face i_{1} of the polyhedron i to the sface of D_{i−1} in such a way that the edge i_{1} is glued to the smallestID edge of the sface.

(c) If w_{a}(n) (1 ≤ n ≤ N_{a}) is the face ID of the polyhedron i, then glue the face w_{a}(n) to the face v_{a}(n) of D_{i−1} in such a way that the edge z_{a}(n) is glued to the smallestID edge of the face v_{a}(n).

(d) If ipeaks are generated, then rectify them and repeat this procedure until no ipeaks remain.
3.

(a) Repeat the procedure 2 until all polyhedra are placed.
By an similar argument for sp, the redundancy in tfp^{(0)} can be removed stepbystep with generating tfp^{(1)}, tfp^{(2)}, tfp^{(3)}, ··· and tfp^{(Na)} is what we call fp.
A maximum of 12P different p_{4}codewords can be obtained from a polyhedron and its mirror image, where P is the number of peaks on the polychoron. Given that ps_{3} and fp can be read as C and 3N_{na} digit numbers, respectively, we define Lex(p_{4}) as the concatenation of the two numbers. We use the lexicographically smallest p_{4} as the representative one.
Affected polychora
We first define the degree of a peak as the number of polyhedra contributing to that peak. We call a peak of degree more than three an affected peak. We say a polychoron without an affected peak to be nonaffected. Reversely, an affected polychoron has one or more affected peaks. The p_{4}code for nonaffected polychora formulated above can be generalized to affected ones by using a onetoone correspondence between an affected polychoron and its associated nonaffected one as described below.
Any affected polychora can be transformed into a nonaffected one by cutting its affected peaks. However, when different affected peaks are incident to the same 0face, different nonaffected polychora are obtained depending on the order of cutting. Therefore, we first assign peak IDs and then cut the affected peaks in the ascending order of peak ID.
Suppose that we create a crosssection cell (cscell) by cutting an affected peak XY, connecting the 0faces X and Y. We say its 0face to be typeX (typeY), if it is the cross section of a peak incident to X (Y). The ridges of the cscell are classified into three types: typeX ridges consisting of only typeX 0faces, typeXY ridges consisting of both typeX and typeY 0faces and typeY ridges consisting of only typeY 0faces. In other words, by cutting a peak XY, it is mapped to a cscell in such a way that its endpoints are mapped to either typeX or typeY ridges. Note that the typeX and Y ridges do not adjoin each other because the typeXY ridges separate them and that the number of the typeXY ridges is the same as the degree of the peak XY. In the example shown in Fig. 7, by cutting the affected peak XY of degree four, the 0faces X and Y are mapped to the crosssection ridges a′b′c′d′ and e′f′g′h′, respectively. Four crosssection ridges a′d′h′e′, b′a′e′f′, c′b′f′g′ and d′c′g′h′ are typeXY.
Based on the above discussion, an affected polychoron can be encoded as follows:

1
Choose a face and an edge of an affected polychoron as an initial face and edge and then assign peak IDs.

2
Cut the affected peaks in the ascending order of peak ID.

3
Encode the associated nonaffected polychoron from the initial face and edge corresponding to the ones used in procedure (1).

4
To identify the cscell that is created when we cut an affected peak, we denote, for example, the p_{3}codeword for a cshexahedron as . Here, four double lines on 4 designate that the cshexahedron is mapped from the affected peak of degree four and that the four 4gonal faces contribute to the typeXY ridges.
For example, a p_{4}codeword for a polychoron shown in Fig. 7a is , where H = 4^{6} and .
Decoding is achieved easily. We first reproduce the associated nonaffected polychoron and then shrink the cscells to the corresponding affected peaks.
To define Lex(p_{4}), we define Lex(ps_{3}) for a nonsimple polychoron as the concatenation of Lex(ps_{3}^{(1)}) and Lex(ps_{3}^{(2)}). Here, ps_{3}^{(1)} is the codeword obtained from ps_{3} as follows. We first replace every p_{3} with 0 except p_{3}s for the cscells corresponding to the affected peaks. We then deal with the p_{3}s for the affected peaks and replace the digits without double lines with 0 and remove the double lines. The ps_{3}^{(2)}codeword is the one obtained by removing double lines from ps_{3}. For example, Lex() is the concatenation of 0000000X and HHHHHHHH, namely, 0000000XHHHHHHHH. Here, X = 044440.
As in the case of polyhedra, the duality of polychora^{20} can be used to make a codeword more compact. For example, by using the duality, the representative p_{4}codewords for 5, 8, 16, 24, 120 and 600cells^{12} are encoded as T^{4}, H^{8}, ^{★}H^{8}, O^{24}, D^{12} and ^{★}D^{12}, respectively. Here, T, O and D are the representative p_{3}codewords for the tetrahedron 3^{4}, octahedron ^{★}H and dodecahedron 5^{12}, respectively. Note that “^{★}” in “^{★}H^{8}” indicates the dual of H^{8} and Lex (^{★}p_{4}) is defined as the concatenation of Lex (^{★}) and Lex(p_{4}).
Describing a polyhedral tiling
Since a complex of polyhedra can be regarded as a partial polychoron, the p_{4}code can be used to describe the arrangement of polyhedra in polyhedral tilings. The complex of polyhedra shown in Fig. 8, for example, is encoded as a partial p_{4}codeword O_{t}HG_{3rd}^{4}(HG_{3rd})^{4}H. Here, by a partial p_{4}, we mean that decoding it results in a partial polychoron. O_{t} (=46^{4}(46)^{4}4) and H (=4^{6}) are the representative p_{3}s of the truncated octahedron and hexahedron, respectively. G_{3rd} (=6(48)^{3}(64)^{6}(84)^{3}6) is the third smallest p_{3} of the great rhombicuboctahedron.
Discussion
In this work, we have created the theory of polyhedral tilings, which allows us to convert a local arrangement of polyhedra into a partial p_{4}codeword that represents what polyhedra are tiled in what way. Traditionally, the index c_{3}c_{4}c_{5}∙∙∙ has been used to classify polyhedra in polyhedral tilings of liquids, glasses, grains and foams, where c_{i} is the number of igons on the polyhedron^{1,2,3,4,5,6,9,11}. However, the index sometimes fails to distinguish polyhedra with different structures, which prevents a close investigation of disordered structures. For example, the 35664453polyhedron and 34566543polyhedrdon have the same index, 2222000···. Although the Weinberg code may be a possible remedy and has been used recently^{11}, its codeword is lengthy and therefore redundant, still hampering our understanding of disordered structures. For example, the Weinberg codeword of the most frequently found polyhedron in the PoissonVoronoi tessellation is “ABCACDEFAFGHIBIJKDKLELMGMNHNJNMLKJIHGFEDCB”. In contrast, using our p_{3} code, the same polyhedron is encoded as “356645445”. We also note that when the Voronoi polyhedron associated with an atom is encoded as 356645445, the atom is surrounded by neighbouring atoms forming a ★356645445polyhedron. Our method thus allows us to describe polyhedral tilings succinctly, which is essential to understand disordered structures. In addition, although the shortrange order can be studied by the previous methods, the longrange order cannot. Only our theory allows us to characterize what polyhedra are tiled in what way and thereby paves the way to study from short to longrange order of disordered structures in a systematic way. Moreover, our theory can be generalized to higherdimensional polytopes to study disordered structures of any dimension.
Additional Information
How to cite this article: Nishio, K. and Miyazaki, T. How to describe disordered structures. Sci. Rep. 6, 23455; doi: 10.1038/srep23455 (2016).
References
Bernal, J. D. The Bakerian Lecture, 1962. The Structure of Liquids. Proc. R. Soc. Lond. A 280, 299–322 (1964).
Finney, J. Random Packings and Structure of Simple Liquids. 1. Geometry of Random Close Packing. Proc. R. Soc. Lond. A 319, 479–493 (1970).
Finney, J. Random Packings and Structure of Simple Liquids. 2. Molecular Geometry. Proc. R. Soc. Lond. A 319, 495–507 (1970).
Yonezawa, F. Glass Transition and Relaxation of Disordered Structures. Solid State Phys. 45, 179–254 (1991).
Sheng, H. W., Luo, W. K., Alamgir, F. M., Bai, J. M. & Ma, E. Atomic packing and shorttomediumrange order in metallic glasses. Nature 439, 419–425 (2006).
Hirata, A. et al. Geometric Frustration of Icosahedron in Metallic Glasses. Science 341, 376–379 (2013).
Nishio, K., Kōga, J., Yamaguchi, T. & Yonezawa, F. ConfinementInduced Stable Amorphous Solid of Lennard–Jones Argon. J. Phys. Soc. Jpn. 73, 627–633 (2004).
Nishio, K., Miyazaki, T. & Nakamura, H. Universal MediumRange Order of Amorphous Metal Oxides. Phys. Rev. Lett. 111, 155502 (2013).
Kraynik, A. M., Reinelt, D. A. & van Swol, F. Structure of random monodisperse foam. Phys. Rev. E 67, 031403 (2003).
Ramella, M., Boschin, W., Fadda, D. & Nonino, M. Finding galaxy clusters using Voronoi tessellations. Astron. Astrophys. 368, 11 (2001).
Lazar, E. A., Mason, J. K., MacPherson, R. D. & Srolovitz, D. J. Complete Topology of Cells, Grains and Bubbles in ThreeDimensional Microstructures. Phys. Rev. Lett. 109, 095505 (2012).
Coxeter, H. S. M. Introduction to Geometry, Ch. 10, 148–159; Ch. 22, 396–414 (Wiley, 1989).
Weinberg, L. A Simple and Efficient Algorithm for Determining Isomorphism of Planar Triply Connected Graphs. IEEE Trans. Circuit Theory 13, 142–148 (1966).
Manolopoulos, D. E., May, J. C. & Down, S. E. Theoretical studies of the fullerenes: C34 to C70. Chem. Phys. Lett. 181, 105–111 (1991).
Brinkmann, G. Problems and scope of spiral algorithms and spiral codes for polyhedral cages. Chem. Phys. Lett. 272, 193–198 (1997).
Fowler, P. W. & Manolopoulos, D. E. An Atlas of Fullerenes, Ch. 2, 15–42 (Dover Publications, 2007).
Friedrichs, O. D., Dress, A. W. M., Huson, D. H., Klinowski, J. & Mackay, A. L. Systematic enumeration of crystalline networks. Nature 400, 644–647 (1999).
Lord, E. A., Mackay, A. L. & Ranganathan, S. New Geometries for New Materials, Ch. 8.8, 145–149 (Cambridge University Press, 2006).
Cromwell, P. R. Polyhedra, Ch. 5, 181–218 (Cambridge University Press, 1999).
Ziegler, G. M. Lectures on Polytopes, Ch. 5, 127–148 (Springer, 2012).
Wilson, R. J. Introduction to Graph Theory, Ch. 1, 8–31 (Pearson, 2012).
Wilson, R. & Stewart, I. Four Colors Suffice: How the Map Problem Was Solved, Ch. 3 and 4, 28–54, (Princeton University Press, 2013).
Persistence of Vision Pty. Ltd., Williamstown, Victoria, Australia. http://www.povray.org/
Author information
Affiliations
Contributions
K.N. conceived the original idea of code for polytopes. K.N. and T.M. polished up the idea.
Ethics declarations
Competing interests
The authors declare no competing financial interests.
Electronic supplementary material
Rights and permissions
This work is licensed under a Creative Commons Attribution 4.0 International License. The images or other third party material in this article are included in the article’s Creative Commons license, unless indicated otherwise in the credit line; if the material is not included under the Creative Commons license, users will need to obtain permission from the license holder to reproduce the material. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
About this article
Cite this article
Nishio, K., Miyazaki, T. How to describe disordered structures. Sci Rep 6, 23455 (2016). https://doi.org/10.1038/srep23455
Received:
Accepted:
Published:
Further reading
Comments
By submitting a comment you agree to abide by our Terms and Community Guidelines. If you find something abusive or that does not comply with our terms or guidelines please flag it as inappropriate.