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 pageHere 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,...).
LAST VERSION: 1.6.0.2: December 2003. See the changelog.
Here is a screenshot of Fox in action (click to enlarge) :
This page & project is hosted on and mirrored on CCP14 ( UK mirror, Canadian Mirror, US Mirror)