1 Introduction
A disc packing (or circle packing) is a set of interiordisjoint discs in the Euclidean plane. Its density is the proportion of the plane covered by the discs:
If all the discs have the same radius, it has been proven by Tóth [FT43] (see also [CW10]) that the density is at most
reached for the socalled hexagonal compact packing, where discs are centered on a triangular grid (of size twice the disc radius).
What about more sizes of discs? In particular, what about the maximal density of binary disc packings, that is, packings with discs of two different sizes? Up to scaling, one can always assume that the largest disc has radius and the smallest one has radius . We then denote by the maximal density of packings by discs of radius and . Can we find the exact value of for each ?
The first decisive step was done by Blind [Bli69], who proved that for where
In other words, binary disc packings cannot achieve higher densities than packings of equal discs when the disc sizes are too close. This yields the exact maximal density over the whole interval . Besides this, to the best of our knowledge, there are only specific ratios for which the exact value of is known. They are the ratios which allow triangulated binary packings, that is, packings with two sizes of discs whose contact graphs are triangulated (the vertices of the contact graph of a packing are the disc center, and the edges connect the centers of tangent discs). These ratios are algebraic numbers which have been characterized in [Ken06]. The maximal density for each of them is proven in [BF21] (see also [Hep00, Hep03, Ken04b] for the first cases).
If we cannot obtain an exact value for , can we find lower and upper bounds? In particular, for which do we have , that is, which ratios allow binary disc packings which achieve higher densities than packings of equal discs? This is a question that is of particular interest in materials science because the maximization of density seems to be a criterion for the formation of materials (due to attractive forces of the van der Waals type). A ratio such that thus suggests the possibility to obtain new materials by combining atoms or nanoparticles within this ratio. A striking example is given by the binary assemblies of nanoparticles whose synthesis is explained in [PDKM15]: they all correspond faithfully to one of the triangulated binary packings that have been proven to maximize the density.
To obtain a lower bound, it suffices to find a “good” packing.
For example, if is small enough, namely , we can simply insert a small disc in each hole of a hexagonal compact packing of large discs to get .
More interesting, we can get lower bounds over a whole interval of ratios by continuously modifying a “good” packing so that the density decreases as little as possible.
A particularly efficient way to proceed is the socalled “flipping and flowing method”, first used by Tóth [FT64], see also [CP19, CG20].
In Section 2 we detail lower bounds obtained in this way.
These lower bounds seem to be mostly “folk” (see, e.g., [FJFS20, Ken04a]), but we provide here a SageMath worksheet [Dev19] (the file lower_bounds.sage
in supplementary materials) which give explicitly the transformations as well as the corresponding densities.
They are depicted in Fig. 1 (green curve).
As a corollary, we get:
Corollary 1
One has for any in where , , , and are algebraic number whose minimal polynomials are in the file lower_bounds.sage
.
Finding upper bounds is more challenging.
For a given , it indeed amouts to proving that among the uncountably many packings of discs of size and , none has density larger than the claimed upper bound.
A first milestone was the proof in [Flo60] that is less than the density inside a triangle with mutually tangent discs of size , and centered on its vertices,see Fig. 1, bottom center.
This upper bound was later on enhanced for in [Bli69], by proving that is less than the density inside the union of a regular heptagon and a regular pentagon, with the heptagon (resp. pentagon) being circumscribed to a large disc (resp. small disc), see Fig. 1, bottom right (the above mentionned constant is the value of for which this bound reaches ).
In Section 3, we explain how we obtain upper bounds by enhancing the computeraided method used in [BF21] to prove the maximal density of the triangulated packings.
In a nutshell, the interval of the possible disc size ratio is divided into sufficiently many small intervals on which a program (the C++
code is provided in the supplementary materials) searches by dichotomy an upper bound on the maximum density.
We have tried to make this paper readable as independently of [BF21] as possible by recalling the main lines of the method used in [BF21] (Subsec. 3.1).
It nevertheless relies on many technical details of [BF21] that are omitted here and is therefore not selfcontained.
The obtained upper bounds improve the previous ones for any but the values in this interval which allow a triangulated binary packing.
They are depicted in Fig. 1 (red curve).
As a corollary, we get:
Corollary 2
One has for any in
where the endpoints of the ’s are exact numerical values obtained by computer.
Combining the intervals given in Cor. 1 and 2 answers whether a given ratio allows a binary packing more dense than the hexagonal compact packing of equal discs in more than of the cases. We have deliberately called both these results “corollaries” to emphasize the fact that the main result of this paper are the lower and upper bounds depicted in Fig. 1, which unfortunately cannot be stated in the form of a classical theorem. The feasability of closing the gap between the lower and upper bounds, is discussed in Section 4.
2 Lower bounds by flipping and flowing
2.1 Principle
To date, all disc packings that have been proven to maximize density (the binary ones and the hexagonal compact packing of equal discs) are found to have a triangulated contact graph, i.e. maximum number of contacts between discs [FT43, BF21, Fer19, Bli69]. This backs up the rule of thumb that the more contact between discs in a packing, the denser it is. However, a triangulated contact graph is only possible for some very particular sizes of discs. This is where flipping and flowing comes into play. The principle is, starting from a particularly dense packing, to continuously modify the ratio of disc sizes while trying to keep as much contacts between discs as possible, in the hope of decreasing the density as little as possible. The term “flowing” refers to the continuous modification of disc sizes. The term “flipping” refers to the particular (but frequent) case where the transformation connects two packings whose graphs are triangulated and differ by one or more flips, i.e. a diagonal of a quadrilateral is replaced by the other diagonal.
2.2 The flows
Figures 2–7 describe flows between (or from) especially dense packings.
The ratios ’s and ’s are algebraic numbers whose exact values can be found in the file lower_bounds.sage
.
These packings are all triangulated, except those for in Fig. 7.
They are all periodic and described by their fundamental domains.
The density is depicted (red curve), with the horizontal axe corresponding to the density of the hexagonal compact packing.
This yields the lower bound depicted in Fig. 1.
2.3 Interstitials packings
For , a small disc can fit in the holes of a hexagonal compact packing of large discs. To obtain the lower bound depicted in Fig. 1 for , we simply put as much as possible discs of a hexagonal compact packing of small discs inside the holes of a hexagonal compact packing of large discs (the center of each hole is the center of a small disc). This is not optimal (some improvements can be found in [UST04]). At least, this yields over .
2.4 Computation
To compute the density along a flow, we use the fact that the contacts between discs in the packings yield quadratic equations in the coordinates of disc centers and the ratio .
This form a polynomial system which has to be of dimension at least to allow to vary and at most to have as much contacts as possible.
Solving this system allows to compute the positions of the discs and the density as functions of the ratio .
The complete calculations are provided in the file lower_bound.sage
.
The main tool is the simple function stick((x1,y1,r1),(x2,y2,r2),r3)
, which takes the coordinates x1,y1
of a disc of radius r1
, the coordinates x2,y2
of a disc of radius r2
, a real number r3
and returns the coordinates x3,y3
(if they exist) of the disc of radius r3
which is exteriorly tangent to and such that sees on the left of .
Consider, for example, the periodic binary packing whose fundamental domain is depicted on Fig. 8, left. Discs are numbered and we arbitrarily set the positions of the two first discs such that they are tangent:
d0=(0,0,1) d1=(2,0,1)
We then stick one by one the three following discs:
d2=stick(d0,d1,r) d3=stick(d2,d1,1) d4=stick(d2,d3,1)
This allows to compute the density in the fundamental domain:
d=(2+2*r^2)/((d4[1]+(d3[1]d1[1]))*d1[0])
This yields for the density along the flow between and the expression
All the considered cases are similar, except two which are slightly more complicated.
The first case is the periodic binary packing whose fundamental domain is depicted on Fig. 8, right.
It corresponds, in the previous subsection, to the flow between and .
In this case, it is not possible to describe the packing by sticking discs one by one to two previous discs.
To get around this problem, we define a multivariate polynomial ring over whose variables are the coordinates of the disc centers, the disc ratio r
and the density d
:
K.<x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,r,d>=QQ[]
We then add the equations which describe the disc contacts or symmetries of the packing (each polynomial must be equal to zero):
eqs=[y1, x12*x2, x1+x2(x3+x4+x5), y1+y2(y3+y4+y5), x3^2+y3^2(1+r)^2, (x4x3)^2+(y4y3)^2(r+r)^2, (x4x5)^2+(y4y5)^2(r+r)^2, (x3x5)^2+(y3y5)^2(r+r)^2, (x4x1)^2+(y4y1)^2(1+r)^2, (x2x5)^2+(y2y5)^2(1+r)^2, (x12*x3)^2+(y3+y3)^2(r+r)^2, d*x1*y2(1+6*r^2)]
We then compute the ideal defined by these equations and eliminate all the variables but r
and d
:
I=ideal(K,eqs) J=I.elimination_ideal([x1,y1,x2,y2,x3,y3,x4,y4,x5,y5]) P=QQ[r,d](J.gens()[0])
This yields a polynomial of degree in r
and in d
.
Actually, we can remove a factor which would correspond to a density larger than .
We get an irreducible polynomial of degree in d^2
whose coefficients are polynomials in r
.
This allows to get a closedform expression for the density along the flow between and :
The second case corresponds, in the previous subsection, to the flow on the left of .
It is similar, except that we eventually get a polynomial in degree in d^2
: we cannot derive a closedform expression, but an implicit plot is possible.
Remark 2
The “algebraic” method by ideal elimination can actually be used for all the flows. The more “pedestrian” method of adding the discs one by one leads however to much faster calculations in practice.
3 Upper bounds via localizing potentials
3.1 Checking an upper bound for a fixed ratio
Given a ratio and a candidate upper bound on the maximum density, we want to check whether or not.
The strategy used is the one in [BF21], which resembles the one used by Hales to prove the Kepler conjecture, nicely exposed in [Lag02].
Here we will only sketch this strategy and omit all technical details that are not strictly necessary to understand what follows.
We refer to [BF21] for the complete description (which is unfortunately necessary to fully understand the C++
code provided in the supplementary materials).
Given a packing, consider a triangulation of its disc center (we used the FejesMolnár triangulation [FTM58] for its suitable properties). The density inside the triangles, that is, the proportion of the triangle area covered by the discs of the packing, can greatly vary from one triangle to the other. In particular, it may be larger than the candidate upper bound on the maximum density for any packing. The idea is to prove that whenever a triangle is too dense, there are necessarily neighbor triangles whose densities are low enough so that the density drops below once averaged over all these triangles. More precisely, the density of each triangle is distributed among its three vertices, and it is proven that no matter how a vertex of the triangulation of a packing is surrounded, the average of the densities distributed to this vertex by the triangles to which it belongs is at most . Key parameters appear to be the socalled “base vertex potentials” , , , , and . Each specifies, in a triangle whose vertices are center of mutually tangent discs of radii , and , the amount of density distributed to the center of the disc of radius . Since the density of such a triangle is determined and since there are different such triangles (depending on the radii , , or of the discs centered on vertices), two of the base vertex potentials have to be chosen and the others follow. This choice has a strong influence on whether the maximum density can be proven to be less than . This choice turned out to be relatively simple to make in each of the 9 ratios considered in [BF21]. But here the ratio can be any, so it is necessary to automate this choice in a satisfactory way.
To explain how this choice is made, we need to mention two other parameters that appear in [BF21], namely and .
The base vertex potential is indeed defined only in triangles with mutually tangent discs.
For other triangles, grows linearly with the angle in with a proportionality factor .
When the angle in increases, the triangle tends to be less dense and can “absorb” more density from its neighbors, which encourages taking large values of and .
However, the total density that each triangle can absorb cannot is limited, which in turns limits the value that and can take.
This can be formalized by a list of inequalities on , and two of the ’s (since the other ones follow as already mentioned).
In the program upper_bound.cpp
, we consider and .
The inequalies are defined in the function add_vertex_positivity_constraints
of the program parameters_xy.cpp
.
This yields a dimensional parameter polytope (polyhedron P
in the function find_delta
in upper_bound.cpp
) in which a point has to be chosen.
The following automatic choice was developed through trial and error, with the goal being to prove an upper bound as low as possible.
It is implemented in the function set_xy_generic
in the program upper_bound.cpp
.
First, it sets the ratio to be equal to the maximal possible value of divided by the maximal possible value of
. This amounts to intersect the parameter polytope with a hyperplane to get a new polytope. We then take either the barycenter of the vertices of this new polytope if
, or a vertex of it which minimizes otherwise. This defines the parameters and . We do not consider the values and it defines because our program deals with rational polytopes whereas can be not rational (actually, it can even be an interval as we shall later see). Instead, we keep only the numerical values of and and then proceed as in [BF21] to compute and (as well as the parameter , not mentioned here) which will decide exactly whether is a suitable upper bound or not.3.2 Finding an upper bound for an interval of ratios
The previous subsection explained how to check a given upper bound for a given ratio. But the goal of this paper is to find an upper bound as good as possible for any ratio. This yields two problems:

