GSAS-II is a powerful software for analyzing the crystallographic structure from diffraction data. It is written in Python, with some underlying routines in Fortran and C++. It is possible to grab the source codes of GSAS-II, develop and test it locally. This post covers the steps to set up the local development environment for GSAS-II. This post is a collection of notes of tips and tricks for using and developing GSAS-II.
-
Multi-phase refinement
When we have more than one phase in GSAS-II refinement, we should have phase fraction for each of the phases involved. With this regard, we have, suppose we have two phases, three parameters – the overall scale factor and two phase fraction factors. In this case, we cannot let all of these three parameters to be refined since otherwise the program will by a high chance crash due to the strong correlation among these parameters. Instead, we should refine the scale factor together with one of the two phase fraction factors, while setting a constraint to specify that overall phase fraction should be 1. To add the constraint, we should follow the instruction in Ref. [1] (see #3 in Step-I), or here. Here it should be noticed that the phase fraction is referred to as
Scale
for each phase and thisScale
should not be confused with that of the overall histogram. -
Development environment setup for GSAS-II
Refer to the documentation of GSAS-II for detailed explanation – see Ref. [2].
-
Set up the conda environment, using the command below,
conda create -n g2python python=3.10 wxpython numpy scipy matplotlib pyopengl pillow h5py imageio conda requests -c conda-forge
-
Check out the GSAS-II source code, using SVN,
svn checkout https://subversion.xray.aps.anl.gov/pyGSAS/
-
Here follows, the configuration is specific to the PyCharm IDE. First, launch the PyCharm IDE and open the GSAS-II folder (i.e., the one we just checked out,
pyGSAS
). -
Go to the top right corner of the interface and click on the drop-down menu as indicated with the green arrow below,
-
Select
Edit Configurations...
to open up the configuration window where we need to fill in information for the python interpreter, the main python script, etc. -
Refer to the screenshot below for detailed configuration as a typical example,
Here follows is a recorded video demonstrating the above process,
-
References
[1] https://subversion.xray.aps.anl.gov/pyGSAS/Tutorials/SeqRefine/SequentialTutorial.htm
[2] https://gsas-ii.readthedocs.io/en/latest/packages.html#gui-requirements