From: Jean <jea...@no...> - 2006-06-18 08:43:09
|
Le dimanche 18 juin 2006 =C3=A0 10:08 +0200, Carsten Niehaus a =C3=A9crit= : > Guten Morgen Hi Carsten, I have projects for some of the issues you raise. Just I'm missing time at the moment to do any work on that because of serious personal issues. My goal is to import CIF files and support symmetry operations, including space and point groups. You'll find more details in this list archives (around begining of last month). Cheers, Jean > I am starting to write a crystal-cell viewer for Kalzium. For that I ne= ed some=20 > information about the cell: >=20 > - The x/y/z-pos of all atoms in it > - The type of the Atoms (for example in NaCl if a certain atom is Na or= Cl) > - The position of all Tetraederl=C3=BCcken (sorry, I couldn't find the = english word=20 > for it, not even in Wikepedia. The german article is in [1]) > - The position of all Oktaederl=C3=BCcken. (again, no translation found= . The german=20 > article is in [2], a nice picture which says it all is in [3]) > - The crystalsystem or (even better) the Bravis-lattice of the unitcell= . > - the length of the vectors a,b,c > - the angles alpha, beta, gamma >=20 > Ok, some of this is in OBUnitCell, some is not. Of course, the position= of=20 > the "holes" (Tetraeder- and Oktaderl=C3=BCcken) can be calculated, if I= know the=20 > Bravis-lattice I can calculate the xyz of all atoms and so on. >=20 > Still, I am missing some things and would like to discuss this. Perhaps= it is=20 > already somewhere and I just didn't find it our perhaps I am stupid ;-) >=20 > What I am missing: >=20 > =3D=3D 1 =3D=3D > - an enum of the crystalsystem. Currently I am working around this lik= e this=20 > in my own code: >=20 > enum LATTICE > { > TRICLINIC, > MONOCLINIC, > ORTHORHOMBIC, > TETRAGONAL, > RHOMBOHEDRAL, > HEXAGONAL, > CUBIC > }; >=20 > I think this could find a nice place in OpenBabel as well as those se= ven=20 > types won't ever change. Currently there is > std::string GetSpaceGroup( ) > As there is no API-documentation at all about it I guess these repres= ent the=20 > 230 spacegroups we all know? If so there should/could be something like > LATTICE bravisLattice( std::string spacegroup ) > as each spacegroup is in one of the 14 bravislattice... Same for the=20 > pointgroups. Why not adding a pointgroup2crystalgroup method? >=20 > =3D=3D 2 =3D=3D > - An algo which computes the volume of a OBUnitCell. Well, do not long= er=20 > care, just commit the attached code ;-) I ported from my own code. Any = free=20 > licences (GPL, FreeBSD ...) is fine with me. Any chance to get this in = OB2.1? >=20 > =3D=3D 3 =3D=3D > - I still have not figured out how to use OBUnitCell. Of course I can s= tore=20 > the vectors and angles. Fine. But that give me the information which at= oms=20 > are where. I googled for codeuses of this class but found no matches. > For example, if I want to draw Lithium niobate (Spacegroup R3m, pointgr= oup 3m,=20 > crystalsystem trigonal) I have three atomtypes (Li, Nb, O). (Picture in= [4]).=20 > I cannot put all that information into OBUnitCell. Same for NaCl (pictu= re in=20 > [5]). > So what am I supposed to do? Do I create an OBMol from the information = in the=20 > OBUnitCell to store the information of the atoms? That doesn't make rea= l=20 > sense, neither code-wise nor chemically... >=20 > Gru=C3=9F,=20 > Carsten >=20 > [1] http://de.wikipedia.org/wiki/Tetraederl=C3=BCcke > [2] http://de.wikipedia.org/wiki/Oktaederl=C3=BCcke > [3] http://de.wikipedia.org/wiki/Bild:Kfz_oktaederluecke.png > [4]=20 > http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Linbo3_Unit_Ce= ll.png/300px-Linbo3_Unit_Cell.png > [5]=20 > http://upload.wikimedia.org/wikipedia/commons/d/db/NaCl-estructura_cris= talina.svg >=20 > _______________________________________________ > OpenBabel-discuss mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/openbabel-discuss |