Validation

Introduction ››
Parent Previous Next

It has recently been noted that much published science relies on unvalidated software or algorithms (e.g. Barnes, 2010; Alden & Read, 2013; Hayden, 2013). Given that we have also identified errors in EoS in the published literature, we record here the processes of validation of the cfml_eos module within CrysFML. 


The Eosfit v5.2 program (Angel, 2000a) was previously validated by the first author and many users independently against a variety of calculations in external programs including spread-sheets, algebraic manipulation software, and data analysis software. This led to a number of corrections and modifications to the code in the first years following its initial release. For the decade 2004-2014 the code has not been changed and produces results in good agreement with other programs and calculations. 


For the cfml_eos module, the entire algebra of all of the EoS was first derived again ab initio, and the code confirmed against these new derivations. The results from individual sub-programs were checked against those from EosFit v5.2 where possible. For new features, including the Tait EoS and the new thermal expansion models, validation of individual routines was performed against spread-sheet calculations. The difference in coding methods and structures between Fortran and spreadsheets makes the exact duplication of errors between the two methods unlikely. The APL and the MGD EoS were also validated against results from independent calculations and software by, respectively Malcolm McMahon (Edinburgh), and Tom Duffy (Princeton) with Eleanor Berryman (Princeton, and now Natural Resources Canada).


Comparisons of the values of parameters such as α, K, K', and K'' calculated with the analytical expressions in the code with the derivatives calculated numerically from values of V at closely-spaced values of P confirm that the code is internally consistent. The least-squares routines incorporated in to the EosFit7c program were then validated by comparing fitting results against those from version 5.2 for a wide variety of datasets, and against external programs written by users (see acknowledgements) and results from them. 


Similar validation steps are applied to all new utilities introduced into the software;validation against external calculations in spread-sheets, and internal consistency checks in which complicated calculations (such as in host-inclusion systems) are validated against step-wise calculations with other utilities within the code.



All of these tests can be repeated by users and programmers. If you find discrepancies between results from EosFit7 and other programs, please contact us with a full description of the problem!