Requested Features / Ideas for F.O.X.
Feel free to add your own ! I'll comment on the feasibility
Structural Parameters Structure Evaluation Algorithm Interface

Structure Description
atoms, polyhedra, molecules setup

Easier import for molecules, from various file formats

Currently the input can either be done atom-by-atom (not very friendly), or using a Fenske-Hall Z-matrix; the z-matrix can be created using babel or openbabel.
Eventually, Fox will include the openbabel library, so that molecule can be input from many file formats, and even SMILES string (e.g. a phenol molecule can be written as = “OC1=CC=CC=C1”

Restraints should be more strict for molecules

Actually, this departure from the restraint is a feature of Fox: the 'loose' restraints allow trhe algorithm to converge faster, even if it does not look nice.
Nevertheless, in the next version of Fox [autumn 2005], restraints should be more strictly enforced. However this may not always be possible, if there are concurrent restraints (e.g. imagine a CH4 molecule, with restraints imposing a 120° angle between all H-C-H angles - obviously this is impossible).

Make the 'Molecule' description more like the z-matrix

In the next version of Fox, you will also see the current value for the bond length or angle, and you should be able to change it directly (you will have to take care of conflicting restraints, if any)

Inter-Molecular restraints

This can be tricky as currently the algorithm *always* tries to move around Molecules in the unit cell - so this restraint would have to be scaled with the powder pattern Chi^2, which would not be very efficient (the intra-molecular restraints are evaluated internally when the molecule object generates a new configuration, so that no scaling is necessary).

Inter-atomic restraints (distance, coordination)

Impose for some elements or specific atoms to have a given number of neighbours at a given distance, of a given type (or not ?). This can be useful when information is obtained from NMR

Pure atom+restraint description of the crystal contents

The algorithm would have to identify interconnected groups of atoms, but this is already being implemented in the Molecule object, so most of the work has already been done.

In order to avoid having to scale all the restraints with the diffraction Chi^2, the generation of trial configuration could be done using an Hybrid Monte-Carlo (i.e. using Molecular Dynamics types of movements)

Lattice parameters independent of crystal object

It should be possible to give the lattice parameters, from which the peak positions are derived, independent from the ones used in the crystal structure object. This way it would be possible to make use of the anisotropic expansion: especially in organics, moderate temperature changes will change the cell parameters quite strong, while the structure remains nearly unchanged - a 1% change of the cell is not much in terms of bond lengths and angles. Anisotropy of the expansion will change the way the reflections overlap. Additional information can be derived from this. (i.e. M. Brunelli et al., Angewandte Chemie International Edition, 42(18), 2029-2032 (2003)

Importing molecules directly from "X Y Z occ" list

Structure Evaluation
What cost functions or other information can be used to validate the trial structure

Fourier maps

This requires first profile-fitting, derivative calculations, plus a few Fourier tools.

Molecular Enveloppes

This should not be too difficult, as the enveloppe is not generated by Fox. The only issue is defining what exactly to do with the enveloppe - i.e. just adding a 'cost' whenever an atom goes out of the enveloppe, or simply forbidding any atom to go out of the enveloppe. The former is probably better, as a 'strict' restriction could prevent the algorithm to find the global minimum (i.e. a long molecule could not completely rotate in the enveloppe)


Genetic algorithms

Actually, Some genetic organization is already included in Fox, but is not used, due to a failure to find adequate, universal parameters to avoid the stagnation of the genetic population.

It is possible that a Differential Evolution algorithm will be included within Fox after the autumn 2005 version. It will require a number of changes first; e.g. the 'crossover' of will have to be done within the scatterers, so that fragments of molecules can be intelligently combined (i.e without breaking restraints)

Hybrid Monte-Carlo

J. Appl. Cryst. (2005). 38, 107-111 and Acta Cryst. (2002). A58, 441-447) could be used as another algorithm, combining Monte-Carlo and Molecular Dynamics principles.

This would require the calculation of derivatives, which can be difficult to do in an efficient manner (actually, the way to do it efficiently is already planned, but requires many changes). Also, it would require that the molecule description be made directly as a function of the degrees of freedom, which can be difficult in the current restraints-based description (since the molecule restraints are not scaled with the diffraction Chi^2).
This will therefore wait until we have efficient, anlytical derivatives in !ObjCryst/Fox

Least-Squares/ Rietveld refinement

could be used to fully refine structures but there is no desire to make Fox a 'full' Rietveld package, because there are numerous, very powerful tools already available for that.

However, a partial Rietveld refinement (not aimed at producing a publication-ready calculated pattern) may be introduced at some time. This could be used to:
* Optimize profile parameters
* Do a Pawley/Le Bail refinement to extract structure factors, when possible
* perform a quick minimization to go to the minimum

alternatives to Pseudo-Voigt profiles e.g. by the fundamental parameter approach

DOI: 10.4028/

Graphical User Interface

Better 3D view

in the structure

Tree structure that would allow to hide subcategories in the added objects. (in Mac version)

Fast selection of multiple atoms when creating/editing a molecule e.g: click atom "A"+ shift click atom "Z"(in Mac Version)

None: RequestedFeatures (last edited 2012-01-25 15:53:46 by varro)