diff --git a/doc/Changes.tex b/doc/Changes.tex new file mode 100644 index 0000000000000000000000000000000000000000..c6c168d833862b842cc896d3c5058a5665eeeb46 --- /dev/null +++ b/doc/Changes.tex @@ -0,0 +1,43 @@ +\section{Changes} + +\index{Frida!history|(}% +\index{History of Frida|(}% +Development of Frida was started by J.~Wuttke in 1990. +\index{Wuttke, Joachim}% +Originally, the software was called IDA (``inelastic data analysis''). +\index{IDA}% +The code was written in Fortran77, +\index{Fortran}% +and depended on the proprietary NAG library for numerics, and on proprietary compilers. +It was freely given to interested scientist, +and some modules were contributed back. +When J.~Wuttke left the field in 2001, +maintenance of IDA was continued in the group of A.~Meyer at DLR Köln. +\index{Meyer, Andreas}% + +In 2001--2003, J.~Wuttke wrote a C$++$ program +\index{C$++$@C++}% +for the analysis of time series, +heavily drawing on concepts from IDA. +When he came back to neutron science in 2005, +he used this code as base for a modernized rewrite of IDA. +By then, publication of open-source software on the world wide web had become commonplace. +The akronym IDA, however, had already been taken by other software projects. +Therefore, J.~Wuttke renamed his project Frida (``Fast reliable interactive data analysis''). +\index{Frida!name}% +The Fortran code IDA became Frida1, +\index{Frida1}% +and the new C$++$ code was called Frida2. + +Since April 2008, +code changes are tracked in the version control system \texttt{git}, +\index{Version control}% +\index{git}% +currently located at \url{git://apps.jcns.fz-juelich.de/frida.git/}. +Since April 2010, +changes are described in the file \texttt{CHANGELOG}, +which is part of the source, +and also is available online at \url{http://apps.jcns.fz-juelich.de/src/frida/frida2-CHANGELOG}. + +\index{Frida!history|)}% +\index{History of Frida|)}% diff --git a/doc/DataModel.tex b/doc/DataModel.tex new file mode 100644 index 0000000000000000000000000000000000000000..66b9bdd0717a13bb8101e6afd9d67f2539ac40ed --- /dev/null +++ b/doc/DataModel.tex @@ -0,0 +1,31 @@ +\section{Data Model} + +Frida is basically a huge collection of methods that operate on files. +The structure of these files shall be designated as Frida's \E{data model}. +\index{Data model}% + +The data model is the most basic design feature of Frida. +Internal and external storage formats and all method interfaces depend on it. +It has evolved only little since the inception of Frida, +and changes always go towards greater genericity.\footnote +{Major changes were the addition of multi-$z$-coordinates in 1996, +the insertion of an abstraction layer for $x-y-dy$ in 2006, +and full support for $r$ pars in 2010.} +Therefore, Frida will always remain backward compatible +\index{Compatibility!data}% +in the sense +that older data can still be treated with newer software versions. + +Frida supports two types of files: \E{data files} and \E{curve files}. + +\subsection{Data files} + +A \E{data file} is basically an array of »spectra«. A \E{spectrum} contains $x,y$ data pairs (or $x,y,dy$ triples, if errors are given). The physical meaning of $x$ and $y$ is stored as »coordinate« information in the »meta data« of the file. A \E{coordinate} consists of »name« and »unit«, e.g. "mass (kg)" or "counts (Hz)". + +If a data file contains more than one spectrum, it is mandatory that there is a $z$ coordinate; there may be several (denoted $z0, z1, ...$). Each spectrum contains as many $z$ entries as there are $z$ coordinates. + +There are additional \E{file meta data}, like the »file name« and the »documentation« array. Furthermore, a file may contain an arbitrary number of »file constants«. An \E{file constant} is a coordinate-value pair, denoted $r0, r1, ...$. For instance, $r0$ may contain the coordinate "T (K)" and the value 320 to indicate a temperature of 320 K. + +\subsection{Curve files} + +A \E{curve file} contains additional file meta data, most importantly a \E{curve definition}. This is either an »expression« or a »script command«. Instead of a set of »spectra«, a curve file contains a set of »curves«. Each \E{curve} contains an array of curve parameters $p0, p1, ...$ (as many as prescribed by the curve definition), an array of flags that indicate whether a parameter is free or fixed, and a few numeric values $cq0, cq1, cq2$ describing fit quality. diff --git a/doc/Introduction.tex b/doc/Introduction.tex index a382aad46cca8aa5cdf6e06d4158e6a27d586e99..64d09296625b890eb5570cb143da1fd44ce85475 100644 --- a/doc/Introduction.tex +++ b/doc/Introduction.tex @@ -18,3 +18,5 @@ partner institutes. This User Manual is a fragment: A few topics are covered in depth, others are missing completely. +For complementary information, +see the online docs at \url{http://apps.jcns.fz-juelich.de/doku/frida/start}. diff --git a/doc/Setup.tex b/doc/Setup.tex index efcd9d15e9871e945b5f926e684ec96cc25d4aaa..0d0dfcd9c2c10bfb1e570d90b0ec9422823a9e60 100644 --- a/doc/Setup.tex +++ b/doc/Setup.tex @@ -62,6 +62,8 @@ \@ifpackagelater{unicode-math}{2014/07/01}{\olducmfalse}{\olducmtrue} \makeatother +\def\E#1{\textit{#1}} + %------------------------------------------------------------------------------- % Sectioning %------------------------------------------------------------------------------- diff --git a/doc/UserManual.tex b/doc/UserManual.tex index 7ce99637d1487637b5d8f78a180c4997f60aacc6..5f2807fd87924db0b6ff580f2605e5ace1557498 100644 --- a/doc/UserManual.tex +++ b/doc/UserManual.tex @@ -22,7 +22,9 @@ \tableofcontents %\cleardoublepage \include{Introduction} +\include{DataModel} \include{GraphicPostprocessing} +\include{Changes} %\otherchapter{Bibliography} %\section*{Bibliography}