From: Peter Murray-R. <pm...@ca...> - 2003-10-04 19:00:54
|
At 19:30 04/10/2003 +0200, Miguel wrote: > > On Friday 03 October 2003 23:13, Miguel wrote: > >> > A second thing is, that we need to be able to display more than one > >> unit cell, but say 2x2x2 unit cells... with all content... Again, > >> this is were the iterators come in... here the iterator repeats the > >> process in the previous paragraph for each unit cell it has to > >> plot... > >> > >> So, this is new functionality ... Correct? > > > > Well, it was in Jmol b6, but at least new to the CDK based Jmol.. >So, you are saying that this functionality exists in b6? >What are the steps I need to go throughto see it in b6? > > > >> If so, then educate me a little more on this. Is it the case that you > >> want the same atom structure repeated, but with a base at a different > >> offset? > > > > Correct. >OK. >Then it seems to me that there is a better way to handle this. >All one needs to do is repeat the same atoms, but translated to different >positions in 3-space. This is necessary but may not be sufficient. The unit cell contains n copies of the asymmetric unit - normally a single molecule. n depends on the space group (of which there are 230) and ranges from 1 (P1) to 192 (Fm3m). There should be n symmetry operators given for the system (of which one is the identity operator x,y,z). These symmetry operators must then all be applied to the contents of the asymmetric unit. In general this will generate new atoms, although if rotation axes or inversion centres are present some atoms will translate onto themselves. As an example, take spacegroup P1bar (no 2). This contains two symmetry operators, x,y,z, and -x, -y, -z. Suppose the molecule was given with **fractional coordinates**: C 0 0 0 O 0.2, 0.3 -0.1 you would have to apply the second symmetry operation to get two new atoms: C 0 0 0 O -0.2, -0.3 0.1 The first new atom overlaps (is identical to) the original carbon and so can be omitted. The second O is bonded to the C, thus giving an O-C-O molecule. You can then translate this by 1,0,0 0,0,2, -1,2,-2, etc to generate new cells. note that all symmetry operations *must* be on fractional coordinates. If you are given cartesian coordinates only then you cannot generate fractional coordinates unless you are given the cell axes as vectors (not just a,b,c,alpha, beta, gamma). If you do not generate symmetry equivalent molecules you will end up large voids in the structure. Note also that it is possible that the molecule consists of polymers in 1, 2, or 3 dimensions. This requires the generation of bonds between molecules. We are currently writing code for this process and hope to have some generic code. HTH P. >Are these offsets the corners of the unit cell box? If not, how does one >calculate the offsets of the neighboring cells? >It seems to me that we can render this to the screen without duplicating >the data strutures. That is, I can render the same set of atoms, with all >of the atoms offset by specific amounts. That will be much simpler, will >take up much less memory, and be just as fast. > >Also, you can expand it to as many levels as you want ... we do not have >to restrict it to 2x2x2. > >Finally, this should have a benefit in scripting. Any visual changes >(color, size, hiding, etc) that are made to the atoms of the "true" cell >will automatically be replicated to all the other "phantom" cells. > >Fabian & Egon ... does this sound right? > >Miguel > > > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Cdk-devel mailing list >Cdk...@li... >https://lists.sourceforge.net/lists/listinfo/cdk-devel |