Plane group packings with regular pentagons

First experiments with packing pentagons using plane groups. Genetic algorithm was used to optimize the packing density.  It seems that the  optimal packing density is approx. 0.92 ( Packings of Regular Pentagons in the Plane ).

2. Plane group: p2

Density:  0.8550

3. Plane group: pm

Density:  0.6798

4. Plane group: pg

Density:  0.8879

5. Plane group: cm

Density:  0.7450

6. Plane group: p2mm

Density:  0.6930

7. Plane group: p2mg

Density:  0.8539

8. Plane group: p2gg

Density:  0.9104

9. Plane group: c2mm

Density:  0.6908

10. Plane group: p4

Density:  0.8423

11. Plane group: p4mm

Density:  0.5406

 

12. Plane group: p4gm

Density:  0.6957

13. Plane group: p3

Density:  0.8578

14. Plane group: p3m1

Density:  0.5236

15. Plane group: p31m

Density:  0.6980

16. Plane group: p6

Density:  0.7290

17. Plane group: p6mm

Density:  0.4914

Combinatorial packing

Starting to experiment with combinatorial packings by gluing particles together along their edges and finding a configuration with maximal ratio between the volume of the sum of the particles and the volume of the convex hull of the particles. Here are some examples.

ratio = 0.4500

Expanding the tree to two particles. There are only two admissible configurations with different  ratios for two particles.

1. branch

ratio = 0.4

Ratios from left to right: 0.3857,  0.4045,  04075, 0.4372,  0.4015,  0.3724

 

2. branch

ratio = 0.4091

Ratios from left to right: 0.4045,  0.3971, 0.3803, 0.4075,  0.4372,  0.4015

Packing pentacene continued

I modified the original algorithm to work better. It’s significantly slower but I get better results. There seems to be a relationship between number of objects in the unit cell and the algorithm’s performance. The  more shapes the worse density. (more local minima on the landscape?). The other thing is packings are physically unrealistic, that is the shapes from different unit cells are intertwined. No more problem is that the density did go higher then 1 which should not be.  Maybe we need a more suitable formula for computing density in the periodic setting.

Results

1 pentacene model in a unit cell

Density = 1.9932

 

2 pentacene models in a unit cell

Density = 1.0063

4 pentacene models in a unit cell

Density = 0.8093

8 pentacene models in a unit cell

Density = 0.6940

54 pentacene models in a unit cell

Density = 0.1788

Pentacene packing

I got to packing Pentacene model  based on previous computations. see https://milotorda.net/index.php/pentacene-modeling/    . From the coordinates of the atoms of the Pentacene molecule

I have created a point cloud by placing 14 points around every atom in the Pentacene uniformly placed on a sphere with radius 0.5573/2.

and finally taken the convex hull of the point cloud as the 3D-model of Pentacene. The resulting structure is in the form of triangulation with 58 vertices, 112 edges and 168 faces. Volume of the polyhedron is 48.237.

Subsequently I used the Torquato – Jiao packing algorithm to create packings of various numbers of pentacene models in a unit cell.

4 pentacene models in a unit cell

Initial configuration

Density = 0.0037.

Original algorithm
First iteration

Density = 0.0291

Second iteration

Density = 0.0512

simulated annealing
First iteration

Density = 0.0514

Second iteration

Density = 0.1178

8 pentacene models in a unit cell

initial configuration

Density = 0.0075

Original algorithm
First iteration

Density = 0.0660

Second iteration

Density = 0.0436

simulated annealing
First iteration

Density = 0.0234

Packing triangles with fmincon()

I experimented with the packing of triangles using previous model and Matlab’s fmincon() optimizer. For each setting 100 runs were performed with the following initial conditions. Triangles have  the same initial positions in the initial unit cell with random rotations. The algorithm used was interior point with supplied objective gradient.

3 triangle setting

Out of 100 runs 45 resulted in feasible solutions. 40 with exitflag== -2, 0 with exitflag== -1, 21 with exitflag== 0., 0 with exitflag== 1,  39 with exitflag== 2.  Mean density in the feasible solution cases was 0.5827 and variance 0.0197. The best case had density 0.8118.

Left is the initial setup and right is the best found solution.

 

4 triangle setting

Out of 100 runs 20 resulted in feasible solutions. 66 with exitflag== -2, 0 with exitflag== -1,  14 with exitflag== 0., 0 with exitflag== 1,  20 with exitflag== 2.  Mean density in the feasible solution cases was 0.5850 and variance  0.0127. The best case had density  0.7959.

Left is the initial setup and right is the best found solution.

5 triangle setting

Out of 100 runs 9 resulted in feasible solutions. 71 with exitflag== -2, 0 with exitflag== -1,  20 with exitflag== 0., 0 with exitflag== 1,  9 with exitflag== 2.  Mean density in the feasible solution cases was 0.5637 and variance  0.0111. The best case had density  0.7246.

Left is the initial setup and right is the best found solution.

 

4 triangle setting and GA

I did similiar thing with the GA algorithm. Out of 49 runs 19 resulted in feasible solutions.  Mean density in the feasible solution cases was 0.7667 and variance  0.0115. The best case had density  0.9230.

Genetic algorithm applied to packing model

I used matlab global optimization toolbox’s genetic algorithm to solve the triangle packing problem outlined in previous post. It does what it is supposed to do :). i.e finds a tiling.

Left output of the GA algorithm. Optimal packing of two congruent triangles (red) and unit cell (blue). On the right are surrounding unit cells added.

Same but with 3 triangles in a unit cell. Doesn’t  work so well. Takes 194 sec to compute. Density is 0.7178.

4 triangles. Took 138.315 sec to compute. Density is 0.6715;

5 triangles took 829.64 sec to compute. Density is 0.8055.

6 triangles took 228.458 sec to compute. Density is 0.7534.