we have no candidate upper bound on the maximal density;

we have a continuum of ratio to consider.
Assuming is fixed, the first problem can be fixed by dichotomy on the candidate density.
Namely, we maintain two variables and , such that the proof that we have an upper bound on the exact maximal density succeeds for but fails for .
We start with slightly less than and equal to the Florian upper bound.
At each step, we check whether the proof works for and update and accordingly.
We stop when is smaller than a fixed precision, namely .
We finally output : it is an upper bound on the maximal density (and the best that we get by our method, up to the fixed precision).
This is done in the function find_delta
in upper_bound.cpp
.
To fix the second problem, we can subdivide is many small intervals and rely on interval arithmetic to consider each small interval as a value for . The smaller the intervals, the better the precision, thus the better the upper bound on the maximal density. We thus want to subdivide is interval as small as possible, with the limiting factor being the computation time.
Actually, we found it more relevant to compute upper bound only for regularly spaced discrete values of with maximal precision. This indeed gives a fair idea of which bounds could be obtained because the maximal density is quite regular:
Proposition 1
For in , the maximal density satisfies
The proof of this proposition is given in Appendix A. In particular, the maximal density is Lipshitz over any interval . This makes the computation much lighter. For example, on our computer, subdividing the interval takes min. for subintervals of length and min. (h.) for subintervals of length . In comparison, discrete values of with a step of takes min. and yields for these discrete points an upper bound on the maximal density which is comparable to the one obtained with intervals of length , in around times less computation time. The regularity allows to extend this upper bound everywhere. Fig. 9 illustrates this point.
Table 1 gives the step and execution time on each connected component of the complement of (the intervals on which the maximal density has been proven to be ).
A list of values can be found in the supplementary materials (file trace_upper_bound.txt
), see also Fig. 10, 11 and 12 for a zoom of Fig. 1.
Interval  step  execution time 

