From: E.L. W. (Egon) <eg...@sc...> - 2003-05-28 05:17:11
|
On Tuesday 27 May 2003 22:30, Fabian Dortu wrote: > some times ago you told me about a piece of code to deal with symmetries > in crystal. But I was not very receptive at that moment. Could you tell > me more about it? Ah, good. Take for example the CML output of ABINIT: buld_Si.cml... (Not valid CML, I'm writing a patch for ABINIT to write valid CML... but that's a different story...) You will see fragments like: <floatMatrix builtin="symOp" rows="4" columns="3"> 1 0 0 0.000000000000 0 1 0 0.000000000000 0 0 1 0.000000000000 </floatMatrix> wrapped in a <symmetry> element... AFAIK, this example corresponds with a symmetry operation like: x,y,z which is the identity operation. The second is more interesting: <floatMatrix builtin="symOp" rows="4" columns="3"> -1 0 0 0.250000000000 0 -1 0 0.250000000000 0 0 -1 0.250000000000 </floatMatrix> This would be the operation: 1/4-x, 1/4-y. 1/4-z etc... Each operation is applied to all atoms in the unit cell, i.e. only those in the assymetric unit is given. Thus, the UnitCell class should be extended to hold such symmetries and be able to use them when composing the unit cell contents... Alternatively, some file format describe symmetry operation in this format 1/4-x, 1/4-y. 1/4-z, and some even only give the symmetry group, which would require a lookup table. The mechanism used by ABINIT is easiest, and clearest, as it simply gives which operations should be done. Support for that would be the place to start. Egon PS. Could you describe how a unit cell is composed in the Jmol implementation? What are the basic steps, and in which Class.method is each step found? Because and I want to add an option (next to default atom placement, original position) that will display the atoms without partitioning the molecules into fragments, but will move the molecules such that the center of mass of the molecule is located within in the unit cell. (we discussed this before, but I never got to writing a patch...) |