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!