Last edited 11dec14 by csbaile2@.illinois.edu
Find this document at http://new.math.uiuc.edu/math198/csbaile2
Crystallography in VPython
By Connor Bailey for UIUC MATH 198 "Hypergraphics" Class
When beginning to learn about crystallography and materials science,
it is often a struggle to visualize crystal systems, as well as the planes
and directions defined within them. The goal of this project, written in
VPython, is to create a controllable environment to see and control the
simple cubic crystal systems. The user has access to three crystal structures-
simple cubic (SC), body-centered cubic (BCC), and face-centered cubic (FCC).
Futhermore, the user can control displayed planes and directions in Miller Index
notation. A secondary goal of this project is exploring the connection
between crystal systems and the triply periodic minimal surfaces (TPMS).
This week, a revised proposal was made. My project will feature modelling
cubic crystal systems, directions, and planes in VPython. This work
will culminate in relating these simple crystal systems with
the Triply Periodic Minimal Surfaces. A key source of information for
this project can be found at Alan Schoen's Website.
I also began working on my project, starting slowly by modeling
the simple cubic (sc) and body-centered cubic (bcc) in VPython. Currently,
atoms are only modeled with spheres and are not connected. My next step
will be connecting them with lines, which symbolize bonds.
Wednesday, Oct. 29th I will be presenting my seminar(pdf) on Crystallography.
I will be discussing a brief history of the field, its importantance and
relevance, the basis of a crystal, the three cubic systems I will be covering
in my project, describing directions and planes in a crystal, and
a discussion of diffraction and its crucial importance in crystallography.
This week, I accomplished the following:
The next things I will begin working on (after finishing the FCC crystal) are
modeling directions and planes in a unit cell.
- Successfully modeled the SC and BCC crystals with bonds.
- Thought of a new method to model crystals. Instead of creating
each atom of the crystal in a loop, adding bonds to the entire
crystal, etc., create a UnitCell function that models a unit cell
of whatever crystal I'm modeling. That's the use of a unit cell
in crystallography, I can't believe I didn't think about using it
until now. This should make things easier for modeling FCC.
A lot was accomplished this week.
The next steps in my project are to perfect the planes project (currently, it won't
work if h,k, or l is 0) and to begin work on relating the SC, FCC, and BCC crystal
structures to triply periodic minimal surfaces. This will most likely prove to be
the most difficult part of my project.
- First, I succesfully modeled the FCC crystal using the "Unit Cell"
method of building the crystal cell by cell (instead of atom by atom).
- I then modeled directions in the unit cell. This took quite a bit of
work to fine-tune, but was successful. Given a Miller Index [hkl],
the direc function will display the direction, with an arrow,
in the unit cell. It automatically adjusts placement of the origin to ensure that
the direction will remain in the cell.
- Finally, I made a first draft of the program to model planes in a unit cell.
Given the Miller Index (hkl), the planes function displays the
appropriate plane in the unit cell as a triangle, with each vertex at the appropriate
intercept of each axis. Like the direction function, it adjusts the origin given the
sign of each index.
As of 11/13/2014, I have successfully completed the planes program to model
any plane from a Miller Index, including when there are 0 terms or negative terms.
Future work on this and the directions program could be to make them more interactive
with slides, dials, or other user interaction. This may be worked on over the upcoming
Thanksgiving break. My current task at hand is finding a way to relate the TPMSs to
the crystal systems- this is proving much more difficult than initially anticipated.
As the semester draws to a close, I have put together a single program which combines
almost all of the features of my previous programs. It is an interactive RTICA that shows
a unit cell. The user can control what type of crystal lattice it shows (SC, BCC, FCC, or none).
They can also use sliders to change the direction or plane in the unit cell, of which the Miller
Indices are displayed in a text box. After concluding that it was not feasible to create the TPMS
in VPython, I decided to make this combined program. Future updates could allow the user to
change the color or size of atoms displayed. At this point, I do not think my program can incorporate
the TPMSs, but my presentation can still mention them as an inspiration and show their connection.
Pictured above is an animated gif showing off many aspects of my program: changing and resetting
planes and directions, switching crystal systems, and displaying coordinates.
Week 14- Final Week!
Finishing touches are being made to the site, as well as final updates. Check out final documents:
I encourage any future Math 198 students to look at my documentation if they are interested in what
I've done. Any questions can be sent to Connor Bailey .