42 min.  
98 min.  
97 min.  
16h. 
3.3 Checking over , , and
The upper bound obtained in the previous subsection suggest over the intervals , , and defined in Corollary 2.
To prove this, it is no longer enough to consider discrete values of r: we really have to use interval arithmetic.
Instead of partitionning each in many equally small intervals, we use again the dichotomy to subdivide as little as possible.
Namely, we bisect each while the precision does not suffice to conclude.
But we no longer need to make a dichotomy on the candidate density since it is .
Table 2 gives the total number of subintervals into which the program upper_bound_HCP.cpp
eventually divided each interval as well as the execution time on our Laptop (i57300U CPU 2.60GHz).
Interval  subintervals  execution time 

30 min.  
20 min.  
32 min.  
20 min. 
4 Discussion
Figures 10, 11, 12 and 13 depicts lower and upper bound on the maximal density over each interval of interest. The upper bounds are depicted by red points and the lower bound by a green curve.
The black points indicate the smallest that we get if we only check that the parameter polytope is not empty (this corresponds to the first pass in the function find_delta
in upper_bound.cpp
).
These points thus give a lower bound on the best upper bound that we can hope to obtain with our method, assuming that we know how to choose the parameters in an optimal way.
This lower bound is however not necessarily achievable (this is in particular the case when the black points are under the green curve, i.e., under the lower bound proved on the maximum density): the parameter polytope could be not empty without containing any parameter that allows to prove the candidate bound.
Indeed, the polytope is not calculated in an exact way, whereas the verification once the parameters are chosen is exact and it is used to establish the upper bound.
Nevertheless, for the ratios with a large difference between red and black points, the upper bound can probably be improved by choosing the parameters more finely. The upper bound turns out to be very sensitive to the choice of parameters in the polytope, which is therefore a delicate exercise (especially since it is done automatically here because of the very large number of different ratios considered).
The black points also show that the largest intervals over which one can expect our method to prove that the maximal density is are only slightly larger than the ’s in Corollary 2, namely:
In Fig. 12 and 13, we used the term “artefact”. By this, we mean a peak in the upper bound which is though to be well above the exact maximal density. Such peaks appear for ratios such that the discs fit together particularly well around one disc. Indeed, the method developed in [BF21] is rather “local”: it distributes the densities between each disc and its close neighbors and bounds from above the resulting average density. However, these locally dense arrangements may not combine well on a more global scale, leading to packings in the whole plane that are actually much less dense than the obtained upper bound. Figure 14 illustrates the case . The smaller , the more often discs fit together particularly well around one disc. This explain why there are more and more peaks in the red or black curves in Fig. 1 or 13 when becomes small. To get around this problem, it will probably be necessary to modify the method to make it less local, i.e., to distribute the densities on a larger scale. This unfortunately makes the method even more complex.
Appendix A Proof of Prop. 1
Proof. Recall that the maximal density can be approached arbitrarily close by the density of a periodic packing. Fix .
First, consider a periodic packing of discs of radii and and density at least . Assume its fundamental domain has area and contains discs of radius and discs of radius . Hence
By replacing each disc of radius by a smaller disc of radius with the same center, we get a packing of discs of radii and whose density is
Since this density is, by definition, less or equal than , we have
In the initially considered packing, the fraction of covered by the discs of radius is at most , the maximal density of a packing by equal discs. Hence
This yields
Taking gives the first half of the claimed inequality.
Conversely, consider a periodic packing of discs of radii and and density at least . Assume its fundamental domain has area and contains discs of radius and discs of radius . Hence
By scaling the whole packing by , we get a packing of discs of radii and whose fundamental domain has area . Then, by replacing each disc of radius by a smaller disc of radius with the same center, we get a packing of discs of radii and whose density is
Since this density is, by definition, less or equal than , we have
In the initially considered packing, the fraction of covered by the discs of radius is at most , the maximal density of a packing by equal discs. Hence
This yields
Taking gives the second half of the claimed inequality.
References
 [BF21] N. Bédaride and Th. Fernique. Density of binary disc packings: the compact packings. Discrete and Computational Geometry, 2021. to appear, see arXiv:2002.07168.
 [Bli69] G. Blind. Über Unterdeckungen der Ebene durch Kreise. Journal für die Reine Angewandte Mathematik, 236:145–173, 1969.
 [CG20] R. Connelly and S. J. Gortler. Packing disks by flipping and flowing. Discrete and Computational Geometry, 2020.
 [CP19] R. Connelly and M. Pierre. Maximally dense disc packings on the plane. preprint, arXiv:1907.03652, 2019.
 [CW10] H.C. Chang and L.C. Wang. A Simple proof of Thue’s theorem on circle packing. preprint, arXiv:1009.4322, 2010.
 [Dev19] The Sage Developers. Sage Mathematics Software (Version 8.6), 2019. http://www.sagemath.org.
 [Fer19] Th. Fernique. A Densest ternary circle packing in the plane. preprint, arXiv:1912.02297, 2019.
 [FJFS20] E. Fayen, A. Jagannathan, G. Foffi, and F. Smallenburg. Infinitepressure phase diagram of binary mixtures of (non)additive hard disks. The Journal of chemical physics, 152:204901, 2020.
 [Flo60] A. Florian. Ausfüllung der Ebene durch Kreise. Rendiconti del Circolo Matematico di Palermo, 9:300–312, 1960.
 [FT43] L. Fejes Tóth. Über die dichteste Kugellagerung. Mathematische Zeitschrift, 48:676–684, 1943.
 [FT64] L. Fejes Tóth. Regular figures. International Series in Monographs on Pure and Applied Mathematics. Pergamon, Oxford, 1964.
 [FTM58] L. Fejes Tóth and J. Molnár. Unterdeckung und Überdeckung der Ebene durch Kreise. Mathematische Nachrichten, 18:235–243, 1958.
 [Hep00] A Heppes. On the densest packing of discs of radius and . Studia Scientiarum Mathematicarum Hungarica, 36:433–454, 2000.
 [Hep03] A. Heppes. Some densest twosize disc packings in the plane. Discrete and Computational Geometry, 30:241–262, 2003.
 [Ken04a] T. Kennedy. https://www.math.arizona.edu/~tgk/pack_two_discs/density.html, 2004. Accessed: 20210809.
 [Ken04b] T. Kennedy. A Densest compact planar packing with two sizes of discs. preprint, arXiv:0412418, 2004.
 [Ken06] T. Kennedy. Compact packings of the plane with two sizes of discs. Discrete and Computational Geometry, 35:255–267, 2006.
 [Lag02] J. C. Lagarias. Bounds for local density of sphere packings and the Kepler conjecture. Discrete and Computational Geometry, 27:165–193, 2002.
 [PDKM15] T. Paik, B. Diroll, C. Kagan, and Ch. Murray. Binary and ternary superlattices selfassembled from colloidal nanodisks and nanorods. Journal of the American Chemical Society, 137:6662–6669, 2015.
 [UST04] O. U. Uche, F. H. Stillinger, and S. Torquato. Concerning maximal packing arrangements of binary disk mixtures. Physica A: Statistical Mechanics and its Applications, 342:428–446, 2004.
Comments
There are no comments yet.