ObjCryst++ & FOX Home page 

Note: if you want to receive news about new Fox or ObjCryst++ releases, you should subscribe to these mailing-lists.
ObjCryst++

ObjCryst++ is a Crystallographic computing library, which provides high-level objects to create crystallographic programs. This library is optimized for the global optimization of crystal structures from diffraction data (currently mostly powder diffraction). 

ObjCryst++ is available with full documentation:
Go to the ObjCryst page

Here is a simple example of using ObjCryst++, where a fluorine crystal structure crystal is created, and for which the powder pattern is computed:

{
  //Create crystal structure
    Crystal caf2 (5.46,5.46,5.46,"Fm3m");
    caf2.SetName("CaF2");
  // Create atom types
    ScatteringPowerAtom *ScattPowCa=new ScatteringPowerAtom("Ca","Pb",0.6);
    ScatteringPowerAtom *ScattPowF =new ScatteringPowerAtom("F" ,"F" ,0.8);
  //add atom types to the crystal
    caf2.AddScatteringPower(ScattPowCa);
    caf2.AddScatteringPower(ScattPowF);
  //create the atoms
    Atom *ca =new Atom(.0 ,.0 ,.0 ,"Ca",ScattPowCa ,1.);
    Atom *f =new Atom( .25,.25,.25,"F" ,ScattPowF  ,1.);
    caf2.AddScatterer(ca);
    caf2.AddScatterer(f);

  //Create Diffraction data object, for Cu-Alpha1
    PowderPattern data;
    data.SetWavelength("CuA1");
  //add CaF2 as a Crystalline phase
    PowderPatternDiffraction * diffData=new PowderPatternDiffraction;
    diffData->SetCrystal(caf2);
    data.AddPowderPatternComponent(* diffData);
  //we don't have data, so just simulate (0->Pi/2)..
  //give a constant 'obs pattern of unit intensity
    data.SetPowderPatternPar(0,M_PI/10000.,5000);
    CrystVector_double obs(5000);
    obs=1;
    data.SetPowderPatternObs(obs);
    data.Prepare();

  // Save the powder pattern in text format
    data.SavePowderPattern("caf2.dat");
  // Save everything in xml so that we can reload it later
    XMLCrystFileSaveGlobal("caf2.xml");
}

FOX- Free Objects for Xtallography

FOX is a program for the ab initio structure determination from powder diffraction (neutrons, X-Ray). The crystal structure can be described as any combination of atoms, molecules or polyhedras, without a priori information about the connectivity of these 'building block'. Fox can make multi-pattern global optimizations, and automatically correct special positions. 

FOX could also be used for educational purposes, to display Crystal Structures in 3D with the associated Powder Pattern (you can change the SpaceGroup and see the changes,...). 

Go to the FOX page

LAST VERSION: 1.6.0.2: December 2003. See the changelog.

Here is a screenshot of Fox in action (click to enlarge) : 

Fox working on a Potassium Tartrate sample

This page & project is hosted onSourceForge Logo and mirrored on CCP14 ( UK mirror, Canadian Mirror, US Mirror)