Skip to content

Commit 901cf6f

Browse files
committed
chore: readme blended
1 parent 81bac08 commit 901cf6f

File tree

1 file changed

+58
-2
lines changed

1 file changed

+58
-2
lines changed

README.rst

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,32 @@
3535
.. |Tracking| image:: https://img.shields.io/badge/issue_tracking-github-blue
3636
:target: https://github.com/diffpy/diffpy.srfit/issues
3737

38+
diffpy.srfit
39+
============
40+
3841
Configurable code for solving atomic structures.
3942

40-
* LONGER DESCRIPTION HERE
43+
The diffpy.srfit package provides the framework for building a global optimizer
44+
on the fly from components such as function calculators (that calculate
45+
different data spectra), regression algorithms and structure models. The
46+
software is capable of co-refinement using multiple information sources or
47+
models. It provides a uniform interface for various regression algorithms. The
48+
target function being optimized can be specified by the user according to the
49+
data available.
50+
51+
Within the diffpy.srfit framework, any parameter used in describing the
52+
structure of a material can be passed as a refinable variable to the global
53+
optimizer. Once parameters are declared as variables they can easily be turned
54+
"on" or "off", i.e. fixed or allowed to vary. Additionally, variables may be
55+
constrained to obey mathematical relationships with other parameters or
56+
variables used in the structural model. Restraints can be applied to
57+
variables, which adds a penalty to the refinement process commensurate with the
58+
deviation from the known value or range. The cost function can also be
59+
customized by the user. If the refinement contains multiple models, each model
60+
can have its own cost function which will be properly weighted and combined to
61+
obtain the total cost function. Additionally, diffpy.srfit is designed to be
62+
extensible, allowing the user to integrate external calculators to perform
63+
co-refinements with other techniques.
4164

4265
For more information about the diffpy.srfit library, please consult our `online documentation <https://diffpy.github.io/diffpy.srfit>`_.
4366

@@ -46,7 +69,13 @@ Citation
4669

4770
If you use diffpy.srfit in a scientific publication, we would like you to cite this package as
4871

49-
diffpy.srfit Package, https://github.com/diffpy/diffpy.srfit
72+
73+
P. Juhás, C. L. Farrow, X. Yang, K. R. Knox and S. J. L. Billinge,
74+
`Complex modeling: a strategy and software program for combining
75+
multiple information sources to solve ill posed structure and
76+
nanostructure inverse problems
77+
<http://dx.doi.org/10.1107/S2053273315014473>`__,
78+
*Acta Crystallogr. A* **71**, 562-568 (2015).
5079

5180
Installation
5281
------------
@@ -71,6 +100,30 @@ To confirm that the installation was successful, type ::
71100

72101
The output should print the latest version displayed on the badges above.
73102

103+
This will install the minimal `diffpy.srfit` installation. It will often be used
104+
as along with other packages for manipulating and computing crystal structures
105+
and so on. We also therefore recommend installing the following:
106+
107+
* ``diffpy.structure`` - crystal structure container and parsers,
108+
https://github.com/diffpy/diffpy.structure
109+
* ``pyobjcryst`` - Crystal and Molecule storage, rigid units, bond
110+
length and bond angle restraints, https://github.com/diffpy/pyobjcryst
111+
112+
Optimizations involving pair distribution functions PDF or bond valence
113+
sums require
114+
115+
* ``diffpy.srreal`` - python library for PDF calculation,
116+
https://github.com/diffpy/diffpy.srreal
117+
118+
Optimizations involving small angle scattering or shape characteristic
119+
functions from the diffpy.srfit.sas module require
120+
121+
* ``sas`` - module for calculation of P(R) in small-angle scattering
122+
from the SasView project, http://www.sasview.org
123+
124+
Fallback Installation
125+
---------------------
126+
74127
If the above does not work, you can use ``pip`` to download and install the latest release from
75128
`Python Package Index <https://pypi.python.org>`_.
76129
To install using ``pip`` into your ``diffpy.srfit_env`` environment, type ::
@@ -125,3 +178,6 @@ Acknowledgements
125178
----------------
126179

127180
``diffpy.srfit`` is built and maintained with `scikit-package <https://scikit-package.github.io/scikit-package/>`_.
181+
182+
The source code in *observable.py* was derived from the 1.0 version
183+
of the Caltech "Pyre" project.

0 commit comments

Comments
 (0)