 |
You are currently logged in to this applet as "guest"; if you wish,
you can save data under a different user name.
See the data that has
been compiled with this applet.
Try the new cap builder.
|
|
Left Drag: Rotate The System
Right Drag: Zoom
Shift + Click: Add A Particle
Control + Click: Remove A Particle
Shift + Control + Drag: Drag A Particle
BETA: Single Click a Point to Highlight
Double Click to Select and Rotate a Scar
|
|
Initialization
Input the number of points you want the system to have. There must be at least 2 points and at most
5000 points (subject to change). There are two initial configuration choices:
- Random
places points randomly on the sphere
- Spiral
Uses an algorithm to place the points on a spiral around the circle. This configuration will often
be a good starting point for larger systems that may require a lot of work.
Working with the System
Once the system is initialized, an algorithm can be applied to it. The drop down menu lists possible
algorithms. They include:
- Relaxation
Relaxation treats the particles as electrostatically charged and uses pair-interactions to determine energy
and force. A force is calculated for each particle of the system and the particle is moved along the shell
in the direction of the force vector a distance propotional to the magnitude of the force acting on it and
tStep. The force vectors are "normalized" with respect to the shell size, number of particles, and the square
root of the maximum torque on a particle. This yeilds the notion of a unit step over the shell, but gives a little
more versatility. The algorithm is rather forgiving in the choice of tStep, and I highly suggest experimentation
with it. With a high tStep, the algorithm will descend down potential slopes very quickly but can overshoot and
oscillate about the minimum, which you can detect by checking the energy of the system periodically. If you observe
the energy has increased at any time, then it it time to decrease tStep. With arbitrarily small tStep you can achieve
arbitrarily accurate energies for stable states within machine limits.
- Local Relaxation
This takes advantage of the triangulation of the points upon displaying in 3D. Local relaxation does not consider
the entire system, but only local neighbors to a particle. This way, far less computing work must be done (O(N)
relaxation step under an O(NlogN) mesh generation algorithm). Two options are available: The degree of one point
to another is the number of edges that compose the shortest path between them. Thus, by increasing degree, you are
increasing the number of interacting neighbors to consider. tStep is again a measure of the perturbation of the system.
For long range potentials (s < 2) this algorithm is unreliable for obvious reasons. When s = 12, this algorithm excels.
- Monte Carlo
This is a classic optimization algorithm that functions as follows: Consider a random particle. Move this particle to
a random position on the sphere. If this change has caused a drop in the energy, accept the change. If the change increases
the total energy of the system, accept it with a Boltzmann probability distribution e-deltaV/(Kb * T), where deltaV is the
change in energy (J), Kb = 1.3806503E-23 J/K is Boltzmann's Constant, and T is the temperature of the system (K). Thus, lower
temperatures will result in driving the system down in energy and higher temperatures will increase the energy and randomness
of the system. This algorithm can be useful in evaluating finite temperature systems (in all other algorithms, the system is
considered to be at 0 degrees Kelvin) and the stability of some topological structures that you may find.
- Local Monte Carlo
This is a classic optimization algorithm that functions as follows: Consider a random particle. Move this particle over the
sphere with a flat probability distribution. If this change has caused a drop in the energy, accept the change. If the change
increases the total energy of the system, accept it with a Boltzmann probability distribution e^(deltaV/KbT), where deltaV
is the change in energy (J), Kb = 1.3806503E-23 J/K is Boltzmann's Constant, and T is the temperature of the system (K). Thus,
lower temperatures will result in driving the system down in energy and higher temperatures will increase the energy and
randomness of the system. This algorithm can be useful in evaluating finite temperature systems (in all other algorithms, the
system is considered to be at 0 degrees Kelvin) and the stability of some topological structures that you may find. Movement
specifies the radius of the spherical Guassian perturbation. Thus, a higher Movement results in larger particle jumps.
- Monte Carlo Anneal
This is a modified version of Krauth's annealing algorithm for arranging circles on a sphere. Although it is not truely Monte
Carlo, it is easiest to describe it as such. The idea is far from the execution. In this algorithm, we use hard-shell potentials
about each point instead of the typical Coulombic potentials. We can then increase the radius of influence of each particle or
decrease the shell radius to anneal the system. Concern was brought that Krauth's method of moving a particle did not have a
flat probability distribution in all directions over the surface of the sphere. It looked as if he used a cubic Guassian, an
approximation that works on smaller scales, but was causing problems here. I modified it to a spherical Guassian and got the
results I expected. As in the Local Monte Carlo, Movement specifies the distribution's standard deviation from 0.0 respect to
the shell's radius. Prob of Anneal is the probabilty of annealing the structure with respect to the number of accepted movements
and Anneal by is the scaling ratio to anneal the system by. Increasing the Prob of Annealing and decreasing Anneal by will
greatly increase the rate at which the annealing process occurs.
- Lattice Energy
Treats the edges as springs and conserves the Delaunay trigulation of a point set. A Lattice Constant a is defined as
4piR2/Faces = (sqrt(3)/2)a2. That is, the prefered length of an edge is that which would make all faces perfect equilateral
triangles.
- Genetic Algorithm
Genetic Algorithms are typically a Computer Science geek's delight and are typically not applied to physical systems. Mating,
mutation, and crossover in physical systems are often difficult to define and determining an organism's fitness is often
computationally intensive. In accord, this algorithm is slow, yet highly successful for this problem. Colony defines the
carrying capacity of the environment, extra organisms who are not fit enough will be killed and discarded after each generation.
Lucky is the number of lucky survivors each generation. These are organisms who may not be the most fit, but are lucky enough to
survive the natural selection. Generations is the number of generations to run the algorithm for, which can be interrupted by
pressing PAUSE and waiting for the algorithm to complete the current generation.
WARNING: ALGORITHM IS VERY SLOW (yet very effective). TEST SMALL SYSTEMS TO GET A FEEL FOR THE SPEED, ACCURACY, AND THE PATIENCE
OF THE USER BEFORE DOING SOMETHING RASH! BE PREPARED TO PACK A LUNCH.
- Construct (m,n)
There are "magic number" states of N defined by N = 10*(m2 + mn + n2) + 2 and denoted by (m,n). A feature of these magic numbers
is that they have a configuration with 12 5-coordinated points placed at the vertices of an icosahedron (N = 12 (1,0)). These are
called icosadeltahedral structures since they have icosahedral symmetry minus a chirality (except for (n,0) and (n,n) states).
This algorithm constructs an (m,n) state in its icosadeltahedral configuration.
- Random Points
Places the points at random on the sphere.
- Spiral Dance
An animation that shows the result of changing one of the coefficients in the spiral algorithm. This can be used to find a good
initial condition for a system, but is generally just a neat animation.
Buttons and Options
- Energy
Determines the energy of the current system. E = sum(1/|ri-rj|) for all points i > j. After the energy is calculated,
the database is queried and, if the current energy is lower than the recorded energy, the point set and the current energy
are written to the database.
- Lowest Energy
Prints the energy that is stored in the database for this system.
- Load Lowest
Loads the point set in the database for the lowest energy system seen.
- Add In Midpoints
When displaying in 3D with the mesh, this will add a point to the surface of the shell corresponding to the projection
of the midpoint of each edge.
- Add In Faces
When displaying in 3D with the mesh, this will add a point to the surface of the shell corresponding to the projection
of the center of each face.
Data - Loading, Editing, Aquiring
The link to the database allows quick searches for systems and also, after making an account, allows the user to save
custom systems by using the File -> Save System feature. File -> Point Set displays the actual point set being used to
represent the system. This can be edited, copied, and reloaded to create a new point set in the system. File -> AdjArray
Displays the Adjacency Array being used by the Delaunay triangulation. This can currently be copied, but cannot be edited
at this point. More to come...
Check Boxes and Visualization
- 3D
Displays the point set in 3D.
- 3D + Mesh
Displays a delaunay triangulation of the point set in 3D. Colors denote coordination numbers of particles:
Green: 4, Red: 5, Blue: 6 (Flat Space), Yellow: 7, Purple: 8, Black: Other.
- 3D + Chop
Toggles Full 3D view and only Positive-Z 3D view.
- 3D + Index
Displays the internal index of each point which can be used to more easily discuss systems.
- 3D + Pot E
Finds the partial energy of all particles with respect to the prescribed potential and maps it onto a color scheme
where Red: High Energy, Blue: Low Energy, When Mesh is checked as well, a Gouraud Shading scheme is used to map this over the
entire sphere.
- 3D + Lat E
Finds the partial strain energy of all particles with respect to the Delaunay triangulation and maps it onto a color scheme
where Red: High Energy, Blue: Low Energy, This can be used as a measure of the triangulation's deviation from the 'flat' or
'equilateral triangle' configuration. When Mesh is checked as well, a Gouraud Shading scheme is used to map this over the
entire sphere.
Fun Things To Try
Start with 12 particles. Either relax them or load the best configuration from the data base. Now press the button
entitled "Add in Faces", which adds a particle to (approximately) the center of the face formed by three particles. From
the 12-configuration, you should now have 32 particles (and this is also the ground state for N=32!). Press "Add in Faces"
again. Now you should have 92 particle with the red 5-coordinated particles still maintaining their icosahedral symmetry from
the 12-system. (This is not the ground state for N=92!) This can be continued, though going past 2,432 is not recommended.
Constructions like this are possible from other relatively symmetrical systems such as 3, 4, 5, 6, 7, 9, 10, 12, ... , but
icosahedral symmetries are only possible for N = 10*(m2 +
n2 + mn) + 2 where m,n are positive integers.
Start with 100-500 particles. Use the Spiral Dance algorithm to line them up (Can be even more fun if they are twisted slightly).
Pause this and switch to Relaxation. Run Relaxation on the system and watch the ensueing explosion!
Construct an (m,n) system with the "Construct (m,n)" algorithm. Some interesting effects can be made by adding/removing
particles to the center of the icosahedral faces, removing rings of particles about the 5-coordinated points, etc. Look at
the surface energy mapping by checking "E map" for an (m,n) state. Very beautiful and symmetric creations can be made,
experiment!
Simply try to beat the lowest energies that have been recorded for any of the systems using any/all of the algorithms. I
guarantee all the lowest energies up to 200. If some are missing, or you think you can do better, go for it!
References
[0] Cris Cecka, Primary Author. ccecka@stanford.edu
[1] Kevin Zielnicki, SQL databasing and personal communication
[2] W. Krauth, Markov Processes Relat. Fields 8, 215 (2002)
[3] M. Bowick, Science 299 (2003) 1716
[4] J. Liu, E. Luijten, Phys. Rev. Lett. 92, 035504 (2004).
[5] T. Erber, G.M. Hockney, J. Phys. A: Math. Gen. 24 (1991) L1369-L1377
[6] E.B. Saff, and A.B.J. Kuijlaars, Distributing many points on a sphere,
The MAthematical Intelligencer 19, No 1 (1997), 5-11.
[7] Middleton, Alan, personal communication.
[8] Bowick, Mark, personal communication.
|
|
|