ARTEMIS is complex and it is quite easy to make mistakes. Many common mistakes are obvious and discoverable by automated analysis of the fitting model. Before running a fit, ARTEMIS applies each of the following test to your fitting model. If any of them are triggered, the fit is halted and a (hopefully) useful error message is posted in the Log window. Think of this like ARTEMIS' spell checker!

Any problems that are found must be corrected before ARTEMIS will allow the fit to proceed.

Check that any files associated with the data or the FEFF calculations exist.

Check that all guess parameters are used in at least one def parameter or path parameter.

Check that no def parameter or path parameter uses an undefined parameter.

Check that none of these typos – “++”, “--”, “//”, or “***” – appear in any math expressions.

Check that all function names used in math expression (i.e. a word followed by parentheses) are valid functions in IFEFFIT or LARCH (as appropriate).

Check that all GDS parameters have unique names.

Check that parentheses match in all math expressions, i.e. that every open penthesis has a matching close paremthesis.

Check that Fourier transform and fit parameters are sensible (for example R

_{min}< R_{max}) for all data sets.Check that the number of guess parameters is less than N

_{idp}.Verify that R

_{min}≥R_{bkg}for data imported from an ATHENA project file.Verify that R

_{eff}for each path is not well beyond R_{max}. The margin beyond R_{max}that a value of R_{eff}is acceptable is set by R_{max}+0.2 plus the val♦Warnings → reff_margin.Check that various compiled-in limits (e.g. maximum number of paths or maximum number of set parameters) in IFEFFIT are not exceeded. This check is ignored when using LARCH.

Check that parameters do not have the same names as IFEFFIT program variables. For example, things like

`pi`or`dr1`are not allowed since IFEFFIT uses those strings for other purposes. Although not strictly necessary, this check is enforced by default when using LARCH.Check that there are no unresolved merge parameters.

Check that GDS math expressions do not have loops or cycles in their definitions. For example, either of the following would trigger this error.

guess x = x # with apologies to Laurie Anderson fans....

guess a = b def b = c def c = a

Check for obvious cases of a data set used more than once.

Check that each data set used in the fit has at least one path assigned to it.

As a side note, item 15 is particularly interesting. DEMETER does a simple lexical analysis on the ensemble of math expressions defined on the GDS window, then uses a formal graph theory tool to develop a graph depiction of the parameters. Loops (like the first example) and cycles (like the second) a trivially evident when the parameters are viewed as a formal graph. That was a really fun part of DEMETER to write.