diffpy.srreal documentation

Software version 1.2.

Last updated July 06, 2017.

diffpy.srreal - calculators for PDF, bond valence sum and other pair quantities

The diffpy.srreal package provides calculators for atomic pair distribution function (PDF), bond valence sums (BVS), atom overlaps for a hard-sphere model, bond distances and directions up to specified maximum distance. The atomic structure models are represented with internal classes as non-periodic, periodic or structures with space group symmetries. The package provides implicit adapters from diffpy.structure classes or from Crystal or Molecule objects from pyobjcryst. Adapters can be easily defined for any other structure representations in Python allowing their direct use with the calculators. Calculators support two evaluation models - BASIC, which performs a full pair-summation every time, and OPTIMIZED, which updates only pair contributions that have changed since the last evaluation. Calculations can be split among parallel jobs using Python multiprocessing package or any other library that provides parallel map function. PDF calculations can be done in two modes - either as a real-space summation of peak profiles (PDFCalculator) or as a reciprocal-space Debye summation and Fourier transform of the total scattering structure function (DebyePDFCalculator).

The diffpy.srreal package is a Python binding to the C++ library libdiffpy (https://github.com/diffpy/libdiffpy). Calculators are created as objects of a given calculator type and so multiple instances of the same calculator type can exist with different configurations. Calculators are composed of other objects that perform lower-level tasks, such as calculating peak profile or looking up atom scattering factors. These objects can be re-assigned at runtime allowing to easily customize the calculation procedure. New classes can be defined using object inheritance either in Python or in C++ and used with the existing calculators; as an example, this allows to calculate PDF with a user-defined profile function. A new calculator class can be also defined for any quantity that is obtained by iteration over atom pairs, by defining only the function that processes atom-pair contributions.

Disclaimer

OPEN SOURCE LICENSE AGREEMENT
=============================

Copyright (c) 2009-2011, University of Tennessee
Copyright (c) 1989, 1991 Free Software Foundation, Inc.
Copyright (c) 2006, The Regents of the University of California through
    Lawrence Berkeley National Laboratory
Copyright (c) 2014, Australian Synchrotron Research Program Inc., ("ASRP")
Copyright (c) 2006-2007, Board of Trustees of Michigan State University
Copyright (c) 2008-2012, The Trustees of Columbia University in the City
    of New York

Copyright (c) 2014-2017, Brookhaven Science Associates, Brookhaven National
    Laboratory


The "DiffPy-CMI" is distributed subject to the following license conditions:


SOFTWARE LICENSE AGREEMENT

    Software: DiffPy-CMI


(1) The "Software", below, refers to the aforementioned DiffPy-CMI (in either
source code, or binary form and accompanying documentation).

Part of the software was derived from the DANSE, ObjCryst++ (with permission),
PyCifRW, Python periodictable, CCTBX, and SasView open source projects, of
which the original Copyrights are contained in each individual file.

Each licensee is addressed as "you" or "Licensee."


(2) The copyright holders shown above and their third-party Licensors hereby
grant licensee a royalty-free nonexclusive license, subject to the limitations
stated herein and U.S. Government license rights.


(3) You may modify and make a copy or copies of the software for use within
your organization, if you meet the following conditions:

    (a) Copies in source code must include the copyright notice and this
        software license agreement.

    (b) Copies in binary form must include the copyright notice and this
        Software License Agreement in the documentation and/or other materials
        provided with the copy.


(4) You may modify a copy or copies of the Software or any portion of it, thus
forming a work based on the Software, and distribute copies of such work
outside your organization, if you meet all of the following conditions:

    (a) Copies in source code must include the copyright notice and this
        Software License Agreement;

    (b) Copies in binary form must include the copyright notice and this
        Software License Agreement in the documentation and/or other materials
        provided with the copy;

    (c) Modified copies and works based on the Software must carry prominent
        notices stating that you changed specified portions of the Software.

    (d) Neither the name of Brookhaven Science Associates or Brookhaven
        National Laboratory nor the names of its contributors may be used to
        endorse or promote products derived from this software without specific
        written permission.


(5) Portions of the Software resulted from work developed under a U.S.
Government contract and are subject to the following license:
The Government is granted for itself and others acting on its behalf a
paid-up, nonexclusive, irrevocable worldwide license in this computer software
to reproduce, prepare derivative works, and perform publicly and display
publicly.


(6) WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT
WARRANTY OF ANY KIND. THE COPYRIGHT HOLDERS, THEIR THIRD PARTY
LICENSORS, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR USEFULNESS OF
THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF THE SOFTWARE WOULD NOT INFRINGE
PRIVATELY OWNED RIGHTS, (4) DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL BE CORRECTED.


(7) LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT HOLDERS, THEIR
THIRD PARTY LICENSORS, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR  ANY INDIRECT, INCIDENTAL,
CONSEQUENTIAL, SPECIAL OR PUNITIVE  DAMAGES OF ANY KIND OR NATURE, INCLUDING
BUT NOT LIMITED TO LOSS OF PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER,
WHETHER SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING
NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE, EVEN IF ANY OF SAID PARTIES HAS
BEEN WARNED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGES.


Brookhaven National Laboratory Notice
=====================================

Acknowledgment of sponsorship
-----------------------------

This software was produced by the Brookhaven National Laboratory, under
Contract DE-AC02-98CH10886 with the Department of Energy.


Government disclaimer of liability
----------------------------------

Neither the United States nor the United States Department of Energy, nor
any of their employees, makes any warranty, express or implied, or assumes
any legal liability or responsibility for the accuracy, completeness, or
usefulness of any data, apparatus, product, or process disclosed, or
represents that its use would not infringe privately owned rights.


Brookhaven disclaimer of liability
----------------------------------

Brookhaven National Laboratory makes no representations or warranties,
express or implied, nor assumes any liability for the use of this software.


Maintenance of notice
---------------------

In the interest of clarity regarding the origin and status of this
software, Brookhaven National Laboratory requests that any recipient of it
maintain this notice affixed to any distribution by the recipient that
contains a copy or derivative of this software.


END OF LICENSE

Acknowledgments

Developers

diffpy.srreal is developed and maintained by

Authors:

Pavol Juhas
Chris Farrow
Simon J.L. Billinge

Contributors:

https://github.com/diffpy/diffpy.srreal/graphs/contributors

Installation

See the README.rst file included with the distribution.