Skip to main content
2 of 3
added 158 characters in body
Botond
  • 215
  • 1
  • 4

Generating icosahedra with any T number

The regular icosahedron has 20 triangular faces and 12 vertices. Faces can be further subdivided into smaller triangles. However, it is not necessary that the smaller triangles perfectly tile one of the larger (original) triangles.

In fact, one can take a hexagonal sheet and define any lattice vector ($a_1$, $a_2$) on this sheet; this lattice vector would then constitute the side of the large triangle in the icosahedron. These subdivided icosahedra then can be classified by their T-number $T=a_1^2 + a_2^2+a_1 a_2$. The procedure is explained in this paper and I also included a schematic of it below: enter image description here

Example structures of different ($a_1, a_2$)-numbers (or, equivalently, T-numbers) are shown here:

enter image description here

As you can see, if $a_1=0$ or $a_2=0$, neighboring pentamers (5-valence vertices, marked in red) are connected by a lattice direction. In other words, the original 20 faces of the icosahedron are each perfectly subdivided by an integer number of triangles. This is not the case for arbitrary $a_1, a_2$, when some of the small triangles are shared between two original triangles of the icosahedron. My question is, whether there is a straightforward way to generate such structures in Mathematica. So far I've been using

Needs["PolyhedronOperations`"] Geodesate[PolyhedronData["Icosahedron"], 3] 

which subdivides each face like this:

enter image description here

However, this method only allows for structures with $a_1=0$ or $a_2=0$. What would be a good way to generate structures with any $a_1$,$a_2$?

Edit: I believe my question is almost identical to this one: https://math.stackexchange.com/questions/1299861/dynamically-generate-goldberg-polyhedra-gm-n

Botond
  • 215
  • 1
  • 4