13-Feb-2009 NP Moscow
The week between the 9 and 12 of February 2009 I was testing VALD3 main pipeline in the format: preselect3 < pres.in | select3
Prior to the the tests the following modification have been made to preselect3:
1. Avoid merger of lines from the same list through a transition in another lists (multiple mergers for the same parameters). This achieved by scanning identification window from the reference transition "i" up and down until the wavelength limit is reached. In the process the merger with any given line list can happen only once.
2. The identification window was made adaptive. The VALD configuration file now contains the half-window size and the reference wavelength. The window is then scaled with the wavelength down to 0.01 or up to 100 times the reference window. Beyond these limits the window is kept constant.
3. In order to avoid mergers with line lists where line identification with high probability will lead to errors and a special flag was introduced to the VALD configuration file. If set to 1 this flag declares a particular list as non-mergeable which means that no transitions from other line lists can be merged to a transition from this list and the transitions from this list cannot be used as replacements for a transition from any other list. This is done by tracing the ability to merge and be merged for each transition in the merging stack via a logical variable "mergeable".
4. The output of preselect3 was modified to accommodate various options for energies and wavelength. In particular, new formats and the corresponding cases have been added for extracting energies in eV and cm-1 and wavelengths in vacuum/air, Angstroem, nm or cm-1. Various options for the wavelengths do not extend to the wavelength limits. In order to select sp. lines within the specified wavelength limits, preselect3 outputs the wavelength twice: the first parameter for each record is the wavelength in Angstroem. The format is adjusted on-the-fly to accommodate the whole range of wavelength included in VALD.
5. Finally, VALD is allowed now to include line lists for special isotopes and molecules with particular isotopes. The oscillator strength in those lists should not be scaled by the isotopic ratios. This is now done in preselect3. The solar isotopic ratio is included in the VALD list of species.
The test configuration included observed and predicted line lists of Iron and the new line lists of TiO by Plez separated by Ti isotopes.
The following problem have been identified and solutions found:
1. The TiO line lists could not be read properly. Symptoms preselect3 could read most of the first record but then started returning rubbish. The problem was traces to the ReadMask variable inside the unkompress3. The variable was declared as short but the complexity of the information required the use of 16-bit dictionary which flipped ReadMask to a negative number. The problem was fixed and the tests show that the TiO and other lines list could be correctly read by preselect3.
2. When the output of preselect3 was directed to select3 the species and the ionization stages where not properly identified. This was traced to incorrect double sorting of the indexing array pointing at the species list and the parting number densities returned by EOS. Inside the EOS the list is sorted to avoid double listing of the same species. The problem was solved by removing the 2nd sorting inside select3.
3. Finally, we discovered that for the Iron line lists the output contained lines with suspiciously large oscillator strengths, larger than +10! This was traced to incorrect field specification for the loggf when creating the binary file before kompression. The field was extended by one and shifted to the left to include the sign in front of the double digit oscillator strengths. The lists have to be re-made.
Things to be done:
1. Repeat the extraction tests for all various options and wavelength regions to verify the correctness of the formats.
2. Add more line lists and run performance tests.
3. Verify the preselect3 < pres.in | presformat3 pipe-line.
4. Implement all bells and whistles of preselect3 in showline3.
5. Verification of parsemail3 and parserequest3.
Estimate of the amount of work seem to indicate that we are on schedule for release of VALD3 in March 2009.
Nikolai Piskunov Friday, the 13th of February, 2009