Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members Related Pages
Current status and development history of ObjCryst++
If you have a question you can drop me an email
Current Status
The Library is moving along beta stage. The interface has been changed to a better design, especially for the scattering/diffraction class. The RefinableObj is also being improved to be more 'generic' and easier to use with varied algorithms.
-
Spacegroup
-
Thanks to the sglite package, all SpaceGroup can be recognized from their symbol. An AsymmetricUnit is also generated for each spacegroup (actually it is a parallelepipedic approximation). Only 3D spacegroup are allowed. We will eventually (that is, when I find time... at the autumn 2001, move to the cctbx library
-
Crystal
-
For a Crystal, definition of spacegroup and adding of various types of scatterers are working. Dynamical occupancy correction for global optimizations has been implemeted (to correct overlap of identical atoms due to sharing of corner atoms in polyhedra, or due to symmetry). An anti-bump cost function (simple) is also implemented, and also enables atoms to merge continuously. An output to povray file is provided, as well as an OpenGL display of the cystal structure (only tested using Mesa under linux, with glut). Most important lacking features are saving structure to CIF files.
-
Scatterer
-
Various type of Scatterer are provided : simple Atom but also ZScatterer, using a Z-Matrix Description, and derived form it are ZPolyedron (tetrahedron...icosahedron..). other types of scatterer can easily be added. So far the scattering power and thermic factor must be isotropic. Scattering factors for X-Rays (Thomson using the interpolated values and resonant (anomalous using either Sasaki or Henke tables) and neutrons are provided.
-
ScatteringData
-
PowderPattern is the most developped class and its support is sufficient for most Global Optimization work. DiffractionDataSingleCrystal is less being worked on, but it can be used provided that the data has been corrected and merged beforehand.
-
Global optimization
-
GlobalOptimObj provides an algorithm for the so-called 'ab initio' structure determination from diffraction data using either a simulated annealing or a parallel tempering algorithm. Genetic algorithm may be added later.
-
Least Squares
-
LSQObjNum class provides a rough least squares support, but it is definitely not the purpose (as of yet, at least) of this library. The most important lack is that numerical derivatives are systematicllay used. I wrote this only for testing purposes and have not sed it for some time, so try it at your own risk !
-
Graphical user interface
-
Most objects have a graphical counterpart, which has been created using the wxWindows (linux,unix,windows,mac,...) library. The result is the Fox program, but the GUI interface can be used for any other purpose. It is of course possible to use ObjCryst++ without the wxObjCryst part.
History
-
1.0(2001-??)
-
- PowderPattern: Added the input format for Sietronics (.cpi) files. Now importing data will allow null points without crashing. Also when no phase (background, crystal) has been added to the pattern, the calculated pattern returns a constant value (1.).
- ZScatterer: corrected a bug in the fractionnal coordinates calculation for mono/triclinic unit cells (thanks Mark Edgar).
-
0.9.1(2001-09-20-)
-
- ZScatterer: corrected a nasty bug(thanks Yuri Andreev), which made the Z-Matrix interpretation completely wrong.
- wxRefPar: now all refinable parameters have a local menu which can be used to remove or change limits.
- wxZScatterer: now can globally change relative limits to bond lengths and angles.
-
0.9(2001-09-18-first FOX Release)
-
- wxCryst is now working, allowing the first compilation of Fox.
- The data format to save files has been changed to an xml format (see http://www.w3.org/XML/).
- the definition of the refinable parameter types (RefParType) are now made using pointers, in a tree-like fashion. This allows an easier modification of status for groups of parameters.
- Lots of other modifications...
-
0.5(july 2001)
-
- Design largely improved for reusability (based on inheritance).
- wxCryst (the GUI-Graphical User Interface) part is in fast-moving development, mostly working, but not included here as code is still ugly and its design is not stable. As of 10/july/2001, I can launch the program, create a crystal, add a PowderPattern object, a GlobalOptimization object and do the global optimization while looking at the 'live' evolution of the Crystal Structure (3D display with OpenGL) and of the PowderPattern !
- Saving structures, data to files has been implemented. See RefinableObj::XMLOutput(). Refinement flags are not saved (yet).
- Changed all float to double precision. Performance hit=+15% on structure factor, and +25% on full powder spectrums.
-
0.6(march 2001)
-
First public release.
-
0.5 (february, 2001):
-
- ZPolyhedron Added a ZPolyhedron class, based on the Zscatterer objects, to describe (almost) regular polyhedra.
- Interatomic distance calculations Improved speed computation of the internel distance table, using non-symetrical atoms and the Asymmetric unit cell.
- AsymmetricUnit Cell Finally implemented the AsymmetricUnit Cell class, to improve distance calculation. Currently, upon Spacegroup construction, the (or one of the) smallest parallelepiped (with sides parallel to the crystallographic axes) including an Asymmetric unit is computed, using steps of 1/24. (So technically it is not an asymmetric unit cell, if no asymmetric unit cell exists for the group with all vertices parallel to the unit cell faces)
-
0.4 (january 2001):
-
- ZScatterer Added a Zscatterer class, were cluster of atoms or molecules can be defined using a Z-Matrix description (see http://chemistry.umeche.maine.edu/Modeling/GGZmat.html or http://www.arl.hpc.mil/PET/cta/ccm/training/tech-notes/model/node4.html for a description of what such a matrix is. The advantage of this description is that it will now be possible to describe molecules using relevant parameters (separating bond lengths, bond angles and dihedral angles), and that polyhedra (for inorganic crystals) can also be described by it.
- Special positions-Dynamical Correction Added a function to compute a 'smooth' correction of population as several atoms overlap (this is a dynamical correction during model search)
- Compilation & Makefiles Cleaned up directories & makefile to minimize platform dependencies. All platform-dependant commands should be in rules.mak, in the top directory.
-
0.3 (2000, november 24) :
-
- RefinablePar Now Scatterer, DiffractionData and Crystal inherit are children of RefinableParList, which makes the 'refining' methods easier to write & use.
- Compilation on Win32-Cygwin Compilation works using the win32 port of gcc by cygnus : http://www.cygwin.com.
-
0.2 (2000, november 07) :
-
- SpaceGroup Moved to SgLite package, thanks to R. Grosse-Kunstleve.
- Powder Diffraction Most of features needed for 'basic' powder profile spectrum generation/analysis has been added (DiffractionDataPowder).
- Least-Squares Added an LSQObjNum class, to perform Least-Squares Refinement. Num stands for 'numerical', since only numerical derivatives are used for that object. Uses eigenvalue filtering to avoid correlations.
- DiffractionData is now an abstract base class, with children DiffractionDataSingleCrystal, DiffractionDataPowder.
-
0.1 :
-
- General The basic classes (SpaceGroup, Crystal, Scatterer, Scatterer:Atom, Scatterer:RegularPolyhedra, DiffractionData) are there.
- Speed Computing of structure factors works with a fair speed.
Generated on Wed Nov 14 19:48:36 2001 for ObjCryst++ by
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001