Skip to content
Design Principles

Design Principles

Joachim Wuttke, 2006

A data analysis program for neutron scattering should satisfy the following requirements:

  1. Open source — so that new modules can be added quickly and algorithms can be independently verified.

  2. No commercial licenses — so that the program can be freely given to future users regardless of their institution.

  3. Neutron-scattering specifics — reading raw data formats, transforming to S(2θ, ω), interpolating to S(q, ω), etc.

  4. Flexible x[-z]-y operations — selective deletion, rebinning, arithmetic, curve fitting, and more, on generic tabular data.

  5. Speed — routine operations on large data sets must be fast, which implies coding in C or Fortran for inner loops.

  6. Line-oriented input — designed for the expert user: a minimum of typing for a maximum of power.

  7. GUI facility — for occasional or novice users.

  8. Documentation — tutorial, manual, FAQ.

Frida’s predecessor IDA (now Frida-1) fulfilled requirements 1–6 but failed completely on 7 and 8. Frida-2 was designed to preserve those strengths while making room for a GUI layer and improving documentation.