[ previous ] [ contents ] [ next ]

History

Version 5.20030128a

(on-line documentation and download)

The incremented major version number reflects the occurrence of extensive changes that render the new code partially incompatible to that of version 4. This part of the development cycle was mainly driven by the need to reduce the memory footprint and to achieve some speed-up in high-resolution calculations, as well as the need to keep the isotherm data files managable in size and to render them platform-independent. Details of the changes follow:

Several versions of ansatz.arfg had a duplicate hook #hook boundary-condition:high-density:pre instead of #hook boundary-condition:high-density:post.

Useless evaluation (and saving) of Hint on phase boundary: possible location eliminated.

Code for covering a temperature range overhauled in utility ar-Phase. Minor changes to error handling.

New ansatz 20020824-ar.

The free energy can now be evaluated provided reference.arfg exports some code for calculating the (compressibility) free energy of the reference system.

solver.arfg no longer marks for saving the following information:

Minor bug in several instances of ansatz that prevented compilation when suppressing the calculation of the free energy: fixed (20021026).

Avoid useless copying of constants (0._d_ and 0) for the low-density boundary condition at ρmin=0 in various versions of main part ansatz.

Several minor bugs fixed in several instances of main parts ansatz and solver that prevented successful code construction for density-dependent potentials. Main part versions that may not able to deal with density-dependent potentials will signal errors when touching relevant parts of the code.

New m4 macro save_GeneralInfo__text in m4 file save.m4 allows saving of arrays of #strings.

Updated URL for wml: http://thewml.org/ instead of http://www.engelschall.com/sw/wml/.

solver.arfg is now free to ignore constant boundary conditions, ansatz.arfg can no longer count on the previous behavior of solver.arfg; in particular, ansatz.arfg now has to update the boundary condition in the predictor step, too, if that density has not been locked.

m4 support for managing temporary environments via macro runInEnvironment__cmd__macro_defn_; enhanced m4 support for calling yacas.

There are several changes to versions of solver.arfg that rely on numerical differentiation with respect to ρ:

Some cryptic compile-time error messages fixed by proper quoting of the first argument to m4_checkrange().

Data structure tQ is now designed to hold only data that depends on Q exclusively, rather than on both Q and ρ as in earlier versions. Furthermore, depending on whether there is any advantage to this and whether all main parts can handle it, the Q component (type tQ) of type tNode may or may not be a pointer; if possible, solver.arfg will make sure that calculations that depend on Q only are not repeated.

New macro m4_map in m4-file lists.m4, and fixed quoting in m4_foreach in the same file.

Template files renamed from .f90/hrt-name.tmpl to .f90/name.tmpl.

Major overhaul of main part «files»: There are now two mutually incompatible file formats, the old platform-specific one and a new, portable one via BaseEncode. This has a number of implications and brings about quite some incompatible changes:

The code for providing auxiliary variables in m4 file auxvars.m4 now also accepts integer (instead of int) and logical (instead of bool) as type indicators; the old variables should fall into disuse gradually.

Logging via log() is much more lightweight than before as the test has partly been eliminated and else been moved out of subroutine WriteLog(); note, however, that a call to log() never counts as a single Fortran 90 statement and thus is illegal in some places where the old version could be used [but this only affects applications where __quiet__ is known to be undefined, of course].

The code for dumping isotherm data in Mathematica-readable form now recognizes ifc's strange output format for NaN and ±Inf. Note, however, that for all the marketing effort by Intel, ifc currently is not standards conformant. Even if you get ifc to compile the program, note that it is vital to use the -nbs option or else isotherm data saved in BaseEncoded format will not be readable on other installation. Be sure to run all the tests in main parts basics.arfg and files.arfg for minimum security.

New test program in basics.arfg for checking whether the IEEE-values are correctly dealt with.

The program no longer deallocates nodes as any reasonable operating system should take care of that, and in a much more efficient way.

Isotherm data can now be stored not only comprehensively but also as a «logarithmic digest», i. e., in a form where it is the changes in some quantity that trigger selection of the nodes where data is saved. Consequently,

Version 4.20020721b

(on-line documentation and download)

Management of auxiliary variables; cf. m4 file auxvars.m4.

Change to .arfg-post: Explicitly enter diversion main rather than going to ARFG_PRE_STUFF in order to allow accessing accumulated Perl information.

Change to ar-Phase: More stringent tests for the temperature parameters to extract β = 1/kB T even in the presence of other parameter settings with similar identifiers.

New m4-file math.m4 for math-related macros installed in .arfg-pre: fast exponentiation code generation defined (note that this should only be used with a compiler not handling floating-point**integer efficiently.

New properties/capabilities mechanism (cf. capabilities.m4) installed in .arfg-pre and .arfg-post.

Properties and capabilities for core-condition integrals with square well potentials.

Upper integration bounds in the core condition integrals that are less than the maximum Q value in the calculation by default no longer generate a run-time error but result in adjustment of integration bounds; new compile-time parameter allows reverting to the old behavior.

Adjusted default values for CoreCondition_Integral_SafetyFactor in several implementations of .

Dump accumulated code from diversion DumpAtEnd__`'m4_unitname before #endunit.

m4 macro for calling yacas at m4 stage.

Change to .arfg-rewrite to handle non-type-declarations starting with type.

Change Fortran string variable declaration in util.arfg/iso2ascii.arfg to accept file names of up to 1024 characters.

Documentation updates.

Version 4.20020414a

(on-line documentation and download)

First version released.

[ previous ] [ contents ] [ next ]


Copyright © 2002-2003 by Albert REINER. All rights reserved.

URL: http://purl.oclc.org/NET/ar-hrt-1/current/history.html

URL: http://purl.oclc.org/NET/ar-hrt-1/5.20030128a/history.html

2003-01-28 16:10:23