Skip to main content
U.S. flag

An official website of the United States government

Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.


Secure .gov websites use HTTPS
A lock ( ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.

Reflectometry Software

NCNR has a number of programs to aid in reflectometry.


Reductus is a web application providing support for data reduction and simple fitting of NCNR data.  Reduction is driven by the reflred python libraries, which support the common operations  required to convert raw X-Ray and neutron reflectivity data to a reflectivity curve in physical units.

Data files are accessed directly by URL from the NCNR online data repository and the reduction templates (recipes) can be modified with a graphical editor, and downloaded and reused or shared by email.  Reduced data can be downloaded in columnar text-file form.  No login or password is required to use the application.

Reductus replaces the Reflpak application.  If you use reductus to reduce your experimental data, please consider including a citation to Journal of Applied Crystallography, Volume 51, Part 5, pages 1500-1506


Refl1D is a more powerful fitting program which adds capabilities for simultaneous fitting and uncertainty analysis. See the Refl1D manual for more details. Refl1D uses Bumps for fitting and PeriodicTable for scattering length density calculations.

Installation from the Python Package Index

  • Install Python 2.7 or Python 3.6 (such as from or Anaconda)
  • open a terminal window (plain terminal on mac, Anaconda Prompt on Windows) and issue these commands:
    • pip install numpy scipy matplotlib wxpython periodictable
    • pip install refl1d

Then issuing the command "refl1d" from the command line will start the command-line client, and "refl1d --edit" will start an interactive fitting session.  "pip install --upgrade refl1d" will update to the latest version, any time.

Mac OS X notes
Python 3 is recommended: if you install Python 3 from you can simply replace "pip" with "pip3" in the install instructions above, and it will just work.  If you wish to use a virtual environment, you can use the builtin venv package so that the gui command "refl1d --edit" will still work, as it will call the Framework binary (virtualenv and virtualenvwrapper use a copy of the binary instead of linking to the Framework binary).
If you use an Anaconda Python distribution, to start an interactive refl1d session you will have to type "pythonw -m refl1d.main --edit" instead of the command above.  If pythonw is not installed, you may need to run "conda install" in your environment.

Windows notes
you might need to install a compatible C++ compiler (but you probably don't)

There is also a binary installer for Windows, that is not updated as often as the pip version.


Online SLD Calculator: The online SLD/activation calculator uses the same PeriodicTable package as Refl1D and SasView to compute scattering length density and neutron activation.

Web Reflectivity Calculators

We provide a browser-based  magnetic reflectivity calculator as well a non-magnetic (unpolarized) reflectivity calculator.  The user-generated SLD profiles can be exported to a heavily-commented Python Refl1D model file to provide an easy way to get started with modeling data in Refl1D.  Please see the article in J. Res. NIST for more details.

Citing this software

If no other citation is provided, acknowledging the use of these tools in publications may be done by making a reference to this site. For example:

The Refl1D and Reductus programs were used for elements of the data reduction and analysis.[1][1] P.A. Kienzle, B.B. Maranville, K.V. O'Donovan, J.F. Ankner, N.F. Berk, C.F. Majkrzak; 2017-



This software was developed at the National Institute of Standards and Technology at the NIST Center for Neutron Research by employees of the Federal Government in the course of their official duties. Pursuant to title 17 section 105* of the United States Code this software is not subject to copyright protection and is in the public domain. NIST does not assume any responsibility whatsoever for the use of this software, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic. The use of certain trade names or commercial products does not imply any endorsement of a particular product, nor does it imply that the named product is necessarily the best product for the stated purpose. We would appreciate acknowledgment if the software is used.


*Subject matter of copyright: United States Government works


Copyright protection under this title is not available for any work of the United States Government, but the United States Government is not precluded from receiving and holding copyrights transferred to it by assignment, bequest, or otherwise.




Portions of this work are based upon activities supported by the National Science Foundation under Agreement No. DMR-0412074.




Calculating polarized neutron reflectometry
C.F. Majrkzak, K.V. O'Donovan, N.F. Berk (2006); Polarized neutron reflectometry. In Neutron Scattering from Magnetic Materials, T. Chatterji, editor. Elsevier.
Polarization corrections
C.F. Majkrzak (1996); Neutron scattering studies of magnetic thin films and multilayers, Physica B 221, 342-356.
Modelling interfaces with slabs
J.F. Ankner, C.F. Majkrzak (1992); Subsurface profile refinement for neutron specular reflectivity. In S.P.I.E. Conference Proceedings, Vol. 1738. C.F. Majkrzak and J.L. Wood, editors. S.P.I.E., Bellingham, WA.
Created April 14, 2017, Updated February 3, 2020