From 1c8db6e15a18074963f3484d8cb79ea675e4ed00 Mon Sep 17 00:00:00 2001 From: Yuchen Ethan Xiao Date: Mon, 17 Mar 2025 23:04:40 -0400 Subject: [PATCH 1/8] remove texinfo and edit rst --- doc/manual/.gitignore | 6 - doc/manual/acknowledgements.texinfo | 51 - doc/manual/disclaimer.texinfo | 11 - doc/manual/extractEquations.py | 156 - doc/manual/fixHTMLCode.py | 62 - doc/manual/pdfgui.html | 5560 ----------------- doc/manual/pdfgui.texinfo | 1946 ------ doc/manual/redistribution.texinfo | 19 - doc/{manual => source}/Farrow-jpcm-2007.pdf | Bin doc/{manual => source}/Proffen-jac-1999.pdf | Bin doc/source/examples.rst | 270 + doc/source/extras.rst | 118 + doc/{manual => source}/images/Makefile | 0 doc/{manual => source}/images/eq-01.png | Bin doc/{manual => source}/images/eq-02.png | Bin doc/{manual => source}/images/fig2-01.png | Bin doc/{manual => source}/images/fig2-02.png | Bin doc/{manual => source}/images/fig2-03.png | Bin doc/{manual => source}/images/fig2-04.png | Bin doc/{manual => source}/images/fig2-05.png | Bin doc/{manual => source}/images/fig2-06.png | Bin doc/{manual => source}/images/fig2-07.png | Bin doc/{manual => source}/images/fig2-08.png | Bin doc/{manual => source}/images/fig2-09.png | Bin doc/{manual => source}/images/fig2-10.png | Bin doc/{manual => source}/images/fig2-11.png | Bin doc/{manual => source}/images/fig3-01.png | Bin doc/{manual => source}/images/fig3-02.png | Bin doc/{manual => source}/images/fig3-03.png | Bin doc/{manual => source}/images/fig3-04.png | Bin doc/{manual => source}/images/fig3-05.png | Bin doc/{manual => source}/images/fig3-06.png | Bin doc/{manual => source}/images/fig3-07.png | Bin doc/{manual => source}/images/fig3-08.png | Bin doc/{manual => source}/images/fig3-09.png | Bin doc/{manual => source}/images/fig3-10.png | Bin doc/{manual => source}/images/fig4-01.png | Bin doc/{manual => source}/images/fig4-02.png | Bin doc/source/images/gear-icon.png | Bin 0 -> 1778 bytes .../images/originals/fig2-01.png | Bin .../images/originals/fig2-01.xcf | Bin .../images/originals/fig2-02.png | Bin .../images/originals/fig2-03.png | Bin .../images/originals/fig2-04.png | Bin .../images/originals/fig2-05.png | Bin .../images/originals/fig2-06.png | Bin .../images/originals/fig2-07.png | Bin .../images/originals/fig2-08.png | Bin .../images/originals/fig2-09.png | Bin .../images/originals/fig2-10.png | Bin .../images/originals/fig2-11.png | Bin .../images/originals/fig3-01.png | Bin .../images/originals/fig3-02.png | Bin .../images/originals/fig3-03.png | Bin .../images/originals/fig3-04.png | Bin .../images/originals/fig3-05.png | Bin .../images/originals/fig3-06.png | Bin .../images/originals/fig3-07.png | Bin .../images/originals/fig3-08.png | Bin .../images/originals/fig3-09.png | Bin .../images/originals/fig3-10.png | Bin .../images/originals/fig4-01.png | Bin .../images/originals/fig4-02.png | Bin doc/source/images/plot-icon.png | Bin 0 -> 2355 bytes doc/source/images/stop-icon.png | Bin 0 -> 1134 bytes doc/source/index.rst | 3 +- doc/{manual => source}/pdfgui.pdf | Bin doc/source/tutorial.rst | 257 +- news/rm_texinfo.rst | 23 + 69 files changed, 635 insertions(+), 7847 deletions(-) delete mode 100644 doc/manual/.gitignore delete mode 100644 doc/manual/acknowledgements.texinfo delete mode 100644 doc/manual/disclaimer.texinfo delete mode 100644 doc/manual/extractEquations.py delete mode 100644 doc/manual/fixHTMLCode.py delete mode 100644 doc/manual/pdfgui.html delete mode 100644 doc/manual/pdfgui.texinfo delete mode 100644 doc/manual/redistribution.texinfo rename doc/{manual => source}/Farrow-jpcm-2007.pdf (100%) rename doc/{manual => source}/Proffen-jac-1999.pdf (100%) create mode 100644 doc/source/examples.rst create mode 100644 doc/source/extras.rst rename doc/{manual => source}/images/Makefile (100%) rename doc/{manual => source}/images/eq-01.png (100%) rename doc/{manual => source}/images/eq-02.png (100%) rename doc/{manual => source}/images/fig2-01.png (100%) rename doc/{manual => source}/images/fig2-02.png (100%) rename doc/{manual => source}/images/fig2-03.png (100%) rename doc/{manual => source}/images/fig2-04.png (100%) rename doc/{manual => source}/images/fig2-05.png (100%) rename doc/{manual => source}/images/fig2-06.png (100%) rename doc/{manual => source}/images/fig2-07.png (100%) rename doc/{manual => source}/images/fig2-08.png (100%) rename doc/{manual => source}/images/fig2-09.png (100%) rename doc/{manual => source}/images/fig2-10.png (100%) rename doc/{manual => source}/images/fig2-11.png (100%) rename doc/{manual => source}/images/fig3-01.png (100%) rename doc/{manual => source}/images/fig3-02.png (100%) rename doc/{manual => source}/images/fig3-03.png (100%) rename doc/{manual => source}/images/fig3-04.png (100%) rename doc/{manual => source}/images/fig3-05.png (100%) rename doc/{manual => source}/images/fig3-06.png (100%) rename doc/{manual => source}/images/fig3-07.png (100%) rename doc/{manual => source}/images/fig3-08.png (100%) rename doc/{manual => source}/images/fig3-09.png (100%) rename doc/{manual => source}/images/fig3-10.png (100%) rename doc/{manual => source}/images/fig4-01.png (100%) rename doc/{manual => source}/images/fig4-02.png (100%) create mode 100644 doc/source/images/gear-icon.png rename doc/{manual => source}/images/originals/fig2-01.png (100%) rename doc/{manual => source}/images/originals/fig2-01.xcf (100%) rename doc/{manual => source}/images/originals/fig2-02.png (100%) rename doc/{manual => source}/images/originals/fig2-03.png (100%) rename doc/{manual => source}/images/originals/fig2-04.png (100%) rename doc/{manual => source}/images/originals/fig2-05.png (100%) rename doc/{manual => source}/images/originals/fig2-06.png (100%) rename doc/{manual => source}/images/originals/fig2-07.png (100%) rename doc/{manual => source}/images/originals/fig2-08.png (100%) rename doc/{manual => source}/images/originals/fig2-09.png (100%) rename doc/{manual => source}/images/originals/fig2-10.png (100%) rename doc/{manual => source}/images/originals/fig2-11.png (100%) rename doc/{manual => source}/images/originals/fig3-01.png (100%) rename doc/{manual => source}/images/originals/fig3-02.png (100%) rename doc/{manual => source}/images/originals/fig3-03.png (100%) rename doc/{manual => source}/images/originals/fig3-04.png (100%) rename doc/{manual => source}/images/originals/fig3-05.png (100%) rename doc/{manual => source}/images/originals/fig3-06.png (100%) rename doc/{manual => source}/images/originals/fig3-07.png (100%) rename doc/{manual => source}/images/originals/fig3-08.png (100%) rename doc/{manual => source}/images/originals/fig3-09.png (100%) rename doc/{manual => source}/images/originals/fig3-10.png (100%) rename doc/{manual => source}/images/originals/fig4-01.png (100%) rename doc/{manual => source}/images/originals/fig4-02.png (100%) create mode 100644 doc/source/images/plot-icon.png create mode 100644 doc/source/images/stop-icon.png rename doc/{manual => source}/pdfgui.pdf (100%) create mode 100644 news/rm_texinfo.rst diff --git a/doc/manual/.gitignore b/doc/manual/.gitignore deleted file mode 100644 index 619d5cfd..00000000 --- a/doc/manual/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -pdfgui.aux -pdfgui.cp -pdfgui.cps -pdfgui.toc -pdfgui.vr -pdfgui.vrs diff --git a/doc/manual/acknowledgements.texinfo b/doc/manual/acknowledgements.texinfo deleted file mode 100644 index a2bb875a..00000000 --- a/doc/manual/acknowledgements.texinfo +++ /dev/null @@ -1,51 +0,0 @@ -This software was originally developed by the Billinge group as part -of the Distributed Data Analysis of Neutron Scattering Experiments -(DANSE) project funded by the US National Science Foundation under -grant DMR-0520547. Developments of PDFfit2 were funded by NSF grant -DMR-0304391 in the Billinge group, and with support from Michigan State -University and Columbia University. Any opinions, findings, and conclusions -or recommendations expressed in this material are those of the author(s) -and do not necessarily reflect the views of the respective funding bodies. -Subsequent development was done in the Billinge group at Columbia University -and then in collaboration between the Billinge group at Columbia and Pavol -Juhas at Brookhaven National Laboratory. Moving forward, PDFgui will be -maintained as a community project with contributions welcomed from many people. - -Several of the examples in the tutorial part were made possible and benefited from samples -synthesized by J. F. Mitchell, and from data collected and processed by M. -Schmidt, P. G. Radaelli, and X. Qiu. - -@bigskip{} -If you use this program to do productive scientific research that leads -to publication, we ask that you acknowledge use of the program by citing -the following paper in your publication: -@bigskip{} - -@quotation -C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin, -J. Bloch, Th. Proffen and S. J. L. Billinge, -@url{https://stacks.iop.org/0953-8984/19/335219, -PDFfit2 and PDFgui: computer programs for studying nanostructure in crystals}, -@i{@w{J. Phys.:} Condens. Matter}, @b{19}, 335219 (2007) -@end quotation - -@bigskip{} -@insertcopying -@cindex copyright -@bigskip{} -As of February 2017, and the 1.1.2 release, PDFgui has moved to a shared copyright model. -@bigskip{} -PDFgui uses a shared copyright model. Each contributor maintains copyright over their -contributions to PDFgui. But, it is important to note that these contributions are -typically only changes to the repositories. Thus, the PDFgui source code, in its entirety, -is not the copyright of any single person or institution. Instead, it is the collective -copyright of the entire PDFgui Development Team. If individual contributors want to -maintain a record of what changes/contributions they have specific copyright on, they -should indicate their copyright in the commit message of the change, when they commit -the change to one of the PDFgui repositories. -@bigskip{} -The PDFgui Development Team is the set of all contributors to the PDFgui project. -A full list can be obtained from the git version control logs. -@bigskip{} -For more information please visit @url{https://www.diffpy.org} -or contact Prof. Simon Billinge at @email{sb2896@@columbia.edu}. diff --git a/doc/manual/disclaimer.texinfo b/doc/manual/disclaimer.texinfo deleted file mode 100644 index acd7dba3..00000000 --- a/doc/manual/disclaimer.texinfo +++ /dev/null @@ -1,11 +0,0 @@ -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/doc/manual/extractEquations.py b/doc/manual/extractEquations.py deleted file mode 100644 index 6be47249..00000000 --- a/doc/manual/extractEquations.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/python -import os -import shutil -import sys - -"""Read one or more texinfo files and extract any equations marked -in the code with '@EquationMark' macro as PNG files to the images -directory. -""" - -# constants - -rc = { - "directory": "../source/images", # output directory - "resolution": 72, # equation images resolution - "eqns": [], # list of raw equation codes - "tmpdir": None, # temporary directory -} - -eqlatex = r""" -\documentclass{article} -\usepackage{exscale} -\pagestyle{empty} -\setlength{\oddsidemargin}{0in} -\setlength{\textwidth}{7in} -\begin{document} -\huge -%s -\end{document} -""".lstrip() - -eqmark = "@EquationMark" - -############################################################################## -# business - - -def loadEquations(): - """Search for equation codes preceded by @EquationMark macro. - - Store equation codes in rc['eqns']. - """ - lines = [] - for f in sys.argv[1:]: - fhandle = open(f) - lines.extend(fhandle.readlines()) - # process all lines in sequence - atmark = False - attex = False - eqlines = [] - for line in lines: - bareline = line.strip().rstrip("{}") - if bareline == eqmark: - atmark = True - continue - elif atmark and bareline == "@tex": - attex = True - continue - elif attex and bareline == "@end tex": - atmark = False - attex = False - eq = "".join(eqlines) + "\n" - rc["eqns"].append(eq) - eqlines = [] - elif attex: - eqlines.append(line) - return - - -def writePNGFiles(): - from tempfile import mkdtemp - - rc["tmpdir"] = mkdtemp() - rc["directory"] = os.path.abspath(rc["directory"]) - neqn = len(rc["eqns"]) - for i in range(neqn): - fname = "eq-%02i.tex" % (i + 1) - fpath = os.path.join(rc["tmpdir"], fname) - fhandle = open(fpath, "w") - s = eqlatex % rc["eqns"][i] - fhandle.write(s) - fhandle.close() - convertToPNG(fpath) - pngsrc = fpath[:-4] + ".png" - pngdst = os.path.join(rc["directory"], fname[:-4] + ".png") - shutil.copyfile(pngsrc, pngdst) - return - - -def convertToPNG(texfile): - """Compile texfile and convert it to PNG.""" - os.chdir(os.path.dirname(texfile)) - texbasename = os.path.splitext(os.path.basename(texfile))[0] - cmd = "latex --interaction nonstopmode %r" % texbasename - os.system(cmd) != 0 and sys.exit(1) - cmd = "dvips %r" % texbasename - os.system(cmd) != 0 and sys.exit(1) - psfilename = texbasename + ".ps" - bb = getBoundingBox(psfilename) - pgbb = getPageBoundingBox(psfilename) - pt2px = rc["resolution"] / 72.0 - xpx = pt2px * bb[0] - ypx = pt2px * (pgbb[3] - bb[3]) - wpx = pt2px * (bb[2] - bb[0]) - hpx = pt2px * (bb[3] - bb[1]) - geometry = "%ix%i+%i+%i" % (wpx, hpx, xpx, ypx) - pngfilename = texbasename + ".png" - cmd = "convert -strip -density %i %r -crop %s +repage %r" % ( - rc["resolution"], - psfilename, - geometry, - pngfilename, - ) - os.system(cmd) != 0 and sys.exit(1) - return - - -def getBoundingBox(psfilename): - """Run ghostscript to obtain effective bounding box of psfilename. - - Return a list of bounding box coordinates. - """ - cmd = "gs -dNOPAUSE -dBATCH -q -sDEVICE=bbox %r" % psfilename - # gs sends bbox output to stderr - i, o, e = os.popen3(cmd) - i.close() - out = o.read() - o.close() - out += e.read() - e.close() - bb = [int(w) for w in out.split()[1:5]] - return bb - - -def getPageBoundingBox(psfilename): - """Obtain bounding box value defined in psfilename. - - Return a list of bounding box coordinates. - """ - import re - - with open(psfilename) as fp: - s = fp.read() - bbline = re.search("^%%BoundingBox: *(.*)$", s, re.M) - pgbb = [int(w) for w in bbline.group(1).split()[:4]] - return pgbb - - -def main(): - loadEquations() - writePNGFiles() - shutil.rmtree(rc["tmpdir"]) - - -if __name__ == "__main__": - main() diff --git a/doc/manual/fixHTMLCode.py b/doc/manual/fixHTMLCode.py deleted file mode 100644 index 3929573a..00000000 --- a/doc/manual/fixHTMLCode.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/python - -import os -import re -import sys - -"""Replace all equation marks in HTML file with tag to display -corresponding PNG file. This assumes PNG files are in correct sequence. -Also fix any accented characters texinfo does not get right. -""" - -# constants - -rc = { - "directory": "../source/images", # directory with equation images -} - -eqmark = "" - -############################################################################## -# business - - -eqcnt = 0 - - -def eqreplace(mx): - """Helper function to replace equation marks. - - mx -- regular expression match object - - Return replacement string. - """ - global eqcnt - eqcnt += 1 - imgfile = "eq-%02i.png" % eqcnt - imgurl = os.path.join(rc["directory"], imgfile) - s = '

%s' % (imgurl, imgurl) - return s - - -def replaceEquationMarks(s): - """Replace equation marks in given string. - - Return modified string. - """ - s1 = re.sub(eqmark, eqreplace, s) - return s1 - - -def main(): - for f in sys.argv[1:]: - with open(f) as fp: - s = fp.read() - s1 = replaceEquationMarks(s) - if s1 != s: - with open(f, "w") as fpout: - fpout.write(s1) - - -if __name__ == "__main__": - main() diff --git a/doc/manual/pdfgui.html b/doc/manual/pdfgui.html deleted file mode 100644 index 50c9c499..00000000 --- a/doc/manual/pdfgui.html +++ /dev/null @@ -1,5560 +0,0 @@ - - - - - - PDFgui user guide, release 2.0, May 2023 - - - - - - - - - - - -

PDFgui user guide

-

2.0 release

-

May 2023

- C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin,
- J. Bloch, Th. Proffen, and S. J. L. Billinge
- -
- - - - - - - - - - -
[ < ] - [ - > ] -   - [Contents] - - [Index] - - [ ? ] -
- -

Acknowledgments

- -

- This software was originally developed by the Billinge group as part of - the Distributed Data Analysis of Neutron Scattering Experiments (DANSE) - project funded by the US National Science Foundation under grant - DMR-0520547. Developments of PDFfit2 were funded by NSF grant DMR-0304391 - in the Billinge group, and with support from Michigan State University and - Columbia University. Any opinions, findings, and conclusions or - recommendations expressed in this material are those of the author(s) and - do not necessarily reflect the views of the respective funding bodies. - Subsequent development was done in the Billinge group at Columbia - University and then in collaboration between the Billinge group at - Columbia and Pavol Juhas at Brookhaven National Laboratory. Moving - forward, PDFgui will be maintained as a community project with - contributions welcomed from many people. -

-

- Several of the examples in the tutorial part were made possible and - benefited from samples synthesized by J. F. Mitchell, and from data - collected and processed by M. Schmidt, P. G. Radaelli, and X. Qiu. -

-

- If you use this program to do productive scientific research that leads to - publication, we ask that you acknowledge use of the program by citing the - following paper in your publication: -

-
-

- C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin, J. Bloch, - Th. Proffen and S. J. L. Billinge, - PDFfit2 and PDFgui: computer programs for studying nanostructure in - crystals, J. Phys.: Condens. Matter, 19, 335219 (2007) -

-
- -

- Up to the release 1.1.2 (February 2017) the copyright was held by the - institutions that hosted the work as follows: Copyright 2006-2007, Board - of Trustees of Michigan State University, Copyright 2008-2012, Board of - Trustees of Columbia University in the city of New York. Copyright 2013, - Brookhaven National Laboratory (Copyright holder indicated in each source - file). -

- -

- As of February 2017, and the 1.1.2 release, PDFgui has moved to a shared - copyright model. PDFgui uses a shared copyright model. Each contributor - maintains copyright over their contributions to PDFgui. But, it is - important to note that these contributions are typically only changes to - the repositories. Thus, the PDFgui source code, in its entirety, is not - the copyright of any single person or institution. Instead, it is the - collective copyright of the entire PDFgui Development Team. If individual - contributors want to maintain a record of what changes/contributions they - have specific copyright on, they should indicate their copyright in the - commit message of the change, when they commit the change to one of the - PDFgui repositories. The PDFgui Development Team is the set of all - contributors to the PDFgui project. A full list can be obtained from the - git version control logs. For more information please visit - https://www.diffpy.org or contact - Prof. Simon Billinge at - sb2896@columbia.edu. -

- - -

Preface

- -

Using PDFgui and PDFfit2

-

- Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: -

- -

- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -

- -

- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -

- -

- Neither the names of COLUMBIA UNIVERSITY, MICHIGAN STATE UNIVERSITY nor - the names of their contributors may be used to endorse or promote products - derived from this software without specific prior written permission. -

- - -

Disclaimer

- -

- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT - NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1 Introduction

- - -

- PDFgui is a graphical interface built on the PDFfit2 engine, which is a - program and programming library for real-space refinement of crystal - structures based on the atomic pair distribution function (PDF) method. - PDFgui organizes fits and simplifies many data analysis tasks, such as - configuring and plotting multiple fits. PDFfit2 is capable of fitting a - theoretical three dimensional structure to atomic pair distribution - function data and is ideal for nanoscale investigations. The fit system - accounts for lattice constants, atomic positions and anisotropic atomic - displacement parameters, correlated atomic motion, and experimental - factors that may affect the data. The atomic positions and thermal - coefficients can be constrained to follow symmetry requirements of an - arbitrary space group. The PDFfit2 engine is written in C++ and accessible - via Python, allowing it to inter-operate with other Python programs. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.1 PDFfit2

- - -

- PDFfit2 is a major upgrade to PDFfit, and inherits many of its features. - PDFfit is capable of fitting a theoretical three-dimensional structure to - an experimentally determined PDF. It can simultaneously fit multiple - structures, accounting for different structural phases in a material. - PDFfit has a constraint system that allows expressing structure variables - as simple functions of fitted parameters. PDFfit structure variables - include lattice constants, data and phase scale factors, atomic site - occupation, anisotropic atomic displacement parameters (ADPs), and atomic - vibrational correlations. PDFfit has a built-in FORTRAN-style command - language that understands simple FOR loops and some built in arithmetic - functions. -

-

- The original PDFfit was written in FORTRAN-77, which imposes some - limitations on the program. For example, it uses fixed-size arrays for - internal storage. This precludes the analysis of structures with large - cells without modifying the code. Though the constraint system is - powerful, it requires that a constraint equation be accompanied by its - first derivative. This places the burden of determining the derivatives on - the user, which can introduce errors that lead to instability in the - convergence. Furthermore, the code is monolithic, not easily extensible - and hard to integrate with external programs. -

-

- The primary focus of PDFfit2 development was to remedy the limitations of - PDFfit while extending its functionality. The old PDFfit engine has been - completely rewritten in C++, and many bugs have been fixed. The new engine - uses dynamic memory allocation so that the size of the structure or extent - of the fit-range of the PDF is limited only by the physical memory - available. The constraint system has also been upgraded. The program - automatically - computes the analytical derivatives of the constraints that are required - by the minimization routine. This simplifies user input and reduces the - possibility of errors. In addition, new fitting parameters for handling - dynamic atomic correlations and experimental resolution have been - introduced as well. -

-

- Instead of rewriting the PDFfit command interpreter, which is used to - define the fitting problem and to control and run the refinement, its - functions are carried out using the Python language (https://www.python.org). Python is a powerful, cross-platform, open-source interpreted - programming language (i.e., it does not need to be compiled to run, - similar to scripting) that emphasizes object-oriented and modular design. - PDFfit2 scripts written in Python syntax take the place of PDFfit macros - and the Python interpreter can handle everything that the old interpreter - could, and more. Using Python as an interpreter allows PDFfit2 to be - combined with and enhanced by other Python libraries. We make use of this - capability with PDFgui as described below. -

- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.2 PDFgui

- - -

- The PDFfit2 engine can be used either directly from the Python command - line, or as part of larger and more complex software applications. The - first application built on PDFfit2 is PDFgui, a graphical environment for - PDF fitting. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
-

1.2.1 Design principles

- -

- PDFgui has been designed to provide users with an easy-to-use yet powerful - interface for fitting structure models to PDF data. It makes use of an - object-oriented architecture, which makes it highly extensible and - maintainable. This allows for powerful usability features such as - real-time plotting. PDFgui has been designed with multitasking in mind. It - is multi-threaded so that the work being done by the PDFfit2 engine does - not interfere with the tasks of the user interface. -

-

- PDFgui is written in the Python programming language. Python features a - relaxed and friendly syntax, supports “write once, run - anywhere” portability, and has extensive libraries and modules for - virtually every task. Software codes written in a variety of programming - languages can be bound into Python, which allows them to be used together. - Python is becoming a popular choice in the scientific computation - community. -

-

- PDFgui’s interface is built using wxPython (https://www.wxpython.org), the Python package for wxWidgets, a mature cross-platform GUI library. - Graphical applications written in wxPython provide a look and feel native - to the platform on which they are run. PDFgui is designed to run on - Windows, Mac OS, Linux, and all major Unix systems. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
-

1.2.2 Capabilities

- -

- PDFgui contains all of the functionality of PDFfit2 along with additional - enhancements for usability. Mundane tasks are handled by the program and - difficult tasks are made simple. PDFgui can manage multiple fits at once. - Each fit can have multiple experimental data sets and structure models. - Fits in a sequence can call upon other fits for their starting parameters, - and configured fits can be queued to run while the user is away. All the - initial, final, and intermediate data are stored in a platform independent - project file that can be loaded on any computer. All management tasks, - such as fit creation, configuration, modification, and visualization, can - be done through the graphical interface. -

-

- PDFgui supports space group operations. Users can define an asymmetric - unit and let PDFgui expand it to a full cell with all symmetry related - positions. PDFgui can also generate symmetry constraints for atom - positions and atomic ADPs. Users just need to specify the space group, and - the program will identify equivalent sites and generate constraint - equations for their coordinates and temperature factors to keep the - structure consistent with the symmetry requirements. This can be done - either for all atoms in the structure or for an arbitrary subset - for - example when it is known that only a certain species show a local - distortion. The code for space group definitions was provided by the - Python Macromolecular Library (mmLib, - http://pymmlib.sourceforge.net). This was extened to include non-standard space groups using the - Computational Crystallography Toolbox (cctbx, - https://cctbx.github.io). PDFgui - also supports supercell expansion of a normal unit cell. -

-

- PDFgui uses the matplotlib (https://matplotlib.org) Python package for 2D plotting of data and results. Matplotlib has a - friendly interface so the user can quickly and easily view the results of - a fitting. PDFgui lets users plot data from a series of fits and plot it - against selected meta-data (temperature, doping, etc.), plot the results - of several fits in the same window, plot the PDF in real time as the - fitting is running, plot the parameters or variables in real time as the - refinement evolves, and save plots in common image formats or export the - data to a text file. PDFgui can be configured to use one of many structure - visualization packages, such as AtomEye (http://li.mit.edu/A/Graphics/A/) or PyMOL (https://www.pymol.org). -

-

- PDFgui supports built-in macros for advanced fits. For a set of - experimental data from one system at different temperatures or doping - levels, PDFgui can expand a template fit to a series of related fits. - Another PDFgui macro makes it easy to set up boxcar fits, where the same - model is fit over different r-ranges of the PDF data. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.3 Availability

- - -

- PDFfit2 and PDFgui are open source and distributed under a BSD license. - They run on Windows, Mac OS, Linux, and all major Unix systems. The source - code is freely available. For more information please contact Professor - Simon Billinge (sb2896@columbia.edu) or consult the web-page - https://www.diffpy.org. News of - updates and releases will be posted at this website and on the - diffpy-users group at - https://groups.google.com/d/forum/diffpy-users. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.4 Installation

- - -

- PDFgui is included as a part of DiffPy, a suite of Python and C++ - libraries for structure analysis from diffraction data. For more - information about DiffPy products visit the project homepage at - https://www.diffpy.org. -

- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.4.1 Installation for Anaconda Python

- -

- As of version 1.1 PDFgui is distributed as a pre-built package for - Anaconda Python. This method makes - it easier to distribute software updates and also results in the same - installation procedure on all supported platforms. -

-

- To install PDFgui, download and install Anaconda for Python 2.7 from - https://www.anaconda.com/download. When ready open a terminal application (or - Anaconda Command Prompt on Windows) and use the - conda package manager to install PDFgui from the - “diffpy” channel of Anaconda packages -

-
-
-conda config --add channels diffpy
-conda install diffpy.pdfgui
-
-
- -

- The first command instructs Anaconda system to always check the - “diffpy” channel for any new software. Such configuration - allows to obtain PDFgui updates using -

-
-
-conda update diffpy.pdfgui
-
-
- -

- It is however not strictly necessary to make the “diffpy” - channel permanent. The same effect can be accomplished by adding the - ‘--channel=diffpy’ option to either of conda install or - conda update commands. -

-

- After installation is complete PDFgui can be started from a terminal by - entering pdfgui command or on Windows by using the DiffPy - start menu. PDFgui can be also started from the “Launcher” - program that is included with Anaconda. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.4.2 Configuration of structure viewer

- - -

- PDFgui can visualize 3D structures by displaying them with an external - visualization program. The visualization program needs to be specified - together with a suitable structure format in the “Edit → - Preferences” menu in PDFgui. The structure plotting feature has been - tested with the following programs: -

-
-
AtomEye
-
-

- AtomEye structure viewer, XCFG format
- http://li.mit.edu/A/Graphics/A/ -

-
-
PyMOL
-
-

- PyMOL structure viewer, PDB format
- https://www.pymol.org -

-
-
- -

- A note for AtomEye users: - -

-

- AtomEye requires its standard output is connected to a terminal. On Unix - this happens when pdfgui is started from a terminal. However - if you prefer to start PDFgui using a desktop shortcut or via “Run - Application” dialog of the window manager, you need to put the - following information to the “Edit → Preferences” menu of - PDFgui. -

-
-
-Structure viewer executable: xterm
-Argument string: -iconic -e ATOMEYE %s
-Structure format: xcfg
-
-
-

In the above, ATOMEYE is the path to the ATOMEYE executable.

-

- For Cygwin users, the workaround is to launch the executable from a batch - file. Batch files can only run in a command window on Windows and so - AtomEye’s requirements would be for sure satisfied. In addition the - batch file can be used to adjust environment variables: -

-
-
-atomeye.bat
-------------------------------------------------------------------------
-set DISPLAY=localhost:0
-set PATH=C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;C:\ATOMEYE_DIR;%PATH%
-start A.exe %*
-------------------------------------------------------------------------
-
-
- -

- Here ATOMEYE_DIR needs to be replaced with a proper path. Make - sure that the X-server application included with Cygwin is started. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.4.3 Installation from sources

- - - - -

- PDFgui sources are available in a public - Git repository at - https://github.com/diffpy/diffpy.pdfgui. Feel free to fork this project on GitHub and contribute. To use the - latest development version clone the Git repository to your computer and - install it in a development mode so that sources are used directly rather - than copied to a system location. It is also recommended to uninstall the - Anaconda package for PDFgui, so that there is no confusion as to what - version is the active one. Here are the shell commands that would do it: -

-
-
-# Install PDFgui together with software dependencies.
-conda install --channel=diffpy diffpy.pdfgui
-
-# Make room for the version from sources.  Keep dependencies installed.
-conda remove diffpy.pdfgui
-
-# Obtain a clone of the PDFgui Git repository.
-git clone https://github.com/diffpy/diffpy.pdfgui.git
-
-# Install PDFgui sources in a development mode.
-cd diffpy.pdfgui
-python setup.py develop
-
-
- -

- To verify that PDFgui is indeed loaded from the local source repository - run -

-
-
-python -m pydoc diffpy.pdfgui
-
-
- -

- and check the path displayed in the FILE section. The application - integrity can be verified by executing all builtin tests using -

-
-
-python -m diffpy.pdfgui.tests.rundeps
-
-
- -

- Use git pull to bring your source directory into sync with - the latest updates in the main repository. It is recommend to afterwards - do `setup.py develop again to refresh the version metadata - associated with the program: -

-
-
-git pull
-python setup.py develop
-
-
- -

- To revert PDFgui installation from the source-code installation back to - the pre-built Anaconda package do -

-
-
-pip uninstall diffpy.pdfgui
-conda install --channel=diffpy diffpy.pdfgui
-
-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.5 What is new

- - - - -

Version 1.1, released March 2016

- -

- Improvements and modifications since the last major release 1.0-r3067 from - April 2009. -

-
-
Anaconda installer
-
-

- PDFgui is now distributed as a pre-built package for Anaconda Python. - The program is available for all platforms supported by Anaconda, - i.e., for 32 and 64-bit Linux, Mac OS X, and for 32 and 64-bit - Windows. -

-
-
upgrade for recent GUI libraries
-
-

- Source codes were updated to work with WX GUI toolkit 2.9 or later. - Fixed blacked-out text fields on Mac OS X. Fixed missing toolbar in - plot-windows on Mac OS X. -

-
-
select atoms menu
-
-

- Added “Select Atoms” context menu to the Phase - Configuration and Phase Constraints panels. This selects atom rows by - a range of indices or by atom type. Added keyboard shortcut - / for activating the atom-selection dialog. -

-
-
small enhancements
-
-

- Fixed problems with r-grid interpolation near data boundaries. - Allow use of CIF-defined space groups for symmetry constraints. Use - consistent numbering for parameters created by symmetry constraints. - Improved export data tool in plot windows to group y-arrays - that are on the same x grid. Enhanced supercell expansion to - also adjust the coordinate constraints. -

-
-
project moved to GitHub
-
-

- PDFgui source repository was converted from subversion to a Git - repository at - https://github.com/diffpy/diffpy.pdfgui. Project now uses Git tags to define software release and version - data. -

-
-
Unicode support
-
-

- Allow accented characters in project filenames and in folder paths - where located. Allow accented characters for naming the fit tree - items. Note that such projects are unlikely to work with older - versions of PDFgui. Fix failure to exit when there is some uncaught - error in the at-exit cleanup functions. -

-
-
PDFgui tests
-
-

- PDFgui installation now includes built-in tests. Added facility to - test PDFgui and all its DiffPy components. Implemented automated - testing and generation of test coverage reports when sources on GitHub - change. -

-
-
bug fixes
-
-

- Quite a few. Consult the code history at - https://github.com/diffpy/diffpy.pdfgui/commits. -

-
-
- - -

Version 1.0, released April 2009

- -

- This section describes improvements and modifications since the last - beta-release 1.0b.1792 from December 2007. -

-
-
updates and installation
-
-

- PDFgui can be installed or updated with a simple run of the - easy_install script. easy_install checks our online code repository - for any newer versions and takes care of their download and - installation. It can be also used to add future DiffPy components as - they become available. This should work for Linux, Mac and Windows. -

-
-
Windows installer
-
-

- The updated Windows package includes full installation of Python 2.5 - and script for code updates. PDFgui can be installed under normal - Python2.5 tree if it has the easy_install script. -

-
-
particle shape correction stored with phase
-
-

- The previous release of PDFgui had spherical shape correction factors - stored with PDF dataset. The new layout is more logical and allows - multi-phase refinements with separate shape corrections. -

-
-
step shape factor
-
-

- Defined new shape factor that cuts off the simulated PDF at user - defined r-limit. -

-
-
cumulative Rw
-
-

- Implemented calculation of cumulative Rw and option to show it in - PDFgui plot window. -

-
-
project post-processing
-
-

- Implemented new module ‘tui’ (text user - interface) for simple access to the data in PDFgui project files. The - ‘tui’ module can be used in - easy-to-understand Python scripts for arbitrary data extraction or - conversion. It should be useful for project files with large - temperature or compositional series of PDF refinements. -

-
-
structure visualization
-
-

- PDFgui can now show structures with any external structure viewer, - that accepts structure file as a command-line argument. -

-
-
space group representations
-
-

- Added 249 space group representations in non-standard settings. The - new representations were generated using the - cctbx library and helpful hints - from Ralf W. Grosse-Kunstleve. -

-
-
symmetry constraints
-
-

- Fixed issues with generation of symmetry requirements for the ADP - tensors. -

-
-
default ADP tensors
-
-

- PDF contributions are not counted for atoms that have ADP tensors - Uij equal zero. Atoms are now inserted with a non-zero - Uij matrix. Added warning when a phase loaded from file has - atoms with zero ADPs. -

-
-
temperature series macro
-
-

- The temperature series macro was broken for datasets at equal - temperature or when temperature contained decimal point. Improved file - and temperature sorting in the temperature series dialog. -

-
-
journal panel
-

Fixed shortcut key handling and font size issues.

-
startup option ‘--db-pdb
-
-

- The new command-line option starts Python debugger on PDFgui crash - instead of displaying error report dialog. -

-
-
grid interpolation
-
-

- Fixed problems with r-grid interpolation appearing due to round-off - errors. -

-
-
data load on Windows
-
-

- Windows version could not read PDF datasets with NaN (not-a-number) - values in the dGr column, because NaN is not supported by the Windows - C-library. Added check for NaN-s before converting to float. -

-
-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

1.6 Community

- - - - -

- There are two Google groups for support and development of PDFgui and - other DiffPy software. Visit the links below for message archives or - instructions on subscription and posting. -

-
-
- diffpy-users - https://groups.google.com/d/forum/diffpy-users -
-
-

- Help on usage of PDFgui, PDFfit2 and other DiffPy packages. This group - should become a knowledge base of PDFgui user tips, tricks and - troubleshooting. Feel free to ask your question here. -

-
-
- diffpy-dev - https://groups.google.com/d/forum/diffpy-dev -
-
-

- For discussions about development and changes of PDFgui, PDFfit2 and - DiffPy library in general. -

-
-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

2 Quick start

- - -

- In this chapter the PDFgui layout is briefly described, followed by a - simple tutorial example, spanning the GUI functionality and aimed at - novice users. Users familiar with the basics can proceed to - Examples and tutorials, or use - PDFgui reference sheets. All the - files used in examples are available in the source distribution or can be - downloaded from the DiffPy website. -

- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

2.1 PDFgui layout

- - -

- Once PDFgui is invoked, a PDFgui window comes up. Its layout consists of a - “Menu Bar”, a “Tool Bar”, and a set of four panes. - The menu bar contains drop-down menus that provide various aspects of - PDFgui functionality. The tool bar features icons for commonly used - operations: creating a new project, opening an existing project, saving a - project, executing a refinement or calculation, stopping a refinement or - calculation, and making a quick plot. The four panes consist of the - “Fit Tree”, “Plot Control”, the“Current - Action” pane, and the “PDFfit2 Output” panel. These are - all shown in Figure 2.1. -

-

- The fit tree is used in setting up a fit protocol. The plot control serves - the user’s needs for graphically displaying the fits, as well as - various fit-related parameters. The content of the current action panel - changes as the refinement is being set up. It is a functional panel - through which the user configures the fit attributes, sets the fit - constraints, reviews the fit settings, displays fitting results, and also - carries out other setup steps. The progress of the PDFfit2 refinement - engine is displayed in the PDFfit2 output panel. All panels except the - current action panel are dockable windows that can be dragged across the - screen, resized and arranged to accommodate the individual visual needs of - the user. The window layout can also be controlled via the - “View” drop-down menu on the menu bar. An important part of - the PDFgui operativity is also conveniently available through mouse - operations such as select and right-click. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

- 2.2 Creating a simple fit using a preexisting structure file -

- - - -

- The purpose of this example is to familiarize the novice user with the - PDFgui basics. The goal is to create a simple fit of Ni PDF from a - preexisting structure file, associate a dataset with the refinement, - configure and execute a refinement, and display the result. Files to be - used in this exercise are Ni.stru and Ni-xray.gr (found in - the tutorial directory). To start, invoke PDFgui by clicking on the icon - on your desktop, selecting the program from your system’s program - menu, or by typing pdfgui in a terminal window. -

-

- First a new fit needs to be established. In the fit tree right-click the - mouse button, and select New Fit. This will generate a new fit - called “Fit 1” in the fit tree. The name of the fit is - highlighted and editable, so you need only to start typing to give the fit - a new name. The current action panel will display the pages that will hold - the fit and the results output. Note that the same action could be - achieved by selecting the New Fit option from the - “Fits” drop-down menu on the menu bar. -

-

- The next step in populating the fit tree is to load a structural model. - First, select the fit icon in the fit tree pane. Then, right-click the - mouse, invoking a drop-down menu. Select Insert Phase, which will - modify the current action panel. The same action could be performed from - the “Phases” drop-down menu on the menu bar by selecting - New Phase. In the current action panel options are offered to load - a structure from a file or to generate it from scratch. In this exercise a - preexisting structure file Ni.stru is to be loaded. -

-
- - images/fig2-01 -
-

- Figure 2.1: PDFgui window with fit tree and Plot Control panels to the - left and current action panel to the right. The fit tree panel features - the current fit and the loaded Ni structure which is selected. The - current action panel displays phase configuration within the - “Configure” tab. - -

-

- Figure 2.1 shows the PDFgui appearance at this - stage of the exercise. The current action panel has three tabs, - “Configure”, “Constraints”, and - “Results” that could be selected using mouse. These will be - returned to later. The “Configure” panel displays - configuration information from the structure file. The top portion - contains lattice parameters, phase scale factor, and a set of parameters - intended to be used to account for correlated atomic motion effects that - typically sharpen the nearest neighbor PDF peak. These are delta1, - delta2, sratio, and rcut. The spdiameter and - stepcut parameters include scatterer size effects in the PDF. These - parameters will be described later. The bottom part of the panel contains - standard unit cell content related information such as atomic species, - their fractional coordinates, anisotropic ADPs, and site occupancies. -

-

- The next step is to load an experimental data set to be fit. Selected the - fit and right-click to bring up the context menu. From the menu choose - Insert Data Set. The same action could be performed through the - “Data” menu on the menu bar. The current action panel changes - accordingly, giving an option for a data set to be loaded from a file. In - this exercise Ni PDF data obtained using synchrotron x-ray radiation - collected at 6-ID-D at the Advanced Photon Source is used. This is - contained in a file Ni-xray.gr, which is to be loaded. Note that - among the exercise files there is also a file Ni-neutron.gr, - obtained using neutron radiation at the GPPD diffractometer at the IPNS - facility at the Argonne National Laboratory. Both x-ray and neutron - datasets were collected at 300 K. -

-
- - images/fig2-02 -
-

- Figure 2.2: Appearance of a PDFgui window after a PDF dataset is - loaded. The Fit Tree panel features the current fit, loaded Ni - structure, and loaded Ni PDF dataset, G(r), which is selected. The - current action panel displays data set configuration within the - “Configure” tab. - -

-

- Figure 2.2 shows the PDFgui appearance at this - stage of the exercise. The “Configure” panel displays - configuration information from the data file. It should be noted that - depending on the software used to prepare the experimental PDF from the - raw data, the file may (or may not) contain meta-data reflecting the - experimental conditions and configuration. For example, software PDFgetX2 - and PDFgetN, which can be used to prepare PDFs from x-ray and neutron - total scattering experiments respectively, supply meta-data in the header - of the data file. PDFgui reads this information and fills the appropriate - fields in the data set configuration panel. Caution should be exercised by - the user to verify that these data indeed correspond to the experimental - conditions. In the present example, x-ray radiation is used, and so the - x-ray selection is turned on for the scatterer type. The data range, fit - range, data scale factor, maximum Q value used in Fourier transform to - obtain the experimental PDF and the experiment specific parameters are - displayed. Parameters describing experimental resolution effects, Qdamp - and Qbroad, and experimental conditions, such as temperature and doping - (used for bookkeeping and for parametric plots) are also shown. If no - meta-data are present in a data file, this information should be supplied - by the user. Note also that the changes occurred at this stage in the plot - control panel, allowing user to plot the data. This is achieved by - selecting r in the X-choice box and Gobs (the observed G(r)) - in the Y-list box and then pressing the “Plot” button. Since - no fitting has occurred so far, an attempt to plot calculated PDF profile - or a difference yields a blank plot. The data can also be displayed by - clicking the rightmost “quick-plot” button in the tool bar. -

-
- - images/fig2-03 -
-

- Figure 2.3: Adjusting data set related configuration. -

-

- Having specified the initial structure to be refined, and the data set to - be fit, we proceed to the refinement setup. First we adjust the initial - parameters and variables, and set up the constraints. The adjustments and - constraint setup are done on both the experimental data and the refined - structure levels, toggling between the corresponding - “Configure” and “Constraints” tabs. In the present - example the data related setup will be done first. -

-

- Click on the data set node (Ni-xray.gr) in the fit tree. In - Figure 2.3 the “Data Set - Configuration” panel is shown. We will adjust the fitting range, as - well as other parameters that reflect the experimental conditions. Since - there is no physical information in the region of r below the - nearest neighbor PDF peak position (as seen in the plot), and since this - region is often affected by noise and experimental artifacts, it is wise - to exclude it from fitting. We therefore set the value of the lower - boundary of the fitting range to 1.7. (Note that the units are Angstroms). - In addition, we set Qdamp parameter to a more realistic starting - value of 0.08. This is an instrument-dependent parameter is typically - obtained through a conventional calibration process at each PDF experiment - using a standard sample such as Ni or Si. Next, we select the - “Constraints” tab, and type @1 into the “Scale - Factor” edit box. This will assign refinement parameter 1 to the - data scale factor. Note that this is the syntax used for assigning the - refinement parameters in PDFfit2 engine. Similarly, assign parameter 2 to - Qdamp by inserting @2 into the appropriate edit box. This is - illustrated in Figure Figure 2.4. -

-
- - images/fig2-04 -
-

- Figure 2.4: Setting up the refinement parameters and constraints. - -

-

- Further, we set constraints related to the structural model, by selecting - the phase node (Ni.stru) on the fit tree, adjusting the initial - parameter values if necessary (not done here), and proceeding to the - “Constraints” tab. We note that the phase configuration was - performed automatically when the structure file was loaded. We assign the - refinement parameter 3 to all three lattice constants, a, b, and c, - reflecting the fact that the structure is cubic. Isotropic ADPs are - assigned to all Ni atoms in the refined cell as refinement parameter 4. - This can conveniently be done by highlighting the “u11”, - “u22” and “u33” cells for all four atoms, and - typing @4 and then pressing “Enter” on your keyboard. - The outcome is shown in Figure Figure 2.5. -

- -
- - images/fig2-05 -
-

- Figure 2.5: Setting up the refinement parameters and constraints. - -

-

- Note that constrained parameters cannot be adjusted on the - “Configuration” panel since they are no longer independent. It - should also be noted that as a part of the PDFfit2 syntax a refinement - parameter can also be defined as a math expression - f(@n1,@n2,@n3,...) where @n1 stands for fitted parameter, - and n1, n2,... are arbitrary positive integers enumerating - the parameters. This allows simple linking of related variables. For - example, since cell lengths a, b, and c are all expressed as @3, - the refined structure will remain cubic. Also note that the enumeration of - the parameters can be arbitrary, enumeration does not have to follow any - particular order. The quantities within a fit that are enumerated with the - same number will be assigned the same parameter, hence caution should be - exercised to avoid unintentional assignment of the same parameter to - physically different quantities. Automatic parameter assignment (see - further below) is done in such a way as to disallow for such situations to - happen. If assignment is done in part manually, in particular for complex - setups, it is recommended to verify that the parameter assignment is done - correctly. -

-
- - images/fig2-06 -
-

- Figure 2.6: Reviewing the fit parameters and conditions. -

-

- The setup for the present example is now completed. By selecting the fit - node on the fit tree the current action window shows - “Parameters” tab, which displays the used refinement - parameters for review, Figure 2.6. It shows the - initial values, and allows for updates and for refinement parameters to be - released or fixed depending on whether the corresponding - “Fixed” box is unchecked or checked, respectively. The - “Refined” column, which is currently empty, will be populated - with the refined values of the parameters with the fit completes. If the - initial parameter values are to be changed, using “Apply - parameters” button will update the values of the parameters on all - relevant “Configuration” panels. The refinement is executed by - clicking the “gear” icon on the tool bar. The refinement can - be stopped prematurely by clicking on the “stop” icon on the - tool bar. During the refinement the refinement progress will be directly - reported in the PDFfit2 Output panel. This is illustrated in - Figure 2.7. -

-
- - images/fig2-07 -
-

- Figure 2.7: While the refinement is running, the refinement progress is - displayed in the PDFfit2 Output panel. - -

-

- After the fitting is completed, the fit summary is provided in the - “Results” tab of the current action panel associated with the - fit node. Similarly, if the “Results” tab is displayed when - Ni.stru or Ni-xray.gr are selected, values of all - corresponding refined parameters for the converged model are displayed. -

-

- If the fit results are acceptable, one or more refined values could be - copied to become new initial parameters for possible further refinement, - where appropriate. This is be done in the “Parameters” tab of - the fit by highlighting refined parameters to be copied, right-clicking, - and and selecting Copy Refined To Initial. This is illustrated in - Figure 2.8. Note that you loose the original - starting values when copying values in this way, which may make it - difficult to reproduce the fit. -

-
- - images/fig2-08 -
-

- Figure 2.8: Updating the set of initial values of refined parameters. - -

-

- The fit can be displayed graphically by clicking at the “quick - plot” icon on the tool bar. Alternatively, desired items to be - displayed can be selected from the plot control and plotted on the screen. - Depending on whether the structure or the data are selected on the fit - tree, either refined structural parameters or the experiment related - parameters and fit could be plotted. An example of the fit display is - shown in Figure 2.9, and a selected parameter - plot vs iteration step in Figure 2.10. If the - plotting window remains open while the fitting is in progress, the content - will be updated after each fit iteration. -

-
- - images/fig2-09 -
-

- Figure 2.9: An example of PDFgui plotting capabilities: displaying a - fit. - -

-
- - images/fig2-10 -
-

- Figure 2.10: An example of PDFgui plotting capabilities: displaying a - parameter. - -

-

- PDFgui is furnished with “Journal” capability, which can be - found under the “View” menu, and represents a convenient way - to archive project-related notes, as illustrated in - Figure 2.11. These notes can be exported as a - text file, or saved along with the entire project for future reference. -

-
- - images/fig2-11 -
-

- Figure 2.11: Using “Journal” feature can be a convenient - way for taking notes. - -

-

- The project can be saved at any stage in its present configuration through - choice of Save Project as or Save Project as appropriate - from the “File” drop-down menu. The PDFgui project file has - “ddp” extension. In addition to saving a project, various - parts of the project, both structure related and data related, can be - exported to external files by making an appropriate selection from the - “Phases” and “Data” drop-down menus. The phases - (starting or converged) can be saved in one of many formats. The model PDF - profile can be exported through “Data” menu and will be saved - as a five-column “.fgr” file. The first four columns are - r, G(r), dr, and dG(r), and the fifth column - is the difference curve between the data and the model. Note that the - model PDF and the difference are only calculated within the user-specified - fitting range. -

- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3 Examples and tutorials

- - - -

- In this chapter we present series of examples and tutorials aimed at users - already comfortable with the GUI, to provide training in advanced GUI - features designed for most common modeling situations, such as building - the structure from scratch, calculating the PDF based on a given - structure, linking fits, and creating and executing a series of fits on a - sequence of data sets. -

- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.1 Building structure model using crystal symmetry

- - - -

- The purpose of this example is to demonstrate to the user the symmetry - expansion capabilities of PDFgui. The goal is again to create a simple fit - of Ni PDF, but this time from scratch rather than from a preexisting - structure file. The focus will be on the symmetry expansion of the - structure, and the steps that are described earlier in - Creating a simple fit using a preexisting structure file - are left for the user to recreate. File to be used in this exercise is - Ni-xray.gr. To start, invoke PDFgui. -

-

- To begin, a new fit again needs to be established by right-clicking the - mouse button on the fit tree pane, and selecting New Fit. This will - generate a new fit called Fit 1 as in the previous example. The next step - in populating the fitting tree is to introduce a structural model. This - time a new phase will be added and the model built up from scratch. Select - the fit icon in the Fit Tree pane. Then right-click the mouse and select - Insert Phase, which will modify the current action panel. In the - current action panel options are offered to load a structure from a file - or to generate it from scratch. Select “New” to build up - structure from scratch. The Fit Tree will be populated with a new item - “New Phase”. Rename this phase to “Ni fcc”. The - current action panel now displays default phase configuration with - “dummy” values and no atoms. Edit the lattice parameters and - set them to reflect the symmetry, in this case set the lengths to 3.52 - Angstroms and all the angles to 90 degrees. Pressing “Tab” on - the keyboard will take you from one form-field to the next. To introduce - new atoms right-click with your mouse onto elem tab in the Phase - Constraints grid, and select desired number of atoms in the asymmetric - unit via the dialog box that pops up. For the Ni case, select one row - only. A new row will then show up in the table and the name of the element - will be highlighted. Type in Ni for the element name. It is - important that the element name is typed in correctly, as this is further - used to search a database for the scattering characteristics of that - site(1). Further, highlight cells in the - u11, u22, and u33 columns and type in the initial - value 0.0025. -

- -

- Now right-click with the mouse on the element name, and select - “Expand space group...” option. A dialog box will appear, as - shown in Figure 3.1, requesting space group - information and the choice of origin. Choose “Fm-3m” in the - choice box and hit enter. You can also type in the choice box - “Fm-3m” or “225”, the space group number. This - will expand the unit cell to four Ni sites with the proper symmetry. -

-
- - images/fig3-01 -
-

- Figure 3.1: Expanding the unit cell using space group information. - -

-

- In order to set the symmetry constraints for the refinement, select - “Constraints” tab, highlight all the atoms, and right-click to - invoke a menu. Note that hitting “Control” and “A” - simultaneously will select all the atoms if the grid is active. (If the - fit tree is active, it will select all tree items). Click on - “Symmetry constraints...”, and a dialog box will appear asking - for the space group to be used and whether you want the positions and/or - the thermal parameters to be constrained, as shown in - Figure 3.2. The default is to use the space - group used for expansion, and to constrain everything according to the - symmetry. Since all the positions are special, these will not be refinable - by symmetry, and the thermal parameters will be isotropic. The program - will assign parameters according to symmetry using default names that can - be renamed and/or reassigned by the user. To be consistent with the naming - from the first example, one could assign the lattice parameters as - @3 and the isotropic ADPs as @4. Note that parameters can be - quickly renamed or consolidated in the “Parameters” panel of - the fit node using the right-click menu. It is important to note that the - table reflecting constraints is the only place that program refers - to for the symmetry. What is written there will be used, and if the table - is tampered with, then the original symmetry obtained using symmetry - expansion feature will not be preserved. Therefore, the expansion - tool represents a convenience tool and nothing more than that. The - remaining steps of this example are identical to these described in - Creating a simple fit using a preexisting structure file. -

-
- - images/fig3-02 -
-

- Figure 3.2: Setting up symmetry constraints to be used in a refinement. - -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.2 Calculating PDF from a structure

- - -

- There is often a need for obtaining a calculated PDF profile for a given - structure instead of performing a fit. In order to carry out a - calculation, an underlying structure needs to be specified. This can - either be loaded from a file or generated from scratch. Suppose that we - have a Ni structure populating a fit tree using steps described in either - Creating a simple fit using a preexisting structure file - or in - Building structure model using crystal symmetry, and that we would like to calculate Ni PDF using neutron radiation. - Highlight the Ni structure on fit tree. Either right-click and select - Insert Calculation or select New Calculation from - “Calculation” menu. The current action panel will display - information very similar to that when a data set is loaded, as shown in - Figure 3.3. -

-
- - images/fig3-03 -
-

- Figure 3.3: An example of the calculation configuration panel. - -

-

- Now specify conditions to be used for the calculation, such as radiation - type, calculation range and corresponding r-grid size, as well as - instrument resolution and maximum momentum transfer parameters. For the - later two, the default values of parameters could be used, or values could - be specified that closely mimic the experimental conditions on some - particular instrument of interest. After the conditions are set, the gear - icon on the tool bar can be used to execute the calculation (or - alternatively select Run Selected Calculation from the - “Calculations” menu). For our exercise, select - Neutron scatterer type. To mimic the experimental data used earlier - in the tutorial, select for example 0.01 for the r-grid size, and - use 0.08 and 25.0 for resolution and maximum momentum transfer parameters - respectively. Execute the calculation and observe the result by clicking - on the quick plot icon on the tool bar. To export the calculated PDF, use - the Export Selected Calculation choice on the - “Calculations” menu. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.3 Sequential fitting

- - -

- In many practical situations there is a need to set a series of - refinements that are linked in a sequence. In what follows we will - describe multi-stage fitting capabilities of PDFgui, followed by - description of three pre-made macros that implement sequential fitting: - fitting of r-series on a single data set, temperature series on a - set of data corresponding to various temperatures, and a doping series on - a set of data corresponding to samples whose chemical content changes in - some systematic way. These macros can be accessed from the menu bar, - “Fits” menu, Macros selection on the drop-down menu. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.3.1 Multistage fitting

- - -

- Here we describe how to string together several fits. To begin, create a - fit as explained earlier. We assume this fit is named “Fit 1”. - The next step is to copy the fit. This is achieved by right-clicking on - the fit node in the the fit tree, and selecting “Copy” option - from the pop-up menu. Once this is done, the fit can be pasted by - selecting either “Paste Fit” or “Paste Linked Fit” - from the pop-up menu. We will link the fits manually for the sake of - instruction, so select “Paste Fit”. (“Paste Linked - Fit” will do all of what follows automatically.) Selecting - “Paste Fit” will create “Fit 1_copy”, a copy of - “Fit 1” in the fit, which has the. The next step is to link - the fits. Select the new fit node on the fit tree. All aspects of the fit - are duplicated in the new fit, but so far are not associated with the - original fit. -

-

- In the “Parameters” panel, select the entire - “Initial” column. Type “=Fit 1” and then press - “Enter”. The “Initial” values of the parameters - should now read “=Fit 1:n”, where n is the index of the - parameter. This brings us to the linking syntax. A parameter in this fit - can be linked to any other parameter in any other fit with - “=name:index” syntax. Here, “name” is the name of - another fit to which the link is made, and “index” is the - index of a parameter in that fit. If “:index” is omitted, it - will default to the index of the parameter one is linking from. A linked - parameter uses the refined value of the link as its initial value, - or the initial value if the linked parameter is not yet refined. An - example of this is shown in Figure 3.4. -

-
- - images/fig3-04 -
-

- Figure 3.4: An example of linked fits. The output of a converged fit - will be fed into the succeeding fit in the sequence as an input. - -

-

- Now that we have a linked fit, we can change it in some aspect. We could - delete and replace the data set or phase, or we could or we can add - parameter to see if we can improve the fit, without modifying the - configuration of the original fit. Here we will add additional parameters - to improve the fit. If our Ni example was used and copied in this - exercise, one can select Ni.stru phase of “Fit 1_copy” - and introduce parameter delta2 by inserting “@5” in the - appropriate box of the “Constraints” tab of that phase. This - is a quadratic atomic correlation factor, a parameter related to the - correlated motion of atoms, and as such should help in sharpening up the - nearest neighbor PDF peak in the model PDF profile. Highlight the fits on - the fit tree by holding down “Ctrl” on the keyboard while - selecting each in sequence. Alternately, select a single fit and hit - “Ctrl”+“Shift”+“A” simultaneously on - the keyboard. Once the fits are selected, run them by pressing the - “gear” icon in the tool bar. Only the highlighted fits will be - executed. The fitting will proceed in stages, so the first fit is executed - first, and, after it is converged, the second one. After the fitting of - the sequence is over, you may plot the results in the same window by - selecting both data set nodes. Change the offset in the plotting window to - 0 and plot Gcalc versus r. Notable is a sharper nearest - neighbor PDF peak in the second fit, improving the fit to the Ni data - compared to the “Fit 1” achievement. -

-

- We note here that there is also a linear atomic correlation factor - delta1. This one is appropriate to use in cases of high - temperature, while delta2 is more appropriate for the case of low - temperatures. An alternative way to include the correlated motion effects - on PDF is to introduce sratio parameter that defines low-r - to high-r PDF peak ratio, and rcut limit needs to be - specified that defines a cutoff distance. The two approaches of accounting - for correlated motion should not be used simultaneously. See the - PDFgui publication and references therein for a more thorough description - of these parameters. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.3.2 Sequential fitting of incremental r-series

- - - -

- In certain modeling situations the user could benefit from fitting a data - set through a series of refinements that differ one from another by the - corresponding fitting ranges. This could either be a case when upper - r-limit is to be changed incrementally, or when a fixed width - r-window is to be defined for a box-car fitting approach. An - example of this when one wants to study the details of the local- to - average-structure crossover in a complex material. PDFgui has a - pre-written macro that automates the setup of this type of refinement. We - will illustrate these capabilities through a simple Ni example. -

-

- Generate a complete fit, including a phase and a dataset, as explained in - Creating a simple fit using a preexisting structure file. Select the fit from the fit tree. From the “Fits” menu, - select Macros, and choose “r-Series” option. The - Current Action panel will display simple setting requirements, arranged in - two rows of three dialog boxes each, that need to be filled with values to - be specified by the user. An example of this is shown in Figure - Figure 3.5. -

-

- The first row deals with the increment setup of the upper r of the - refinements. User should specify the first and the last fit maximum - r-value, and corresponding step (increment), all in units of - Angstroms. In the second row information is needed to specify the lower - r refinement limit. Again, the user sets the first and the last - value, and step. This allows for a box car of either fixed or variable - width to be defined. If the second row is left blank, the corresponding - refinement series will be with incremental maximum r only, and - fixed lower limit. For the purpose of this exercise lets perform - incremental fitting of Ni-data with 4 steps total, and fixed lower limit. - To achieve this, type 5 for the first upper limit, 20 for the last upper - limit, and the step of 5 Angstroms. Leave the second row blank. Once this - is done, make sure that the Ni fit, which in this situation serves as a - template, is highlighted in the fit tree, and then click “OK” - in the current action panel. This will generate 4 new fits below the - original fit, and these four fits will constitute your series, with - desired incremental limits. Select all four of them and execute the - refinement. Once the sequence is done, you can review the results using - the plot control. -

-
- - images/fig3-05 -
-

- Figure 3.5: Appearance of the setup panel for specifying an incremental - r-series fit conditions. - -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.3.3 Sequential fitting of temperature series

- - - -

- Frequently, one must handle a large number of data sets originating from a - single sample collected at various temperatures. One of the common - modeling schemes in such cases is to perform sequential fitting of such - data series, which is known to yield well behaved modeling parameters. - PDFgui has a pre-written macro that allows for this modeling situation to - be accommodated. -

-

- We will describe the procedure using an example of a temperature series of - data collected on LaMnO3 at various temperatures from 300 K to 1150 K at - NPDF instrument at LANSCE at Los Alamos National Laboratory. This material - exhibits Jahn-Teller (JT) order-disorder phase transition just above 700 - K, where the long range orbital order is lost at high temperature, but the - local JT distortion survives. The formal space group does not change at - this transition. -

-

- To begin, from the “File” menu use - Open Project selection to open lmo-template.dpp project from - the tutorial directory. This project consists of a fit called - lmo-pbnm , which will serve as a template and which contains - Pbnm phase of LaMnO3 and a 300 K data set. The fit refinement is - set up to cover 1.7-19.5 Angstroms range, and all the parameter values are - set to their converged values for this temperature. The fit setup uses - isotropic ADPs for all atomic sites. In the same directory data - corresponding to various temperatures exist, in particular 300K.gr, - 550K.gr, 650K.gr, 700K.gr, 720K.gr, - 730K.gr, 740K.gr, 750K.gr, 800K.gr, - 880K.gr, 980K.gr, 1050K.gr, 1100K.gr, and - 1150K.gr. We will establish a T-series fit sequence. Select - Macros - from the “Fit” menu on the menu bar, and choose - “Temperature Series”. The current action panel will reflect - the selection. A tool is provided that allows for data sets to be added. - Click on “Add” button. Using “Shift” and - mouse-select operation you should select all the data sets mentioned in - the above list, except the 300 K one, as this is already in the template - fit, and then press “Open”. All the data sets will be loaded. - Since the files contain meta-data, as mentioned earlier, the GUI is going - to pick up temperature information from the files. User should verify that - the information is correct. The data can be ordered by temperature by - clicking the “Temperature” header. -

-
- - images/fig3-06 -
-

- Figure 3.6: Setting up a T-series sequential refinement for LaMnO3. - Ordering by temperature will ensure that the fits are linked correctly. - -

-

- Order the data by temperature (Figure 3.6), as - otherwise the series of fits that is to be automatically generated in the - next step will be linked in an arbitrary way in which the data were - loaded, rather than to reflect the scientific logic. There should be 13 - data sets. Next, ensure that the template fit is selected on the fit tree. - If this is the case, the “OK” button becomes clickable. - Clicking on the “OK” button will generate a sequence of linked - fits in the fit tree in the order of the temperature increase. Each fit is - linked to the previous, except for the template fit for the 300 K data. - Highlight all the fits in the fit tree to start the sequential refinement - of the T-series. The results can then be displayed in Fit Control such - that various converged fit parameters are plotted versus temperature. -

-

- In terms of the science behind the LaMnO3 example, it is interesting to - plot isotropic ADP of the oxygen at general position. Select all the - phases on the fit tree by selecting one and then hitting the - “Control”, “Shift” and “A” keys on - your keyboard simultaneously. This will select all the phases at once. On - the plot control choose the temperature for x axis, and select the - Uiso of O2 (for example atom 20) for the y axis. Clicking - “Plot” will display the plot of Uiso(20) vs T. -

-
- - images/fig3-07 -
-

- Figure 3.7: Displaying the refinement results as a function of external - parameter: T-series refinement of LaMnO3, example of isotropic ADP of - oxygen atom on general position in Pbnm setting. Notable are the - offsets just above 700 K (Jahn-Teller transition), and at around 1000 K - when sample converts from orthorhombic to rhombohedral symmetry. - -

-

- Despite quite high temperatures, an onset of the static offset above the - transition temperature is clearly marked by this parameter, as apparent in - Figure 3.7. Curious user could repeat the same - T-series refinement restricting the refinement range upper limit to say - 5-6 Angstroms and observe the outcome. The refinement sequence execution - should be very quick in this case. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.3.4 Sequential fitting of doping series

- - - -

- Fitting a series of PDF data that correspond to a set of samples with - related chemistry, such as various doping series, represents another - important sequential modeling aspect that is supported in PDFgui. -

-

- We will describe the procedure using an example of a series of data - collected on LaMnO3 and series of Ca-doped LaMnO3 samples with various Ca - content from 0 to 0.28 at GEM instrument at ISIS, UK. To begin, from the - “File” menu use Open Project selection to open - lcmo-template.dpp project from the tutorial directory, which has an - initial setup for this exercise. Note the letter c in the file - name, in contrast to the name used in the previous example. This project - consists of a fit called lcmo-pbnm, which will serve as a template - and which contains Pbnm phase of LaMnO3 and a 10 K data set, - x000t010q35.gr. The difference here with respect to the template - used in the previous example is that Ca sites are introduced in the - structure, but are assigned zero occupancy. However, existence of the Ca - dopant species in the structure of the template is essential for the macro - to operate. Also, upper limit used in Fourier transform for obtaining this - set of data is 35 inverse Angstroms, in contrast to 32 inverse Angstroms - in previous example. Since different instrument was used, the value of - Qdamp is different than in previous example. -

-
- - images/fig3-08 -
-

- Figure 3.8: After loading of the Ca-doping data series of LaMnO3 - system, proper doping assignment needs to be carried out, as the doping - levels introspected from the file names in this example incorrectly - reflect the scientific situation. Note that dopant atom has to be - present in the template seed used to generate the linked sequence of - fits. - -

-

- In the same directory data corresponding to various Ca contents exist, - collected at 10 K temperature, in particular x004t010q35.gr, - x012t010q35.gr, x016t010q35.gr, x020t010q35.gr, - x024t010q35.gr, and x028t010q35.gr. It should be noted at - this point that the data files do not contain any relevant meta-data in - the file headers. However, the doping level is somehow encrypted into the - file names. We will establish a doping series fit sequence. Select - Macros from the “Fit” menu on the menu bar, and choose - “Doping Series”. The current action panel will reflect the - selection. The base element and dopant need to be specified. A tool is - provided that allows for data sets to be added. Click on “Add” - button. Using “Shift” and mouse-select operation you should - select all the data sets mentioned in the above list, and then press - “Open” button. All the data sets will be loaded. The GUI will - introspect both the file names and files themselves in attempt to obtain - the doping (or in previous example temperature) information. Since the - files do not contain meta-data, as mentioned earlier, the GUI is going to - pick up doping information from the file names. The user should verify - that the information is correct. In this particular case the doping - information will not be correctly picked up, as for example 004 from the - name is meant to be 0.04 doping, and the GUI would try to interpret it as - 4.0 doping. Similarly 028 would be interpreted as 28.0, while it was - intended to mean 0.28 doping. These values should be edited and fixed - manually by clicking on the corresponding values and simply typing in the - correct values (Figure Figure 3.8). The data - can be ordered by doping by clicking the header. After you are done with - editing, order the data by doping, as otherwise the series of fits that is - to be automatically generated in the next step will be linked in an - arbitrary way in which the data were loaded, rather than to reflect the - scientific logic. There should be 6 data sets (with the initial x=0.0 data - set there will be 7 chained fits total after this setup is done). Next, - ensure that the template fit is selected on the fit tree. If this is the - case, the “OK” button becomes clickable. Clicking on the - “OK” button will generate a sequence of linked fits in the fit - tree in the order of the Ca content increase. Highlight all the fits in - the fit tree to start the sequential refinement of the doping series. -

-
- - images/fig3-09 -
-

- Figure 3.9: Sequence of refined parameters, such as lattice constants, - can be plotted vs doping using PDFgui plotting facilities. Figure - features lattice parameter b in Pbnm space group setting - for series of Ca-doped LaMnO3 samples for doping concentrations between - 0 and 0.28 at 10 K temperature. - -

-

- After the convergence is achieved for all the fits in the fit tree, the - results can be displayed graphically such that various converged fit - parameters are plotted versus Ca content. An example is provided in Figure - Figure 3.9 - featuring one of the lattice parameters. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

- 3.3.5 Advanced post-processing of sequential refinement -

- - - - -

- While PDFgui allows to collate data from a series of sequential - refinements, there are many data query options that are not possible or - very tedious with a GUI. A particularly tedious task would be to extract - bond lengths for every temperature refined in a large series. The GUI - could supply menus for these tasks, but there are just too many options to - serve them all. In fact, the GUI just does not seem to be suitable - interface and things are much easier and more flexible to accomplish with - Python scripts. -

-

- The idea is to setup and run sequential refinement with PDFgui, but to do - complicated data extractions with simple Python scripts. The PDFgui - installation includes a ‘tui’ (Text User - Interface) module that allows simple access to the data in a PDFgui - project. -

-

- As a first example, let us assume that a converged sequential refinement - from - Sequential fitting of temperature series - has been saved under the same name as lmo-template.ddp. The - following Python script extracts temperatures and refined values of the - lattice parameter c -

-
-
-# python script
-from diffpy.pdfgui import tui             # import the tui library
-prj = tui.LoadProject('lmo-template.ddp') # read PDFgui project file
-temperatures = prj.getTemperatures()      # list of temperature values
-phases = prj.getPhases()                  # list of phase objects
-tcount = len(temperatures)                # number of temperature points
-
-for i in range(tcount):
-    Ti = temperatures[i]
-    # get the refined lattice parameter c
-    ci = phases[i].refined.lattice.c
-    print(Ti, ci)
-
-
- -

- Save the example above to a file, say “lmo_refined_c.py” and - run it as -

-
-
-python lmo_refined_c.py
-
-
-

- Note that the script cannot load the unmodified - lmo-template.ddp file, because it does not have any refinement - results. -

- -

- The tutorial directory contains an advanced script - “tui_mno_bond_lengths.py”, which extracts the shortest Mn-O - bond lengths from the same PDFgui project. Please, see the comments in the - script for detailed explanation. -

-

- To learn more about the tui module and about the objects and functions - that it returns, please see the API documentation for diffpy.pdfgui at - https://diffpy.github.io/diffpy.pdfgui. -

-

- Feel free to ask at the - diffpy-users - group if you need help with data extracting scripts. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

3.4 Nanoparticle structure

- - - -

- Determining the structure of a nanoparticle is notoriously difficult. - Diffraction experiments on nanoparticle samples yield broad diffraction - patterns that are hard to analyze using conventional crystallographic - approaches. The PDF analysis of nanoparticles is becoming increasingly - common. The PDF of a nanoparticle features sharp peaks conveying - structural information. The PDF signal gets damped at higher distances due - to the diminished number of pairs in the nanoparticle structure that - contribute to those distances. For certain simpler cases when - nanoparticles can be assumed to have spherical shape, characteristic - parameters such as nanoparticle diameter can be obtained. -

-

- PDFgui is capable of modeling the effect of the finite nanoparticle size - using a spherical shape factor. Relevant PDF parameter is - spdiameter which is the diameter of the nanoparticle. This - parameter is highly correlated with various other parameters one would - like to refine, such as anisotropic ADPs, scale factors, correlated motion - parameters and so on. The refinement procedure is therefore rather - delicate and the solutions are not as robust as we are used to in cases of - crystalline materials. -

-

- To illustrate the program capabilities we present a case of CdSe - nanoparticle approximately 3nm in size. It useful to have PDF data for a - crystalline reference, where available/applicable. In this exercise we - start from a prepared project file CdSe-nano.ddp. This project - contains two fits: the first one is a bulk CdSe reference, and the other - pertains to the CdSe nanoparticle. For consistency the PDFs of both bulk - and nano samples were obtained using Qmax of 14 inverse Angstroms, - although the bulk material PDF could have been processed using a higher - value. Synchrotron x-ray radiation was used to obtain the data at 300 K, - based on an experiment carried out at 6-ID-D at the Advanced Photon Source - at Argonne National Laboratory. The structure used for both data sets is - wurtzite, space group P63mc. From calibrations on Ni standard - Qdamp value of 0.0486 was obtained and is used here. -

-

- We first carry out a refinement on the bulk reference. This is carried out - over a range from 1.7 to 19.8 Angstroms, using 7 parameters: lattice - parameters a and c (@1 and @2 respectively), - selenium z fractional coordinate (@11), isotropic ADPs for - Cd and Se (@21 and @23 respectively), the data scale factor - (@100), and finally correlated motion related quadratic term - coefficient delta2 (@200). The converged fit results in - parameter values that can be further used for reference when modeling the - nanoparticle data. We note that while the fit is reasonable, the values of - the isotropic ADPs are enlarged. The fit can be further improved if - anisotropic ADPs are introduced, although the z-direction related - components will remain enlarged due to the stacking disorder present in - the structure. The referent value of 5.69 for delta2 will be used - as a starting value for the nanoparticle fit. -

-

- In the nanoparticle refinement we will use the same starting values for - all the parameters, except for delta2 and the nanoparticle - diameter, spdiameter. The former is set to 5.69, and the later to - 25 Angstroms. In other cases an approximate value of the spherical - nanoparticle size is usually known, and it is the best to start from a - reasonably good guess. Refining the nanoparticle data reveals nanoparticle - diameter of approximately 30 Angstroms, as further illustrated in - Figure 3.10. Enlarged values of isotropic ADPs - are again observed, and the fit is reasonably good. Further improvements - can be obtained by introducing anisotropic ADPs, where again values - related to the z-direction will remain abnormally large most probably due - to the stacking related disorder. A detailed description of this system - and successful PDF modeling can be found in this publication: - Quantitative size-dependent structure and strain determination of CdSe - nanoparticles using atomic pair distribution function analysis. -

-
- - images/fig3-10 -
-

- Figure 3.10: Fitting the structure of a nanoparticle: 3nm CdSe - nanoparticle example. - -

-

- In general, a successful fitting scenario depends on particular details of - a structural problem one is determined to solve. The problem of - determining the structure of a nanoparticle remains difficult. PDFgui is - not intended to necessarily provide the solution, it is rather a - helpful tool in the process of determining new details and exploring the - space of possible solution candidates, yielding success in some instances. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

4 Extras

- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

4.1 PDF plotting

- - -

- Plotting capabilities of PDFgui are provided through the plot control - panel and the quick-plot icon on the tool bar. A quick-plot is created by - selecting a node in the fit tree and then clicking the quick-plot icon in - the tool bar. The same quick-plot can be created by middle-clicking on a - node in the fit tree. -

-

- The plot control allows for selection of x and y coordinates - for plotting. The actual quantities that could be assigned to the - coordinates is determined by selection of either Fit, or Phase, or Data on - the fit tree. The choices for x and y coordinates varies - depending on what is selected on the fit tree. Special options like index, - temperature and doping are available as choices for x in cases of - plotting multiple fit results from sequential fitting protocols. The plot - window provides essential functionality such as zoom, pan, cursor - coordinate tracking, and shifts. Features such as saving, exporting and - printing are also available. The principal intent of the plotting - functionality is to allow quick access to the fitting results to enhance - the scientific process. If data is selected on the fit tree, the user can - plot various aspects of the PDF function, such as data, model and - difference PDF profiles as a function of inter-atomic distance r. - If the fit or the phase are selected, then various parameters, both - structural and internal can be plotted instead. Since several formal - plotting examples were given through the tutorial exercise, and having - simplicity of usage in mind, no other plotting examples are provided, - hoping that the usage is sufficiently simple for users to master - individually with ease. An example plot of Rw vs refinement step is shown - in Figure 4.1 for Ni example. -

- -
- - images/fig4-01 -
-

- Figure 4.1: Plotting window featuring Rw vs refinement step for Ni - example. The basic functionality for manipulating the plot is provided - through icons on the tool bar of the plotting window. - -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

4.2 Displaying the structure

- - - -

- For those users with a structural visualizer available in their system - configuration, PDFgui allows for initial or refined structures to be - visualized by passing required structural information that program. This - is achieved by highlighting a desired phase on the fit tree, and then - selecting Plot Initial Structure or - Plot Refined Structure from the “Phases” drop-down - menu. The quick-plot button (or middle-click) will also invoke the - structure viewer with the refined structure, or initial structure if the - refined structure does not yet exist. The control of the visualization is - dependent on the viewer used. The viewer can set under the - “Edit->Preferences” menu, see full details in - Configuration of structure viewer. -

- -

- An example Ni structure visualization with AtomEye is shown in - Figure 4.2. -

-
- - images/fig4-02 -
-

- Figure 4.2: Using AtomEye functionality (if installed on your system) - for 3D visualization of the initial and refined PDF structures: example - of Ni structure. - -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

4.3 Advanced usage and special needs

- - - -

- The PDFgui is designed to accommodate most common modeling situations. - However, it does not encapsulate all the capabilities available within the - modeling engine, such as calculation of differential PDFs, handling atoms - with special scattering properties, etc. Advanced usage of PDFfit2 engine - to resolve any such special modeling need that user may have is available - through usage of Python scripts in the expert command line mode, similar - to that featured in the PDFFIT program. Handling these situations requires - detailed knowledge of the PDFfit2 syntax based on Python, which is beyond - the scope of this user guide and will be described elsewhere. Refer to the - PDFfit2 API (https://www.diffpy.org/doc/pdffit2 - and the diffpy-users group (https://groups.google.com/d/forum/diffpy-users) for help with PDFfit2 scripting. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

5 PDFgui reference sheets

- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

5.1 PDFgui shortcut keys

- - - - -

Fit tree

-
-
Ctrl+A
-

Select all items in the fit tree.

-
Ctrl+Shift+A
-
-

- Once an object is selected on the fit tree, using this shortcut key - will select all the objects on the tree that are of the same type. For - example, if a single data set is selected on the tree, hitting this - hot key will make all the data sets belonging to all the fits in the - tree to become selected. This is particularly useful for - simultaneously plotting various fit results across the fit tree. -

-
-
Ctrl+C
-

Copy selected item.

-
Ctrl+X
-

Copy and delete selected item.

-
Ctrl+V
-
-

- Paste previously copied item. Note that this will only paste the item - to a legal position in the tree. For example, a phase node cannot be - pasted into an empty tree. -

-
-
- -

Phase configuration grid

-
-
Ctrl+A
-

Select all items.

-
/
-

Extend existing selection by atom types or indices.

-
Delete
-

Delete row. This will delete any wholly selected row.

-
Ctrl++
-

Add an atom to the grid.

-
Ctrl+-
-

Same as Delete.

-
- -

Phase constraints grid

-
-
Ctrl+A
-

Select all items.

-
/
-

Extend existing selection by atom types or indices.

-
Delete
-

Delete contents of selected cells.

-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

5.2 Command line arguments

- - - - -

- PDFgui can be started with an existing project file if it is given as a - command line argument. If the project file cannot be loaded, the program - terminates without starting the GUI an returns nonzero exit code. In - addition the pdfgui executable accepts the following command - line options: -

-
-
-h, --help
-

Show a brief usage information.

-
-V, --version
-

Show program version.

-
- -

Debugging

-
-
--db-noed
-
-

- Disable exception catching to error report dialog. Unhandled - exceptions should then result in program crash. -

-
-
--db-nocf
-
-

No confirmation - exit without asking to save modified project.

-
-
--db-pdb
-
-

- Start Python debugger for unhandled error exceptions instead of - showing the error report dialog. -

-
-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ - > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

5.3 List of PDFfit2 variables

- - - -

- The following is the list of PDFfit2 variables, including their default - values in parentheses, and a brief description and a note, where - appropriate. Note that some of the variables used in PDFFIT are renamed in - PDFfit2. The reference of these changes is provided for the convenience - and orientation of those users that are used to the old naming scheme. -

- - - - - - - - - - - - - - - - - - - - -

New variables

- -
-
Phase: spdiameter
-
-

- (float Å, default 0 Å)
- spdiameter is a particle diameter for PDF shape damping - function. Shape damping is not applied when - spdiameter equals zero. -

-
-
- -
-
Phase: stepcut
-
-

- (float Å, default 0 Å)
- The PDF is truncated to zero at r-values greater than - stepcut, when positive. -

-
-
- -
-
- Phase: anisotropy(n) -
-
-

- anisotropy(n) (bool, inferred from uij(n) values) -
- Flag for anisotropic thermal displacements of atom n. Setting of - anisotropy(n) updates the uij(n) or - uisoequiv(n) values. -

-
-
- -
-
- Phase: uisoequiv(n) -
-
-

- (float Å^2, calculated from uij(n) values) -
- Isotropic thermal displacement of atom n or equivalent displacement - for anisotropic atom. For anisotropic sites the setting of - uisoequiv(n) scales values of the - uij(n) elements. uisoequiv(n) can be constrained - only for isotropic atoms. -

-
-
- - - -

Renamed variables

- -
-
Dataset: dscale
-
-

- (float unitless, dsca[s] in PDFFIT)
- Scale factor for the selected dataset. -

-
-
- -
-
Dataset: qdamp
-
-

- (float Å^-1, default 0 Å^-1, - qsig in PDFFIT)
- PDF Gaussian dampening envelope due to limited Q-resolution. Not - applied when equal to zero. The Gaussian envelope is of the form -

-

- images/eq-01.png -

-
-
- -
-
Dataset: qbroad
-
-

- (float Å^-1, default 0 Å^-1, - qalp in PDFFIT)
- PDF peak broadening from increased intensity noise at high Q. Not - applied when equal zero. See the definition of the - PDF peak width for a detailed - explanation. -

-
-
- -
-
Phase: uij(n)
-
-

- (float Å^2, ij=(11, 22, 33, 12, 13, 23), - u[i,n] in PDFFIT)
- Elements of anisotropic displacement tensor of atom n. -

-
-
- -
-
Phase: occ(n)
-
-

- (float unitless, o[n] in PDFFIT)
- Occupancy of site n. -

-
-
- -
-
Phase: pscale
-
-

- (float unitless, csca[p] in PDFFIT)
- Scale factor of the current phase. -

-
-
- -
-
Phase: delta1
-
-

- (float Å, default 0 Å, gamm in PDFFIT)
- Coefficient for (1/r) contribution to the peak sharpening. See the - definition of the PDF peak width for a - detailed explanation. -

-
-
- -
-
Phase: delta2
-
-

- (float Å^2, default 0 Å^2, - delt in PDFFIT)
- Coefficient for 1/r^2 contribution to the peak sharpening. - See the definition of the - PDF peak width for a detailed - explanation. -

-
-
- -
-
Phase: sratio
-
-

- (float unitless, default 1, srat in PDFFIT)
- Sigma ratio for bonded atoms. Reduction factor for PDF peak width - accounting for correlated motion of bonded atoms. -

-
-
- - - -

Preserved variables

- -
-
Dataset: qmax
-
-

- (float Å^-1, default 0 Å)
- qmax cutoff is an experimental parameter having fixed value - determined during the PDF data processing in the Fourier transform - step. Finite data range used in the Fourier transform is a source of - termination ripples. Termination ripples are not applied in PDF - calculation when qmax is set to zero. The effect is - simulated using fast Fourier transformation (FFT). The original array - of G values is first padded by the same number of zeros and - then by more zeros to reach the next power of 2. The padded - G array is transformed by FFT and any coefficients - F that correspond to Q values greater than - qmax are reset to zero. The adjusted coefficient array - F is then transformed by inverse FFT back to - G’ and cut out at the original length of G. The - imaginary components in G’ are ignored as they are only - due to round-off errors. -

-
-
- -
-
Phase: lat(i)
-
-

- (float Å or degrees, i=1,2,...,6)
- Lattice parameters a, b, c, alpha, beta, gamma of the current phase. - Can be also used as lat(’a’) etc. -

-
-
- -
-
- Phase: x(n), y(n), z(n) -
-
-

- (float unitless)
- Fractional coordinates for atom n. -

-
-
- -
-
Phase: rcut
-
-

- (float Å, default 0 Å)
- Radius cutoff for applying sratio sharpening factor. -

-
-
- -
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - - [ > ] - - [ >> ] -      - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

5.4 PDF peak width

- -

- The PDF peak width contains contributions from thermal and zero point - displacements as well as static disorder. For large distances r the - motion of the two contributing atoms is uncorrelated. For small distances, - however, the motion can be strongly correlated leading to a sharpening of - the first peak(s) in the observed PDF. PDFfit2 provides three different - correction terms for the PDF peak width. The final width is given by -

-

images/eq-02.png

-

- Here the primed sigma is the peak width without correlation, which is - computed from the anisotropic displacement parameters. The first two terms - correct for the effects of correlated motion. Within the scope of the - users guide, we just mention that the term - delta2/r^2 describes the low temperature behavior, and - term delta1/r describes the high temperature case. Since the - two parameters are highly correlated, one will in practice choose which - one to refine. The last term in the equation models the PDF peak - broadening as a result of the Q resolution of the diffractometer. In many - cases this term will only be significant for refinements over wider - r-ranges. Note that the Q resolution also results in an exponential - dampening of the PDF peaks which is modeled using the parameter - qdamp. -

-
- - - - - - - - - - - - - - - - - -
- [ - << ] - - [ - < ] - - [ Up ] - [ > ][ >> ]     - [Top] - - [Contents] - - [Index] - - [ ? ] -
- -

Index

- - - - - - -
Jump to:   - A -   - C -   - D -   - E -   - F -   - G -   - H -   - I -   - M -   - N -   - P -   - Q -   - R -   - S -   - T -   - U -   - V -   - W -   -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Index Entry Section

A
- acknowledgments -  Acknowledgments
advanced usage  - 4.3 Advanced usage and special needs -
AtomEye viewer  - 1.4.2 Configuration of structure viewer -
availability 1.3 Availability

C
- calculating PDF -   - 3.2 Calculating PDF from a structure -
- command line options -   - 5.2 Command line arguments -
Community 1.6 Community
copyright Acknowledgments
- create new structure -   - 3.1 Building structure model using crystal symmetry -

D
- data extraction -   - 3.3.5 Advanced post-processing of sequential refinement -
development  - 1.4.3 Installation from sources -
- displaying the structure -   - 4.2 Displaying the structure -
doping series  - 3.3.4 Sequential fitting of doping series -

E
examples  - 3 Examples and tutorials -
extras 4 Extras

F
- fit configuration -   - 2.2 Creating a simple fit using a preexisting structure file -

G
Git repository  - 1.4.3 Installation from sources -

H
hot keys  - 5.1 PDFgui shortcut keys -

I
installation 1.4 Installation
introduction 1 Introduction
isotope Footnotes

M
mail-list 1.6 Community
- multistage fitting -   - 3.3.1 Multistage fitting -

N
- nanoparticle diameter -   - 3.4 Nanoparticle structure -
- nanoparticle structure -   - 3.4 Nanoparticle structure -

P
PDF plotting 4.1 PDF plotting
PDFfit2 1.1 PDFfit2
- PDFfit2 variables -   - 5.3 List of PDFfit2 variables -
PDFgui 1.2 PDFgui
- pdfgui arguments -   - 5.2 Command line arguments -
PDFgui layout 2.1 PDFgui layout
- PDFgui reference sheets -   - 5 PDFgui reference sheets -
- PDFgui shortcut keys -   - 5.1 PDFgui shortcut keys -
- project post-processing -   - 3.3.5 Advanced post-processing of sequential refinement -

Q
quick start 2 Quick start

R
r-series  - 3.3.2 Sequential fitting of incremental r-series -
- reference sheets -   - 5 PDFgui reference sheets -
- refinement configuration -   - 2.2 Creating a simple fit using a preexisting structure file -

S
- sequential fitting -   - 3.3 Sequential fitting -
- sequential fitting -   - 3.3.2 Sequential fitting of incremental r-series -
- sequential fitting -   - 3.3.3 Sequential fitting of temperature series -
- sequential fitting -   - 3.3.4 Sequential fitting of doping series -
shortcuts  - 5.1 PDFgui shortcut keys -
special needs  - 4.3 Advanced usage and special needs -
- startup options -   - 5.2 Command line arguments -
- structure visualization -   - 4.2 Displaying the structure -
- symmetry expansion -   - 3.1 Building structure model using crystal symmetry -

T
- temperature series -   - 3.3.3 Sequential fitting of temperature series -
tui scripts  - 3.3.5 Advanced post-processing of sequential refinement -
tutorials  - 3 Examples and tutorials -

U
user groups 1.6 Community

V
variables  - 5.3 List of PDFfit2 variables -
versions 1.5 What is new
- visualization setup -   - 1.4.2 Configuration of structure viewer -

W
whatisnew 1.5 What is new

- - - - - -
Jump to:   - A -   - C -   - D -   - E -   - F -   - G -   - H -   - I -   - M -   - N -   - P -   - Q -   - R -   - S -   - T -   - U -   - V -   - W -   -
- -
- - - - - - - - -
- [Top] - - [Contents] - - [Index] - - [ ? ] -
-

Footnotes

- -

(1)

- - -

- To enter a specific isotope, use the “NucleonNumber-Symbol” - syntax, for example “12-C”. Deuterium and tritium can be - entered also as “D” and “T” in addition to the - normal syntax “2-H” and “3-H”. -

-
- - - - - - - - -
- [Top] - - [Contents] - - [Index] - - [ ? ] -
-

Table of Contents

- -
- -
-
- - - - - - - - -
- [Top] - - [Contents] - - [Index] - - [ ? ] -
-

About This Document

- -

- This document was generated on April 25, 2023 using - texi2html 5.0. -

-

The buttons in the navigation panels have the following meaning:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ButtonNameGo toFrom 1.2.3 go to
[ << ]FastBackBeginning of this chapter or previous chapter1
[ < ]BackPrevious section in reading order1.2.2
[ Up ]UpUp section1.2
[ > ]ForwardNext section in reading order1.2.4
[ >> ]FastForwardNext chapter2
[Top]TopCover (top) of document 
[Contents]ContentsTable of contents 
[Index]IndexIndex 
[ ? ]AboutAbout (help) 
- -

- where the Example assumes that the current position is - at Subsubsection One-Two-Three of a document of the - following structure: -

- - - -
-

- - This document was generated on April 25, 2023 using - texi2html 5.0. - -
-

- - diff --git a/doc/manual/pdfgui.texinfo b/doc/manual/pdfgui.texinfo deleted file mode 100644 index 14bd3834..00000000 --- a/doc/manual/pdfgui.texinfo +++ /dev/null @@ -1,1946 +0,0 @@ -\input texinfo @c -*-texinfo-*- - -@documentencoding UTF-8 - -@ifnottex -@macro smallskip{} -@vskip 6pt -@end macro - -@macro medskip{} -@vskip 12pt -@end macro - -@macro bigskip{} -@vskip 24pt -@end macro -@end ifnottex - -@macro EquationMark{} -@html - -@end html -@end macro - -@macro ScreenShot{f} -@center @image{\f\, 5in} -@end macro - -@macro ReleaseDate{} -May 2023 -@end macro - -@exampleindent 2 - -@c start of header -@setfilename pdfgui -@settitle PDFgui user guide, release 2.0, @ReleaseDate{} -@c @setcontentsaftertitlepage -@c end of header - -@c Part 1: copying -@copying -Up to the release 1.1.2 (February 2017) the copyright was held by -the institutions that hosted the work as follows: -Copyright 2006-2007, Board of Trustees of Michigan State University, -Copyright 2008-2012, Board of Trustees of Columbia University in the -city of New York. -Copyright 2013, Brookhaven National Laboratory (Copyright holder -indicated in each source file). -@end copying - -@c Part 2: title -@titlepage - -@title PDFgui user guide -@subtitle 2.0 release -@subtitle @ReleaseDate{} -@author C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin, -@author J. Bloch, Th. Proffen, and S. J. L. Billinge - -@page -@vskip 0pt plus 1filll -@c @insertcopying - -@c HTML needs node to make index link, but PDF format does not like it. -@ifhtml -@node acknowledgments -@end ifhtml -@heading Acknowledgments -@cindex acknowledgments -@include acknowledgements.texinfo - - -@page -@vskip 0pt plus 1filll -@majorheading Preface -@heading Using PDFgui and PDFfit2 -@include redistribution.texinfo - - -@heading Disclaimer - -@include disclaimer.texinfo - -@end titlepage - - -@c Part 3: content -@contents - - -@c Make menu if html -@ifhtml - -@node Top -@top - - -@menu -* Introduction:: -* Quick start:: -* Examples and tutorials:: -* Extras:: -* PDFgui reference sheets:: -* Index:: -@end menu - -@end ifhtml - -@page -@vskip 0pt plus 1filll -@node Introduction, PDFfit2, Top -@chapter Introduction -@cindex introduction - -PDFgui is a graphical interface built on the PDFfit2 engine, which is a program -and programming library for real-space refinement of crystal structures based -on the atomic pair distribution function (PDF) method. PDFgui organizes fits -and simplifies many data analysis tasks, such as configuring and plotting -multiple fits. PDFfit2 is capable of fitting a theoretical three dimensional -structure to atomic pair distribution function data and is ideal for nanoscale -investigations. The fit system accounts for lattice constants, atomic positions -and anisotropic atomic displacement parameters, correlated atomic motion, and -experimental factors that may affect the data. The atomic positions and thermal -coefficients can be constrained to follow symmetry requirements of an arbitrary -space group. The PDFfit2 engine is written in C++ and accessible via Python, -allowing it to inter-operate with other Python programs. - - -@menu -* PDFfit2:: -* PDFgui:: -* Availability:: -* Installation:: -* What is new:: -* Community:: -@end menu - -@node PDFfit2, PDFgui, Introduction, Introduction -@section PDFfit2 -@cindex PDFfit2 - -PDFfit2 is a major upgrade to PDFfit, and inherits many of its -features. PDFfit is capable of fitting a theoretical three-dimensional -structure to an experimentally determined PDF. It can simultaneously -fit multiple structures, accounting for different structural phases -in a material. PDFfit has a constraint system that allows expressing -structure variables as simple functions of fitted parameters. PDFfit -structure variables include lattice constants, data and phase scale -factors, atomic site occupation, anisotropic atomic displacement -parameters (ADPs), and atomic vibrational correlations. PDFfit has a built-in -FORTRAN-style command language that understands simple FOR loops and -some built in arithmetic functions. - -The original PDFfit was written in FORTRAN-77, which imposes some -limitations on the program. For example, it uses fixed-size arrays -for internal storage. This precludes the analysis of structures with -large cells without modifying the code. Though the constraint system -is powerful, it requires that a constraint equation be accompanied -by its first derivative. This places the burden of determining the -derivatives on the user, which can introduce errors that lead to -instability in the convergence. Furthermore, the code is monolithic, -not easily extensible and hard to integrate with external programs. - -The primary focus of PDFfit2 development was to remedy the limitations of -PDFfit while extending its functionality. The old PDFfit engine has been -completely rewritten in C++, and many bugs have been fixed. The new engine -uses dynamic memory allocation so that the size of the structure or extent -of the fit-range of the PDF is limited only by the physical memory available. -The constraint system has also been upgraded. The program @i{automatically} -computes the analytical derivatives of the constraints that are required by -the minimization routine. This simplifies user input and reduces the -possibility of errors. In addition, new fitting parameters for handling -dynamic atomic correlations and experimental resolution have been introduced -as well. - -Instead of rewriting the PDFfit command interpreter, which is used -to define the fitting problem and to control and run the refinement, -its functions are carried out using the Python language -(@url{https://www.python.org}). Python is a powerful, cross-platform, -open-source interpreted programming language (i.e., it does not need -to be compiled to run, similar to scripting) that emphasizes -object-oriented and modular design. PDFfit2 scripts written in -Python syntax take the place of PDFfit macros and the Python -interpreter can handle everything that the old interpreter could, -and more. Using Python as an interpreter allows PDFfit2 to be -combined with and enhanced by other Python libraries. We make use -of this capability with PDFgui as described below. - - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node PDFgui, Availability, PDFfit2, Introduction -@section PDFgui -@cindex PDFgui - -The PDFfit2 engine can be used either directly from the Python command line, or -as part of larger and more complex software applications. The first application -built on PDFfit2 is PDFgui, a graphical environment for PDF fitting. - -@subsection Design principles - -PDFgui has been designed to provide users with an easy-to-use yet powerful -interface for fitting structure models to PDF data. It makes use of an -object-oriented architecture, which makes it highly extensible and -maintainable. This allows for powerful usability features such as real-time -plotting. PDFgui has been designed with multitasking in mind. It is -multi-threaded so that the work being done by the PDFfit2 engine does not -interfere with the tasks of the user interface. - -PDFgui is written in the Python programming language. Python features a relaxed -and friendly syntax, supports ``write once, run anywhere'' portability, and has -extensive libraries and modules for virtually every task. Software codes -written in a variety of programming languages can be bound into Python, which -allows them to be used together. Python is becoming a popular choice in the -scientific computation community. - -PDFgui's interface is built using wxPython (@url{https://www.wxpython.org}), the -Python package for wxWidgets, a mature cross-platform GUI library. Graphical -applications written in wxPython provide a look and feel native to the platform -on which they are run. PDFgui is designed to run on Windows, Mac OS, Linux, -and all major Unix systems. - -@subsection Capabilities - -PDFgui contains all of the functionality of PDFfit2 along with additional -enhancements for usability. Mundane tasks are handled by the program and -difficult tasks are made simple. PDFgui can manage multiple fits at once. Each -fit can have multiple experimental data sets and structure models. Fits in a -sequence can call upon other fits for their starting parameters, and configured -fits can be queued to run while the user is away. All the initial, final, and -intermediate data are stored in a platform independent project file that can be -loaded on any computer. All management tasks, such as fit creation, -configuration, modification, and visualization, can be done through the -graphical interface. - -PDFgui supports space group operations. Users can define an asymmetric unit -and let PDFgui expand it to a full cell with all symmetry related positions. -PDFgui can also generate symmetry constraints for atom positions and atomic -ADPs. Users just need to specify the space group, and the program will identify -equivalent sites and generate constraint equations for their coordinates and -temperature factors to keep the structure consistent with the symmetry -requirements. This can be done either for all atoms in the structure or for an -arbitrary subset - for example when it is known that only a certain species -show a local distortion. The code for space group definitions was provided by -the Python Macromolecular Library (mmLib, -@url{http://pymmlib.sourceforge.net}). This was extended to include -non-standard space groups using the Computational Crystallography Toolbox -(cctbx, @uref{https://cctbx.github.io}). PDFgui also supports supercell -expansion of a normal unit cell. - -PDFgui uses the matplotlib (@url{https://matplotlib.org}) Python -package for 2D plotting of data and results. Matplotlib has a friendly -interface so the user can quickly and easily view the results of a fitting. -PDFgui lets users plot data from a series of fits and plot it against selected -meta-data (temperature, doping, etc.), plot the results of several fits in the -same window, plot the PDF in real time as the fitting is running, plot the -parameters or variables in real time as the refinement evolves, and save plots -in common image formats or export the data to a text file. PDFgui can be -configured to use one of many structure visualization packages, such as AtomEye -(@url{http://li.mit.edu/A/Graphics/A/}) or PyMOL -(@url{https://www.pymol.org}). - -PDFgui supports built-in macros for advanced fits. For a set of experimental -data from one system at different temperatures or doping levels, PDFgui can -expand a template fit to a series of related fits. Another PDFgui macro makes -it easy to set up boxcar fits, where the same model is fit over different -r-ranges of the PDF data. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Availability, Installation, PDFgui, Introduction -@section Availability -@cindex availability - -PDFfit2 and PDFgui are open source and distributed under a BSD license. They -run on Windows, Mac OS, Linux, and all major Unix systems. The source code is -freely available. For more information please contact Professor Simon Billinge -(@email{sb2896@@columbia.edu}) or consult the web-page -@url{https://www.diffpy.org}. News of updates and releases will be posted at -this website and on the diffpy-users group at -@url{https://groups.google.com/d/forum/diffpy-users}. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Installation, What is new, Availability, Introduction -@section Installation -@cindex installation - -PDFgui is included as a part of DiffPy, a suite of Python and C++ -libraries for structure analysis from diffraction data. For more -information about DiffPy products visit the project homepage at -@url{https://www.diffpy.org}. - -@menu -* Installation for Anaconda Python:: -* Configuration of structure viewer:: -* Installation from sources:: -@end menu - -@node Installation for Anaconda Python -@subsection Installation for Anaconda Python - -As of version 1.1 PDFgui is distributed as a pre-built package for -@url{https://www.anaconda.com, Anaconda Python}. This method makes it -easier to distribute software updates and also results in the same -installation procedure on all supported platforms. - -To install PDFgui, download and install Anaconda for Python 2.7 from -@url{https://www.anaconda.com/download}. When ready open a terminal -application (or @i{Anaconda Command Prompt} on Windows) and use the -@command{conda} package manager to install PDFgui from the ``diffpy'' -channel of Anaconda packages - -@example -conda config --add channels diffpy -conda install diffpy.pdfgui -@end example - -The first command instructs Anaconda system to always check the -``diffpy'' channel for any new software. Such configuration -allows to obtain PDFgui updates using - -@example -conda update diffpy.pdfgui -@end example - -It is however not strictly necessary to make the ``diffpy'' -channel permanent. The same effect can be accomplished by adding the -@w{@option{--channel=diffpy}} option to either of -@w{@command{conda install}} or @w{@command{conda update}} commands. - -After installation is complete PDFgui can be started from a terminal by -entering @command{pdfgui} command or on Windows by using the DiffPy -start menu. PDFgui can be also started from the ``Launcher'' program -that is included with Anaconda. - -@node Configuration of structure viewer -@subsection Configuration of structure viewer -@cindex visualization setup - -PDFgui can visualize 3D structures by displaying them with an external -visualization program. The visualization program needs to -be specified together with a suitable structure format in the -``@w{Edit →} Preferences'' menu in PDFgui. The structure plotting -feature has been tested with the following programs: - -@table @emph -@item AtomEye -AtomEye structure viewer, XCFG format @* -@url{http://li.mit.edu/A/Graphics/A/} - -@item PyMOL -PyMOL structure viewer, PDB format @* -@url{https://www.pymol.org} -@end table - -@noindent -@b{A note for AtomEye users:} -@cindex AtomEye viewer - -AtomEye requires its standard output is connected to a terminal. -On Unix this happens when @command{pdfgui} is started from a terminal. -However if you prefer to start PDFgui using a desktop shortcut or via -``Run Application'' dialog of the window manager, you need to put the -following information to the ``Edit → Preferences'' menu of PDFgui. -@example -Structure viewer executable: xterm -Argument string: -iconic -e ATOMEYE %s -Structure format: xcfg -@end example -@noindent -In the above, ATOMEYE is the path to the ATOMEYE executable. - -For Cygwin users, -the workaround is to launch the executable from a batch file. -Batch files can only run in a command window on Windows and so -AtomEye's requirements would be for sure satisfied. -In addition the batch file can be used to adjust environment -variables: -@example -atomeye.bat ------------------------------------------------------------------------- -set DISPLAY=localhost:0 -set PATH=C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;C:\ATOMEYE_DIR;%PATH% -start A.exe %* ------------------------------------------------------------------------- -@end example - -@noindent -Here @t{ATOMEYE_DIR} needs to be replaced with a proper path. Make sure -that the X-server application included with Cygwin is started. - -@node Installation from sources -@subsection Installation from sources - -@cindex Git repository -@cindex development - -PDFgui sources are available in a public -@url{https://git-scm.com, Git} repository at -@url{https://github.com/diffpy/diffpy.pdfgui}. -Feel free to fork this project on GitHub and contribute. To -use the latest development version clone the Git repository -to your computer and install it in a development mode so that sources -are used directly rather than copied to a system location. It is also -recommended to uninstall the Anaconda package for PDFgui, so that -there is no confusion as to what version is the active one. -Here are the shell commands that would do it: - -@example -# Install PDFgui together with software dependencies. -conda install --channel=diffpy diffpy.pdfgui - -# Make room for the version from sources. Keep dependencies installed. -conda remove diffpy.pdfgui - -# Obtain a clone of the PDFgui Git repository. -git clone https://github.com/diffpy/diffpy.pdfgui.git - -# Install PDFgui sources in a development mode. -cd diffpy.pdfgui -python setup.py develop -@end example - -To verify that PDFgui is indeed loaded from the local source -repository run - -@example -python -m pydoc diffpy.pdfgui -@end example - -and check the path displayed in the FILE section. The application -integrity can be verified by executing all builtin tests using - -@example -python -m diffpy.pdfgui.tests.rundeps -@end example - -Use @command{git pull} to bring your source directory into sync -with the latest updates in the main repository. It is recommend -to afterwards do @command{`setup.py develop} again to refresh -the version metadata associated with the program: - -@example -git pull -python setup.py develop -@end example - -To revert PDFgui installation from the source-code installation -back to the pre-built Anaconda package do - -@example -pip uninstall diffpy.pdfgui -conda install --channel=diffpy diffpy.pdfgui -@end example - - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node What is new -@section What is new -@cindex versions -@cindex whatisnew - -@subheading Version 1.1, released March 2016 - -Improvements and modifications since the last major release -1.0-r3067 from April 2009. - -@table @emph - -@item Anaconda installer - -PDFgui is now distributed as a pre-built package for Anaconda Python. -The program is available for all platforms supported by Anaconda, i.e., -for 32 and 64-bit Linux, Mac OS X, and for 32 and 64-bit Windows. - -@item upgrade for recent GUI libraries - -Source codes were updated to work with WX GUI toolkit 2.9 or later. -Fixed blacked-out text fields on Mac OS X. Fixed missing toolbar -in plot-windows on Mac OS X. - -@item select atoms menu - -Added ``Select Atoms'' context menu to the Phase Configuration and Phase -Constraints panels. This selects atom rows by a range of indices -or by atom type. Added keyboard shortcut @kbd{/} for activating the -atom-selection dialog. - -@item small enhancements - -Fixed problems with @i{r}-grid interpolation near data boundaries. Allow -use of CIF-defined space groups for symmetry constraints. Use consistent -numbering for parameters created by symmetry constraints. Improved -export data tool in plot windows to group @i{y}-arrays that are on -the same @i{x} grid. Enhanced supercell expansion to also adjust -the coordinate constraints. - -@item project moved to GitHub - -PDFgui source repository was converted from subversion to a Git repository at -@url{https://github.com/diffpy/diffpy.pdfgui}. Project now uses Git tags -to define software release and version data. - -@item Unicode support - -Allow accented characters in project filenames and in folder paths -where located. Allow accented characters for naming the fit tree -items. Note that such projects are unlikely to work with older -versions of PDFgui. Fix failure to exit when there is some -uncaught error in the at-exit cleanup functions. - -@item PDFgui tests - -PDFgui installation now includes built-in tests. Added facility to -test PDFgui and all its DiffPy components. Implemented automated -testing and generation of test coverage reports when sources on -GitHub change. - -@item bug fixes -Quite a few. Consult the code history at -@url{https://github.com/diffpy/diffpy.pdfgui/commits}. - -@end table - -@subheading Version 1.0, released April 2009 - -This section describes improvements and modifications since the -last beta-release 1.0b.1792 from December 2007. - -@table @emph - -@item updates and installation -PDFgui can be installed or updated -with a simple run of the easy_install script. easy_install -checks our online code repository for any newer versions and takes -care of their download and installation. It can be also used to -add future DiffPy components as they become available. This should -work for Linux, Mac and Windows. - -@item Windows installer -The updated Windows package includes full installation of -Python 2.5 and script for code updates. PDFgui -can be installed under normal Python2.5 tree if it has the -easy_install script. - -@item particle shape correction stored with phase -The previous release of PDFgui had -spherical shape correction factors stored with PDF dataset. The -new layout is more logical and allows multi-phase refinements with -separate shape corrections. - -@item step shape factor -Defined new shape factor that cuts off the -simulated PDF at user defined r-limit. - -@item cumulative Rw -Implemented calculation of cumulative Rw -and option to show it in PDFgui plot window. - -@item project post-processing -Implemented new module -@samp{tui} (text user interface) for simple access to the data -in PDFgui project files. The @samp{tui} module can be used -in easy-to-understand Python scripts for arbitrary data extraction -or conversion. It should be useful for project files with large -temperature or compositional series of PDF refinements. - -@item structure visualization -PDFgui can now show structures with any external structure viewer, -that accepts structure file as a command-line argument. - -@item space group representations -Added 249 space group -representations in non-standard settings. The new representations -were generated using the -@uref{https://cctbx.github.io,cctbx library} and helpful -hints from Ralf W. Grosse-Kunstleve. - -@item symmetry constraints -Fixed issues with generation of -symmetry requirements for the ADP tensors. - -@item default ADP tensors -PDF contributions are not counted for atoms that have -ADP tensors @i{Uij} equal zero. Atoms are now inserted with -a non-zero @i{Uij} matrix. Added warning when a phase -loaded from file has atoms with zero ADPs. - -@item temperature series macro -The temperature series macro was broken for datasets at equal temperature -or when temperature contained decimal point. Improved file -and temperature sorting in the temperature series dialog. - -@item journal panel -Fixed shortcut key handling and font size issues. - -@item startup option @option{--db-pdb} -The new command-line option starts Python debugger on -PDFgui crash instead of displaying error report dialog. - -@item grid interpolation -Fixed problems with r-grid interpolation appearing due to round-off errors. - -@item data load on Windows -Windows version could not read PDF datasets with NaN (not-a-number) -values in the dGr column, because NaN is not supported by the Windows -C-library. Added check for NaN-s before converting to float. - -@end table - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Community, Quick start, Installation, Introduction -@section Community -@cindex Community -@cindex mail-list -@cindex user groups - -There are two Google groups for support and development of PDFgui and other -DiffPy software. Visit the links below for message archives or instructions on -subscription and posting. - -@table @emph -@item @b{diffpy-users} @url{https://groups.google.com/d/forum/diffpy-users} -Help on usage of PDFgui, PDFfit2 and other DiffPy packages. This group should -become a knowledge base of PDFgui user tips, tricks and troubleshooting. Feel -free to ask your question here. - -@item @b{diffpy-dev} @url{https://groups.google.com/d/forum/diffpy-dev} -For discussions about development and changes of PDFgui, PDFfit2 and DiffPy -library in general. -@end table - -@page -@vskip 0pt plus 1filll - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Quick start, PDFgui layout, Installation, Top -@chapter Quick start -@cindex quick start - -In this chapter the PDFgui layout is briefly described, followed by a simple -tutorial example, spanning the GUI functionality and aimed at novice users. -Users familiar with the basics can proceed to @ref{Examples and tutorials}, or -use @ref{PDFgui reference sheets}. All the files used in examples are -available in the source distribution or can be downloaded from the DiffPy -website. - -@menu -* PDFgui layout:: -* Simple fit:: -@end menu - -@node PDFgui layout, Simple fit, Quick start, Quick start -@section PDFgui layout -@cindex PDFgui layout - -Once PDFgui is invoked, a PDFgui window comes up. Its layout consists of a -``Menu Bar'', a ``Tool Bar'', and a set of four panes. The menu bar contains -drop-down menus that provide various aspects of PDFgui functionality. The tool -bar features icons for commonly used operations: creating a new project, -opening an existing project, saving a project, executing a refinement or -calculation, stopping a refinement or calculation, and making a quick plot. The -four panes consist of the ``Fit Tree'', ``Plot Control'', the``Current Action'' -pane, and the ``PDFfit2 Output'' panel. These are all shown in @ref{fig2-01}. - -The fit tree is used in setting up a fit protocol. The plot control serves the -user's needs for graphically displaying the fits, as well as various -fit-related parameters. The content of the current action panel changes as the -refinement is being set up. It is a functional panel through which the user -configures the fit attributes, sets the fit constraints, reviews the fit -settings, displays fitting results, and also carries out other setup steps. The -progress of the PDFfit2 refinement engine is displayed in the PDFfit2 output -panel. All panels except the current action panel are dockable windows that can -be dragged across the screen, resized and arranged to accommodate the -individual visual needs of the user. The window layout can also be controlled -via the ``View'' drop-down menu on the menu bar. An important part of the PDFgui -operativity is also conveniently available through mouse operations such as -select and right-click. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Simple fit, Symmetry expansion, PDFgui layout, Quick start -@section Creating a simple fit using a preexisting structure file -@cindex fit configuration -@cindex refinement configuration - -The purpose of this example is to familiarize the novice user with the PDFgui -basics. The goal is to create a simple fit of Ni PDF from a preexisting -structure file, associate a dataset with the refinement, configure and execute -a refinement, and display the result. Files to be used in this exercise are -@i{Ni.stru} and @i{Ni-xray.gr} (found in the tutorial directory). To start, -invoke PDFgui by clicking on the icon on your desktop, selecting the program -from your system's program menu, or by typing @command{pdfgui} in a terminal window. - -First a new fit needs to be established. In the fit tree right-click the mouse -button, and select @b{New Fit}. This will generate a new fit called ``Fit 1'' -in the fit tree. The name of the fit is highlighted and editable, so you need -only to start typing to give the fit a new name. The current action panel will -display the pages that will hold the fit and the results output. Note that the -same action could be achieved by selecting the @b{New Fit} option from the -``Fits'' drop-down menu on the menu bar. - -The next step in populating the fit tree is to load a structural model. First, -select the fit icon in the fit tree pane. Then, right-click the mouse, invoking a -drop-down menu. Select @b{Insert Phase}, which will modify the current action -panel. The same action could be performed from the ``Phases'' drop-down menu on -the menu bar by selecting @b{New Phase}. In the current action panel options are -offered to load a structure from a file or to generate it from scratch. In this -exercise a preexisting structure file @i{Ni.stru} is to be loaded. - -@float Figure,fig2-01 -@ScreenShot{images/fig2-01} -@caption{PDFgui window with fit tree and Plot Control panels to the left and -current action panel to the right. The fit tree panel features the current fit -and the loaded Ni structure which is selected. The current action panel displays -phase configuration within the ``Configure'' tab.} -@end float - -@ref{fig2-01} shows the PDFgui appearance at this stage of the exercise. The -current action panel has three tabs, ``Configure'', ``Constraints'', and -``Results'' that could be selected using mouse. These will be returned to -later. The ``Configure'' panel displays configuration information from the -structure file. The top portion contains lattice parameters, phase scale factor, -and a set of parameters intended to be used to account for correlated atomic -motion effects that typically sharpen the nearest neighbor PDF peak. These are -@i{delta1}, @i{delta2}, @i{sratio}, and @i{rcut}. The @i{spdiameter} and -@i{stepcut} parameters include scatterer size effects in the PDF. These -parameters will be described later. The bottom part of the panel contains -standard unit cell content related information such as atomic species, their -fractional coordinates, anisotropic ADPs, and site occupancies. - -The next step is to load an experimental data set to be fit. Selected the fit -and right-click to bring up the context menu. From the menu choose @b{Insert -Data Set}. The same action could be performed through the ``Data'' menu on the -menu bar. The current action panel changes accordingly, giving an option for a -data set to be loaded from a file. In this exercise Ni PDF data obtained using -synchrotron x-ray radiation collected at 6-ID-D at the Advanced Photon Source -is used. This is contained in a file @i{Ni-xray.gr}, which is to be loaded. -Note that among the exercise files there is also a file @i{Ni-neutron.gr}, -obtained using neutron radiation at the GPPD diffractometer at the IPNS -facility at the Argonne National Laboratory. Both x-ray and neutron datasets -were collected at 300 K. - -@float Figure,fig2-02 -@ScreenShot{images/fig2-02} -@caption{Appearance of a PDFgui window after a PDF dataset is loaded. The Fit -Tree panel features the current fit, loaded Ni structure, and loaded Ni PDF -dataset, G(r), which is selected. The current action panel displays data set -configuration within the ``Configure'' tab.} -@end float - -@ref{fig2-02} shows the PDFgui appearance at this stage of the exercise. The -``Configure'' panel displays configuration information from the data file. It -should be noted that depending on the software used to prepare the experimental -PDF from the raw data, the file may (or may not) contain meta-data reflecting -the experimental conditions and configuration. For example, software PDFgetX2 -and PDFgetN, which can be used to prepare PDFs from x-ray and neutron total -scattering experiments respectively, supply meta-data in the header of the data -file. PDFgui reads this information and fills the appropriate fields in the -data set configuration panel. Caution should be exercised by the user to -verify that these data indeed correspond to the experimental conditions. In the -present example, x-ray radiation is used, and so the x-ray selection is turned -on for the scatterer type. The data range, fit range, data scale factor, -maximum Q value used in Fourier transform to obtain the experimental PDF and -the experiment specific parameters are displayed. Parameters describing -experimental resolution effects, Qdamp and Qbroad, and experimental conditions, -such as temperature and doping (used for bookkeeping and for parametric plots) -are also shown. If no meta-data are present in a data file, this information -should be supplied by the user. Note also that the changes occurred at this -stage in the plot control panel, allowing user to plot the data. This is -achieved by selecting @i{r} in the X-choice box and @i{Gobs} (the observed -G(r)) in the Y-list box and then pressing the ``Plot'' button. Since no -fitting has occurred so far, an attempt to plot calculated PDF profile or a -difference yields a blank plot. The data can also be displayed by clicking the -rightmost ``quick-plot'' button in the tool bar. - -@float Figure,fig2-03 -@ScreenShot{images/fig2-03} -@caption{Adjusting data set related configuration.} -@end float - -Having specified the initial structure to be refined, and the data set to be -fit, we proceed to the refinement setup. First we adjust the initial parameters -and variables, and set up the constraints. The adjustments and constraint setup -are done on both the experimental data and the refined structure levels, -toggling between the corresponding ``Configure'' and ``Constraints'' tabs. In -the present example the data related setup will be done first. - -Click on the data set node (@i{Ni-xray.gr}) in the fit tree. In @ref{fig2-03} -the ``Data Set Configuration'' panel is shown. We will adjust the fitting -range, as well as other parameters that reflect the experimental conditions. -Since there is no physical information in the region of @i{r} below the nearest -neighbor PDF peak position (as seen in the plot), and since this region is -often affected by noise and experimental artifacts, it is wise to exclude it -from fitting. We therefore set the value of the lower boundary of the fitting -range to 1.7. (Note that the units are Angstroms). In addition, we set -@i{Qdamp} parameter to a more realistic starting value of 0.08. This is an -instrument-dependent parameter is typically obtained through a conventional -calibration process at each PDF experiment using a standard sample such as Ni -or Si. Next, we select the ``Constraints'' tab, and type @i{@@1} into the -``Scale Factor'' edit box. This will assign refinement parameter 1 to the data -scale factor. Note that this is the syntax used for assigning the refinement -parameters in PDFfit2 engine. Similarly, assign parameter 2 to @i{Qdamp} by -inserting @i{@@2} into the appropriate edit box. This is illustrated in Figure -@ref{fig2-04}. - -@float Figure,fig2-04 -@ScreenShot{images/fig2-04} -@caption{Setting up the refinement parameters and constraints.} -@end float - -Further, we set constraints related to the structural model, by selecting the -phase node (@i{Ni.stru}) on the fit tree, adjusting the initial parameter -values if necessary (not done here), and proceeding to the ``Constraints'' tab. -We note that the phase configuration was performed automatically when the -structure file was loaded. We assign the refinement parameter 3 to all three -lattice constants, a, b, and c, reflecting the fact that the structure is -cubic. Isotropic ADPs are assigned to all Ni atoms in the refined cell as -refinement parameter 4. This can conveniently be done by highlighting the -``u11'', ``u22'' and ``u33'' cells for all four atoms, and typing @i{@@4} and -then pressing ``Enter'' on your keyboard. The outcome is shown in Figure -@ref{fig2-05}. - - -@float Figure,fig2-05 -@ScreenShot{images/fig2-05} -@caption{Setting up the refinement parameters and constraints.} -@end float - -Note that constrained parameters cannot be adjusted on the ``Configuration'' -panel since they are no longer independent. It should also be noted that as a -part of the PDFfit2 syntax a refinement parameter can also be defined as a math -expression @i{f(@@n1,@@n2,@@n3,...)} where @i{@@n1} stands for fitted -parameter, and @i{n1}, @i{n2},... are arbitrary positive integers enumerating -the parameters. This allows simple linking of related variables. For example, -since cell lengths a, b, and c are all expressed as @i{@@3}, the refined -structure will remain cubic. Also note that the enumeration of the parameters -can be arbitrary, enumeration does not have to follow any particular order. The -quantities within a fit that are enumerated with the same number will be -assigned the same parameter, hence caution should be exercised to avoid -unintentional assignment of the same parameter to physically different -quantities. Automatic parameter assignment (see further below) is done in such -a way as to disallow for such situations to happen. If assignment is done in -part manually, in particular for complex setups, it is recommended to verify -that the parameter assignment is done correctly. - -@float Figure,fig2-06 -@ScreenShot{images/fig2-06} -@caption{Reviewing the fit parameters and conditions.} -@end float - -The setup for the present example is now completed. By selecting the fit node -on the fit tree the current action window shows ``Parameters'' tab, which -displays the used refinement parameters for review, @ref{fig2-06}. It shows -the initial values, and allows for updates and for refinement parameters to be -released or fixed depending on whether the corresponding ``Fixed'' box is -unchecked or checked, respectively. The ``Refined'' column, which is currently -empty, will be populated with the refined values of the parameters with the fit -completes. If the initial parameter values are to be changed, using ``Apply -parameters'' button will update the values of the parameters on all relevant -``Configuration'' panels. The refinement is executed by clicking the ``gear'' -icon on the tool bar. The refinement can be stopped prematurely by clicking on -the ``stop'' icon on the tool bar. During the refinement the refinement -progress will be directly reported in the PDFfit2 Output panel. This is -illustrated in @ref{fig2-07}. - -@float Figure,fig2-07 -@ScreenShot{images/fig2-07} -@caption{While the refinement is running, the refinement progress is -displayed in the PDFfit2 Output panel.} -@end float - -After the fitting is completed, the fit summary is provided in the ``Results'' -tab of the current action panel associated with the fit node. Similarly, if -the ``Results'' tab is displayed when @i{Ni.stru} or @i{Ni-xray.gr} are -selected, values of all corresponding refined parameters for the converged -model are displayed. - -If the fit results are acceptable, one or more refined values could be copied -to become new initial parameters for possible further refinement, where -appropriate. This is be done in the ``Parameters'' tab of the fit by -highlighting refined parameters to be copied, right-clicking, and and selecting -@b{Copy Refined To Initial}. This is illustrated in @ref{fig2-08}. Note that -you loose the original starting values when copying values in this way, which -may make it difficult to reproduce the fit. - -@float Figure,fig2-08 -@ScreenShot{images/fig2-08} -@caption{Updating the set of initial values of refined parameters.} -@end float - -The fit can be displayed graphically by clicking at the ``quick plot'' icon on -the tool bar. Alternatively, desired items to be displayed can be selected from -the plot control and plotted on the screen. Depending on whether the structure -or the data are selected on the fit tree, either refined structural parameters -or the experiment related parameters and fit could be plotted. An example of -the fit display is shown in @ref{fig2-09}, and a selected parameter plot vs -iteration step in @ref{fig2-10}. If the plotting window remains open while the -fitting is in progress, the content will be updated after each fit iteration. - -@float Figure,fig2-09 -@ScreenShot{images/fig2-09} -@caption{An example of PDFgui plotting capabilities: displaying a fit.} -@end float - -@float Figure,fig2-10 -@ScreenShot{images/fig2-10} -@caption{An example of PDFgui plotting capabilities: displaying a parameter.} -@end float - -PDFgui is furnished with ``Journal'' capability, which can be found under the -``View'' menu, and represents a convenient way to archive project-related -notes, as illustrated in @ref{fig2-11}. These notes can be exported as a text -file, or saved along with the entire project for future reference. - -@float Figure,fig2-11 -@ScreenShot{images/fig2-11} -@caption{Using ``Journal'' feature can be a convenient way for taking notes.} -@end float - -The project can be saved at any stage in its present configuration through -choice of @b{Save Project as} or @b{Save Project} as appropriate from the -``File'' drop-down menu. The PDFgui project file has ``ddp'' extension. In -addition to saving a project, various parts of the project, both structure -related and data related, can be exported to external files by making an -appropriate selection from the ``Phases'' and ``Data'' drop-down menus. The -phases (starting or converged) can be saved in one of many formats. The model -PDF profile can be exported through ``Data'' menu and will be saved as a -five-column ``.fgr'' file. The first four columns are @i{r}, @i{G(r)}, @i{dr}, -and @i{dG(r)}, and the fifth column is the difference curve between the data -and the model. Note that the model PDF and the difference are only calculated -within the user-specified fitting range. - -@page -@vskip 0pt plus 1filll -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Examples and tutorials, Symmetry expansion, Simple fit, Top -@chapter Examples and tutorials -@cindex examples -@cindex tutorials - -In this chapter we present series of examples and tutorials aimed at users -already comfortable with the GUI, to provide training in advanced GUI features -designed for most common modeling situations, such as building the structure -from scratch, calculating the PDF based on a given structure, linking fits, and -creating and executing a series of fits on a sequence of data sets. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@menu -* Symmetry expansion:: -* Calculating PDF:: -* Sequential fitting:: -* Nanoparticle structure:: -@end menu - -@node Symmetry expansion, Calculating PDF, Examples and tutorials, Examples and tutorials -@section Building structure model using crystal symmetry -@cindex create new structure -@cindex symmetry expansion - -@c @b{NB: this part either can be kept or replaced, I felt it's kind of useful -@c to have it to define the purpose of the expansion tool. Please read through -@c and decide if needed, or erase it.-- -@c It should be noted that PDFfit2 operates within the P1 symmetry framework, -@c and extended unit is traditionally used for refinement with the constraints -@c explicitly set, since PDF is used to obtain structure beyond crystallography. -@c Note that the expansion tool is provided in PDFgui for the convenience of the -@c user, and that the space group information serves the purpose of building the -@c constraints within the P1 framework, rather than maintaining the symmetry. -@c Once the constraints are built the symmetry expansion tool finished its job -@c and its services (and more importantly information typed in) are no longer -@c available to the fitting program. The symmetry can be (and frequently is) -@c broken by the user, hopefully intentionally.} - -The purpose of this example is to demonstrate to the user the symmetry -expansion capabilities of PDFgui. The goal is again to create a simple fit of -Ni PDF, but this time from scratch rather than from a preexisting structure -file. The focus will be on the symmetry expansion of the structure, and the -steps that are described earlier in @ref{Simple fit} are left for the user to -recreate. File to be used in this exercise is @i{Ni-xray.gr}. To start, invoke -PDFgui. - -To begin, a new fit again needs to be established by right-clicking the mouse -button on the fit tree pane, and selecting @b{New Fit}. This will generate a -new fit called Fit 1 as in the previous example. The next step in populating -the fitting tree is to introduce a structural model. This time a new phase will -be added and the model built up from scratch. Select the fit icon in the Fit -Tree pane. Then right-click the mouse and select @b{Insert Phase}, which will -modify the current action panel. In the current action panel options are -offered to load a structure from a file or to generate it from scratch. Select -``New'' to build up structure from scratch. The Fit Tree will be populated -with a new item ``New Phase''. Rename this phase to ``Ni fcc''. The current -action panel now displays default phase configuration with ``dummy'' values and -no atoms. Edit the lattice parameters and set them to reflect the symmetry, in -this case set the lengths to 3.52 Angstroms and all the angles to 90 degrees. -Pressing ``Tab'' on the keyboard will take you from one form-field to the next. -To introduce new atoms right-click with your mouse onto @i{elem} tab in the -Phase Constraints grid, and select desired number of atoms in the asymmetric -unit via the dialog box that pops up. For the Ni case, select one row only. A -new row will then show up in the table and the name of the element will be -highlighted. Type in @i{Ni} for the element name. It is important that the -element name is typed in correctly, as this is further used to search a -database for the scattering characteristics of that site@footnote{ -@cindex isotope -To enter a specific isotope, use the ``NucleonNumber-Symbol'' syntax, -for example ``12-C''. Deuterium and tritium can be entered also as -``D'' and ``T'' in addition to the normal syntax ``2-H'' and ``3-H''. -}. -Further, highlight cells in the -@i{u11}, @i{u22}, and @i{u33} columns and type in the initial value 0.0025. - - -Now right-click with the mouse on the element name, and select ``Expand space -group...'' option. A dialog box will appear, as shown in @ref{fig3-01}, -requesting space group information and the choice of origin. Choose ``Fm-3m'' -in the choice box and hit enter. You can also type in the choice box ``Fm-3m'' -or ``225'', the space group number. This will expand the unit cell to four Ni -sites with the proper symmetry. - -@float Figure,fig3-01 -@ScreenShot{images/fig3-01} -@caption{Expanding the unit cell using space group information.} -@end float - -In order to set the symmetry constraints for the refinement, select -``Constraints'' tab, highlight all the atoms, and right-click to invoke a menu. -Note that hitting ``Control'' and ``A'' simultaneously will select all the -atoms if the grid is active. (If the fit tree is active, it will select all -tree items). Click on ``Symmetry constraints...'', and a dialog box will appear -asking for the space group to be used and whether you want the positions and/or -the thermal parameters to be constrained, as shown in @ref{fig3-02}. The -default is to use the space group used for expansion, and to constrain -everything according to the symmetry. Since all the positions are special, -these will not be refinable by symmetry, and the thermal parameters will be -isotropic. The program will assign parameters according to symmetry using -default names that can be renamed and/or reassigned by the user. To be -consistent with the naming from the first example, one could assign the lattice -parameters as @i{@@3} and the isotropic ADPs as @i{@@4}. Note that parameters -can be quickly renamed or consolidated in the ``Parameters'' panel of the fit -node using the right-click menu. It is important to note that the table -reflecting constraints is @i{the only place} that program refers to for the -symmetry. What is written there will be used, and if the table is tampered -with, then the original symmetry obtained using symmetry expansion feature will -@i{not} be preserved. Therefore, the expansion tool represents a convenience -tool and nothing more than that. The remaining steps of this example are -identical to these described in @ref{Simple fit}. - -@float Figure,fig3-02 -@ScreenShot{images/fig3-02} -@caption{Setting up symmetry constraints to be used in a refinement.} -@end float - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Calculating PDF, Sequential fitting, Symmetry expansion, Examples and tutorials -@section Calculating PDF from a structure -@cindex calculating PDF - -There is often a need for obtaining a calculated PDF profile for a given -structure instead of performing a fit. In order to carry out a calculation, an -underlying structure needs to be specified. This can either be loaded from a -file or generated from scratch. Suppose that we have a Ni structure populating -a fit tree using steps described in either @ref{Simple fit} or in @ref{Symmetry -expansion}, and that we would like to calculate Ni PDF using neutron radiation. -Highlight the Ni structure on fit tree. Either right-click and select @b{Insert -Calculation} or select @b{New Calculation} from ``Calculation'' menu. The -current action panel will display information very similar to that when a data -set is loaded, as shown in @ref{fig3-03}. - -@float Figure,fig3-03 -@ScreenShot{images/fig3-03} -@caption{An example of the calculation configuration panel.} -@end float - -Now specify conditions to be used for the calculation, such as radiation type, -calculation range and corresponding @i{r}-grid size, as well as instrument -resolution and maximum momentum transfer parameters. For the later two, the -default values of parameters could be used, or values could be specified that -closely mimic the experimental conditions on some particular instrument of -interest. After the conditions are set, the gear icon on the tool bar can be -used to execute the calculation (or alternatively select @b{Run Selected -Calculation} from the ``Calculations'' menu). For our exercise, select -@i{Neutron} scatterer type. To mimic the experimental data used earlier in the -tutorial, select for example 0.01 for the @i{r}-grid size, and use 0.08 and -25.0 for resolution and maximum momentum transfer parameters respectively. -Execute the calculation and observe the result by clicking on the quick plot -icon on the tool bar. To export the calculated PDF, use the @b{Export Selected -Calculation} choice on the ``Calculations'' menu. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Sequential fitting, Multistage fitting, Calculating PDF, Examples and tutorials -@section Sequential fitting -@cindex sequential fitting - -In many practical situations there is a need to set a series of refinements -that are linked in a sequence. In what follows we will describe multi-stage -fitting capabilities of PDFgui, followed by description of three pre-made -macros that implement sequential fitting: fitting of @i{r}-series on a single -data set, temperature series on a set of data corresponding to various -temperatures, and a doping series on a set of data corresponding to samples -whose chemical content changes in some systematic way. These macros can be -accessed from the menu bar, ``Fits'' menu, @b{Macros} selection on the -drop-down menu. - - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@menu -* Multistage fitting:: -* r-series:: -* Temperature series:: -* Doping series:: -* Advanced post-processing of sequential refinement:: -@end menu - -@node Multistage fitting, r-series, Sequential fitting, Sequential fitting -@subsection Multistage fitting -@cindex multistage fitting - -Here we describe how to string together several fits. To begin, create a fit as -explained earlier. We assume this fit is named ``Fit 1''. The next step is to -copy the fit. This is achieved by right-clicking on the fit node in the the fit -tree, and selecting ``Copy'' option from the pop-up menu. Once this is done, -the fit can be pasted by selecting either ``Paste Fit'' or ``Paste Linked Fit'' -from the pop-up menu. We will link the fits manually for the sake of -instruction, so select ``Paste Fit''. (``Paste Linked Fit'' will do all of what -follows automatically.) Selecting ``Paste Fit'' will create ``Fit 1_copy'', a -copy of ``Fit 1'' in the fit, which has the. The next step is to link the fits. -Select the new fit node on the fit tree. All aspects of the fit are duplicated -in the new fit, but so far are not associated with the original fit. - -In the ``Parameters'' panel, select the entire ``Initial'' column. Type ``=Fit -1'' and then press ``Enter''. The ``Initial'' values of the parameters should -now read ``=Fit 1:n'', where @i{n} is the index of the parameter. This brings -us to the linking syntax. A parameter in this fit can be linked to any other -parameter in any other fit with ``=name:index'' syntax. Here, ``name'' is the -name of another fit to which the link is made, and ``index'' is the index of a -parameter in that fit. If ``:index'' is omitted, it will default to the index -of the parameter one is linking from. A linked parameter uses the refined value -of the link as its @i{initial} value, or the initial value if the linked -parameter is not yet refined. An example of this is shown in @ref{fig3-04}. - -@float Figure,fig3-04 -@ScreenShot{images/fig3-04} -@caption{An example of linked fits. The output of a converged fit will -be fed into the succeeding fit in the sequence as an input.} -@end float - -Now that we have a linked fit, we can change it in some aspect. We could delete -and replace the data set or phase, or we could or we can add parameter to see -if we can improve the fit, without modifying the configuration of the original -fit. Here we will add additional parameters to improve the fit. If our Ni -example was used and copied in this exercise, one can select @i{Ni.stru} phase -of ``Fit 1_copy'' and introduce parameter @i{delta2} by inserting ``@@5'' in -the appropriate box of the ``Constraints'' tab of that phase. This is a -quadratic atomic correlation factor, a parameter related to the correlated -motion of atoms, and as such should help in sharpening up the nearest neighbor -PDF peak in the model PDF profile. Highlight the fits on the fit tree by -holding down ``Ctrl'' on the keyboard while selecting each in sequence. -Alternately, select a single fit and hit ``Ctrl''+``Shift''+``A'' -simultaneously on the keyboard. Once the fits are selected, run them by -pressing the ``gear'' icon in the tool bar. Only the highlighted fits will be -executed. The fitting will proceed in stages, so the first fit is executed -first, and, after it is converged, the second one. After the fitting of the -sequence is over, you may plot the results in the same window by selecting both -data set nodes. Change the offset in the plotting window to 0 and plot -@i{Gcalc} versus @i{r}. Notable is a sharper nearest neighbor PDF peak in the -second fit, improving the fit to the Ni data compared to the ``Fit 1'' -achievement. - -We note here that there is also a linear atomic correlation factor @i{delta1}. -This one is appropriate to use in cases of high temperature, while @i{delta2} -is more appropriate for the case of low temperatures. An alternative way to -include the correlated motion effects on PDF is to introduce @i{sratio} -parameter that defines low-@i{r} to high-@i{r} PDF peak ratio, and @i{rcut} -limit needs to be specified that defines a cutoff distance. The two approaches -of accounting for correlated motion should @i{not} be used simultaneously. See -the PDFgui publication and references therein for a more thorough description -of these parameters. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node r-series, Temperature series, Multistage fitting, Sequential fitting -@subsection Sequential fitting of incremental r-series -@cindex sequential fitting -@cindex r-series - -In certain modeling situations the user could benefit from fitting a data set -through a series of refinements that differ one from another by the -corresponding fitting ranges. This could either be a case when upper -@i{r}-limit is to be changed incrementally, or when a fixed width @i{r}-window -is to be defined for a box-car fitting approach. An example of this when one -wants to study the details of the local- to average-structure crossover in a -complex material. PDFgui has a pre-written macro that automates the setup of -this type of refinement. We will illustrate these capabilities through a -simple Ni example. - -Generate a complete fit, including a phase and a dataset, as explained in -@ref{Simple fit}. Select the fit from the fit tree. From the ``Fits'' menu, -select @b{Macros}, and choose ``r-Series'' option. The Current Action panel -will display simple setting requirements, arranged in two rows of three dialog -boxes each, that need to be filled with values to be specified by the user. An -example of this is shown in Figure @ref{fig3-05}. - -The first row deals with the increment setup of the upper @i{r} of the -refinements. User should specify the first and the last fit maximum -@i{r}-value, and corresponding step (increment), all in units of Angstroms. In -the second row information is needed to specify the lower @i{r} refinement -limit. Again, the user sets the first and the last value, and step. This allows -for a box car of either fixed or variable width to be defined. If the second -row is left blank, the corresponding refinement series will be with -incremental maximum @i{r} only, and fixed lower limit. For the purpose of this -exercise lets perform incremental fitting of Ni-data with 4 steps total, and -fixed lower limit. To achieve this, type 5 for the first upper limit, 20 for -the last upper limit, and the step of 5 Angstroms. Leave the second row blank. -Once this is done, make sure that the Ni fit, which in this situation serves as -a template, is highlighted in the fit tree, and then click ``OK'' in the -current action panel. This will generate 4 new fits below the original fit, -and these four fits will constitute your series, with desired incremental -limits. Select all four of them and execute the refinement. Once the sequence -is done, you can review the results using the plot control. - -@float Figure,fig3-05 -@ScreenShot{images/fig3-05} -@caption{Appearance of the setup panel for specifying an incremental r-series -fit conditions.} -@end float - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Temperature series, Doping series, r-series, Sequential fitting -@subsection Sequential fitting of temperature series -@cindex sequential fitting -@cindex temperature series - -Frequently, one must handle a large number of data sets originating from a -single sample collected at various temperatures. One of the common modeling -schemes in such cases is to perform sequential fitting of such data series, -which is known to yield well behaved modeling parameters. PDFgui has a -pre-written macro that allows for this modeling situation to be accommodated. - -We will describe the procedure using an example of a temperature series of data -collected on LaMnO3 at various temperatures from 300 K to 1150 K at NPDF -instrument at LANSCE at Los Alamos National Laboratory. This material exhibits -Jahn-Teller (JT) order-disorder phase transition just above 700 K, where the -long range orbital order is lost at high temperature, but the local JT -distortion survives. The formal space group does not change at this transition. - -To begin, from the ``File'' menu use @b{Open Project} selection to open -@i{lmo-template.dpp} project from the tutorial directory. This project -consists of a fit called @i{lmo-pbnm }, which will serve as a template and -which contains @i{Pbnm} phase of LaMnO3 and a 300 K data set. The fit -refinement is set up to cover 1.7-19.5 Angstroms range, and all the parameter -values are set to their converged values for this temperature. The fit setup -uses isotropic ADPs for all atomic sites. In the same directory data -corresponding to various temperatures exist, in particular @i{300K.gr}, -@i{550K.gr}, @i{650K.gr}, @i{700K.gr}, @i{720K.gr}, @i{730K.gr}, @i{740K.gr}, -@i{750K.gr}, @i{800K.gr}, @i{880K.gr}, @i{980K.gr}, @i{1050K.gr}, @i{1100K.gr}, -and @i{1150K.gr}. We will establish a T-series fit sequence. Select @b{Macros} -from the ``Fit'' menu on the menu bar, and choose ``Temperature Series''. The -current action panel will reflect the selection. A tool is provided that -allows for data sets to be added. Click on ``Add'' button. Using ``Shift'' and -mouse-select operation you should select all the data sets mentioned in the -above list, except the 300 K one, as this is already in the template fit, and -then press ``Open''. All the data sets will be loaded. Since the files contain -meta-data, as mentioned earlier, the GUI is going to pick up temperature -information from the files. User should verify that the information is correct. -The data can be ordered by temperature by clicking the ``Temperature'' header. - -@float Figure,fig3-06 -@ScreenShot{images/fig3-06} -@caption{Setting up a T-series sequential refinement for LaMnO3. Ordering -by temperature will ensure that the fits are linked correctly.} -@end float - -Order the data by temperature (@ref{fig3-06}), as otherwise the series of fits -that is to be automatically generated in the next step will be linked in an -arbitrary way in which the data were loaded, rather than to reflect the -scientific logic. There should be 13 data sets. Next, ensure that the template -fit is selected on the fit tree. If this is the case, the ``OK'' button becomes -clickable. Clicking on the ``OK'' button will generate a sequence of linked -fits in the fit tree in the order of the temperature increase. Each fit is -linked to the previous, except for the template fit for the 300 K data. -Highlight all the fits in the fit tree to start the sequential refinement of -the T-series. The results can then be displayed in Fit Control such that -various converged fit parameters are plotted versus temperature. - -In terms of the science behind the LaMnO3 example, it is interesting to plot -isotropic ADP of the oxygen at general position. Select all the phases on the -fit tree by selecting one and then hitting the ``Control'', ``Shift'' and ``A'' -keys on your keyboard simultaneously. This will select all the phases at once. -On the plot control choose the temperature for @i{x} axis, and select the Uiso -of O2 (for example atom 20) for the @i{y} axis. Clicking ``Plot'' will display -the plot of Uiso(20) vs T. - -@float Figure,fig3-07 -@ScreenShot{images/fig3-07} -@caption{Displaying the refinement results as a function of external -parameter: T-series refinement of LaMnO3, example of isotropic ADP of -oxygen atom on general position in @i{Pbnm} setting. Notable are the offsets -just above 700 K (Jahn-Teller transition), and at around 1000 K when sample -converts from orthorhombic to rhombohedral symmetry.} -@end float - -Despite quite high temperatures, an onset of the static offset above the -transition temperature is clearly marked by this parameter, as apparent in -@ref{fig3-07}. Curious user could repeat the same T-series refinement -restricting the refinement range upper limit to say 5-6 Angstroms and observe -the outcome. The refinement sequence execution should be very quick in this -case. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Doping series -@subsection Sequential fitting of doping series -@cindex sequential fitting -@cindex doping series - -Fitting a series of PDF data that correspond to a set of samples with related -chemistry, such as various doping series, represents another important -sequential modeling aspect that is supported in PDFgui. - -We will describe the procedure using an example of a series of data collected -on LaMnO3 and series of Ca-doped LaMnO3 samples with various Ca content from 0 -to 0.28 at GEM instrument at ISIS, UK. To begin, from the ``File'' menu use -@b{Open Project} selection to open @i{lcmo-template.dpp} project from the -tutorial directory, which has an initial setup for this exercise. Note the -letter @i{c} in the file name, in contrast to the name used in the previous -example. This project consists of a fit called @i{lcmo-pbnm}, which will serve -as a template and which contains @i{Pbnm} phase of LaMnO3 and a 10 K data set, -@i{x000t010q35.gr}. The difference here with respect to the template used in -the previous example is that Ca sites are introduced in the structure, but are -assigned zero occupancy. However, existence of the Ca dopant species in the -structure of the template is essential for the macro to operate. Also, upper -limit used in Fourier transform for obtaining this set of data is 35 inverse -Angstroms, in contrast to 32 inverse Angstroms in previous example. Since -different instrument was used, the value of @i{Qdamp} is different than in -previous example. - -@float Figure,fig3-08 -@ScreenShot{images/fig3-08} -@caption{After loading of the Ca-doping data series of LaMnO3 system, proper -doping assignment needs to be carried out, as the doping levels introspected -from the file names in this example incorrectly reflect the scientific -situation. Note that dopant atom has to be present in the template seed used -to generate the linked sequence of fits.} -@end float - -In the same directory data corresponding to various Ca contents exist, -collected at 10 K temperature, in particular @i{x004t010q35.gr}, -@i{x012t010q35.gr}, @i{x016t010q35.gr}, @i{x020t010q35.gr}, @i{x024t010q35.gr}, -and @i{x028t010q35.gr}. It should be noted at this point that the data files do -not contain any relevant meta-data in the file headers. However, the doping -level is somehow encrypted into the file names. We will establish a doping -series fit sequence. Select @b{Macros} from the ``Fit'' menu on the menu bar, -and choose ``Doping Series''. The current action panel will reflect the -selection. The base element and dopant need to be specified. A tool is provided -that allows for data sets to be added. Click on ``Add'' button. Using -``Shift'' and mouse-select operation you should select all the data sets -mentioned in the above list, and then press ``Open'' button. All the data sets -will be loaded. The GUI will introspect both the file names and files -themselves in attempt to obtain the doping (or in previous example temperature) -information. Since the files do not contain meta-data, as mentioned earlier, -the GUI is going to pick up doping information from the file names. The user -should verify that the information is correct. In this particular case the -doping information will not be correctly picked up, as for example 004 from the -name is meant to be 0.04 doping, and the GUI would try to interpret it as 4.0 -doping. Similarly 028 would be interpreted as 28.0, while it was intended to -mean 0.28 doping. These values should be edited and fixed manually by clicking -on the corresponding values and simply typing in the correct values (Figure -@ref{fig3-08}). The data can be ordered by doping by clicking the header. -After you are done with editing, order the data by doping, as otherwise the -series of fits that is to be automatically generated in the next step will be -linked in an arbitrary way in which the data were loaded, rather than to -reflect the scientific logic. There should be 6 data sets (with the initial -x=0.0 data set there will be 7 chained fits total after this setup is done). -Next, ensure that the template fit is selected on the fit tree. If this is the -case, the ``OK'' button becomes clickable. Clicking on the ``OK'' button will -generate a sequence of linked fits in the fit tree in the order of the Ca -content increase. Highlight all the fits in the fit tree to start the -sequential refinement of the doping series. - -@float Figure,fig3-09 -@ScreenShot{images/fig3-09} -@caption{Sequence of refined parameters, such as lattice constants, can be -plotted vs doping using PDFgui plotting facilities. Figure features lattice -parameter @i{b} in @i{Pbnm} space group setting for series of Ca-doped LaMnO3 -samples for doping concentrations between 0 and 0.28 at 10 K temperature.} -@end float - -After the convergence is achieved for all the fits in the fit tree, the results -can be displayed graphically such that various converged fit parameters are -plotted versus Ca content. An example is provided in Figure @ref{fig3-09} -featuring one of the lattice parameters. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Advanced post-processing of sequential refinement -@subsection Advanced post-processing of sequential refinement -@cindex project post-processing -@cindex data extraction -@cindex tui scripts - -While PDFgui allows to collate data from a series of sequential -refinements, there are many data query options that are not -possible or very tedious with a GUI. A particularly tedious task would -be to extract bond lengths for every temperature refined in -a large series. The GUI could supply menus for these tasks, -but there are just too many options to serve them all. In fact, -the GUI just does not seem to be suitable interface and things -are much easier and more flexible to accomplish with Python scripts. - -The idea is to setup and run sequential refinement with PDFgui, but to -do complicated data extractions with simple Python scripts. -The PDFgui installation includes a @samp{tui} (Text User Interface) -module that allows simple access to the data in a PDFgui project. - -As a first example, let us assume that a converged sequential refinement -from @ref{Temperature series} has been saved under the same name as -@i{lmo-template.ddp}. -The following Python script extracts temperatures and refined -values of the lattice parameter @i{c} -@example -# python script -from diffpy.pdfgui import tui # import the tui library -prj = tui.LoadProject('lmo-template.ddp') # read PDFgui project file -temperatures = prj.getTemperatures() # list of temperature values -phases = prj.getPhases() # list of phase objects -tcount = len(temperatures) # number of temperature points - -for i in range(tcount): - Ti = temperatures[i] - # get the refined lattice parameter c - ci = phases[i].refined.lattice.c - print(Ti, ci) -@end example - -@noindent -Save the example above to a file, say ``lmo_refined_c.py'' and run -it as -@example -python lmo_refined_c.py -@end example -@noindent -Note that the script cannot load the unmodified @i{lmo-template.ddp} file, -because it does not have any refinement results. - - -The tutorial directory contains an advanced script -``tui_mno_bond_lengths.py'', which extracts the shortest -Mn-O bond lengths from the same PDFgui project. Please, see -the comments in the script for detailed explanation. - -To learn more about the tui module and about the objects -and functions that it returns, please see the API -documentation for diffpy.pdfgui at -@url{https://diffpy.github.io/diffpy.pdfgui}. - -Feel free to ask at the -@url{https://groups.google.com/d/forum/diffpy-users, diffpy-users} -group if you need help with data extracting scripts. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Nanoparticle structure -@section Nanoparticle structure -@cindex nanoparticle structure -@cindex nanoparticle diameter - -Determining the structure of a nanoparticle is notoriously difficult. -Diffraction experiments on nanoparticle samples yield broad diffraction -patterns that are hard to analyze using conventional crystallographic -approaches. The PDF analysis of nanoparticles is becoming increasingly common. -The PDF of a nanoparticle features sharp peaks conveying structural -information. The PDF signal gets damped at higher distances due to the -diminished number of pairs in the nanoparticle structure that contribute to -those distances. For certain simpler cases when nanoparticles can be assumed to -have spherical shape, characteristic parameters such as nanoparticle diameter -can be obtained. - -PDFgui is capable of modeling the effect of the finite nanoparticle size using -a spherical shape factor. Relevant PDF parameter is @i{spdiameter} which is the -diameter of the nanoparticle. This parameter is highly correlated with various -other parameters one would like to refine, such as anisotropic ADPs, scale -factors, correlated motion parameters and so on. The refinement procedure is -therefore rather delicate and the solutions are not as robust as we are used to -in cases of crystalline materials. - -To illustrate the program capabilities we present a case of CdSe nanoparticle -approximately 3nm in size. It useful to have PDF data for a crystalline -reference, where available/applicable. In this exercise we start from a -prepared project file @i{CdSe-nano.ddp}. This project contains two fits: the -first one is a bulk CdSe reference, and the other pertains to the CdSe -nanoparticle. For consistency the PDFs of both bulk and nano samples were -obtained using @i{Qmax} of 14 inverse Angstroms, although the bulk material PDF -could have been processed using a higher value. Synchrotron x-ray radiation -was used to obtain the data at 300 K, based on an experiment carried out at -6-ID-D at the Advanced Photon Source at Argonne National Laboratory. The -structure used for both data sets is wurtzite, space group P63mc. From -calibrations on Ni standard @i{Qdamp} value of 0.0486 was obtained and is used -here. - -We first carry out a refinement on the bulk reference. This is carried -out over a range from 1.7 to 19.8 Angstroms, using 7 parameters: lattice -parameters @i{a} and @i{c} (@i{@@1} and @i{@@2} respectively), selenium @i{z} -fractional coordinate (@i{@@11}), isotropic ADPs for Cd and Se (@i{@@21} and -@i{@@23} respectively), the data scale factor (@i{@@100}), and finally -correlated motion related quadratic term coefficient @i{delta2} (@i{@@200}). -The converged fit results in parameter values that can be further used for -reference when modeling the nanoparticle data. We note that while the fit is -reasonable, the values of the isotropic ADPs are enlarged. The fit can be -further improved if anisotropic ADPs are introduced, although the z-direction -related components will remain enlarged due to the stacking disorder present in -the structure. The referent value of 5.69 for @i{delta2} will be used as a -starting value for the nanoparticle fit. - -In the nanoparticle refinement we will use the same starting values for all the -parameters, except for @i{delta2} and the nanoparticle diameter, -@i{spdiameter}. The former is set to 5.69, and the later to 25 Angstroms. In -other cases an approximate value of the spherical nanoparticle size is usually -known, and it is the best to start from a reasonably good guess. Refining the -nanoparticle data reveals nanoparticle diameter of approximately 30 Angstroms, -as further illustrated in @ref{fig3-10}. Enlarged values of isotropic ADPs are -again observed, and the fit is reasonably good. Further improvements can be -obtained by introducing anisotropic ADPs, where again values related to the -z-direction will remain abnormally large most probably due to the stacking -related disorder. A detailed description of this system and successful -PDF modeling can be found in this publication: -@url{https://link.aps.org/doi/10.1103/PhysRevB.76.115413,Quantitative -size-dependent structure and strain determination of CdSe nanoparticles using -atomic pair distribution function analysis}. - -@float Figure,fig3-10 -@ScreenShot{images/fig3-10} -@caption{Fitting the structure of a nanoparticle: 3nm CdSe -nanoparticle example.} -@end float - -In general, a successful fitting scenario depends on particular details of a -structural problem one is determined to solve. The problem of determining the -structure of a nanoparticle remains difficult. PDFgui is not intended to -necessarily provide @i{the} solution, it is rather a helpful tool in the -process of determining new details and exploring the space of possible solution -candidates, yielding success in some instances. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Extras, PDF plotting, Nanoparticle structure, Top -@chapter Extras -@cindex extras - -@menu -* PDF plotting:: -* Displaying the structure:: -* Advanced usage and special needs:: -@end menu - -@node PDF plotting, Displaying the structure, Extras, Extras -@section PDF plotting -@cindex PDF plotting - -Plotting capabilities of PDFgui are provided through the plot control panel and -the quick-plot icon on the tool bar. A quick-plot is created by selecting a -node in the fit tree and then clicking the quick-plot icon in the tool bar. The -same quick-plot can be created by middle-clicking on a node in the fit tree. - -The plot control allows for selection of @i{x} and @i{y} coordinates for -plotting. The actual quantities that could be assigned to the coordinates is -determined by selection of either Fit, or Phase, or Data on the fit tree. The -choices for @i{x} and @i{y} coordinates varies depending on what is selected on -the fit tree. Special options like index, temperature and doping are available -as choices for @i{x} in cases of plotting multiple fit results from sequential -fitting protocols. The plot window provides essential functionality such as -zoom, pan, cursor coordinate tracking, and shifts. Features such as saving, -exporting and printing are also available. The principal intent of the plotting -functionality is to allow quick access to the fitting results to enhance the -scientific process. If data is selected on the fit tree, the user can plot -various aspects of the PDF function, such as data, model and difference PDF -profiles as a function of inter-atomic distance @i{r}. If the fit or the phase -are selected, then various parameters, both structural and internal can be -plotted instead. Since several formal plotting examples were given through the -tutorial exercise, and having simplicity of usage in mind, no other plotting -examples are provided, hoping that the usage is sufficiently simple for users -to master individually with ease. An example plot of Rw vs refinement step is -shown in @ref{fig4-01} for Ni example. - -@page - -@float Figure,fig4-01 -@ScreenShot{images/fig4-01} -@caption{Plotting window featuring Rw vs refinement step for Ni example. -The basic functionality for manipulating the plot is provided through icons -on the tool bar of the plotting window.} -@end float - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Displaying the structure, Advanced usage and special needs, PDF plotting, Extras -@section Displaying the structure -@cindex displaying the structure -@cindex structure visualization - -For those users with a structural visualizer available in their system -configuration, PDFgui allows for initial or refined structures to be visualized -by passing required structural information that program. This is achieved by -highlighting a desired phase on the fit tree, and then selecting @b{Plot -Initial Structure} or @b{Plot Refined Structure} from the ``Phases'' drop-down -menu. The quick-plot button (or middle-click) will also invoke the structure -viewer with the refined structure, or initial structure if the refined -structure does not yet exist. The control of the visualization is dependent on -the viewer used. The viewer can set under the ``Edit->Preferences'' menu, see -full details in @ref{Configuration of structure viewer}. - - -An example Ni structure visualization with AtomEye is shown in @ref{fig4-02}. - -@float Figure,fig4-02 -@ScreenShot{images/fig4-02} -@caption{Using AtomEye functionality (if installed on your system) for 3D -visualization of the initial and refined PDF structures: example of Ni -structure.} -@end float - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node Advanced usage and special needs, PDFgui reference sheets, Displaying the structure, Extras -@section Advanced usage and special needs -@cindex advanced usage -@cindex special needs - -The PDFgui is designed to accommodate most common modeling situations. However, -it does not encapsulate all the capabilities available within the modeling -engine, such as calculation of differential PDFs, handling atoms with special -scattering properties, etc. Advanced usage of PDFfit2 engine to resolve any -such special modeling need that user may have is available through usage of -Python scripts in the expert command line mode, similar to that featured in the -PDFFIT program. Handling these situations requires detailed knowledge of the -PDFfit2 syntax based on Python, which is beyond the scope of this user guide -and will be described elsewhere. Refer to the PDFfit2 API -(@url{https://www.diffpy.org/doc/pdffit2} and the diffpy-users -group (@url{https://groups.google.com/d/forum/diffpy-users}) for help with PDFfit2 -scripting. - -@c @node NODE-NAME, NEXT, PREVIOUS, UP -@node PDFgui reference sheets, PDFgui shortcut keys, Advanced usage and special needs, Top -@chapter PDFgui reference sheets -@cindex PDFgui reference sheets -@cindex reference sheets - -@menu -* PDFgui shortcut keys:: -* Command line arguments:: -* List of PDFfit2 variables:: -* PDF peak width:: -@end menu - -@node PDFgui shortcut keys -@section PDFgui shortcut keys -@cindex PDFgui shortcut keys -@cindex shortcuts -@cindex hot keys - - -@noindent -@b{Fit tree} - -@table @kbd - -@item Ctrl+A -Select all items in the fit tree. - -@item Ctrl+Shift+A -Once an object is selected on the fit tree, using this shortcut key will -select all the objects on the tree that are of the same type. For example, if -a single data set is selected on the tree, hitting this hot key will make all -the data sets belonging to all the fits in the tree to become selected. This is -particularly useful for simultaneously plotting various fit results across the -fit tree. - -@item Ctrl+C -Copy selected item. - -@item Ctrl+X -Copy and delete selected item. - -@item Ctrl+V -Paste previously copied item. Note that this will only paste the item to a -legal position in the tree. For example, a phase node cannot be pasted into an -empty tree. - -@end table - - -@noindent -@b{Phase configuration grid} - -@table @kbd - -@item Ctrl+A -Select all items. - -@item / -Extend existing selection by atom types or indices. - -@item Delete -Delete row. This will delete any wholly selected row. - -@item Ctrl++ -Add an atom to the grid. - -@item Ctrl+- -Same as Delete. - -@end table - - -@noindent -@b{Phase constraints grid} - -@table @kbd - -@item Ctrl+A -Select all items. - -@item / -Extend existing selection by atom types or indices. - -@item Delete -Delete contents of selected cells. - -@end table - - -@node Command line arguments -@section Command line arguments -@cindex command line options -@cindex startup options -@cindex pdfgui arguments - -PDFgui can be started with an existing project file if it is given -as a command line argument. If the project file cannot be loaded, -the program terminates without starting the GUI an returns nonzero -exit code. In addition the @command{pdfgui} executable accepts the -following command line options: - -@table @option - -@item -h, --help -Show a brief usage information. - -@item -V, --version -Show program version. - -@end table - -@page -@noindent -@b{Debugging} - -@table @option - -@item --db-noed -Disable exception catching to error report dialog. Unhandled -exceptions should then result in program crash. - -@item --db-nocf -No confirmation - exit without asking to save modified project. - -@item --db-pdb -Start Python debugger for unhandled error exceptions instead -of showing the error report dialog. - -@end table - - -@node List of PDFfit2 variables -@section List of PDFfit2 variables -@cindex PDFfit2 variables -@cindex variables - - -The following is the list of PDFfit2 variables, including their default values -in parentheses, and a brief description and a note, where appropriate. Note -that some of the variables used in PDFFIT are renamed in PDFfit2. The reference -of these changes is provided for the convenience and orientation of those users -that are used to the old naming scheme. - -@menu -* New variables:: -* Renamed variables:: -* Preserved variables:: -@end menu - -@c --------------------------------------------------------------------- -@node New variables, Renamed variables, List of PDFfit2 variables, List of PDFfit2 variables -@subheading New variables - -@defvr {Phase} spdiameter -(float @AA{}, default 0 @AA{}) @* -@var{spdiameter} is a particle diameter for PDF shape damping function. -Shape damping is not applied when @var{spdiameter} equals zero. -@end defvr - -@defvr {Phase} stepcut -(float @AA{}, default 0 @AA{}) @* -The PDF is truncated to zero at r-values greater than @var{stepcut}, when -positive. -@end defvr - -@defvr {Phase} anisotropy(n) -@b{anisotropy(n)} -(bool, inferred from @var{uij(n)} values) @* -Flag for anisotropic thermal displacements of atom n. -Setting of @var{anisotropy(n)} updates the @var{uij(n)} -or @var{uisoequiv(n)} values. -@end defvr - -@defvr {Phase} uisoequiv(n) -(float @AA{}@math{^2}, calculated from @var{uij(n)} values) @* -Isotropic thermal displacement of atom n or equivalent displacement for -anisotropic atom. For anisotropic sites the setting of @var{uisoequiv(n)} -scales values of the @var{uij(n)} elements. @var{uisoequiv(n)} can be -constrained only for isotropic atoms. -@end defvr - -@c --------------------------------------------------------------------- -@node Renamed variables, New variables, Preserved variables, List of PDFfit2 variables -@subheading Renamed variables - -@defvr {Dataset} dscale -(float unitless, @var{dsca[s]} in PDFFIT) @* -Scale factor for the selected dataset. -@end defvr - -@defvr {Dataset} qdamp -(float @AA{}@math{^-1}, default 0 @AA{}@math{^-1}, @var{qsig} in PDFFIT) @* -PDF Gaussian dampening envelope due to limited Q-resolution. -Not applied when equal to zero. The Gaussian envelope is of the form -@EquationMark{} -@tex -$$ B(r) = e^{-{(r Q_{damp})^{2} \over 2} } $$ -@end tex -@end defvr - -@defvr {Dataset} qbroad -(float @AA{}@math{^-1}, default 0 @AA{}@math{^-1}, @var{qalp} in PDFFIT) @* -PDF peak broadening from increased intensity noise at high Q. -Not applied when equal zero. -See the definition of the @ref{PDF peak width} for a detailed explanation. -@end defvr - -@defvr {Phase} uij(n) -(float @AA{}@math{^2}, ij=(11, 22, 33, 12, 13, 23), @var{u[i,n]} in PDFFIT) @* -Elements of anisotropic displacement tensor of atom n. -@end defvr - -@defvr {Phase} occ(n) -(float unitless, @var{o[n]} in PDFFIT) @* -Occupancy of site n. -@end defvr - -@defvr {Phase} pscale -(float unitless, @var{csca[p]} in PDFFIT) @* -Scale factor of the current phase. -@end defvr - -@defvr {Phase} delta1 -(float @AA{}, default 0 @AA{}, @var{gamm} in PDFFIT) @* -Coefficient for (1/r) contribution to the peak sharpening. -See the definition of the @ref{PDF peak width} for a detailed explanation. -@end defvr - -@defvr {Phase} delta2 -(float @AA{}@math{^2}, default 0 @AA{}@math{^2}, @var{delt} in PDFFIT) @* -Coefficient for 1/r@math{^2} contribution to the peak sharpening. -See the definition of the @ref{PDF peak width} for a detailed explanation. -@end defvr - -@defvr {Phase} sratio -(float unitless, default 1, @var{srat} in PDFFIT) @* -Sigma ratio for bonded atoms. Reduction factor for PDF peak width accounting -for correlated motion of bonded atoms. -@end defvr - -@c --------------------------------------------------------------------- -@node Preserved variables, PDF peak width, Renamed variables, List of PDFfit2 variables -@subheading Preserved variables - -@defvr {Dataset} qmax -(float @AA{}@math{^-1}, default 0 @AA{}) @* -@var{qmax} cutoff is an experimental parameter having fixed -value determined during the PDF data processing in the Fourier -transform step. Finite data range used in the Fourier transform -is a source of termination ripples. Termination ripples are -@i{not} applied in PDF calculation when @var{qmax} is set to zero. The -effect is simulated using fast Fourier transformation (FFT). -The original array of @i{G} values is first padded by the same number of zeros -and then by more zeros to reach the next power of 2. The padded -@i{G} array is transformed by FFT and any coefficients @i{F} that correspond -to @i{Q} values greater than @var{qmax} are reset to zero. The adjusted -coefficient array @i{F} is then transformed by inverse FFT back to @i{G'} -and cut out at the original length of @i{G}. The imaginary components -in @i{G'} are ignored as they are only due to round-off errors. -@end defvr - -@defvr {Phase} lat(i) -(float @AA{} or degrees, i=1,2,...,6) @* -Lattice parameters a, b, c, alpha, beta, gamma of the current phase. -Can be also used as lat('a') etc. -@end defvr - -@defvr {Phase} {x(n), y(n), z(n)} -(float unitless) @* -Fractional coordinates for atom n. -@end defvr - -@defvr {Phase} rcut -(float @AA{}, default 0 @AA{}) @* -Radius cutoff for applying @var{sratio} sharpening factor. -@end defvr - -@c --------------------------------------------------------------------- -@node PDF peak width -@section PDF peak width - -The PDF peak width contains contributions from thermal and zero point -displacements as well as static disorder. For large distances @i{r} the motion -of the two contributing atoms is uncorrelated. For small distances, however, -the motion can be strongly correlated leading to a sharpening of the first -peak(s) in the observed PDF. PDFfit2 provides three different correction terms -for the PDF peak width. The final width is given by -@EquationMark{} -@tex -$$ -\sigma_{ij} = \sigma^{\prime}_{ij} \sqrt{ 1 - {\delta_1 \over r_{ij}} - - {\delta_2 \over r_{ij}^2} + Q_{broad}^2 \, r_{ij}^2 } -$$ -@end tex - -@noindent Here the primed sigma is the peak width without correlation, which is -computed from the anisotropic displacement parameters. The first two terms -correct for the effects of correlated motion. Within the scope of the users -guide, we just mention that the term @var{delta2/r@math{^2}} describes the low -temperature behavior, and term @var{delta1/r} describes the high temperature -case. Since the two parameters are highly correlated, one will in practice -choose which one to refine. The last term in the equation models the PDF peak -broadening as a result of the Q resolution of the diffractometer. In many cases -this term will only be significant for refinements over wider @i{r}-ranges. -Note that the Q resolution also results in an exponential dampening of the PDF -peaks which is modeled using the parameter @var{qdamp}. - -@c Ending of a TexInfo File -@node Index, Top -@unnumbered Index - -@printindex cp - -@bye diff --git a/doc/manual/redistribution.texinfo b/doc/manual/redistribution.texinfo deleted file mode 100644 index 9d5f5dae..00000000 --- a/doc/manual/redistribution.texinfo +++ /dev/null @@ -1,19 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -@bigskip{} - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -@bigskip{} - -Redistributions in binary form must reproduce the above copyright notice, this -list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -@bigskip{} - -Neither the names of COLUMBIA UNIVERSITY, MICHIGAN STATE UNIVERSITY nor the -names of their contributors may be used to endorse or promote products derived -from this software without specific prior written permission. diff --git a/doc/manual/Farrow-jpcm-2007.pdf b/doc/source/Farrow-jpcm-2007.pdf similarity index 100% rename from doc/manual/Farrow-jpcm-2007.pdf rename to doc/source/Farrow-jpcm-2007.pdf diff --git a/doc/manual/Proffen-jac-1999.pdf b/doc/source/Proffen-jac-1999.pdf similarity index 100% rename from doc/manual/Proffen-jac-1999.pdf rename to doc/source/Proffen-jac-1999.pdf diff --git a/doc/source/examples.rst b/doc/source/examples.rst new file mode 100644 index 00000000..712686f4 --- /dev/null +++ b/doc/source/examples.rst @@ -0,0 +1,270 @@ +.. _examples: + +Examples +######## + +=================== +Sequential fitting +=================== + +------------------------- +r series +------------------------- + +In certain modeling situations the user could benefit from fitting a data set through a series of refinements that differ one from another by the corresponding fitting ranges. An example of this when one wants to study the details of the local- to average-structure crossover in a complex material. PDFgui has a pre-written macro that automates the setup of this type of refinement. + + +1. Create a fit as in :ref:`lesson1`. + +2. Select the fit from the fit tree. From the “Fits” menu, select Macros, and choose “r-Series” option. The Current Action panel will display following setting requirements + +3. type "5" for the first upper limit, "20" for the last upper limit, and the step of "5" Angstroms. Leave the second row blank. + +4. click “OK” in the current action panel and 4 new fits with desired incremental limits are geberated below the original fit. + + .. figure:: images/fig3-05.png + :align: center + :figwidth: 100% + + Figure 3.5: Appearance of the setup panel for specifying an incremental r-series fit conditions. + + + The first row deals with the increment setup of the upper r of the refinements. User should specify the first and the last fit maximum r-value, and corresponding step (increment), all in units of Angstroms. + + In the second row information is needed to specify the lower r refinement limit. Again, the user sets the first and the last value, and step. This allows for a box car of either fixed or variable width to be defined. If the second row is left blank, the corresponding refinement series will be with incremental maximum r only, and fixed lower limit. + +5. Select all four of them and execute the refinement. Once the sequence is done, you can review the results using the plot control. + + + +.. _temperature-series: +---------------------------------------- +temperature series +---------------------------------------- + +Frequently, one must handle a large number of data sets originating from a single sample collected at various temperatures. One of the common modeling schemes in such cases is to perform sequential fitting of such data series, which is known to yield well behaved modeling parameters. + +Input files: + +- :download:`Temperature data series ` containing: + + 1. a temperature series of data collected on LaMnO3 at various temperatures from 300 K to 1150 K. + 2. a template project named ``lmo-template.dpp``. + +LaMnO3 exhibits Jahn-Teller (JT) order-disorder phase transition just above 700 K, where the long range orbital order is lost at high temperature, but the local JT distortion survives. The formal space group does not change at this transition. + +The data collected at NPDF instrument at LANSCE at Los Alamos National Laboratory. The project consists of a fit called lmo-pbnm , which will serve as a template and which contains *Pbnm* phase of LaMnO3 and a 300 K data set. The fit refinement is set up to cover 1.7-19.5 Angstroms range, and all the parameter values are set to their converged values for this temperature. The fit setup uses isotropic ADPs for all atomic sites. + + + +1. open ``lmo-template.dpp`` use "Open Project" selection from "File" menu. +2. Select Macros from the “Fit” menu on the menu bar, and choose “Temperature Series”. The current action panel will reflect the selection. +3. Click on “Add” button. Using “Shift” and mouse-select operation you should select all the data sets mentioned in the above list, except the 300 K one, as this is already in the template fit, and then press “Open”. + + + .. figure:: images/fig3-06.png + :align: center + :figwidth: 100% + + Figure 3.6: Setting up a T-series sequential refinement for LaMnO3. Ordering by temperature will ensure that the fits are linked correctly. + +4. Order the data by temperature. The data can be ordered by temperature by clicking the “Temperature” header. + + Since the files contain meta-data, the GUI is going to pick up temperature information from the files. User should verify that the information is correct. + +5. Ensure that the template fit is selected on the fit tree. Click on the “OK” button. This will generate a sequence of linked fits in the fit tree in the order of the temperature increase. Each fit is linked to the previous, except for the template fit for the 300 K data + +6. Highlight all the fits in the fit tree which can be done by selecting a fit and hitting “Ctrl”+“Shift”+“A” . + +7. start the sequential refinement by clicking |gear|. + +8. On the plot control choose the temperature for x axis, and select the Uiso of O2 (for example atom 20) for the y axis. Clicking “Plot” will display the plot of Uiso(20) vs T. + + + .. figure:: images/fig3-07.png + :align: center + :figwidth: 100% + + + Figure 3.7: Displaying the refinement results as a function of external parameter: T-series refinement of LaMnO3, example of isotropic ADP of oxygen atom on general position in *Pbnm* setting. Notable are the offsets just above 700 K (Jahn-Teller transition), and at around 1000 K when sample converts from orthorhombic to rhombohedral symmetry. + + +Despite quite high temperatures, an onset of the static offset above the transition temperature is clearly marked by this parameter, as apparent in Figure 3.7. Curious user could repeat the same T-series refinement restricting the refinement range upper limit to say 5-6 Angstroms and observe the outcome. The refinement sequence execution should be very quick in this case + + +----------------------------------- +doping series +----------------------------------- + +Fitting a series of PDF data that correspond to a set of samples with related chemistry, such as various doping series, represents another important sequential modeling aspect that is supported in PDFgui. + + +Input files: + +- :download:`Doping data series ` containing: + + 1. series of Ca-doped LaMnO3 samples with various Ca content data from 0 to 0.28. + 2. a template project named ``lcmo-template.dpp``. + + +The data are collected on LaMnO3 at GEM instrument at ISIS, UK. The project consists of a fit called lcmo-pbnm, which will serve as a template and which contains *Pbnm* phase of LaMnO3 and a 10 K data set, x000t010q35.gr. + +The difference here with respect to the template used in the previous example is that Ca sites are introduced in the structure, but are assigned zero occupancy. However, existence of the +Ca dopant species in the structure of the template is essential for the macro to operate. Also, +upper limit used in Fourier transform for obtaining this set of data is 35 inverse Angstroms, +in contrast to 32 inverse Angstroms in previous example. + +1. open ``lcmo-template.dpp`` use "Open Project" selection from "File" menu. +2. Select Macros from the “Fit” menu on the menu bar, and choose “Doing series”. The current action panel will reflect the selection. + + + .. figure:: images/fig3-08.png + :align: center + :figwidth: 100% + + Figure 3.8: After loading of the Ca-doping data series of LaMnO3 system, proper doping assignment needs to be carried out, as the doping levels introspected from the file names in this example incorrectly reflect the scientific situation. Note that dopant atom has to be present in the template seed used to generate the linked sequence of fits. + + +3. Click on “Add” button. Using “Shift” and mouse-select operation you should select all the data sets mentioned in the above list, and then press “Open” button. + + +3. Specify the base element and dopant. Verify the doping information and fix them by clicking on the corresponding values and simply typing in the correct values. + + It should be noted at this point that the data files do not contain any relevant meta-data in the file headers. the GUI fill the fields by picking up doping information from the file names. These values should be checked manually. + +4. Order the data by clicking the header. + +5. Ensure that the template fit is selected on the fit tree. Click on the “OK” button. This will generate a sequence of linked fits in the fit tree in the order of the Ca content increase. + +6. Highlight all the fits in the fit tree which can be done by selecting a fit and hitting “Ctrl”+“Shift”+“A” . + +After the convergence is achieved for all the fits in the fit tree, the results can be displayed +graphically such that various converged fit parameters are plotted versus Ca content. + + + + .. figure:: images/fig3-09.png + :align: center + :figwidth: 100% + + Figure 3.9: Sequence of refined parameters, such as lattice constants, can be plotted vs doping using PDFgui plotting facilities. Figure features lattice parameter *b* in *Pbnm* space group setting for series of Ca-doped LaMnO3 samples for doping concentrations between 0 and 0.28 at 10 K temperature. + + + + +================================================= +Advanced post-processing of sequential refinement +================================================= + +While PDFgui allows to collate data from a series of sequential refinements, there are many data query options that are not possible or very tedious with a GUI. A particularly tedious +task would be to extract bond lengths for every temperature refined in a large series. In fact, the GUI just does not seem to be suitable interface and things are much easier +and more flexible to accomplish with Python scripts. + +As a first example, let us assume that a converged sequential refinement from :ref:`temperature-series` , has been saved under the same name as *lmotemplate.ddp*. The following Python script extracts temperatures and refined values of the lattice parameter c:: + + # python script + from diffpy.pdfgui import tui + # import the tui library + prj = tui.LoadProject('lmo-template.ddp') # read PDFgui project file + temperatures = prj.getTemperatures() + # list of temperature values + phases = prj.getPhases() + # list of phase objects + tcount = len(temperatures) + # number of temperature points + for i in range(tcount): + Ti = temperatures[i] + # get the refined lattice parameter c + ci = phases[i].r + + +Save the example above to a file, say “lmo refined c.py” and run it as:: + + python lmo_refined_c.py + +Note that the script cannot load the unmodified *lmo-template.ddp* file, because it does not have any refinement results. + +The tutorial directory contains an advanced script :download:`tui mno_bond_lengths.py `, which +extracts the shortest Mn-O bond lengths from the same PDFgui project. Please, see the +comments in the script for detailed explanation. + +To learn more about the tui module and about the objects and functions that it returns, please see the API documentation for `diffpy.pdfgui `_ . + + +Feel free to ask at the `diffpy-users `_ group if you need help with data extracting scripts. + + + +====================== +Nanoparticle structure +====================== + +Determining the structure of a nanoparticle is notoriously difficult. Diffraction experiments +on nanoparticle samples yield broad diffraction patterns that are hard to analyze using +conventional crystallographic approaches. The PDF analysis of nanoparticles is becoming +increasingly common. + + +The PDF signal gets damped at higher distances due to the diminished number +of pairs in the nanoparticle structure that contribute to those distances. For certain simpler +cases when nanoparticles can be assumed to have spherical shape, characteristic parameters +such as nanoparticle diameter can be obtained. + +PDFgui is capable of modeling the effect of the finite nanoparticle size using a spherical +shape factor. Relevant PDF parameter is ``spdiameter`` which is the diameter of the nanoparticle. This parameter is highly correlated with various other parameters one would like to +refine, such as ``anisotropic ADPs``, ``scale factors``, ``correlated motion parameters`` and so on. +The refinement procedure is therefore rather delicate and the solutions are not as robust as +we are used to in cases of crystalline materials. + +To illustrate the program capabilities we present a case of CdSe nanoparticle approx- +imately 3nm in size. + +Input files: + +- :download:`Doping data series ` containing: + + 1. two PDF data collected from the bulk and naoparticle material. + 2. a project named ``CdSe-nano.ddp`` + 3. a structure model named ``CdSe-wurtzite.stru`` + + +This project contains two fits: the first one is a bulk CdSe reference, and the other pertains to the CdSe nanoparticle. For consistency the PDFs of both bulk and nano samples were obtained using Qmax of 14 inverse Angstroms, although the bulk material PDF could have been processed using a higher value. +Synchrotron x-ray radiation was used to obtain the +data at 300 K, based on an experiment carried out at 6-ID-D at the Advanced Photon +Source at Argonne National Laboratory. + + +The structure used for both data sets is wurtzite, +space group P63mc. From calibrations on Ni standard Qdamp value of 0.0486 was obtained +and is used here. + + +1. Refine the parameter on the bulk references. + + The fit is carried out over a ``Fit Range`` from 1.7 to 19.8 Angstroms, using 7 parameters: lattice parameters ``a`` and ``c`` (``@1`` and ``@2`` respectively), selenium ``z`` fractional coordinate (``@11``), isotropic ADPs for Cd and Se (``@21`` and ``@23`` respectively), the data ``Scale Factor`` (``@100``), and finally correlated motion related quadratic term coefficient ``delta2`` (``@200``). + + We note that while the fit is reasonable, the values of the isotropic ADPs are enlarged. The fit can be further improved if anisotropic ADPs are introduced, although the z-direction related components will remain enlarged due to the stacking disorder present in the structure. The referent value of 5.69 for ``delta2`` will be used as a starting value for the nanoparticle fit. + + +2. Refine the parameter on the nanoparticle. + + we will use the same starting values for all the parameters, except for ``delta2`` and the nanoparticle diameter, ``spdiameter``. The former is set to 5.69, and the later to 25 Angstroms. + + + In other cases an approximate value of the spherical nanoparticle size is usually known, and it is the best to start from a reasonably good guess. Refining the nanoparticle data reveals nanoparticle diameter of approximately 30 Angstroms, as further illustrated in Figure 3.10. Enlarged values of isotropic ADPs are again observed, and the fit is reasonably good. + + + .. figure:: images/fig3-10.png + :align: center + :figwidth: 100% + + Figure 3.10: Fitting the structure of a nanoparticle: 3nm CdSe nanoparticle example. + + +Further improvements can be obtained by introducing anisotropic ADPs, where again values related to the z-direction will remain abnormally large most probably due to the stacking related disorder.A detailed description of this system and successful PDF modeling can be found in this publication: `Quantitative size-dependent structure and strain determination of CdSe nanoparticles using atomic pair distribution function analysis `_. + + +In general, a successful fitting scenario depends on particular details of a structural prob- lem one is determined to solve. The problem of determining the structure of a nanoparticle remains difficult. PDFgui is not intended to necessarily provide the solution, it is rather a helpful tool in the process of determining new details and exploring the space of possible solution candidates, yielding success in some instances. + +.. |gear| image:: /images/gear-icon.png +.. |stop| image:: /images/stop-icon.png diff --git a/doc/source/extras.rst b/doc/source/extras.rst new file mode 100644 index 00000000..6556b306 --- /dev/null +++ b/doc/source/extras.rst @@ -0,0 +1,118 @@ +.. _extras: + +Extras +###### + +============ +PDF plotting +============ + + +Plotting capabilities of PDFgui are provided through the plot control panel and the quick-plot icon on the tool bar. A quick-plot is created by selecting a node in the fit tree and +then clicking the quick-plot icon in the tool bar. The same quick-plot can be created by +middle-clicking on a node in the fit tree. + + +The plot control allows for selection of x and y coordinates for plotting. +The +**actual quantities** that could be assigned to the coordinates is determined by selection of either ``Fit``, +or ``Phase``, or ``Data`` on the fit tree. The choices for x and y coordinates varies depending +on what is selected on the fit tree. +**Special options** like *index*, *temperature* and *doping* +are available as choices for x in cases of plotting multiple fit results from sequential fitting +protocols. The **plot window** provides essential functionality such as *zoom*, *pan*, *cursor* +*coordinate tracking*, and *shifts*. Features such as *saving*, *exporting* and *printing* are also +available. + +The principal intent of the plotting functionality is to allow quick access to the +fitting results to enhance the scientific process. If ``Data`` is selected on the fit tree, the user +can plot various aspects of the PDF function, such as data, model and difference PDF +profiles as a function of inter-atomic distance r. If the ``Fit`` or the ``Phase`` are selected, then +various parameters, both structural and internal can be plotted instead. + + +Since several formal +plotting examples were given through the tutorial exercise, and having simplicity of usage in +mind, no other plotting examples are provided, hoping that the usage is sufficiently simple +for users to master individually with ease. An example plot of Rw vs refinement step is +shown in Figure 4.1 for Ni example. + + + + .. figure:: images/fig4-01.png + :align: center + :figwidth: 100% + + Figure 4.1: Plotting window featuring Rw vs refinement step for Ni example. The basic functionality for manipulating the plot is provided through icons on the tool bar of the plotting window. + + + +======================== +Displaying the structure +======================== + +PDFgui can visualize 3D structures by displaying them with an external visualization program. The visualization program needs to be specified together with a suitable structure +format in the “Edit → Preferences” menu in PDFgui. The structure plotting feature has +been tested with the following programs: + +============================================ =============================== +AtomEyeAtomEye structure viewer, XCFG format http://li.mit.edu/A/Graphics/A/ +============================================ =============================== +PyMOLPyMOL structure viewer, PDB format https://www.pymol.org +============================================ =============================== + +**A note for AtomEye users:** + +AtomEye requires its standard output is connected to a terminal. On Unix this happens +when pdfgui is started from a terminal. However if you prefer to start PDFgui using a +desktop shortcut or via “Run Application” dialog of the window manager, you need to put +the following information to the “Edit → Preferences” menu of PDFgui.:: + + Structure viewer executable: xterm + Argument string: -iconic -e ATOMEYE %s + Structure format: xcfg + +In the above, ``ATOMEYE`` is the path to the ATOMEYE executable. + +For Cygwin users, the workaround is to launch the executable from a batch file. Batch +files can only run in a command window on Windows and so AtomEye’s requirements would +be for sure satisfied. In addition the batch file can be used to adjust environment variables:: + + atomeye.bat + ------------------------------------------------------------------------ + set DISPLAY=localhost:0 + set PATH=C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;C:\ATOMEYE_DIR;%PATH% + start A.exe %* + ------------------------------------------------------------------------ + + Here ``ATOMEYE_DIR`` needs to be replaced with a proper path. Make sure that the X-server +application included with Cygwin is started. + + +With a structural visualizer available, PDFgui +allows for initial or refined structures to be visualized by passing required structural information that program. This is achieved by highlighting a desired phase on the ``Fit Tree``, and +then selecting ``Plot Initial Structure`` or ``Plot Refined Structure`` from the “Phases” drop-down menu. The quick-plot button (or middle-click) will also invoke the structure viewer +with the refined structure, or initial structure if the refined structure does not yet exist. The control of the visualization is dependent on the viewer used. + +An example Ni structure visualization with AtomEye is shown in Figure 4.2. + + + + .. figure:: images/fig4-02.png + :align: center + :figwidth: 100% + + Figure 4.2: Using AtomEye functionality (if installed on your system) for 3D visualization of the initial and refined PDF structures: example of Ni structure. + +================================ +Advanced usage and special needs +================================ + +The PDFgui is designed to accommodate most common modeling situations. However, +it does not encapsulate all the capabilities available within the modeling engine, such as +calculation of differential PDFs, handling atoms with special scattering properties, etc. + +Advanced usage of PDFfit2 engine to resolve any such special modeling need that user +may have is available through usage of Python scripts in the expert command line mode, +similar to that featured in the PDFFIT program. Handling these situations requires de-tailed knowledge of the PDFfit2 syntax based on Python, which is beyond the scope of +this user guide and will be described elsewhere. Refer to the `PDFfit2 API `_ and the `diffpy-users group `_ for help with PDFfit2 scripting. diff --git a/doc/manual/images/Makefile b/doc/source/images/Makefile similarity index 100% rename from doc/manual/images/Makefile rename to doc/source/images/Makefile diff --git a/doc/manual/images/eq-01.png b/doc/source/images/eq-01.png similarity index 100% rename from doc/manual/images/eq-01.png rename to doc/source/images/eq-01.png diff --git a/doc/manual/images/eq-02.png b/doc/source/images/eq-02.png similarity index 100% rename from doc/manual/images/eq-02.png rename to doc/source/images/eq-02.png diff --git a/doc/manual/images/fig2-01.png b/doc/source/images/fig2-01.png similarity index 100% rename from doc/manual/images/fig2-01.png rename to doc/source/images/fig2-01.png diff --git a/doc/manual/images/fig2-02.png b/doc/source/images/fig2-02.png similarity index 100% rename from doc/manual/images/fig2-02.png rename to doc/source/images/fig2-02.png diff --git a/doc/manual/images/fig2-03.png b/doc/source/images/fig2-03.png similarity index 100% rename from doc/manual/images/fig2-03.png rename to doc/source/images/fig2-03.png diff --git a/doc/manual/images/fig2-04.png b/doc/source/images/fig2-04.png similarity index 100% rename from doc/manual/images/fig2-04.png rename to doc/source/images/fig2-04.png diff --git a/doc/manual/images/fig2-05.png b/doc/source/images/fig2-05.png similarity index 100% rename from doc/manual/images/fig2-05.png rename to doc/source/images/fig2-05.png diff --git a/doc/manual/images/fig2-06.png b/doc/source/images/fig2-06.png similarity index 100% rename from doc/manual/images/fig2-06.png rename to doc/source/images/fig2-06.png diff --git a/doc/manual/images/fig2-07.png b/doc/source/images/fig2-07.png similarity index 100% rename from doc/manual/images/fig2-07.png rename to doc/source/images/fig2-07.png diff --git a/doc/manual/images/fig2-08.png b/doc/source/images/fig2-08.png similarity index 100% rename from doc/manual/images/fig2-08.png rename to doc/source/images/fig2-08.png diff --git a/doc/manual/images/fig2-09.png b/doc/source/images/fig2-09.png similarity index 100% rename from doc/manual/images/fig2-09.png rename to doc/source/images/fig2-09.png diff --git a/doc/manual/images/fig2-10.png b/doc/source/images/fig2-10.png similarity index 100% rename from doc/manual/images/fig2-10.png rename to doc/source/images/fig2-10.png diff --git a/doc/manual/images/fig2-11.png b/doc/source/images/fig2-11.png similarity index 100% rename from doc/manual/images/fig2-11.png rename to doc/source/images/fig2-11.png diff --git a/doc/manual/images/fig3-01.png b/doc/source/images/fig3-01.png similarity index 100% rename from doc/manual/images/fig3-01.png rename to doc/source/images/fig3-01.png diff --git a/doc/manual/images/fig3-02.png b/doc/source/images/fig3-02.png similarity index 100% rename from doc/manual/images/fig3-02.png rename to doc/source/images/fig3-02.png diff --git a/doc/manual/images/fig3-03.png b/doc/source/images/fig3-03.png similarity index 100% rename from doc/manual/images/fig3-03.png rename to doc/source/images/fig3-03.png diff --git a/doc/manual/images/fig3-04.png b/doc/source/images/fig3-04.png similarity index 100% rename from doc/manual/images/fig3-04.png rename to doc/source/images/fig3-04.png diff --git a/doc/manual/images/fig3-05.png b/doc/source/images/fig3-05.png similarity index 100% rename from doc/manual/images/fig3-05.png rename to doc/source/images/fig3-05.png diff --git a/doc/manual/images/fig3-06.png b/doc/source/images/fig3-06.png similarity index 100% rename from doc/manual/images/fig3-06.png rename to doc/source/images/fig3-06.png diff --git a/doc/manual/images/fig3-07.png b/doc/source/images/fig3-07.png similarity index 100% rename from doc/manual/images/fig3-07.png rename to doc/source/images/fig3-07.png diff --git a/doc/manual/images/fig3-08.png b/doc/source/images/fig3-08.png similarity index 100% rename from doc/manual/images/fig3-08.png rename to doc/source/images/fig3-08.png diff --git a/doc/manual/images/fig3-09.png b/doc/source/images/fig3-09.png similarity index 100% rename from doc/manual/images/fig3-09.png rename to doc/source/images/fig3-09.png diff --git a/doc/manual/images/fig3-10.png b/doc/source/images/fig3-10.png similarity index 100% rename from doc/manual/images/fig3-10.png rename to doc/source/images/fig3-10.png diff --git a/doc/manual/images/fig4-01.png b/doc/source/images/fig4-01.png similarity index 100% rename from doc/manual/images/fig4-01.png rename to doc/source/images/fig4-01.png diff --git a/doc/manual/images/fig4-02.png b/doc/source/images/fig4-02.png similarity index 100% rename from doc/manual/images/fig4-02.png rename to doc/source/images/fig4-02.png diff --git a/doc/source/images/gear-icon.png b/doc/source/images/gear-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..564654042ac9263571affb96eea1780be8495bfd GIT binary patch literal 1778 zcmZ{kc`(}v8^?b_9C0gAwBaSrmZ+l*)g|_4iEZN8*xHp6rH2S2*c2tH<3&?Pw7S~V z)h%iA7S*tnRZJD{dWle~j%ZO=o$c0R2BzP^QMRHC0xWU9K<0S0*MAK7lv@NU;C_W)=WQWEOJ?0FvwhV1)z#uB8B= zPrct7;3j)0Uij7<1f>6(%69H8nWL15#d#?$%j-Z4PDfR;ugNUAI2xWHCwxG^2LRBQ zSP(-9e$jphMPmz0FreBD=jI&@B-uw<~)bja7-y&0K3ZQ=Ysrc>4VPQ*&Ea zZ@4qX18E!S_Y0fxJV58<9&Ho!eax2%jMlUUg+x2!)157Ro9Dtqk;z$) zTP$I;Do{5rg8D=y_@sqW&9@k)IAQFR&nomhK)E{HzD&=_yI$LY{f|{gN z9R&!?W(UIEvJ;#4HvydQsb(tb(J#yajPUr0o}rAf*_$Q4aU6Xgn1Q-n&6fGls`#UB z29ohC?p$<=?axS}axoJ!i#0?CI<_1k*NRZpy0y*mIA#mB6bRmVc}}1~wau|OMBuHG zq3p>0kjqE3Vl-`)?Am(J<)tSiUrC-`f%^)8M9Pwt+?($>t!MaMeW$r{5N**ni};|B zS@c(goMGp^P?eA5{+d+%>Ea6_X|4Z|U65YTnnF=#CO4?EWsw)*!d!kH3KX+afR@=l zG{6u~LObu^M~eE4ir84zf|>DI`AzZeZ)GMUik(ZP@B0cDdoY{yH5YfSZcU=GYp;Xj9xM3Qjt->Z^tHF(tvnqDp(`^m_W=SlhCbZJ}K zZTe|aNSWJgd=FmsGX|t+5l0?daAx1`5pA=0`zLPGS*f^+Q|MGUF)^`_dB>@G{z*Ld z(DH<8t5t9Bkd$bp~ozP%8Ujtkg%tIu(Ji{_48 z2MK2{OumAZa3lj`O(8gjMChQ{+kfffiPY`n_;E?#{fs?Q-(PmW?BE(t(hmIK6&7V- z>|aqz)2~C_%v%_w&QoyMdMCqIgPpam!C?*O*WNkq2u(GpIQ&#yh-jd!H+_5d z;a^>CGbx!QT6p5>jMyk`#%lJDKR64DYg9MDUjnRyY;v{Y(~F^bhg~9;%W)&W2zC9H z)|$~#a}kcbZ1P@kyF$EShI|F6+~pUdiqD$gv*^>Vdgu$+?&$nHYf8#5dO_CU-J9v5 z(Ca(gLj%~6GjqoB)M>9Zgwx~O`R$gUl0%G$6ixw`(_Fn@(C8;9!?f*iX0FMB|LiDl zJD^XWf0hG293s2}M;oZEhR#o^8&YrNij!w|$RERTU+X{a@784bgsUum584&<%(2V_ zsp-;Gl-xVPWObH~j<*JBvOf-K6-(>$F`l76dy{_gFgS&Z`*mpk)1K$3nB25KI&r;( zS`}CVHsaN*@d?lh+FG<(RLGhhOsGLrP`IgnnyGHdm78+hS@qD9ZY{ljbYoK5drEG1 zuTF5(ihe-(a@|BZmTd!#_CQ!0lGAKafeQZbY~ycQgQK~nW=XjqMvI6t?S+ee^Ig1I zR?4$N8f*9|m|%Mhm>(1eqxIQ$B~5&r0sdH%sdtG!nD1^01}}K$7koG0`r{XA^L7~V z@3B6c$>M5RyPGF^1t&&^Cth@opk0&+;9&3IY-{gmdjd_ccW`xZc6CG_v$uD(w@)Y> znEo#yCN47SQu6-?Aj3)FGQjFT35iiL7ZVc0W2pbjIJ^8i#ChiXd>I2^z3^b2Cn@7k DQ}iWf literal 0 HcmV?d00001 diff --git a/doc/manual/images/originals/fig2-01.png b/doc/source/images/originals/fig2-01.png similarity index 100% rename from doc/manual/images/originals/fig2-01.png rename to doc/source/images/originals/fig2-01.png diff --git a/doc/manual/images/originals/fig2-01.xcf b/doc/source/images/originals/fig2-01.xcf similarity index 100% rename from doc/manual/images/originals/fig2-01.xcf rename to doc/source/images/originals/fig2-01.xcf diff --git a/doc/manual/images/originals/fig2-02.png b/doc/source/images/originals/fig2-02.png similarity index 100% rename from doc/manual/images/originals/fig2-02.png rename to doc/source/images/originals/fig2-02.png diff --git a/doc/manual/images/originals/fig2-03.png b/doc/source/images/originals/fig2-03.png similarity index 100% rename from doc/manual/images/originals/fig2-03.png rename to doc/source/images/originals/fig2-03.png diff --git a/doc/manual/images/originals/fig2-04.png b/doc/source/images/originals/fig2-04.png similarity index 100% rename from doc/manual/images/originals/fig2-04.png rename to doc/source/images/originals/fig2-04.png diff --git a/doc/manual/images/originals/fig2-05.png b/doc/source/images/originals/fig2-05.png similarity index 100% rename from doc/manual/images/originals/fig2-05.png rename to doc/source/images/originals/fig2-05.png diff --git a/doc/manual/images/originals/fig2-06.png b/doc/source/images/originals/fig2-06.png similarity index 100% rename from doc/manual/images/originals/fig2-06.png rename to doc/source/images/originals/fig2-06.png diff --git a/doc/manual/images/originals/fig2-07.png b/doc/source/images/originals/fig2-07.png similarity index 100% rename from doc/manual/images/originals/fig2-07.png rename to doc/source/images/originals/fig2-07.png diff --git a/doc/manual/images/originals/fig2-08.png b/doc/source/images/originals/fig2-08.png similarity index 100% rename from doc/manual/images/originals/fig2-08.png rename to doc/source/images/originals/fig2-08.png diff --git a/doc/manual/images/originals/fig2-09.png b/doc/source/images/originals/fig2-09.png similarity index 100% rename from doc/manual/images/originals/fig2-09.png rename to doc/source/images/originals/fig2-09.png diff --git a/doc/manual/images/originals/fig2-10.png b/doc/source/images/originals/fig2-10.png similarity index 100% rename from doc/manual/images/originals/fig2-10.png rename to doc/source/images/originals/fig2-10.png diff --git a/doc/manual/images/originals/fig2-11.png b/doc/source/images/originals/fig2-11.png similarity index 100% rename from doc/manual/images/originals/fig2-11.png rename to doc/source/images/originals/fig2-11.png diff --git a/doc/manual/images/originals/fig3-01.png b/doc/source/images/originals/fig3-01.png similarity index 100% rename from doc/manual/images/originals/fig3-01.png rename to doc/source/images/originals/fig3-01.png diff --git a/doc/manual/images/originals/fig3-02.png b/doc/source/images/originals/fig3-02.png similarity index 100% rename from doc/manual/images/originals/fig3-02.png rename to doc/source/images/originals/fig3-02.png diff --git a/doc/manual/images/originals/fig3-03.png b/doc/source/images/originals/fig3-03.png similarity index 100% rename from doc/manual/images/originals/fig3-03.png rename to doc/source/images/originals/fig3-03.png diff --git a/doc/manual/images/originals/fig3-04.png b/doc/source/images/originals/fig3-04.png similarity index 100% rename from doc/manual/images/originals/fig3-04.png rename to doc/source/images/originals/fig3-04.png diff --git a/doc/manual/images/originals/fig3-05.png b/doc/source/images/originals/fig3-05.png similarity index 100% rename from doc/manual/images/originals/fig3-05.png rename to doc/source/images/originals/fig3-05.png diff --git a/doc/manual/images/originals/fig3-06.png b/doc/source/images/originals/fig3-06.png similarity index 100% rename from doc/manual/images/originals/fig3-06.png rename to doc/source/images/originals/fig3-06.png diff --git a/doc/manual/images/originals/fig3-07.png b/doc/source/images/originals/fig3-07.png similarity index 100% rename from doc/manual/images/originals/fig3-07.png rename to doc/source/images/originals/fig3-07.png diff --git a/doc/manual/images/originals/fig3-08.png b/doc/source/images/originals/fig3-08.png similarity index 100% rename from doc/manual/images/originals/fig3-08.png rename to doc/source/images/originals/fig3-08.png diff --git a/doc/manual/images/originals/fig3-09.png b/doc/source/images/originals/fig3-09.png similarity index 100% rename from doc/manual/images/originals/fig3-09.png rename to doc/source/images/originals/fig3-09.png diff --git a/doc/manual/images/originals/fig3-10.png b/doc/source/images/originals/fig3-10.png similarity index 100% rename from doc/manual/images/originals/fig3-10.png rename to doc/source/images/originals/fig3-10.png diff --git a/doc/manual/images/originals/fig4-01.png b/doc/source/images/originals/fig4-01.png similarity index 100% rename from doc/manual/images/originals/fig4-01.png rename to doc/source/images/originals/fig4-01.png diff --git a/doc/manual/images/originals/fig4-02.png b/doc/source/images/originals/fig4-02.png similarity index 100% rename from doc/manual/images/originals/fig4-02.png rename to doc/source/images/originals/fig4-02.png diff --git a/doc/source/images/plot-icon.png b/doc/source/images/plot-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ab766acd8d1c5b108c71bc6c83c751ba7394bc GIT binary patch literal 2355 zcmZ{mc`(!uAIHDzSew?B+?ylI%GGKK>u9m;E>URlC|Yutn+g$nUy=Zu@$cN_%K-}vl@TJj_t&j?gCsvruKl;|+V#aZ zJEn=>_HU{b0w3iCRSoPwJ*GIXxAA|p3D9q5xqhdg#YXWKI+)^vydRD^63sT_GJhTa zm*e$L4|n%iueHXD-!GUlCjmZuaBzKM5mfxx?F_^lgcvkE`<5k4XSrEJ!kpWv2(KveXiX69&%#{B-R#_!Zq29AbTOz(VIuz8h9FR{!soT)i%BEGQKZJ(S` zXH^=3VnJ~{8CWNoY7BT|H{CL5(aP1$GaV9^fBu}fvifzk?)U1`v!;d3%Ikwf^T%7p z`TVt(89N?CGwYEsk@%s#TAVe}bG`2OOv>r)m`+n8&=TuhQRvj42$pl((hw08?sph` z_j}lNbr9Se+ER{vxILpZv8|%xaBO(d;*l#rme}c6PF%LVR5$lwyy~yer{SXo@Pobz z32N5CusKfL&f6WjBSsbus(!Az>$aO~c}iTXJdJV@vl^ya;2Hpf&No|l>MJVci> zgk|KwN6mYS@enT=0-X&8E3)Ger`t^5XAqPDk+rxMqe=G`A>A&?RekU5rn=*;@4Kp;}G^5Y7ma+FNFGnCHcx z#Om>aInX2pT795Gv^wJJP?@xRNm~R#BomL6%cB =&JQX)u25w8iTBJr&Dni@^uC z;(W#J_!5PG&YsUIevK=++F=gOaWb%pRQ&wed89$HQVb5XUI>}SqKeleVwXgLs~bOS z*Su&QmGeI$_7XuvQfIH_)Kl)4?9vgA1T22FN}hXohjC(OE7rR*ue-iCR~?SArR^(! zWSzV@CxQHlcoAqou*Um#BsYwW#+K7aXZ#2B zooPVf;QN)Xu)AHqSdQs2qP)S_Vx-0k)f|~zg#=buF@=wP#y%t6cvWuWfqhU+{UJx9 zQ4irxWQtL6!WVv&ky$JuBgDLUEaPWY()`y*SE4Nh$=TG8>4IHG^F$#0v8pnteINjUpl+~T0Bymxoddhov3MU+#EW0^!%5<82XrYrzUQDV_ zkca}s=rT5z-bXQN6O=G2Wmw2`|2h>>rcXL&m(Q-YCL2gf)?mz!4Ko_wOkQptZ(=g} z1=@lP68^M>Zke#ZaY~_`ax3|8$>|RbvmKv>=EM4z*pkMIb1nD%Sx=VP?ViuZb)rKH ze` zrYA1HGl1HaD#=V=vbe-tXrHZ_6HMDo;;l$blx%ehz>0DwkM=m@URYFdQ#*%A*LZ|T z*=nOyPpG6eBni`!=aT}z_B<%lDd6S73Mnm%p2#S4hK__At!SPl*XyoQO+@rn2z6zt z7#fe{#3KwUFW*Pn7k$xtY$z$92=g3~31(P9NpBkVbvs+hV8jgHS=5+w6d<6JK`hT( zc7n8`wE&cR$!5^J$i~rV)k%t2>kowIhQ+55{c4!Q&Bd$fCiIaGvU3~^0b44wIv-+R z-?N>=qaM`5;nm!x676rpwd!-%;w(QJABfk~;Wobgk%b;W{T_r~&&EnSheu={vioj> zuap;$mBv{7O`xN zrK^K`RNq%*P#zAi>viiKLxDrkW5<`6=Z;r&^)nhisd&Dcy^y|U9s+C7oe-K7L5Y(` zNukz|q$k&UvPXQ_P1MqY`wOUac0vtLk}Bj1y&MoZ{WgI+#Pil!b3O0pvzqt?8|)_% z$**N*dX$DG4|t}r1(ijx+7-m z+Cu8ol_Fg?!HZ;Hffp$-1KCHQJ35zao?i|uUM_#^K9ivh8i~MTx7$pIFo!Caw>MSp zYZ}>`4a4y5*(R+87iZO&rRBL$%4dyyTvy=xCyA;~>e>RQUy=GuuXvr+$acWkwy{CU zqGujk-+ocmq?nWkZ{zypPtEPoYRKGkrHz_yh|z(91&5PO-sykOLEu;VZuFH=DysX2 zJ#8SwjMu6u1E0OE_Pgwj1@IBKUCs;Bh3Xo_t^KYnWJjx_Fmk>^qshN+s>`JWoV|4- z$MY1YxN&TM9RnklI)kUoHnthe9xws-0&e?K(a$6w)Q`H5ff)`+RyFIuq&(sF4EF|{ zKwtZ~EeB9ua&%Y*?z{CsBgWPv#?L3lAAK&$e^-Db$RkF2NR*y|$tmO!^pT_JBS;-2 z5{*O#ZkZtd3kVJO3l50;|A1^+^1WR^>puxG!J+=qF+QOY|I46^{v9%j$V%L00D`R( J_MtT?^>5DOH9`OY literal 0 HcmV?d00001 diff --git a/doc/source/images/stop-icon.png b/doc/source/images/stop-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0473bc372768b4cf45d186a14b3e0059ff021e GIT binary patch literal 1134 zcmZ|Mc}$yS7y$4W8?HG5n@eB@m(HNz45qDYV1v4`mP0H@R|Dv>(LoW2P=roYCSj=4 zZ7etz!Ljupn_?zmx=f*n`qRv0Xxqb+SI?bokgTY7vMevOHVCjRkW&-?uHJbB-% zNeMAN`(EA$0Pu;6rO>ezkBy^VIBc%8rDeDR8L@O40AIfjK-qTyIIvKe27rqM0JhTs zAlCxmU%(qljs(ChDd|H7)!}fUcKfbUiO82ta=BHZaN2CnU7K-cR?BOEYU=cDw{@Le z8eYTB^}V64nYp9)nP&`t7}llovnsOM5)xa3z6>LUA4x%_S9}L zKqI4D{6-ssK+_UP&}#YPPp8#t=-gnyVh-AjRx@LX02}vKQxjYLDTa`+E9T#3$ zG%d;OFpS9M_U0C}o^PnBgI3oJf>ua8ZIsN|4Ulza*4B0#+|%dKYOUgF_2`(zV%chI*Y^(?$0v~a1(l%1pwa9?&~|sPQ7nO{B`QJd&Zfd< zv#FW{>aM%G0ny&x-i9uB2zzw53-K`&_D5dK%hz4Gh=e|9uB2m|} zUeAAp`_uZwsIDM_|5nY%O^=4xOG=zhzaw4W8jVKHZ;E8kv2#^sJKpR(`Z!jqRwz!M z^zriW-c$x1>Pwxj^zl9wa_+?+5)+peUp>GoC_Qpx=7N6|90A~=$l!z0%wyE#u)F*H zg7}M>eQDz|RU1l5Nf{0lE0L9z@5@QDTz39730-Ryot+qcN$o7jl8bS3$8d+*gfSf- zP#ah#vl*>W$U8|>gmR&L+Y)`6$E964Af1b+X)J?sx(65=znM9@t_8;D8$VYq1+D5! zFA3dFeA2xF`Fe<-rLPw}fhwaFz2^LDpiJ7jq8QSei{zXKpZBj`nn)G8gD)d5PZdg$ z^HGtLXTKO#z?Et4e%C44BT4D2xr6emQeV^`-3b46v4ff6UbTRIQYeR-$~j%gVsdiW z`FKW79t)hgn2#r(z|)w8coKnh98U-*6A5G@5uZfEQz;DJ#{qZ@zUG3NOb&~j;nFPN z$_*vF9ZHN~5J+TF7&(miCV@aE5O99mZ~P17u`_eBzWRSqNTXL{AmpD49IUM(4l}Rd zzveiZ@Xp^wzIi`Yi ======= diff --git a/doc/manual/pdfgui.pdf b/doc/source/pdfgui.pdf similarity index 100% rename from doc/manual/pdfgui.pdf rename to doc/source/pdfgui.pdf diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index 7b88c041..3b5d0ae0 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -7,27 +7,66 @@ Please, have your co-workers or students try it out and let us know if you have any comments. We want to make it really easy for the new users to get started with PDFgui. -======================================= -Lesson 1: Creating simple fit of Ni PDF -======================================= - Input files: - :download:`Ni data ` containing: 1. Ni-xray.gr - experimental X-ray PDF data 2. Ni.stru - Ni f.c.c. structure in PDFfit format +In this exercise Ni PDF data obtained using synchrotron x-ray radiation collected at 6-ID-D at the Advanced Photon Source is used. Note that among the exercise files there is also a file Ni-neutron.gr, obtained using neutron radiation at the GPPD diffractometer at the IPNS facility at the Argonne National Laboratory. Both x-ray and neutron datasets were collected at 300 K. + This manual will help you to get started with ``PDFgui``. We strongly recommend that that you refer to the book `Atomic pair distribution function analysis: a primer` by Simon J. L. Billinge, Kirsten Jensen Soham Banerjee, Emil S. Bozin, Benjamin A. Frandsen, Maxwell W. Terban and Robert J. Koch, Oxford: -Oxford University Press, 2024. URL: https://global.oup.com/academic/product/atomicpair-distribution-function-analysis-9780198885801?cc=us&lang=en& -for much more extensive and detailed descriptions of carrying out fits with PDFgui (and the related program diffpy-cmi). +Oxford University Press, 2024. URL: https://global.oup.com/academic/product/atomic-pair-distribution-function-analysis-9780198885801 for much more extensive and detailed descriptions of carrying out fits with PDFgui (and the related program diffpy-cmi). + +============= +PDFgui layout +============= + +First, Open ``pdfgui``. Instructions for doing this depend on your system, but an example would be to open a terminal, activate your pdfgui conda environment, and type ``pdfgui`` at the prompt, or to double-click a project file on windows. + +Once PDFgui is invoked, a PDFgui window comes up. Its layout consists of a +``Menu Bar``, a ``Tool Bar``, and a set of four panes. The menu bar contains +drop-down menus that provide various aspects of PDFgui functionality. The tool +bar features icons for commonly used operations: creating a new project, +opening an existing project, saving a project, executing a refinement or +calculation, stopping a refinement or calculation, and making a quick plot. The +four panes consist of the ``Fit Tree``, ``Plot Control``, the ``Current Action`` +pane, and the ``PDFfit2 Output`` panel. + +.. figure:: images/fig2-01.png + :align: center + :figwidth: 100% + + Figure 2.1: Appearance of a PDFgui window after a structure model is loaded. + +The ``Fit Tree`` is used in setting up a fit protocol. The ``Plot Control`` serves the user’s needs +for graphically displaying the fits, as well as various fit-related parameters. The content of +the ``Current Action`` panel changes as the refinement is being set up. It is a functional panel +through which the user configures the fit attributes, sets the fit constraints, reviews the fit +settings, displays fitting results, and also carries out other setup steps. The progress of the +PDFfit2 refinement engine is displayed in the ``PDFfit2 output`` panel. + + + +All panels except the +current action panel are dockable windows that can be dragged across the screen, resized +and arranged to accommodate the individual visual needs of the user. The window layout +can also be controlled via the “View” drop-down menu on the menu bar. An important part +of the PDFgui operativity is also conveniently available through mouse operations such as +select and right-click. + + +.. _lesson1: +======================================= +Lesson 1: Creating simple fit of Ni PDF +======================================= + Procedure: -1. Open ``pdfgui``. Instructions for doing this depend on your system, but an example would be - to open a terminal, activate your pdfgui conda environment, and type ``pdfgui`` at the prompt, - or to double-click a project file on windows. +1. Open ``pdfgui``. 2. Create a new Fit: 1. In the GUI locate the ``Fit Tree`` panel. In the default layout it is at the top left of the page. @@ -43,15 +82,14 @@ Procedure: valid structure model file, a ``.stru`` or a ``.cif`` file. 3. Note, an alternative workflow for adding structural models is to select ``New Phase`` from the ``Phases`` dropdown menu. - If you select the Phase in the ``Fit Tree`` by left clicking on it, you will see in the - right panel 3 tabs, ``Configure`` ``Constraints``, ``Results``. Feel free to click one - these tabs and look inside. The Configure panel has the initial inputs from the loaded str or cif file, - The ``Constraints`` panel will hold the constraints we will set up for our fits, it should be empty now, - and the results tab will contain the results of any fit. + If you select the Phase in the ``Fit Tree`` by left clicking on it, you will see in the right panel 3 tabs, ``Configure``, ``Constraints``, ``Results``. As shown in the Figure 2.1. Feel free to click one these tabs and look inside. + + The ``Configure`` panel displays configuration information from the structure file. The top portion contains lattice parameters, phase scale factor, and a set of parameters intended to be used to account for correlated atomic motion effects that typically sharpen the nearest neighbor PDF peak. These are ``delta1``, ``delta2``, ``sratio``, and ``rcut``. The ``spdiameter`` and ``stepcut`` parameters include scatterer size effects in the PDF. These parameters will be described later. The bottom part of the panel contains standard unit cell content related information such as atomic species, their fractional coordinates, anisotropic ADPs, and site occupancies. The ``Constraints`` panel will hold the constraints we will set up for our fits, it should be empty now, and the results tab will contain the results of any fit. Note that what you see on the right is "Context Dependent", it depends on what you have selected on the left. By selecting a phase on the left, the tabs on the right contain information about that phase, and so on. + 4. Load experimental PDF data: 1. As before, hover over your cursor over the title of your fit and right-click. This time select ``Insert Data Set`` from the pop-up menu. @@ -59,20 +97,86 @@ Procedure: Again, the right panel shows 3 tabs, now for properties of this dataset. + + .. figure:: images/fig2-02.png + :align: center + :figwidth: 100% + + Figure 2.2: Appearance of a PDFgui window after a PDF dataset is loaded. + + The ``Configure`` + panel displays configuration information from the data file. It should be noted that depend-ing on the software used to prepare the experimental PDF from the raw data, the file may + (or may not) contain meta-data reflecting the experimental conditions and configuration. + For example, software ``PDFgetX2`` and ``PDFgetN``, which can be used to prepare PDFs from + x-ray and neutron total scattering experiments respectively, supply meta-data in the header + oset configuration panel. + + Caution should be exercised by the user to verify that these data + indeed correspond to the experimental conditions. In the present example, x-ray radiation + is used, and so the x-ray selection is turned on for the ``Scatterer Type``. The ``data range``, ``fit + range``, ``data scale factor``, ``maximum Q value`` used in Fourier transform to obtain the experi- + mental PDF and the experiment specific parameters are displayed. + Parameters describing + experimental resolution effects, ``Qdamp`` and ``Qbroad``, and experimental conditions, such as + ``temperature`` and ``doping`` (used for bookkeeping and for parametric plots) are also shown. + If no meta-data are present in a data file, this information should be supplied by the user. + + Note also that the changes occurred at this stage in the plot control panel, allowing user to + plot the data. This is achieved by selecting r in the X-choice box and Gobs (the observed :math:`G(r))` in the Y-list box and then pressing the “Plot” button. Since no fitting has occurred + so far, an attempt to plot calculated PDF profile or a difference yields a blank plot. The + data can also be displayed by clicking the rightmost "plot" button |plot| in the tool bar. + + 5. Define what is refined: - 1. Click on the `Ni-xray.gr` data and select the "Constraints" tab. - 2. Type ``@1`` into the "Scale Factor" edit box. - 3. Select the `Ni.stru` phase and its "Constraints" tab. - 4. Fill "a", "b", "c" boxes with ``@5``. + + Having specified the initial structure to be refined, and the data set to be fit, we proceed + to the refinement setup. + The adjustments and constraint setup are done on both the experimental data and the refined structure levels, toggling between the corresponding ``Configure`` and ``Constraints`` tabs. + + 1. Click on the `Ni-xray.gr` data and select the ``Configure`` tab. + 2. Type "1.7" into the ``Fit Range`` edit box and "0.08" into the ``Qdamp`` edit box. + + .. figure:: images/fig2-03.png + :align: center + :figwidth: 100% + + Figure 2.3: Adjusting data set related configuration. + + Since there is no physical information in the region of of r below the nearest neighbor PDF peak position (as seen in the plot), and since this region is often affected by noise and experimental artifacts, it is wise to exclude it from fitting. + We therefore set the value of the lower boundary of the ``Fit range`` to 1.7. (Note that the + units are Angstroms). In addition, we set ``Qdamp parameter`` to a more realistic starting + value of 0.08. This is an instrument-dependent parameter is typically obtained through a + conventional calibration process at each PDF experiment using a standard sample such as Ni or Si. + + + 3. select the ``Constraints`` tab. + 4. Type ``@1`` into the "Scale Factor" edit box and ``@2`` into the "Qdamp" edit box. + + .. figure:: images/fig2-04.png + :align: center + :figwidth: 100% + + Figure 2.4: Setting up the refinement parameters and constraints of the structure model. Here we are defining "variables" that will be refined and giving them names - variable "@1", "@5", etc. and linking them to model parameters by typing them + variable "@1", "@2", etc. and linking them to model parameters by typing them in the text-box associated with the parameter. So by typing ``@1`` in the data "Scale-Factor" text box we are saying that we are logically assigning the constraint equation ``data.scale_factor = variable("@1")``. + + 5. Select the `Ni.stru` phase, adjusting the initial parameter values if necessary (not done here) and proceeding to ``Constraints`` tab. + 6. Fill "a", "b", "c" boxes with ``@3``. Fill "u11", "u22", "u33" cells with ``@4``. + + + .. figure:: images/fig2-05.png + :align: center + :figwidth: 100% + + Figure 2.5: Setting up the refinement parameters and constraints of the PDF data. + When we assign the three parameters ``a``, ``b`` and ``c`` to the same variable, - ``@5``, we are implicitly ensuring that the refinement will respect + ``@2``, we are implicitly ensuring that the refinement will respect the cubic symmetry of the nickel structure and that ``a = b = c``, because the three parameters are assigned to the same variable, so however much ``a`` is changed in the refinement, ``b`` and ``c`` will be changed by the same amount. @@ -80,6 +184,10 @@ Procedure: the same, so we have to also ensure that the initial values of ``a``, ``b`` and ``c`` are the same as each other to ensure that the structure is cubic and remains so. + Also, isotropic ADPs are assigned to all Ni atoms in the refined cell as refinement parameter ``@4``. + This can conveniently be done by highlighting the “u11”, “u22” and “u33” cells for all four + atoms, and typing ``@4`` . + PDFgui allows us to express more complex constraint equations than simply assigning a parameter to a variable. In general, we can type into be Constraints tab text box any math expression: @@ -102,32 +210,79 @@ Procedure: and their initial values. Each one also has a check-box that allows you to fix them (prevent them from varying in the subsequent refinement). Unchecked boxes mean the variable will be refined. - 2. When you are satisfied with the configuration, click the "gear" icon on the toolbar - and watch the fit progress in the terminal window. + + .. figure:: images/fig2-06.png + :align: center + :figwidth: 100% + + Figure 2.6: Reviewing the fit parameters and conditions. + + + 2. When you are satisfied with the configuration, click the "gear" icon |gear| on the toolbar and watch the fit progress in the terminal window. The refinement can be stopped prematurely by clicking on the “stop” icon |stop| on the tool bar. During the refinement the refinement progress will be directly reported in the PDFfit2 Output panel. + + + After the fitting is completed, the fit summary is provided in the “Results” tab of the current action panel associated with the fit node. + + + .. figure:: images/fig2-07.png + :align: center + :figwidth: 100% + + Figure 2.7: Refinement progress is displayed in the PDFfit2 Output panel. + + + + 3. If the fit results are acceptable, one or more refined values could be copied to become new initial parameters for possible further refinement, where appropriate. This is be done in the ``Parameters`` tab of the fit by highlighting refined parameters to be copied, right-clicking, and and selecting "Copy Refined To Initial". + + + .. figure:: images/fig2-08.png + :align: center + :figwidth: 100% + + Figure 2.8: Updating the set of initial values of refined parameters. 7. Plot the results: 1. Select the data in the fit (in this case the `Ni-xray.gr` dataset) by left clicking it. - 2. Click the ``plot`` icon in the toolbar. This is the icon that looks a bit like a PDF - to the right of the Gear and the red/grey X. + 2. Click the "plot" icon |plot| in the toolbar. + + .. |plot| image:: /images/plot-icon.png + :height: 5ex A new window pops up with the plots. It will show the data in blue, the best-fit model - curve in red, and offset below, the difference curve in green. The offset of the difference + curve in red, and offset below, the difference curve in green. + The offset of the difference curve appears at a default value of ``-5.0``. You can make your plot more pretty and meaningful - by typing a different offset into the ``offset`` text box and hitting ``Plot`` again. + by typing a different offset into the ``offset`` text box and hitting "plot" |plot| again. - It is possible to configure the plot in the ``Plot Control`` panel in the GUI. + Depending on whether the structure or the data are selected on the fit tree, either refined structural parameters or the experiment related parameters and fit could be plotted. + + It is also possible to configure the plot in the ``Plot Control`` panel in the GUI. In the default layout it will be at the lower-left of the GUI panel. - 1. To plot the fit (as was done above) elect "r" as the X plotting variable. + 1. To plot the fit (as was done above) select "r" as the X plotting variable. 2. Hold down shift and select "Gcalc" and "Gtrunc" as the Y plotting variables. 3. Click the "Plot" button. This panel allows more plotting options for advanced cases such as plotting the values of parameters refined across multiple fits to extract temperature dependent information. + .. figure:: images/fig2-09.png + :align: center + :figwidth: 100% + + Figure 2.9:An example of PDFgui plotting capabilities: displaying a fit. + + .. figure:: images/fig2-10.png + :align: center + :figwidth: 100% + + Figure 2.10:An example of PDFgui plotting capabilities: displaying a parameter. + 8. Save your project for later use. + The project can be saved at any stage in its present configuration through choice of Save Project as or Save Project as appropriate from the ``File`` drop-down menu. The PDFgui project file has “ddp” extension. In addition to saving a project, various parts of the project, both structure related and data related, can be exported to external files by making an appropriate selection from the ``Phases`` and ``Data`` drop-down menus. The phases (starting or converged) can be saved in one of many formats. The model PDF profile can be exported through ``Data`` menu and will be saved as a five-column “.fgr” file. The first four columns are :math:`r, G(r), dr, \text{and }dG(r)`, and the fifth column is the difference curve between the data and the model. Note that the model PDF and the difference are only calculated within the user-specified fitting range. + ====================================================== Lesson 2: Build structure model using crystal symmetry ====================================================== @@ -135,7 +290,7 @@ Lesson 2: Build structure model using crystal symmetry In the previous example the initial structure was defined by an existing file. However, PDFgui makes it very easy to build a structure model from scratch and constrain it with arbitrary crystal symmetry. 1. Create a blank structure: - 1. Click the FITTING tab. + 1. Click the "Fitting" tab. 2. Repeat steps 1-3a from Lesson 1, but choose the "New" button. Rename "New Phase" to "Ni fcc". 2. Define asymmetric unit: @@ -150,6 +305,12 @@ In the previous example the initial structure was defined by an existing file. H You should now have four atoms in the atoms grid. + .. figure:: images/fig3-01.png + :align: center + :figwidth: 100% + + Figure 3.1: Expanding the unit cell using space group information. + 4. Generate symmetry constraints: 1. Select the "Constraints" tab. 2. Select all atoms. This can be done by dragging the mouse over the atom names or by clicking on the "elem" header. @@ -158,6 +319,12 @@ In the previous example the initial structure was defined by an existing file. H The u11-u33 cells should all read the same value. The "x", "y" and "z" cells should be all empty because Ni atoms are at special positions in Fm-3m. You may try to select lower-symmetry space and check what happens with the constraints. The space group constraints may be mixed by selecting different groups of atoms, for example, when only certain species show lowered symmetry. + It is important to + note that the table reflecting constraints is the only place that program refers to for the + symmetry. What is written there will be used, and if the table is tampered with, then + the original symmetry obtained using symmetry expansion feature will not be preserved. + Therefore, the expansion tool represents a convenience tool and nothing more than that. + 5. Continue the fit as in Lesson 1. ============================= @@ -184,22 +351,42 @@ Learn how to string together fits. This is the linking syntax: ``=name:index``. "name" is the name of another fit. "index" is the index of a parameter in that fit. - If you omit "index", it will default to the index of the parameter you are linking from. A linked parameter uses the refined value of the link as its initial value. This is useful when you are running several related fits. + If you omit "index", it will default to the index of the parameter you are linking from. A linked parameter uses the refined value of the link as its initial value. This is useful when you are running several related fits. An example of this is shown below. + + + .. figure:: images/fig3-04.png + :align: center + :figwidth: 100% + + Figure 3.4: An example of linked fits. 5. Add more fit parameters: 1. Select the "Constraints" tab of the `Ni.stru` phase below "Fit 1_copy". - 2. Write ``@9`` in the "delta2" box. + 2. Write ``@9`` in the ``delta2`` box. 6. Run the fit and plot the results: - 1. Run the fit as in Lesson 1. - 2. Plot the fit as in Lesson 1, but this time hold down Control and select the data sets from "Fit 1" and "Fit 1_copy". You can change the "offset" in the plotting window to 0 to place the plots on top of each other. + 1. Hold down Control and select the data sets from "Fit 1" and "Fit 1_copy". Alternately, select a single fit and hit “Ctrl”+“Shift”+“A” simultaneously on the keyboard. + 2. Press "gear" icon |gear| in the tool bar. + 2. Change the offset in the plotting window to 0 and plot Gcalc versus r. + + Notice that Once the when running the fits by pressing the “gear” icon |gear|, only the highlighted fits will be executed. The fitting will proceed in stages, so the first fit is executed first, and, after it is converged, the second one. + + +``delta2`` is a quadratic atomic correlation factor, a parameter related to the correlated motion of atoms, and as such should help in sharpening up the nearest neighbor PDF peak in the model PDF profile. + +We note here that there is also a linear atomic correlation factor ``delta1``. This one is appropriate to use in cases of high temperature, while ``delta2`` is more appropriate for the case of low temperatures. An alternative way to include the correlated motion effects on PDF is to introduce ``sratio`` parameter that defines low-r to high-r PDF peak ratio, and ``rcut`` limit needs to be specified that defines a cutoff distance. The two approaches of accounting for correlated motion should not be used simultaneously. See the PDFgui publication and references therein for a more thorough description of these parameters. + ========== References ========== -1. :download:`(pdf) <../manual/Proffen-jac-1999.pdf>`, +1. :download:`(pdf) `, Th. Proffen and S. J. L. Billinge, PDFFIT a program for full profile structural refinement of the atomic pair distribution function, J. Appl. Crystallogr. 32, 572-575 (1999) -2. :download:`(pdf) <../manual/Farrow-jpcm-2007.pdf>`, +2. :download:`(pdf) `, C. L. Farrow, P. Juhas, J. W. Liu, D. Bryndin, J. Bloch, Th. Proffen and S. J. L. Billinge, PDFfit2 and PDFgui: Computer programs for studying nanostructure in crystals, J. Phys.: Condens. Matter 19, 335219 (2007) + + +.. |gear| image:: /images/gear-icon.png +.. |stop| image:: /images/stop-icon.png diff --git a/news/rm_texinfo.rst b/news/rm_texinfo.rst new file mode 100644 index 00000000..790d30b1 --- /dev/null +++ b/news/rm_texinfo.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* From 26fabef5f18f6ad6d83f7e09f3f5a7874e4b84d7 Mon Sep 17 00:00:00 2001 From: Yuchen Ethan Xiao Date: Tue, 18 Mar 2025 14:21:11 -0400 Subject: [PATCH 2/8] docs: fix typos, viewer list, and news --- doc/source/extras.rst | 10 +++++----- doc/source/tutorial.rst | 40 ++++++++++++++++++++++++++++++++++++---- news/rm_texinfo.rst | 4 ++-- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/doc/source/extras.rst b/doc/source/extras.rst index 6556b306..af92ef3b 100644 --- a/doc/source/extras.rst +++ b/doc/source/extras.rst @@ -55,11 +55,11 @@ PDFgui can visualize 3D structures by displaying them with an external visualiza format in the “Edit → Preferences” menu in PDFgui. The structure plotting feature has been tested with the following programs: -============================================ =============================== -AtomEyeAtomEye structure viewer, XCFG format http://li.mit.edu/A/Graphics/A/ -============================================ =============================== -PyMOLPyMOL structure viewer, PDB format https://www.pymol.org -============================================ =============================== +=================================== =============================== +VESTA structure viewer https://jp-minerals.org/vesta/ +=================================== =============================== +PyMOL structure viewer, PDB format https://www.pymol.org +=================================== =============================== **A note for AtomEye users:** diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index 3b5d0ae0..f2f44115 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -24,7 +24,7 @@ Oxford University Press, 2024. URL: https://global.oup.com/academic/product/atom PDFgui layout ============= -First, Open ``pdfgui``. Instructions for doing this depend on your system, but an example would be to open a terminal, activate your pdfgui conda environment, and type ``pdfgui`` at the prompt, or to double-click a project file on windows. +First, open ``pdfgui``. Instructions for doing this depend on your system, but an example would be to open a terminal, activate your pdfgui conda environment, and type ``pdfgui`` at the prompt, or to double-click a project file on windows. Once PDFgui is invoked, a PDFgui window comes up. Its layout consists of a ``Menu Bar``, a ``Tool Bar``, and a set of four panes. The menu bar contains @@ -284,7 +284,7 @@ Procedure: The project can be saved at any stage in its present configuration through choice of Save Project as or Save Project as appropriate from the ``File`` drop-down menu. The PDFgui project file has “ddp” extension. In addition to saving a project, various parts of the project, both structure related and data related, can be exported to external files by making an appropriate selection from the ``Phases`` and ``Data`` drop-down menus. The phases (starting or converged) can be saved in one of many formats. The model PDF profile can be exported through ``Data`` menu and will be saved as a five-column “.fgr” file. The first four columns are :math:`r, G(r), dr, \text{and }dG(r)`, and the fifth column is the difference curve between the data and the model. Note that the model PDF and the difference are only calculated within the user-specified fitting range. ====================================================== -Lesson 2: Build structure model using crystal symmetry +Lesson 2: Building structure model using crystal symmetry ====================================================== In the previous example the initial structure was defined by an existing file. However, PDFgui makes it very easy to build a structure model from scratch and constrain it with arbitrary crystal symmetry. @@ -327,8 +327,40 @@ In the previous example the initial structure was defined by an existing file. H 5. Continue the fit as in Lesson 1. + +========================================== +Lesson 3: Calculating PDF from a structure +========================================== + +There is often a need for obtaining a calculated PDF profile for a given structure instead +of performing a fit. Suppose that we have a Ni structure populating a fit tree, and that we would like to +calculate Ni PDF using neutron radiation. + +1. Highlight the Ni structure on fit tree. +2. Either right-click and select Insert Calculation or select New Calculation from “Calculation” menu. +3. select "Neutron scatterer type", choose 0.01 for the r-grid size, and use 0.08 and 25.0 for resolution and maximum momentum transfer parameters respectively. + + + + .. figure:: images/fig3-03.png + :align: center + :figwidth: 100% + + Figure 3.2: An example of the calculation configuration panel. + +Conditions to be specified include radiation type, calculation +range and corresponding r-grid size, as well as instrument resolution and maximum momentum transfer parameters. For the later two, the default values of parameters could be +used, or values could be specified that closely mimic the experimental conditions on some +particular instrument of interest. + +4. Press "gear" icon |gear| in the tool bar. Alternatively select Run Selected Calculation from the “Calculations” menu. + +5. Click the "plot" icon |plot| in the toolbar. + +6. To export the calculated PDF, use the Export Selected Calculation choice on the “Calculations” menu. + ============================= -Lesson 3: Multi-stage fitting +Lesson 4: Multi-stage fitting ============================= Learn how to string together fits. @@ -358,7 +390,7 @@ Learn how to string together fits. :align: center :figwidth: 100% - Figure 3.4: An example of linked fits. + Figure 3.3: An example of linked fits. 5. Add more fit parameters: 1. Select the "Constraints" tab of the `Ni.stru` phase below "Fit 1_copy". diff --git a/news/rm_texinfo.rst b/news/rm_texinfo.rst index 790d30b1..8e6242f0 100644 --- a/news/rm_texinfo.rst +++ b/news/rm_texinfo.rst @@ -1,6 +1,6 @@ **Added:** -* +* manual information is added into online docs. **Changed:** @@ -12,7 +12,7 @@ **Removed:** -* +* manual. **Fixed:** From 9707916cafab9f38528f78e90ad048c9c9e10aed Mon Sep 17 00:00:00 2001 From: Yuchen Ethan Xiao Date: Tue, 18 Mar 2025 14:28:27 -0400 Subject: [PATCH 3/8] docs: update image captions --- doc/source/examples.rst | 20 ++++++++++---------- doc/source/extras.rst | 6 +++--- doc/source/tutorial.rst | 28 ++++++++++++++-------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/doc/source/examples.rst b/doc/source/examples.rst index 712686f4..294623c7 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -7,9 +7,9 @@ Examples Sequential fitting =================== -------------------------- +--------- r series -------------------------- +--------- In certain modeling situations the user could benefit from fitting a data set through a series of refinements that differ one from another by the corresponding fitting ranges. An example of this when one wants to study the details of the local- to average-structure crossover in a complex material. PDFgui has a pre-written macro that automates the setup of this type of refinement. @@ -26,7 +26,7 @@ In certain modeling situations the user could benefit from fitting a data set th :align: center :figwidth: 100% - Figure 3.5: Appearance of the setup panel for specifying an incremental r-series fit conditions. + Figure 2.1: Appearance of the setup panel for specifying an incremental r-series fit conditions. The first row deals with the increment setup of the upper r of the refinements. User should specify the first and the last fit maximum r-value, and corresponding step (increment), all in units of Angstroms. @@ -38,9 +38,9 @@ In certain modeling situations the user could benefit from fitting a data set th .. _temperature-series: ----------------------------------------- +------------------ temperature series ----------------------------------------- +------------------ Frequently, one must handle a large number of data sets originating from a single sample collected at various temperatures. One of the common modeling schemes in such cases is to perform sequential fitting of such data series, which is known to yield well behaved modeling parameters. @@ -66,7 +66,7 @@ The data collected at NPDF instrument at LANSCE at Los Alamos National Laborator :align: center :figwidth: 100% - Figure 3.6: Setting up a T-series sequential refinement for LaMnO3. Ordering by temperature will ensure that the fits are linked correctly. + Figure 2.2: Setting up a T-series sequential refinement for LaMnO3. Ordering by temperature will ensure that the fits are linked correctly. 4. Order the data by temperature. The data can be ordered by temperature by clicking the “Temperature” header. @@ -86,7 +86,7 @@ The data collected at NPDF instrument at LANSCE at Los Alamos National Laborator :figwidth: 100% - Figure 3.7: Displaying the refinement results as a function of external parameter: T-series refinement of LaMnO3, example of isotropic ADP of oxygen atom on general position in *Pbnm* setting. Notable are the offsets just above 700 K (Jahn-Teller transition), and at around 1000 K when sample converts from orthorhombic to rhombohedral symmetry. + Figure 2.3: Displaying the refinement results as a function of external parameter: T-series refinement of LaMnO3, example of isotropic ADP of oxygen atom on general position in *Pbnm* setting. Notable are the offsets just above 700 K (Jahn-Teller transition), and at around 1000 K when sample converts from orthorhombic to rhombohedral symmetry. Despite quite high temperatures, an onset of the static offset above the transition temperature is clearly marked by this parameter, as apparent in Figure 3.7. Curious user could repeat the same T-series refinement restricting the refinement range upper limit to say 5-6 Angstroms and observe the outcome. The refinement sequence execution should be very quick in this case @@ -122,7 +122,7 @@ in contrast to 32 inverse Angstroms in previous example. :align: center :figwidth: 100% - Figure 3.8: After loading of the Ca-doping data series of LaMnO3 system, proper doping assignment needs to be carried out, as the doping levels introspected from the file names in this example incorrectly reflect the scientific situation. Note that dopant atom has to be present in the template seed used to generate the linked sequence of fits. + Figure 2.4: After loading of the Ca-doping data series of LaMnO3 system, proper doping assignment needs to be carried out, as the doping levels introspected from the file names in this example incorrectly reflect the scientific situation. Note that dopant atom has to be present in the template seed used to generate the linked sequence of fits. 3. Click on “Add” button. Using “Shift” and mouse-select operation you should select all the data sets mentioned in the above list, and then press “Open” button. @@ -147,7 +147,7 @@ graphically such that various converged fit parameters are plotted versus Ca con :align: center :figwidth: 100% - Figure 3.9: Sequence of refined parameters, such as lattice constants, can be plotted vs doping using PDFgui plotting facilities. Figure features lattice parameter *b* in *Pbnm* space group setting for series of Ca-doped LaMnO3 samples for doping concentrations between 0 and 0.28 at 10 K temperature. + Figure 2.5: Sequence of refined parameters, such as lattice constants, can be plotted vs doping using PDFgui plotting facilities. Figure features lattice parameter *b* in *Pbnm* space group setting for series of Ca-doped LaMnO3 samples for doping concentrations between 0 and 0.28 at 10 K temperature. @@ -258,7 +258,7 @@ and is used here. :align: center :figwidth: 100% - Figure 3.10: Fitting the structure of a nanoparticle: 3nm CdSe nanoparticle example. + Figure 2.6: Fitting the structure of a nanoparticle: 3nm CdSe nanoparticle example. Further improvements can be obtained by introducing anisotropic ADPs, where again values related to the z-direction will remain abnormally large most probably due to the stacking related disorder.A detailed description of this system and successful PDF modeling can be found in this publication: `Quantitative size-dependent structure and strain determination of CdSe nanoparticles using atomic pair distribution function analysis `_. diff --git a/doc/source/extras.rst b/doc/source/extras.rst index af92ef3b..8711d4a9 100644 --- a/doc/source/extras.rst +++ b/doc/source/extras.rst @@ -35,7 +35,7 @@ Since several formal plotting examples were given through the tutorial exercise, and having simplicity of usage in mind, no other plotting examples are provided, hoping that the usage is sufficiently simple for users to master individually with ease. An example plot of Rw vs refinement step is -shown in Figure 4.1 for Ni example. +shown in Figure 3.1 for Ni example. @@ -43,7 +43,7 @@ shown in Figure 4.1 for Ni example. :align: center :figwidth: 100% - Figure 4.1: Plotting window featuring Rw vs refinement step for Ni example. The basic functionality for manipulating the plot is provided through icons on the tool bar of the plotting window. + Figure 3.1: Plotting window featuring Rw vs refinement step for Ni example. The basic functionality for manipulating the plot is provided through icons on the tool bar of the plotting window. @@ -102,7 +102,7 @@ An example Ni structure visualization with AtomEye is shown in Figure 4.2. :align: center :figwidth: 100% - Figure 4.2: Using AtomEye functionality (if installed on your system) for 3D visualization of the initial and refined PDF structures: example of Ni structure. + Figure 3.2: Using AtomEye functionality (if installed on your system) for 3D visualization of the initial and refined PDF structures: example of Ni structure. ================================ Advanced usage and special needs diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index f2f44115..3cb975ac 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -39,7 +39,7 @@ pane, and the ``PDFfit2 Output`` panel. :align: center :figwidth: 100% - Figure 2.1: Appearance of a PDFgui window after a structure model is loaded. + Figure 1.1: Appearance of a PDFgui window after a structure model is loaded. The ``Fit Tree`` is used in setting up a fit protocol. The ``Plot Control`` serves the user’s needs for graphically displaying the fits, as well as various fit-related parameters. The content of @@ -82,7 +82,7 @@ Procedure: valid structure model file, a ``.stru`` or a ``.cif`` file. 3. Note, an alternative workflow for adding structural models is to select ``New Phase`` from the ``Phases`` dropdown menu. - If you select the Phase in the ``Fit Tree`` by left clicking on it, you will see in the right panel 3 tabs, ``Configure``, ``Constraints``, ``Results``. As shown in the Figure 2.1. Feel free to click one these tabs and look inside. + If you select the Phase in the ``Fit Tree`` by left clicking on it, you will see in the right panel 3 tabs, ``Configure``, ``Constraints``, ``Results``. As shown in the Figure 1.1. Feel free to click one these tabs and look inside. The ``Configure`` panel displays configuration information from the structure file. The top portion contains lattice parameters, phase scale factor, and a set of parameters intended to be used to account for correlated atomic motion effects that typically sharpen the nearest neighbor PDF peak. These are ``delta1``, ``delta2``, ``sratio``, and ``rcut``. The ``spdiameter`` and ``stepcut`` parameters include scatterer size effects in the PDF. These parameters will be described later. The bottom part of the panel contains standard unit cell content related information such as atomic species, their fractional coordinates, anisotropic ADPs, and site occupancies. The ``Constraints`` panel will hold the constraints we will set up for our fits, it should be empty now, and the results tab will contain the results of any fit. @@ -102,7 +102,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.2: Appearance of a PDFgui window after a PDF dataset is loaded. + Figure 1.2: Appearance of a PDFgui window after a PDF dataset is loaded. The ``Configure`` panel displays configuration information from the data file. It should be noted that depend-ing on the software used to prepare the experimental PDF from the raw data, the file may @@ -140,7 +140,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.3: Adjusting data set related configuration. + Figure 1.3: Adjusting data set related configuration. Since there is no physical information in the region of of r below the nearest neighbor PDF peak position (as seen in the plot), and since this region is often affected by noise and experimental artifacts, it is wise to exclude it from fitting. We therefore set the value of the lower boundary of the ``Fit range`` to 1.7. (Note that the @@ -156,7 +156,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.4: Setting up the refinement parameters and constraints of the structure model. + Figure 1.4: Setting up the refinement parameters and constraints of the structure model. Here we are defining "variables" that will be refined and giving them names variable "@1", "@2", etc. and linking them to model parameters by typing them @@ -173,7 +173,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.5: Setting up the refinement parameters and constraints of the PDF data. + Figure 1.5: Setting up the refinement parameters and constraints of the PDF data. When we assign the three parameters ``a``, ``b`` and ``c`` to the same variable, ``@2``, we are implicitly ensuring that the refinement will respect @@ -215,7 +215,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.6: Reviewing the fit parameters and conditions. + Figure 1.6: Reviewing the fit parameters and conditions. 2. When you are satisfied with the configuration, click the "gear" icon |gear| on the toolbar and watch the fit progress in the terminal window. The refinement can be stopped prematurely by clicking on the “stop” icon |stop| on the tool bar. During the refinement the refinement progress will be directly reported in the PDFfit2 Output panel. @@ -228,7 +228,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.7: Refinement progress is displayed in the PDFfit2 Output panel. + Figure 1.7: Refinement progress is displayed in the PDFfit2 Output panel. @@ -239,7 +239,7 @@ Procedure: :align: center :figwidth: 100% - Figure 2.8: Updating the set of initial values of refined parameters. + Figure 1.8: Updating the set of initial values of refined parameters. 7. Plot the results: 1. Select the data in the fit (in this case the `Ni-xray.gr` dataset) by left clicking it. @@ -270,13 +270,13 @@ Procedure: :align: center :figwidth: 100% - Figure 2.9:An example of PDFgui plotting capabilities: displaying a fit. + Figure 1.9: An example of PDFgui plotting capabilities: displaying a fit. .. figure:: images/fig2-10.png :align: center :figwidth: 100% - Figure 2.10:An example of PDFgui plotting capabilities: displaying a parameter. + Figure 1.10: An example of PDFgui plotting capabilities: displaying a parameter. 8. Save your project for later use. @@ -309,7 +309,7 @@ In the previous example the initial structure was defined by an existing file. H :align: center :figwidth: 100% - Figure 3.1: Expanding the unit cell using space group information. + Figure 1.11: Expanding the unit cell using space group information. 4. Generate symmetry constraints: 1. Select the "Constraints" tab. @@ -346,7 +346,7 @@ calculate Ni PDF using neutron radiation. :align: center :figwidth: 100% - Figure 3.2: An example of the calculation configuration panel. + Figure 1.12: An example of the calculation configuration panel. Conditions to be specified include radiation type, calculation range and corresponding r-grid size, as well as instrument resolution and maximum momentum transfer parameters. For the later two, the default values of parameters could be @@ -390,7 +390,7 @@ Learn how to string together fits. :align: center :figwidth: 100% - Figure 3.3: An example of linked fits. + Figure 1.13: An example of linked fits. 5. Add more fit parameters: 1. Select the "Constraints" tab of the `Ni.stru` phase below "Fit 1_copy". From e395b57f53a55257e5fd3d956655e79b7932d7ce Mon Sep 17 00:00:00 2001 From: Yuchen Ethan Xiao Date: Tue, 18 Mar 2025 15:33:25 -0400 Subject: [PATCH 4/8] shorten the line length and replace AtomEye visualization example with VESTA --- doc/source/examples.rst | 272 ++++++++++++++------ doc/source/extras.rst | 122 ++++----- doc/source/images/fig4-02.png | Bin 80574 -> 413481 bytes doc/source/index.rst | 2 +- doc/source/tutorial.rst | 472 ++++++++++++++++++++++------------ 5 files changed, 567 insertions(+), 301 deletions(-) diff --git a/doc/source/examples.rst b/doc/source/examples.rst index 294623c7..ac0ae569 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -11,29 +11,46 @@ Sequential fitting r series --------- -In certain modeling situations the user could benefit from fitting a data set through a series of refinements that differ one from another by the corresponding fitting ranges. An example of this when one wants to study the details of the local- to average-structure crossover in a complex material. PDFgui has a pre-written macro that automates the setup of this type of refinement. +In certain modeling situations the user could benefit from fitting a data set +through a series of refinements that differ one from another by the +corresponding fitting ranges. An example of this when one wants to study the +details of the local- to average-structure crossover in a complex material. +PDFgui has a pre-written macro that automates the setup of this type of +refinement. 1. Create a fit as in :ref:`lesson1`. -2. Select the fit from the fit tree. From the “Fits” menu, select Macros, and choose “r-Series” option. The Current Action panel will display following setting requirements +2. Select the fit from the fit tree. From the “Fits” menu, select Macros, and + choose “r-Series” option. The Current Action panel will display following + setting requirements -3. type "5" for the first upper limit, "20" for the last upper limit, and the step of "5" Angstroms. Leave the second row blank. +3. type "5" for the first upper limit, "20" for the last upper limit, and the + step of "5" Angstroms. Leave the second row blank. -4. click “OK” in the current action panel and 4 new fits with desired incremental limits are geberated below the original fit. +4. click “OK” in the current action panel and 4 new fits with desired + incremental limits are geberated below the original fit. .. figure:: images/fig3-05.png :align: center :figwidth: 100% - Figure 2.1: Appearance of the setup panel for specifying an incremental r-series fit conditions. + Figure 2.1: Appearance of the setup panel for specifying an + incremental r-series fit conditions. - The first row deals with the increment setup of the upper r of the refinements. User should specify the first and the last fit maximum r-value, and corresponding step (increment), all in units of Angstroms. + The first row deals with the increment setup of the upper r of the + refinements. User should specify the first and the last fit maximum r-value + , and corresponding step (increment), all in units of Angstroms. - In the second row information is needed to specify the lower r refinement limit. Again, the user sets the first and the last value, and step. This allows for a box car of either fixed or variable width to be defined. If the second row is left blank, the corresponding refinement series will be with incremental maximum r only, and fixed lower limit. + In the second row information is needed to specify the lower r refinement + limit. Again, the user sets the first and the last value, and step. This + allows for a box car of either fixed or variable width to be defined. If + the second row is left blank, the corresponding refinement series will be + with incremental maximum r only, and fixed lower limit. -5. Select all four of them and execute the refinement. Once the sequence is done, you can review the results using the plot control. +5. Select all four of them and execute the refinement. Once the sequence is + done, you can review the results using the plot control. @@ -42,43 +59,68 @@ In certain modeling situations the user could benefit from fitting a data set th temperature series ------------------ -Frequently, one must handle a large number of data sets originating from a single sample collected at various temperatures. One of the common modeling schemes in such cases is to perform sequential fitting of such data series, which is known to yield well behaved modeling parameters. +Frequently, one must handle a large number of data sets originating from a +single sample collected at various temperatures. One of the common modeling +schemes in such cases is to perform sequential fitting of such data series, +which is known to yield well behaved modeling parameters. Input files: - :download:`Temperature data series ` containing: - 1. a temperature series of data collected on LaMnO3 at various temperatures from 300 K to 1150 K. + 1. a temperature series of data collected on LaMnO3 at various + temperatures from 300 K to 1150 K. 2. a template project named ``lmo-template.dpp``. -LaMnO3 exhibits Jahn-Teller (JT) order-disorder phase transition just above 700 K, where the long range orbital order is lost at high temperature, but the local JT distortion survives. The formal space group does not change at this transition. +LaMnO3 exhibits Jahn-Teller (JT) order-disorder phase transition just above +700 K, where the long range orbital order is lost at high temperature, but +the local JT distortion survives. The formal space group does not change at +this transition. -The data collected at NPDF instrument at LANSCE at Los Alamos National Laboratory. The project consists of a fit called lmo-pbnm , which will serve as a template and which contains *Pbnm* phase of LaMnO3 and a 300 K data set. The fit refinement is set up to cover 1.7-19.5 Angstroms range, and all the parameter values are set to their converged values for this temperature. The fit setup uses isotropic ADPs for all atomic sites. +The data collected at NPDF instrument at LANSCE at Los Alamos National +Laboratory. The project consists of a fit called lmo-pbnm , which will serve +as a template and which contains *Pbnm* phase of LaMnO3 and a 300 K data set. +The fit refinement is set up to cover 1.7-19.5 Angstroms range, and all the +parameter values are set to their converged values for this temperature. The +fit setup uses isotropic ADPs for all atomic sites. 1. open ``lmo-template.dpp`` use "Open Project" selection from "File" menu. -2. Select Macros from the “Fit” menu on the menu bar, and choose “Temperature Series”. The current action panel will reflect the selection. -3. Click on “Add” button. Using “Shift” and mouse-select operation you should select all the data sets mentioned in the above list, except the 300 K one, as this is already in the template fit, and then press “Open”. +2. Select Macros from the “Fit” menu on the menu bar, and choose “Temperature + Series”. The current action panel will reflect the selection. +3. Click on “Add” button. Using “Shift” and mouse-select operation you should + select all the data sets mentioned in the above list, except the 300 K one + , as this is already in the template fit, and then press “Open”. .. figure:: images/fig3-06.png :align: center :figwidth: 100% - Figure 2.2: Setting up a T-series sequential refinement for LaMnO3. Ordering by temperature will ensure that the fits are linked correctly. + Figure 2.2: Setting up a T-series sequential refinement for LaMnO3. + Ordering by temperature will ensure that the fits are linked correctly. -4. Order the data by temperature. The data can be ordered by temperature by clicking the “Temperature” header. +4. Order the data by temperature. The data can be ordered by temperature by + clicking the “Temperature” header. - Since the files contain meta-data, the GUI is going to pick up temperature information from the files. User should verify that the information is correct. + Since the files contain meta-data, the GUI is going to pick up temperature + information from the files. User should verify that the information is + correct. -5. Ensure that the template fit is selected on the fit tree. Click on the “OK” button. This will generate a sequence of linked fits in the fit tree in the order of the temperature increase. Each fit is linked to the previous, except for the template fit for the 300 K data +5. Ensure that the template fit is selected on the fit tree. Click on the “OK + ” button. This will generate a sequence of linked fits in the fit tree in + the order of the temperature increase. Each fit is linked to the previous, + except for the template fit for the 300 K data -6. Highlight all the fits in the fit tree which can be done by selecting a fit and hitting “Ctrl”+“Shift”+“A” . +6. Highlight all the fits in the fit tree which can be done by selecting a + fit and hitting “Ctrl”+“Shift”+“A” . 7. start the sequential refinement by clicking |gear|. -8. On the plot control choose the temperature for x axis, and select the Uiso of O2 (for example atom 20) for the y axis. Clicking “Plot” will display the plot of Uiso(20) vs T. +8. On the plot control choose the temperature for x axis, and select the Uiso + of O2 (for example atom 20) for the y axis. Clicking “Plot” will display + the plot of Uiso(20) vs T. .. figure:: images/fig3-07.png @@ -86,60 +128,92 @@ The data collected at NPDF instrument at LANSCE at Los Alamos National Laborator :figwidth: 100% - Figure 2.3: Displaying the refinement results as a function of external parameter: T-series refinement of LaMnO3, example of isotropic ADP of oxygen atom on general position in *Pbnm* setting. Notable are the offsets just above 700 K (Jahn-Teller transition), and at around 1000 K when sample converts from orthorhombic to rhombohedral symmetry. + Figure 2.3: Displaying the refinement results as a function of external + parameter: T-series refinement of LaMnO3, example of isotropic ADP of + oxygen atom on general position in *Pbnm* setting. Notable are the + offsets just above 700 K (Jahn-Teller transition), and at around 1000 K + when sample converts from orthorhombic to rhombohedral symmetry. -Despite quite high temperatures, an onset of the static offset above the transition temperature is clearly marked by this parameter, as apparent in Figure 3.7. Curious user could repeat the same T-series refinement restricting the refinement range upper limit to say 5-6 Angstroms and observe the outcome. The refinement sequence execution should be very quick in this case +Despite quite high temperatures, an onset of the static offset above the +transition temperature is clearly marked by this parameter, as apparent in +Figure 3.7. Curious user could repeat the same T-series refinement +restricting the refinement range upper limit to say 5-6 Angstroms and observe +the outcome. The refinement sequence execution should be very quick in this +case. ----------------------------------- doping series ----------------------------------- -Fitting a series of PDF data that correspond to a set of samples with related chemistry, such as various doping series, represents another important sequential modeling aspect that is supported in PDFgui. +Fitting a series of PDF data that correspond to a set of samples with related +chemistry, such as various doping series, represents another important +sequential modeling aspect that is supported in PDFgui. Input files: - :download:`Doping data series ` containing: - 1. series of Ca-doped LaMnO3 samples with various Ca content data from 0 to 0.28. + 1. series of Ca-doped LaMnO3 samples with various Ca content data from 0 + to 0.28. 2. a template project named ``lcmo-template.dpp``. -The data are collected on LaMnO3 at GEM instrument at ISIS, UK. The project consists of a fit called lcmo-pbnm, which will serve as a template and which contains *Pbnm* phase of LaMnO3 and a 10 K data set, x000t010q35.gr. +The data are collected on LaMnO3 at GEM instrument at ISIS, UK. The project +consists of a fit called lcmo-pbnm, which will serve as a template and which +contains *Pbnm* phase of LaMnO3 and a 10 K data set, x000t010q35.gr. -The difference here with respect to the template used in the previous example is that Ca sites are introduced in the structure, but are assigned zero occupancy. However, existence of the -Ca dopant species in the structure of the template is essential for the macro to operate. Also, -upper limit used in Fourier transform for obtaining this set of data is 35 inverse Angstroms, -in contrast to 32 inverse Angstroms in previous example. +The difference here with respect to the template used in the previous example +is that Ca sites are introduced in the structure, but are assigned zero +occupancy. However, existence of the Ca dopant species in the structure of +the template is essential for the macro to operate. Also, upper limit used in +Fourier transform for obtaining this set of data is 35 inverse Angstroms, in +contrast to 32 inverse Angstroms in previous example. 1. open ``lcmo-template.dpp`` use "Open Project" selection from "File" menu. -2. Select Macros from the “Fit” menu on the menu bar, and choose “Doing series”. The current action panel will reflect the selection. +2. Select Macros from the “Fit” menu on the menu bar, and choose "Doing series" + The current action panel will reflect the selection. .. figure:: images/fig3-08.png :align: center :figwidth: 100% - Figure 2.4: After loading of the Ca-doping data series of LaMnO3 system, proper doping assignment needs to be carried out, as the doping levels introspected from the file names in this example incorrectly reflect the scientific situation. Note that dopant atom has to be present in the template seed used to generate the linked sequence of fits. + Figure 2.4: After loading of the Ca-doping data series of LaMnO3 system, + proper doping assignment needs to be carried out, as the doping levels + introspected from the file names in this example incorrectly reflect the + scientific situation. Note that dopant atom has to be present in the + template seed used to generate the linked sequence of fits. -3. Click on “Add” button. Using “Shift” and mouse-select operation you should select all the data sets mentioned in the above list, and then press “Open” button. +3. Click on “Add” button. Using “Shift” and mouse-select operation you should + select all the data sets mentioned in the above list, and then press "Open" + button. -3. Specify the base element and dopant. Verify the doping information and fix them by clicking on the corresponding values and simply typing in the correct values. +3. Specify the base element and dopant. Verify the doping information and fix + them by clicking on the corresponding values and simply typing in the + correct values. - It should be noted at this point that the data files do not contain any relevant meta-data in the file headers. the GUI fill the fields by picking up doping information from the file names. These values should be checked manually. + It should be noted at this point that the data files do not contain any + relevant meta-data in the file headers. the GUI fill the fields by picking + up doping information from the file names. These values should be checked + manually. 4. Order the data by clicking the header. -5. Ensure that the template fit is selected on the fit tree. Click on the “OK” button. This will generate a sequence of linked fits in the fit tree in the order of the Ca content increase. +5. Ensure that the template fit is selected on the fit tree. Click on the “OK + ” button. This will generate a sequence of linked fits in the fit tree in + the order of the Ca content increase. -6. Highlight all the fits in the fit tree which can be done by selecting a fit and hitting “Ctrl”+“Shift”+“A” . +6. Highlight all the fits in the fit tree which can be done by selecting a + fit and hitting “Ctrl”+“Shift”+“A” . -After the convergence is achieved for all the fits in the fit tree, the results can be displayed -graphically such that various converged fit parameters are plotted versus Ca content. +After the convergence is achieved for all the fits in the fit tree, the +results can be displayed graphically such that various converged fit +parameters are plotted versus Ca content. @@ -147,7 +221,11 @@ graphically such that various converged fit parameters are plotted versus Ca con :align: center :figwidth: 100% - Figure 2.5: Sequence of refined parameters, such as lattice constants, can be plotted vs doping using PDFgui plotting facilities. Figure features lattice parameter *b* in *Pbnm* space group setting for series of Ca-doped LaMnO3 samples for doping concentrations between 0 and 0.28 at 10 K temperature. + Figure 2.5: Sequence of refined parameters, such as lattice constants, + can be plotted vs doping using PDFgui plotting facilities. Figure + features lattice parameter *b* in *Pbnm* space group setting for series + of Ca-doped LaMnO3 samples for doping concentrations between 0 and 0.28 + at 10 K temperature. @@ -156,11 +234,17 @@ graphically such that various converged fit parameters are plotted versus Ca con Advanced post-processing of sequential refinement ================================================= -While PDFgui allows to collate data from a series of sequential refinements, there are many data query options that are not possible or very tedious with a GUI. A particularly tedious -task would be to extract bond lengths for every temperature refined in a large series. In fact, the GUI just does not seem to be suitable interface and things are much easier -and more flexible to accomplish with Python scripts. +While PDFgui allows to collate data from a series of sequential refinements, +there are many data query options that are not possible or very tedious with +a GUI. A particularly tedious task would be to extract bond lengths for every +temperature refined in a large series. In fact, the GUI just does not seem to +be suitable interface and things are much easier and more flexible to +accomplish with Python scripts. -As a first example, let us assume that a converged sequential refinement from :ref:`temperature-series` , has been saved under the same name as *lmotemplate.ddp*. The following Python script extracts temperatures and refined values of the lattice parameter c:: +As a first example, let us assume that a converged sequential refinement from +:ref:`temperature-series` , has been saved under the same name as +*lmotemplate.ddp*. The following Python script extracts temperatures and +refined values of the lattice parameter c:: # python script from diffpy.pdfgui import tui @@ -182,16 +266,21 @@ Save the example above to a file, say “lmo refined c.py” and run it as:: python lmo_refined_c.py -Note that the script cannot load the unmodified *lmo-template.ddp* file, because it does not have any refinement results. +Note that the script cannot load the unmodified *lmo-template.ddp* file, +because it does not have any refinement results. -The tutorial directory contains an advanced script :download:`tui mno_bond_lengths.py `, which -extracts the shortest Mn-O bond lengths from the same PDFgui project. Please, see the -comments in the script for detailed explanation. +The tutorial directory contains an advanced script +:download:`tui mno_bond_ lengths.py `, +which extracts the shortest Mn-O bond lengths from the same PDFgui project. +Please, see the comments in the script for detailed explanation. -To learn more about the tui module and about the objects and functions that it returns, please see the API documentation for `diffpy.pdfgui `_ . +To learn more about the tui module and about the objects and functions that +it returns, please see the API documentation for +`diffpy.pdfgui `_ . - -Feel free to ask at the `diffpy-users `_ group if you need help with data extracting scripts. +Feel free to ask at the +`diffpy-users `_ +group if you need help with data extracting scripts. @@ -199,25 +288,27 @@ Feel free to ask at the `diffpy-users `_. +Further improvements can be obtained by introducing anisotropic ADPs, where +again values related to the z-direction will remain abnormally large most +probably due to the stacking related disorder.A detailed description of this +system and successful PDF modeling can be found in this publication: +`Quantitative size-dependent structure and strain determination of CdSe nanoparticles using atomic pair distribution function analysis `_. -In general, a successful fitting scenario depends on particular details of a structural prob- lem one is determined to solve. The problem of determining the structure of a nanoparticle remains difficult. PDFgui is not intended to necessarily provide the solution, it is rather a helpful tool in the process of determining new details and exploring the space of possible solution candidates, yielding success in some instances. +In general, a successful fitting scenario depends on particular details of a +structural prob- lem one is determined to solve. The problem of determining +the structure of a nanoparticle remains difficult. PDFgui is not intended to +necessarily provide the solution, it is rather a helpful tool in the process +of determining new details and exploring the space of possible solution +candidates, yielding success in some instances. .. |gear| image:: /images/gear-icon.png .. |stop| image:: /images/stop-icon.png diff --git a/doc/source/extras.rst b/doc/source/extras.rst index 8711d4a9..9a38bb37 100644 --- a/doc/source/extras.rst +++ b/doc/source/extras.rst @@ -8,33 +8,34 @@ PDF plotting ============ -Plotting capabilities of PDFgui are provided through the plot control panel and the quick-plot icon on the tool bar. A quick-plot is created by selecting a node in the fit tree and -then clicking the quick-plot icon in the tool bar. The same quick-plot can be created by -middle-clicking on a node in the fit tree. - +Plotting capabilities of PDFgui are provided through the plot control panel +and the quick-plot icon on the tool bar. A quick-plot is created by selecting +a node in the fit tree and then clicking the quick-plot icon in the tool bar. +The same quick-plot can be created by middle-clicking on a node in the fit tree. The plot control allows for selection of x and y coordinates for plotting. -The -**actual quantities** that could be assigned to the coordinates is determined by selection of either ``Fit``, -or ``Phase``, or ``Data`` on the fit tree. The choices for x and y coordinates varies depending -on what is selected on the fit tree. -**Special options** like *index*, *temperature* and *doping* -are available as choices for x in cases of plotting multiple fit results from sequential fitting -protocols. The **plot window** provides essential functionality such as *zoom*, *pan*, *cursor* -*coordinate tracking*, and *shifts*. Features such as *saving*, *exporting* and *printing* are also -available. - -The principal intent of the plotting functionality is to allow quick access to the -fitting results to enhance the scientific process. If ``Data`` is selected on the fit tree, the user -can plot various aspects of the PDF function, such as data, model and difference PDF -profiles as a function of inter-atomic distance r. If the ``Fit`` or the ``Phase`` are selected, then +The **actual quantities** that could be assigned to the coordinates is +determined by selection of either ``Fit``, or ``Phase``, or ``Data`` on the +fit tree. The choices for x and y coordinates varies depending on what is +selected on the fit tree. **Special options** like *index*, *temperature* and +*doping* are available as choices for x in cases of plotting multiple fit +results from sequential fitting protocols. The **plot window** provides +essential functionality such as *zoom*, *pan*, *cursor* *coordinate tracking +*, and *shifts*. Features such as *saving*, *exporting* and *printing* are +also available. + +The principal intent of the plotting functionality is to allow quick access +to the fitting results to enhance the scientific process. If ``Data`` is +selected on the fit tree, the user can plot various aspects of the PDF +function, such as data, model and difference PDF profiles as a function of +inter-atomic distance r. If the ``Fit`` or the ``Phase`` are selected, then various parameters, both structural and internal can be plotted instead. -Since several formal -plotting examples were given through the tutorial exercise, and having simplicity of usage in -mind, no other plotting examples are provided, hoping that the usage is sufficiently simple -for users to master individually with ease. An example plot of Rw vs refinement step is +Since several formal plotting examples were given through the tutorial +exercise, and having simplicity of usage in mind, no other plotting examples +are provided, hoping that the usage is sufficiently simple for users to +master individually with ease. An example plot of Rw vs refinement step is shown in Figure 3.1 for Ni example. @@ -43,7 +44,9 @@ shown in Figure 3.1 for Ni example. :align: center :figwidth: 100% - Figure 3.1: Plotting window featuring Rw vs refinement step for Ni example. The basic functionality for manipulating the plot is provided through icons on the tool bar of the plotting window. + Figure 3.1: Plotting window featuring Rw vs refinement step for Ni + example. The basic functionality for manipulating the plot is provided + through icons on the tool bar of the plotting window. @@ -51,9 +54,11 @@ shown in Figure 3.1 for Ni example. Displaying the structure ======================== -PDFgui can visualize 3D structures by displaying them with an external visualization program. The visualization program needs to be specified together with a suitable structure -format in the “Edit → Preferences” menu in PDFgui. The structure plotting feature has -been tested with the following programs: +PDFgui can visualize 3D structures by displaying them with an external +visualization program. The visualization program needs to be specified +together with a suitable structure format in the “Edit → Preferences” menu in +PDFgui. The structure plotting feature has been tested with the following +programs: =================================== =============================== VESTA structure viewer https://jp-minerals.org/vesta/ @@ -61,40 +66,17 @@ VESTA structure viewer https://jp-minerals.org/vesta/ PyMOL structure viewer, PDB format https://www.pymol.org =================================== =============================== -**A note for AtomEye users:** - -AtomEye requires its standard output is connected to a terminal. On Unix this happens -when pdfgui is started from a terminal. However if you prefer to start PDFgui using a -desktop shortcut or via “Run Application” dialog of the window manager, you need to put -the following information to the “Edit → Preferences” menu of PDFgui.:: - - Structure viewer executable: xterm - Argument string: -iconic -e ATOMEYE %s - Structure format: xcfg - -In the above, ``ATOMEYE`` is the path to the ATOMEYE executable. - -For Cygwin users, the workaround is to launch the executable from a batch file. Batch -files can only run in a command window on Windows and so AtomEye’s requirements would -be for sure satisfied. In addition the batch file can be used to adjust environment variables:: - atomeye.bat - ------------------------------------------------------------------------ - set DISPLAY=localhost:0 - set PATH=C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;C:\ATOMEYE_DIR;%PATH% - start A.exe %* - ------------------------------------------------------------------------ +With a structural visualizer available, PDFgui allows for initial or refined +structures to be visualized by passing required structural information that +program. This is achieved by highlighting a desired phase on the +``Fit Tree``, and then selecting ``Plot Initial Structure`` or +``Plot Refined Structure`` from the “Phases” drop-down menu. The quick-plot +button (or middle-click) will also invoke the structure viewer with the +refined structure, or initial structure if the refined structure does not yet +exist. The control of the visualization is dependent on the viewer used. - Here ``ATOMEYE_DIR`` needs to be replaced with a proper path. Make sure that the X-server -application included with Cygwin is started. - - -With a structural visualizer available, PDFgui -allows for initial or refined structures to be visualized by passing required structural information that program. This is achieved by highlighting a desired phase on the ``Fit Tree``, and -then selecting ``Plot Initial Structure`` or ``Plot Refined Structure`` from the “Phases” drop-down menu. The quick-plot button (or middle-click) will also invoke the structure viewer -with the refined structure, or initial structure if the refined structure does not yet exist. The control of the visualization is dependent on the viewer used. - -An example Ni structure visualization with AtomEye is shown in Figure 4.2. +An example Ni structure visualization with VESTA is shown in Figure 3.2. @@ -102,17 +84,25 @@ An example Ni structure visualization with AtomEye is shown in Figure 4.2. :align: center :figwidth: 100% - Figure 3.2: Using AtomEye functionality (if installed on your system) for 3D visualization of the initial and refined PDF structures: example of Ni structure. + Figure 3.2: Using VESTA functionality (if installed on your system) + for 3D visualization of the initial and refined PDF structures: example + of Ni structure. ================================ Advanced usage and special needs ================================ The PDFgui is designed to accommodate most common modeling situations. However, -it does not encapsulate all the capabilities available within the modeling engine, such as -calculation of differential PDFs, handling atoms with special scattering properties, etc. - -Advanced usage of PDFfit2 engine to resolve any such special modeling need that user -may have is available through usage of Python scripts in the expert command line mode, -similar to that featured in the PDFFIT program. Handling these situations requires de-tailed knowledge of the PDFfit2 syntax based on Python, which is beyond the scope of -this user guide and will be described elsewhere. Refer to the `PDFfit2 API `_ and the `diffpy-users group `_ for help with PDFfit2 scripting. +it does not encapsulate all the capabilities available within the modeling +engine, such as calculation of differential PDFs, handling atoms with special +scattering properties, etc. + +Advanced usage of PDFfit2 engine to resolve any such special modeling need +that user may have is available through usage of Python scripts in the expert +command line mode, similar to that featured in the PDFFIT program. Handling +these situations requires de-tailed knowledge of the PDFfit2 syntax based on +Python, which is beyond the scope of this user guide and will be described +elsewhere. +Refer to the `PDFfit2 API `_ +and the `diffpy-users group `_ +for help with PDFfit2 scripting. diff --git a/doc/source/images/fig4-02.png b/doc/source/images/fig4-02.png index 710606f56e82f47e1cb669e43191543c3c95b64f..4b673ce696715c8d4f2d126a44aba5790df304e8 100644 GIT binary patch literal 413481 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

>uzB?mZxf#FwtH+srcr|*B(u-x-0w@ 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 -=CX9wxj$}R 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�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

Iy3#}{uZQfnhhUrS(l{!-!}5zcZr-~xAYJ&0 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

KlQD9&ju4 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 OO!jp3b6Mw<&;$UG&ur)b literal 80574 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 diff --git a/doc/source/index.rst b/doc/source/index.rst index c3ec651d..081bd2be 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -18,7 +18,7 @@ visualization capabilities. PDFgui is a friendly interface to the PDFfit2 refinement engine, with many powerful extensions. To get started, please open the :ref:`manual` -(:download:`pdf <../manual/pdfgui.pdf>`) from the help menu or follow the :ref:`tutorial`. +(:download:`pdf `) from the help menu or follow the :ref:`tutorial`. ======= Authors diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index 3cb975ac..124b0458 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -13,18 +13,30 @@ Input files: 1. Ni-xray.gr - experimental X-ray PDF data 2. Ni.stru - Ni f.c.c. structure in PDFfit format -In this exercise Ni PDF data obtained using synchrotron x-ray radiation collected at 6-ID-D at the Advanced Photon Source is used. Note that among the exercise files there is also a file Ni-neutron.gr, obtained using neutron radiation at the GPPD diffractometer at the IPNS facility at the Argonne National Laboratory. Both x-ray and neutron datasets were collected at 300 K. - -This manual will help you to get started with ``PDFgui``. We strongly recommend that that you refer to -the book `Atomic pair distribution function analysis: a primer` by Simon J. L. Billinge, Kirsten Jensen -Soham Banerjee, Emil S. Bozin, Benjamin A. Frandsen, Maxwell W. Terban and Robert J. Koch, Oxford: -Oxford University Press, 2024. URL: https://global.oup.com/academic/product/atomic-pair-distribution-function-analysis-9780198885801 for much more extensive and detailed descriptions of carrying out fits with PDFgui (and the related program diffpy-cmi). +In this exercise Ni PDF data obtained using synchrotron x-ray radiation +collected at 6-ID-D at the Advanced Photon Source is used. Note that among +the exercise files there is also a file Ni-neutron.gr, obtained using neutron +radiation at the GPPD diffractometer at the IPNS facility at the Argonne +National Laboratory. Both x-ray and neutron datasets were collected at 300 K. + + +This manual will help you to get started with ``PDFgui``. We strongly +recommend that that you refer to the book `Atomic pair distribution function +analysis: a primer` by Simon J. L. Billinge, Kirsten Jensen Soham Banerjee, +Emil S. Bozin, Benjamin A. Frandsen, Maxwell W. Terban and Robert J. Koch, +Oxford: Oxford University Press, 2024. URL: +https://global.oup.com/academic/product/atomic-pair-distribution-function-analysis-9780198885801 +for much more extensive and detailed descriptions of carrying out fits with +PDFgui (and the related program diffpy-cmi). ============= PDFgui layout ============= -First, open ``pdfgui``. Instructions for doing this depend on your system, but an example would be to open a terminal, activate your pdfgui conda environment, and type ``pdfgui`` at the prompt, or to double-click a project file on windows. +First, open ``pdfgui``. Instructions for doing this depend on your system, +but an example would be to open a terminal, activate your pdfgui conda +environment, and type ``pdfgui`` at the prompt, or to double-click a project +file on windows. Once PDFgui is invoked, a PDFgui window comes up. Its layout consists of a ``Menu Bar``, a ``Tool Bar``, and a set of four panes. The menu bar contains @@ -39,26 +51,30 @@ pane, and the ``PDFfit2 Output`` panel. :align: center :figwidth: 100% - Figure 1.1: Appearance of a PDFgui window after a structure model is loaded. + Figure 1.1: Appearance of a PDFgui window after a structure model is + loaded. -The ``Fit Tree`` is used in setting up a fit protocol. The ``Plot Control`` serves the user’s needs -for graphically displaying the fits, as well as various fit-related parameters. The content of -the ``Current Action`` panel changes as the refinement is being set up. It is a functional panel -through which the user configures the fit attributes, sets the fit constraints, reviews the fit -settings, displays fitting results, and also carries out other setup steps. The progress of the -PDFfit2 refinement engine is displayed in the ``PDFfit2 output`` panel. +The ``Fit Tree`` is used in setting up a fit protocol. The ``Plot Control`` +serves the user’s needs for graphically displaying the fits, as well as +various fit-related parameters. The content of the ``Current Action`` panel +changes as the refinement is being set up. It is a functional panel through +which the user configures the fit attributes, sets the fit constraints, +reviews the fit settings, displays fitting results, and also carries out +other setup steps. The progress of the PDFfit2 refinement engine is displayed +in the ``PDFfit2 output`` panel. -All panels except the -current action panel are dockable windows that can be dragged across the screen, resized -and arranged to accommodate the individual visual needs of the user. The window layout -can also be controlled via the “View” drop-down menu on the menu bar. An important part -of the PDFgui operativity is also conveniently available through mouse operations such as +All panels except the current action panel are dockable windows that can be +dragged across the screen, resized and arranged to accommodate the individual +visual needs of the user. The window layout can also be controlled via the “ +View” drop-down menu on the menu bar. An important part of the PDFgui +operativity is also conveniently available through mouse operations such as select and right-click. .. _lesson1: + ======================================= Lesson 1: Creating simple fit of Ni PDF ======================================= @@ -69,30 +85,63 @@ Procedure: 1. Open ``pdfgui``. 2. Create a new Fit: - 1. In the GUI locate the ``Fit Tree`` panel. In the default layout it is at the top left of the page. - 2. With your mouse on that panel, right-click the mouse and select "New Fit" from the pop-up menu. - 3. By default, your fit will be called ``Fit 1``. To give it a more meaningful name, left - click the ``Fit 1`` name. It should open an editable box and you can type in a name for your - fit such as "Fit of Ni structure to Ni data" - 4. Note, an alternative workflow to create a new fit is to find ``New fit`` under the ``Fits`` dropdown menu. + + 1. In the GUI locate the ``Fit Tree`` panel. In the default layout it is + at the top left of the page. + + 2. With your mouse on that panel, right-click the mouse and select "New + Fit" from the pop-up menu. + + 3. By default, your fit will be called ``Fit 1``. To give it a more + meaningful name, left click the ``Fit 1`` name. It should open an + editable box and you can type in a name for your fit such as "Fit of + Ni structure to Ni data" + + 4. Note, an alternative workflow to create a new fit is to find ``New fit + `` under the ``Fits`` dropdown menu. 3. Load structure model: - 1. Carefully place your cursor on to the title of the Fit and right-click. Select "Insert Phase" from the pop-up menu. - 2. Click the "Open" button and navigate to and load the ``Ni.stru`` file that you downloaded. You could select - valid structure model file, a ``.stru`` or a ``.cif`` file. - 3. Note, an alternative workflow for adding structural models is to select ``New Phase`` from the ``Phases`` dropdown menu. - If you select the Phase in the ``Fit Tree`` by left clicking on it, you will see in the right panel 3 tabs, ``Configure``, ``Constraints``, ``Results``. As shown in the Figure 1.1. Feel free to click one these tabs and look inside. + 1. Carefully place your cursor on to the title of the Fit and right-click + . Select "Insert Phase" from the pop-up menu. - The ``Configure`` panel displays configuration information from the structure file. The top portion contains lattice parameters, phase scale factor, and a set of parameters intended to be used to account for correlated atomic motion effects that typically sharpen the nearest neighbor PDF peak. These are ``delta1``, ``delta2``, ``sratio``, and ``rcut``. The ``spdiameter`` and ``stepcut`` parameters include scatterer size effects in the PDF. These parameters will be described later. The bottom part of the panel contains standard unit cell content related information such as atomic species, their fractional coordinates, anisotropic ADPs, and site occupancies. The ``Constraints`` panel will hold the constraints we will set up for our fits, it should be empty now, and the results tab will contain the results of any fit. + 2. Click the "Open" button and navigate to and load the ``Ni.stru`` file + that you downloaded. You could select valid structure model file, a + ``.stru`` or a ``.cif`` file. - Note that what you see on the right is "Context Dependent", it depends on what you have selected on the left. - By selecting a phase on the left, the tabs on the right contain information about that phase, and so on. + 3. Note, an alternative workflow for adding structural models is to + select ``New Phase`` from the ``Phases`` dropdown menu. + + If you select the Phase in the ``Fit Tree`` by left clicking on it, you + will see in the right panel 3 tabs, ``Configure``, ``Constraints``, + `` Results``. As shown in the Figure 1.1. Feel free to click one these + tabs and look inside. + + + The ``Configure`` panel displays configuration information from the + structure file. The top portion contains lattice parameters, phase scale + factor, and a set of parameters intended to be used to account for + correlated atomic motion effects that typically sharpen the nearest + neighbor PDF peak. These are ``delta1``, ``delta2``, ``sratio``, and + ``rcut ``. The ``spdiameter`` and ``stepcut`` parameters include scatterer + size effects in the PDF. These parameters will be described later. The + bottom part of the panel contains standard unit cell content related + information such as atomic species, their fractional coordinates, + anisotropic ADPs, and site occupancies. The ``Constraints`` panel will + hold the constraints we will set up for our fits, it should be empty now, + and the results tab will contain the results of any fit. + + + Note that what you see on the right is "Context Dependent", it depends on + what you have selected on the left. By selecting a phase on the left, the + tabs on the right contain information about that phase, and so on. 4. Load experimental PDF data: - 1. As before, hover over your cursor over the title of your fit and right-click. This time select - ``Insert Data Set`` from the pop-up menu. + + 1. As before, hover over your cursor over the title of your fit and right- + click. This time select ``Insert Data Set`` from the pop-up menu. + 2. Navigate to and load the `Ni-xray.gr` file that you downloaded. Again, the right panel shows 3 tabs, now for properties of this dataset. @@ -104,37 +153,47 @@ Procedure: Figure 1.2: Appearance of a PDFgui window after a PDF dataset is loaded. - The ``Configure`` - panel displays configuration information from the data file. It should be noted that depend-ing on the software used to prepare the experimental PDF from the raw data, the file may - (or may not) contain meta-data reflecting the experimental conditions and configuration. - For example, software ``PDFgetX2`` and ``PDFgetN``, which can be used to prepare PDFs from - x-ray and neutron total scattering experiments respectively, supply meta-data in the header - oset configuration panel. - - Caution should be exercised by the user to verify that these data - indeed correspond to the experimental conditions. In the present example, x-ray radiation - is used, and so the x-ray selection is turned on for the ``Scatterer Type``. The ``data range``, ``fit - range``, ``data scale factor``, ``maximum Q value`` used in Fourier transform to obtain the experi- - mental PDF and the experiment specific parameters are displayed. - Parameters describing - experimental resolution effects, ``Qdamp`` and ``Qbroad``, and experimental conditions, such as - ``temperature`` and ``doping`` (used for bookkeeping and for parametric plots) are also shown. - If no meta-data are present in a data file, this information should be supplied by the user. - - Note also that the changes occurred at this stage in the plot control panel, allowing user to - plot the data. This is achieved by selecting r in the X-choice box and Gobs (the observed :math:`G(r))` in the Y-list box and then pressing the “Plot” button. Since no fitting has occurred - so far, an attempt to plot calculated PDF profile or a difference yields a blank plot. The - data can also be displayed by clicking the rightmost "plot" button |plot| in the tool bar. + The ``Configure`` panel displays configuration information from the data + file. It should be noted that depend-ing on the software used to prepare + the experimental PDF from the raw data, the file may (or may not) contain + meta-data reflecting the experimental conditions and configuration. For + example, software ``PDFgetX2`` and ``PDFgetN``, which can be used to + prepare PDFs from x-ray and neutron total scattering experiments + respectively, supply meta-data in the header oset configuration panel. + + Caution should be exercised by the user to verify that these data indeed + correspond to the experimental conditions. In the present example, x-ray + radiation is used, and so the x-ray selection is turned on for the `` + Scatterer Type``. The ``data range``, ``fit range``, + ``data scale factor``, ``maximum Q value`` used in Fourier transform to + obtain the experi- mental PDF and the experiment specific parameters are + displayed. Parameters describing experimental resolution effects, + ``Qdamp `` and ``Qbroad``, and experimental conditions, such as + `` temperature`` and ``doping`` (used for bookkeeping and for parametric + plots) are also shown. If no meta-data are present in a data file, this + information should be supplied by the user. + + Note also that the changes occurred at this stage in the plot control panel + , allowing user to plot the data. This is achieved by selecting r in the X- + choice box and Gobs (the observed :math:`G(r))` in the Y-list box and then + pressing the “Plot” button. Since no fitting has occurred so far, an + attempt to plot calculated PDF profile or a difference yields a blank plot + . The data can also be displayed by clicking the rightmost "plot" button + |plot| in the tool bar. 5. Define what is refined: - Having specified the initial structure to be refined, and the data set to be fit, we proceed - to the refinement setup. - The adjustments and constraint setup are done on both the experimental data and the refined structure levels, toggling between the corresponding ``Configure`` and ``Constraints`` tabs. + Having specified the initial structure to be refined, and the data set to + be fit, we proceed to the refinement setup. The adjustments and constraint + setup are done on both the experimental data and the refined structure + levels, toggling between the corresponding ``Configure`` and + ``Constraints`` tabs. 1. Click on the `Ni-xray.gr` data and select the ``Configure`` tab. - 2. Type "1.7" into the ``Fit Range`` edit box and "0.08" into the ``Qdamp`` edit box. + + 2. Type "1.7" into the ``Fit Range`` edit box and "0.08" into the + ``Qdamp`` edit box. .. figure:: images/fig2-03.png :align: center @@ -142,51 +201,63 @@ Procedure: Figure 1.3: Adjusting data set related configuration. - Since there is no physical information in the region of of r below the nearest neighbor PDF peak position (as seen in the plot), and since this region is often affected by noise and experimental artifacts, it is wise to exclude it from fitting. - We therefore set the value of the lower boundary of the ``Fit range`` to 1.7. (Note that the - units are Angstroms). In addition, we set ``Qdamp parameter`` to a more realistic starting - value of 0.08. This is an instrument-dependent parameter is typically obtained through a - conventional calibration process at each PDF experiment using a standard sample such as Ni or Si. + Since there is no physical information in the region of of r below the + nearest neighbor PDF peak position (as seen in the plot), and since this + region is often affected by noise and experimental artifacts, it is wise to + exclude it from fitting. We therefore set the value of the lower boundary + of the ``Fit range`` to 1.7. (Note that the units are Angstroms). In + addition, we set ``Qdamp parameter`` to a more realistic starting value of 0 + .08. This is an instrument-dependent parameter is typically obtained + through a conventional calibration process at each PDF experiment using a + standard sample such as Ni or Si. 3. select the ``Constraints`` tab. - 4. Type ``@1`` into the "Scale Factor" edit box and ``@2`` into the "Qdamp" edit box. + + 4. Type ``@1`` into the "Scale Factor" edit box and ``@2`` into the + "Qdamp" edit box. .. figure:: images/fig2-04.png :align: center :figwidth: 100% - Figure 1.4: Setting up the refinement parameters and constraints of the structure model. + Figure 1.4: Setting up the refinement parameters and constraints of the + structure model. Here we are defining "variables" that will be refined and giving them names variable "@1", "@2", etc. and linking them to model parameters by typing them in the text-box associated with the parameter. So by typing ``@1`` in the - data "Scale-Factor" text box we are saying that we are logically assigning the constraint - equation ``data.scale_factor = variable("@1")``. + data "Scale-Factor" text box we are saying that we are logically assigning + the constraint equation ``data.scale_factor = variable("@1")``. - 5. Select the `Ni.stru` phase, adjusting the initial parameter values if necessary (not done here) and proceeding to ``Constraints`` tab. - 6. Fill "a", "b", "c" boxes with ``@3``. Fill "u11", "u22", "u33" cells with ``@4``. + 5. Select the `Ni.stru` phase, adjusting the initial parameter values if + necessary (not done here) and proceeding to ``Constraints`` tab. + + 6. Fill "a", "b", "c" boxes with ``@3``. Fill "u11", "u22", "u33" cells + with ``@4``. .. figure:: images/fig2-05.png :align: center :figwidth: 100% - Figure 1.5: Setting up the refinement parameters and constraints of the PDF data. + Figure 1.5: Setting up the refinement parameters and constraints of the + PDF data. - When we assign the three parameters ``a``, ``b`` and ``c`` to the same variable, - ``@2``, we are implicitly ensuring that the refinement will respect - the cubic symmetry of the nickel structure and that ``a = b = c``, because the - three parameters are assigned to the same variable, so however much ``a`` - is changed in the refinement, ``b`` and ``c`` will be changed by the same amount. - Note that the variable ensures that changes to ``a``, ``b`` and ``c`` are always - the same, so we have to also ensure that the initial values of ``a``, ``b`` and ``c`` - are the same as each other to ensure that the structure is cubic and remains so. + When we assign the three parameters ``a``, ``b`` and ``c`` to the same + variable, ``@2``, we are implicitly ensuring that the refinement will + respect the cubic symmetry of the nickel structure and that ``a = b = c``, + because the three parameters are assigned to the same variable, so however + much ``a`` is changed in the refinement, ``b`` and ``c`` will be changed + by the same amount. Note that the variable ensures that changes to ``a``, + ``b`` and ``c`` are always the same, so we have to also ensure that the + initial values of ``a``, ``b`` and ``c`` are the same as each other to + ensure that the structure is cubic and remains so. - Also, isotropic ADPs are assigned to all Ni atoms in the refined cell as refinement parameter ``@4``. - This can conveniently be done by highlighting the “u11”, “u22” and “u33” cells for all four - atoms, and typing ``@4`` . + Also, isotropic ADPs are assigned to all Ni atoms in the refined cell as + refinement parameter ``@4``. This can conveniently be done by highlighting + the “u11”, “u22” and “u33” cells for all four atoms, and typing ``@4`` . PDFgui allows us to express more complex constraint equations than simply assigning a parameter to a variable. @@ -194,22 +265,26 @@ Procedure: ``f(@n1, @n2, @n3, ...)`` where ``@n1`` stands for the fitted parameter, where it is understood that ``n1, n2, ...`` are arbitrary positive integers. - This allows simple linking of related variables. For example, if we want to allow a - crystallographic site to contain either Ni or Pt, we don't know how much Ni or Pt is - on the site, but we want it to be always fully occupied, we could create two lattice - site entries with the same fractional coordinates, with one assigned Ni as the element and the other - assigned Pt as the element. Then we could assign the Ni occupancy as ``@100``. Then - typing ``1-@100`` into the constraint text box of the Pt occupancy ensures that however - much the occupancy of the Ni site goes down in a refinement, the occupancy of the Pt on that - same site goes up by the same amount. This ensures full occupancy of that site, as long + This allows simple linking of related variables. For example, if we want + to allow a crystallographic site to contain either Ni or Pt, we don't know + how much Ni or Pt is on the site, but we want it to be always fully + occupied, we could create two lattice site entries with the same + fractional coordinates, with one assigned Ni as the element and the other + assigned Pt as the element. Then we could assign the Ni occupancy as + ``@100``. Then typing ``1-@100`` into the constraint text box of the Pt + occupancy ensures that however much the occupancy of the Ni site goes down + in a refinement, the occupancy of the Pt on that same site goes up by the + same amount. This ensures full occupancy of that site, as long as the initial occupancies of the Ni and Pt added up to 1. 6. Start the refinement: - 1. Select the fit to run by left clicking the title of the fit in the ``Fit Tree`` panel. - The ``Parameters`` panel on the right shows a list of variables that you have defined - and their initial values. Each one also has a check-box that allows you to fix them - (prevent them from varying in the subsequent refinement). Unchecked boxes mean the variable - will be refined. + + 1. Select the fit to run by left clicking the title of the fit in the + ``Fit Tree`` panel. The ``Parameters`` panel on the right shows a list + of variables that you have defined and their initial values. Each one + also has a check-box that allows you to fix them (prevent them from + varying in the subsequent refinement). Unchecked boxes mean the + variable will be refined. .. figure:: images/fig2-06.png :align: center @@ -218,21 +293,30 @@ Procedure: Figure 1.6: Reviewing the fit parameters and conditions. - 2. When you are satisfied with the configuration, click the "gear" icon |gear| on the toolbar and watch the fit progress in the terminal window. The refinement can be stopped prematurely by clicking on the “stop” icon |stop| on the tool bar. During the refinement the refinement progress will be directly reported in the PDFfit2 Output panel. + 2. When you are satisfied with the configuration, click the "gear" icon + |gear| on the toolbar and watch the fit progress in the terminal window. + The refinement can be stopped prematurely by clicking on the “stop” + icon |stop| on the tool bar. During the refinement the refinement + progress will be directly reported in the PDFfit2 Output panel. - After the fitting is completed, the fit summary is provided in the “Results” tab of the current action panel associated with the fit node. + After the fitting is completed, the fit summary is provided in the “ + Results” tab of the current action panel associated with the fit node. .. figure:: images/fig2-07.png :align: center :figwidth: 100% - Figure 1.7: Refinement progress is displayed in the PDFfit2 Output panel. - + Figure 1.7: Refinement progress is displayed in the PDFfit2 Output + panel. - 3. If the fit results are acceptable, one or more refined values could be copied to become new initial parameters for possible further refinement, where appropriate. This is be done in the ``Parameters`` tab of the fit by highlighting refined parameters to be copied, right-clicking, and and selecting "Copy Refined To Initial". + 3. If the fit results are acceptable, one or more refined values could be + copied to become new initial parameters for possible further refinement, + where appropriate. This is be done in the ``Parameters`` tab of the + fit by highlighting refined parameters to be copied, right-clicking, + and and selecting "Copy Refined To Initial". .. figure:: images/fig2-08.png @@ -241,57 +325,84 @@ Procedure: Figure 1.8: Updating the set of initial values of refined parameters. + 7. Plot the results: - 1. Select the data in the fit (in this case the `Ni-xray.gr` dataset) by left clicking it. + + 1. Select the data in the fit (in this case the `Ni-xray.gr` dataset) by + left clicking it. + 2. Click the "plot" icon |plot| in the toolbar. - .. |plot| image:: /images/plot-icon.png - :height: 5ex + A new window pops up with the plots. It will show the data in blue, the + best-fit model curve in red, and offset below, the difference curve in + green. The offset of the difference curve appears at a default value of + ``-5.0``. You can make your plot more pretty and meaningful by typing a + different offset into the ``offset`` text box and hitting "plot" |plot| + again. - A new window pops up with the plots. It will show the data in blue, the best-fit model - curve in red, and offset below, the difference curve in green. - The offset of the difference - curve appears at a default value of ``-5.0``. You can make your plot more pretty and meaningful - by typing a different offset into the ``offset`` text box and hitting "plot" |plot| again. + Depending on whether the structure or the data are selected on the fit + tree, either refined structural parameters or the experiment related + parameters and fit could be plotted. - Depending on whether the structure or the data are selected on the fit tree, either refined structural parameters or the experiment related parameters and fit could be plotted. + It is also possible to configure the plot in the ``Plot Control`` panel + in the GUI. In the default layout it will be at the lower-left of the GUI + panel. - It is also possible to configure the plot in the ``Plot Control`` panel in the GUI. - In the default layout it will be at the lower-left of the GUI panel. + 1. To plot the fit (as was done above) select "r" as the X plotting + variable. + + 2. Hold down shift and select "Gcalc" and "Gtrunc" as the Y plotting + variables. - 1. To plot the fit (as was done above) select "r" as the X plotting variable. - 2. Hold down shift and select "Gcalc" and "Gtrunc" as the Y plotting variables. 3. Click the "Plot" button. - This panel allows more plotting options for advanced cases such as plotting the values - of parameters refined across multiple fits to extract temperature dependent information. + This panel allows more plotting options for advanced cases such as + plotting the values of parameters refined across multiple fits to extract + temperature dependent information. .. figure:: images/fig2-09.png :align: center :figwidth: 100% - Figure 1.9: An example of PDFgui plotting capabilities: displaying a fit. + Figure 1.9: An example of PDFgui plotting capabilities: displaying a + fit. .. figure:: images/fig2-10.png :align: center :figwidth: 100% - Figure 1.10: An example of PDFgui plotting capabilities: displaying a parameter. + Figure 1.10: An example of PDFgui plotting capabilities: displaying + a parameter. 8. Save your project for later use. - The project can be saved at any stage in its present configuration through choice of Save Project as or Save Project as appropriate from the ``File`` drop-down menu. The PDFgui project file has “ddp” extension. In addition to saving a project, various parts of the project, both structure related and data related, can be exported to external files by making an appropriate selection from the ``Phases`` and ``Data`` drop-down menus. The phases (starting or converged) can be saved in one of many formats. The model PDF profile can be exported through ``Data`` menu and will be saved as a five-column “.fgr” file. The first four columns are :math:`r, G(r), dr, \text{and }dG(r)`, and the fifth column is the difference curve between the data and the model. Note that the model PDF and the difference are only calculated within the user-specified fitting range. - -====================================================== + The project can be saved at any stage in its present configuration + through choice of Save Project as or Save Project as appropriate from the + ``File`` drop-down menu. The PDFgui project file has “ddp” extension. In + addition to saving a project, various parts of the project, both + structure related and data related, can be exported to external files by + making an appropriate selection from the ``Phases`` and ``Data`` drop- + down menus. The phases (starting or converged) can be saved in one of + many formats. The model PDF profile can be exported through ``Data`` menu + and will be saved as a five-column “.fgr” file. The first four columns + are :math:`r, G(r), dr, \text{and }dG(r)`, and the fifth column is the + difference curve between the data and the model. Note that the model PDF + and the difference are only calculated within the user-specified fitting + range. + +========================================================= Lesson 2: Building structure model using crystal symmetry -====================================================== +========================================================= -In the previous example the initial structure was defined by an existing file. However, PDFgui makes it very easy to build a structure model from scratch and constrain it with arbitrary crystal symmetry. +In the previous example the initial structure was defined by an existing file +. However, PDFgui makes it very easy to build a structure model from scratch +and constrain it with arbitrary crystal symmetry. 1. Create a blank structure: 1. Click the "Fitting" tab. - 2. Repeat steps 1-3a from Lesson 1, but choose the "New" button. Rename "New Phase" to "Ni fcc". + 2. Repeat steps 1-3a from Lesson 1, but choose the "New" button. Rename + "New Phase" to "Ni fcc". 2. Define asymmetric unit: 1. Right click the header of the empty atoms grid in the "Configure" page. @@ -300,8 +411,10 @@ In the previous example the initial structure was defined by an existing file. H 4. Select the u11-u33 cells and type "0.004" and press Enter. 3. Expand to all equivalent positions: - 1. Right click the first Ni atom and select "Expand space group". A "Space Group Expansion" dialog should open. - 2. In the dialog, select Fm-3m or just type 225 in the "Space Group" box and hit "OK". + 1. Right click the first Ni atom and select "Expand space group". A " + Space Group Expansion" dialog should open. + 2. In the dialog, select Fm-3m or just type 225 in the "Space Group" box + and hit "OK". You should now have four atoms in the atoms grid. @@ -313,17 +426,26 @@ In the previous example the initial structure was defined by an existing file. H 4. Generate symmetry constraints: 1. Select the "Constraints" tab. - 2. Select all atoms. This can be done by dragging the mouse over the atom names or by clicking on the "elem" header. - 3. Right click in a selected cell and select "Symmetry constraints." A "Space Group Constraints" dialog should open. - 4. "Fm-3m" should already appear in the "Space Group" box. If it does not, select it as you did in step 3 and hit "OK". - - The u11-u33 cells should all read the same value. The "x", "y" and "z" cells should be all empty because Ni atoms are at special positions in Fm-3m. You may try to select lower-symmetry space and check what happens with the constraints. The space group constraints may be mixed by selecting different groups of atoms, for example, when only certain species show lowered symmetry. + 2. Select all atoms. This can be done by dragging the mouse over the atom + names or by clicking on the "elem" header. + 3. Right click in a selected cell and select "Symmetry constraints." A " + Space Group Constraints" dialog should open. + 4. "Fm-3m" should already appear in the "Space Group" box. If it does not + , select it as you did in step 3 and hit "OK". + + The u11-u33 cells should all read the same value. The "x", "y" and "z" + cells should be all empty because Ni atoms are at special positions in Fm- + 3m. You may try to select lower-symmetry space and check what happens with + the constraints. The space group constraints may be mixed by selecting + different groups of atoms, for example, when only certain species show + lowered symmetry. It is important to - note that the table reflecting constraints is the only place that program refers to for the - symmetry. What is written there will be used, and if the table is tampered with, then - the original symmetry obtained using symmetry expansion feature will not be preserved. - Therefore, the expansion tool represents a convenience tool and nothing more than that. + note that the table reflecting constraints is the only place that program + refers to for the symmetry. What is written there will be used, and if the + table is tampered with, then the original symmetry obtained using symmetry + expansion feature will not be preserved. Therefore, the expansion tool + represents a convenience tool and nothing more than that. 5. Continue the fit as in Lesson 1. @@ -332,13 +454,17 @@ In the previous example the initial structure was defined by an existing file. H Lesson 3: Calculating PDF from a structure ========================================== -There is often a need for obtaining a calculated PDF profile for a given structure instead -of performing a fit. Suppose that we have a Ni structure populating a fit tree, and that we would like to -calculate Ni PDF using neutron radiation. +There is often a need for obtaining a calculated PDF profile for a given +structure instead of performing a fit. Suppose that we have a Ni structure +populating a fit tree, and that we would like to calculate Ni PDF using +neutron radiation. 1. Highlight the Ni structure on fit tree. -2. Either right-click and select Insert Calculation or select New Calculation from “Calculation” menu. -3. select "Neutron scatterer type", choose 0.01 for the r-grid size, and use 0.08 and 25.0 for resolution and maximum momentum transfer parameters respectively. +2. Either right-click and select Insert Calculation or select New Calculation + from “Calculation” menu. +3. select "Neutron scatterer type", choose 0.01 for the r-grid size, and use + 0 .08 and 25.0 for resolution and maximum momentum transfer parameters + respectively. @@ -348,16 +474,19 @@ calculate Ni PDF using neutron radiation. Figure 1.12: An example of the calculation configuration panel. -Conditions to be specified include radiation type, calculation -range and corresponding r-grid size, as well as instrument resolution and maximum momentum transfer parameters. For the later two, the default values of parameters could be -used, or values could be specified that closely mimic the experimental conditions on some -particular instrument of interest. +Conditions to be specified include radiation type, calculation range and +corresponding r-grid size, as well as instrument resolution and maximum +momentum transfer parameters. For the later two, the default values of +parameters could be used, or values could be specified that closely mimic the +experimental conditions on some particular instrument of interest. -4. Press "gear" icon |gear| in the tool bar. Alternatively select Run Selected Calculation from the “Calculations” menu. +4. Press "gear" icon |gear| in the tool bar. Alternatively select Run + Selected Calculation from the “Calculations” menu. 5. Click the "plot" icon |plot| in the toolbar. -6. To export the calculated PDF, use the Export Selected Calculation choice on the “Calculations” menu. +6. To export the calculated PDF, use the Export Selected Calculation choice + on the “Calculations” menu. ============================= Lesson 4: Multi-stage fitting @@ -366,6 +495,7 @@ Lesson 4: Multi-stage fitting Learn how to string together fits. 1. Create a fit as in Lesson 1. + 2. Copy the fit: 1. Right click on the fit name "Fit 1" in the right panel (the fit tree). @@ -373,17 +503,23 @@ Learn how to string together fits. 3. Paste the fit: 1. Right click in the empty space between the first fit in the fit tree. - 2. Select "Paste Fit." This will create "Fit 1_copy", a copy of "Fit 1" in the fit tree. + 2. Select "Paste Fit." This will create "Fit 1_copy", a copy of "Fit 1" + in the fit tree. 4. Link the fits: 1. Click on "Fit 1_copy" in the fit tree. 2. In the "Parameters" panel, select the entire "Initial" column. - 3. Type ``=Fit 1`` and then press Enter. The "Initial" values of the parameters should now read ``=Fit1:n``, where "n" is the index of the parameter. + 3. Type ``=Fit 1`` and then press Enter. The "Initial" values of the + parameters should now read ``=Fit1:n``, where "n" is the index of the + parameter. This is the linking syntax: ``=name:index``. "name" is the name of another fit. "index" is the index of a parameter in that fit. - If you omit "index", it will default to the index of the parameter you are linking from. A linked parameter uses the refined value of the link as its initial value. This is useful when you are running several related fits. An example of this is shown below. + If you omit "index", it will default to the index of the parameter you are + linking from. A linked parameter uses the refined value of the link as its + initial value. This is useful when you are running several related fits. + An example of this is shown below. .. figure:: images/fig3-04.png @@ -397,16 +533,31 @@ Learn how to string together fits. 2. Write ``@9`` in the ``delta2`` box. 6. Run the fit and plot the results: - 1. Hold down Control and select the data sets from "Fit 1" and "Fit 1_copy". Alternately, select a single fit and hit “Ctrl”+“Shift”+“A” simultaneously on the keyboard. + 1. Hold down Control and select the data sets from "Fit 1" and + "Fit 1_copy". Alternately, select a single fit and hit “Ctrl”+“Shift”+“A” + simultaneously on the keyboard. 2. Press "gear" icon |gear| in the tool bar. - 2. Change the offset in the plotting window to 0 and plot Gcalc versus r. + 3. Change the offset in the plotting window to 0 and plot Gcalc versus r. - Notice that Once the when running the fits by pressing the “gear” icon |gear|, only the highlighted fits will be executed. The fitting will proceed in stages, so the first fit is executed first, and, after it is converged, the second one. + Notice that Once the when running the fits by pressing the “gear” icon + |gear|, only the highlighted fits will be executed. The fitting will + proceed in stages, so the first fit is executed first, and, after it is + converged, the second one. -``delta2`` is a quadratic atomic correlation factor, a parameter related to the correlated motion of atoms, and as such should help in sharpening up the nearest neighbor PDF peak in the model PDF profile. +``delta2`` is a quadratic atomic correlation factor, a parameter related to +the correlated motion of atoms, and as such should help in sharpening up the +nearest neighbor PDF peak in the model PDF profile. -We note here that there is also a linear atomic correlation factor ``delta1``. This one is appropriate to use in cases of high temperature, while ``delta2`` is more appropriate for the case of low temperatures. An alternative way to include the correlated motion effects on PDF is to introduce ``sratio`` parameter that defines low-r to high-r PDF peak ratio, and ``rcut`` limit needs to be specified that defines a cutoff distance. The two approaches of accounting for correlated motion should not be used simultaneously. See the PDFgui publication and references therein for a more thorough description of these parameters. +We note here that there is also a linear atomic correlation factor +``delta1``. This one is appropriate to use in cases of high temperature, +while ``delta2`` is more appropriate for the case of low temperatures. An +alternative way to include the correlated motion effects on PDF is to +introduce ``sratio`` parameter that defines low-r to high-r PDF peak ratio, +and ``rcut`` limit needs to be specified that defines a cutoff distance. The +two approaches of accounting for correlated motion should not be used +simultaneously. See the PDFgui publication and references therein for a more +thorough description of these parameters. ========== @@ -414,11 +565,16 @@ References ========== 1. :download:`(pdf) `, - Th. Proffen and S. J. L. Billinge, PDFFIT a program for full profile structural refinement of the atomic pair distribution function, J. Appl. Crystallogr. 32, 572-575 (1999) + Th. Proffen and S. J. L. Billinge, PDFFIT a program for full profile + structural refinement of the atomic pair distribution function, J. Appl. + Crystallogr. 32, 572-575 (1999) 2. :download:`(pdf) `, - C. L. Farrow, P. Juhas, J. W. Liu, D. Bryndin, J. Bloch, Th. Proffen and S. J. L. Billinge, PDFfit2 and PDFgui: Computer programs for studying nanostructure in crystals, J. Phys.: Condens. Matter 19, 335219 (2007) + C. L. Farrow, P. Juhas, J. W. Liu, D. Bryndin, J. Bloch, Th. Proffen and + S. J. L. Billinge, PDFfit2 and PDFgui: Computer programs for studying + nanostructure in crystals, J. Phys.: Condens. Matter 19, 335219 (2007) -.. |gear| image:: /images/gear-icon.png -.. |stop| image:: /images/stop-icon.png +.. |plot| image:: images/plot-icon.png +.. |gear| image:: images/gear-icon.png +.. |stop| image:: images/stop-icon.png From 4c7322e7d4a60de617869646072c5e5445c4782d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 19:33:57 +0000 Subject: [PATCH 5/8] [pre-commit.ci] auto fixes from pre-commit hooks --- doc/source/tutorial.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/tutorial.rst b/doc/source/tutorial.rst index 124b0458..d459164d 100644 --- a/doc/source/tutorial.rst +++ b/doc/source/tutorial.rst @@ -495,7 +495,7 @@ Lesson 4: Multi-stage fitting Learn how to string together fits. 1. Create a fit as in Lesson 1. - + 2. Copy the fit: 1. Right click on the fit name "Fit 1" in the right panel (the fit tree). From d55f34dc59e822af0b535979e2088a443975ef13 Mon Sep 17 00:00:00 2001 From: Simon Billinge Date: Wed, 19 Mar 2025 07:53:41 -0400 Subject: [PATCH 6/8] simon tweak to news --- news/rm_texinfo.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/news/rm_texinfo.rst b/news/rm_texinfo.rst index 8e6242f0..7c70206f 100644 --- a/news/rm_texinfo.rst +++ b/news/rm_texinfo.rst @@ -1,6 +1,6 @@ **Added:** -* manual information is added into online docs. +* Information from the old manual is merged into the nline docs. **Changed:** @@ -12,7 +12,7 @@ **Removed:** -* manual. +* Old PDF version of the manual. **Fixed:** From a6a312819874a1fc93db48dec3387bf4fc6a1933 Mon Sep 17 00:00:00 2001 From: Simon Billinge Date: Wed, 19 Mar 2025 08:02:26 -0400 Subject: [PATCH 7/8] small tweaks to examples from Simon --- doc/source/examples.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/doc/source/examples.rst b/doc/source/examples.rst index ac0ae569..1b5299da 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -11,10 +11,11 @@ Sequential fitting r series --------- -In certain modeling situations the user could benefit from fitting a data set -through a series of refinements that differ one from another by the -corresponding fitting ranges. An example of this when one wants to study the -details of the local- to average-structure crossover in a complex material. +It is sometimes desired to understand how structure changes as a +function of length-scale, for example, if there is local symmetry +breaking in a structure. In this case it may be desired to +carry outa series of refinements that differ one from another by the +corresponding fitting ranges. PDFgui has a pre-written macro that automates the setup of this type of refinement. @@ -29,7 +30,7 @@ refinement. step of "5" Angstroms. Leave the second row blank. 4. click “OK” in the current action panel and 4 new fits with desired - incremental limits are geberated below the original fit. + incremental limits are generated below the original fit. .. figure:: images/fig3-05.png :align: center @@ -39,11 +40,11 @@ refinement. incremental r-series fit conditions. - The first row deals with the increment setup of the upper r of the - refinements. User should specify the first and the last fit maximum r-value - , and corresponding step (increment), all in units of Angstroms. + The first row deals with the incremental setup of the upper r of the + refinements. The user should specify the first and the last fit maximum + r-value, and corresponding step (increment), all in units of Angstroms. - In the second row information is needed to specify the lower r refinement + In the second row, information is needed to specify the lower r refinement limit. Again, the user sets the first and the last value, and step. This allows for a box car of either fixed or variable width to be defined. If the second row is left blank, the corresponding refinement series will be From 7acfe73246c2df4a5db85875e2d5014cae1635af Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 12:04:30 +0000 Subject: [PATCH 8/8] [pre-commit.ci] auto fixes from pre-commit hooks --- doc/source/examples.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/source/examples.rst b/doc/source/examples.rst index 1b5299da..e2ba2af9 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -11,11 +11,11 @@ Sequential fitting r series --------- -It is sometimes desired to understand how structure changes as a +It is sometimes desired to understand how structure changes as a function of length-scale, for example, if there is local symmetry -breaking in a structure. In this case it may be desired to +breaking in a structure. In this case it may be desired to carry outa series of refinements that differ one from another by the -corresponding fitting ranges. +corresponding fitting ranges. PDFgui has a pre-written macro that automates the setup of this type of refinement. @@ -41,7 +41,7 @@ refinement. The first row deals with the incremental setup of the upper r of the - refinements. The user should specify the first and the last fit maximum + refinements. The user should specify the first and the last fit maximum r-value, and corresponding step (increment), all in units of Angstroms. In the second row, information is needed to specify the lower r refinement