|
37 | 37 |
|
38 | 38 | Calculators for PDF, bond valence sum, and other quantities based on atom pair interaction. |
39 | 39 |
|
40 | | -* LONGER DESCRIPTION HERE |
| 40 | +The diffpy.srreal package provides calculators for atomic pair distribution |
| 41 | +function (PDF), bond valence sums (BVS), atom overlaps for a hard-sphere |
| 42 | +model, bond distances and directions up to specified maximum distance. The |
| 43 | +atomic structure models are represented with internal classes as non-periodic, |
| 44 | +periodic or structures with space group symmetries. The package provides |
| 45 | +implicit adapters from diffpy.structure classes or from Crystal or Molecule |
| 46 | +objects from pyobjcryst. Adapters can be easily defined for any other |
| 47 | +structure representations in Python allowing their direct use with the |
| 48 | +calculators. Calculators support two evaluation models - BASIC, which |
| 49 | +performs a full pair-summation every time, and OPTIMIZED, which updates only |
| 50 | +pair contributions that have changed since the last evaluation. Calculations |
| 51 | +can be split among parallel jobs using Python multiprocessing package or any |
| 52 | +other library that provides parallel map function. PDF calculations can |
| 53 | +be done in two modes - either as a real-space summation of peak profiles |
| 54 | +(PDFCalculator) or as a reciprocal-space Debye summation and Fourier |
| 55 | +transform of the total scattering structure function (DebyePDFCalculator). |
| 56 | + |
| 57 | +The diffpy.srreal package is a Python binding to the C++ library libdiffpy |
| 58 | +(https://github.com/diffpy/libdiffpy). Calculators are created as |
| 59 | +objects of a given calculator type and so multiple instances of the same |
| 60 | +calculator type can exist with different configurations. Calculators are |
| 61 | +composed of other objects that perform lower-level tasks, such as calculating |
| 62 | +peak profile or looking up atom scattering factors. These objects can be |
| 63 | +re-assigned at runtime allowing to easily customize the calculation procedure. |
| 64 | +New classes can be defined using object inheritance either in Python or in C++ |
| 65 | +and used with the existing calculators; as an example, this allows to |
| 66 | +calculate PDF with a user-defined profile function. A new calculator class |
| 67 | +can be also defined for any quantity that is obtained by iteration over atom |
| 68 | +pairs, by defining only the function that processes atom-pair contributions. |
41 | 69 |
|
42 | 70 | For more information about the diffpy.srreal library, please consult our `online documentation <https://diffpy.github.io/diffpy.srreal>`_. |
43 | 71 |
|
|
0 commit comments