Table of Contents 1) General Remarks 2) Personal Remarks 3) A Quick Guide for Introducing New Lattices 1) General Remarks This Applet was made with - jdk1.6.0_10 - Eclipse 3.4.1 The documentation (in Javadoc manner) can be found in the correspondent /doc directory. The source code can be found in the correspondent /src directory. In the folder Bzones, the complete applet with user interface can be found; In the folder Bzones_mini a version without interface can be found. Both versions accept the same parameters, they are enlisted in parameters.html. The versions only differ in the classes: Launch.java and ControlPanel.java. 2) Personal Remarks As I have just little serious Java programming experience, there may be found some unusual solutions or even bad programming style. Anyone should feel free to improve this! 3) A Quick Guide for Introducing New Lattices For the 'even-less-experienced-than-me' users, this is a quick and dirty introduction in introducing a new lattice, in just a few steps. -) Create a new class and let it inherit from AbstractCrystal. (Or just copy and rename an existing class, found in the crystals-subfolder.) -) Import this class in the CrystalMasterList found in the main-subfolder. Add 1 to the numbers of elements in the allCrystals-array. Add your new lattice in the list of crystals. It might then look as: AbstractCrystal[] allCrystals = new AbstractCrystal[9]; allCrystals[0] = new Cscc(); ... allCrystals[7] = new Cmkl(); allCrystals[8] = new Cmynewlattice(); return allCrystals; -) Edit Cmynewlattice.java according to the lattice you desire. You should change the following functions: public String getName() { return "Enter the name of your lattice, as it should appear in the spin wheel"; } public String getCrystalID() { return "short name used internal and as parameter for the mini-applet"; } public GuiModel getguiModel() { // a gui model to your desires and needs GuiModel model = new GuiModel("allowed", "allowed", "b", "90", "80", "70"); return model; } -) Now you can start calculating your lattice points in the function public void calculate(Parameter param) {} With double atilde = param.geta(); and similar you can get the crystal parameters. A bunch of vector operations is provided to help calculating your points. In the end make your points appear on the drawing board with functions this.addSymmetricPoint(vector, "Name of this point"); this.addEdge(starting vector, ending vector); etc. (The other functions can be found in the documentation of the AbstractCrystal class.) -) Compile every now and then. -) Good luck, have fun!