/[cloudy]/branches
ViewVC logotype

Log of /branches

View Directory Listing Directory Listing


Sticky Revision:

Revision Tasks Age Author
14407 Directory Listing
Modified 8 months, 1 week ago
Mon May 23 19:30:01 2022 UTC
marios
Log:
Update copyright year in Hazy
14402 Directory Listing
Modified 8 months, 4 weeks ago
Fri May 6 03:55:30 2022 UTC
marios
Log:
Increment minor version to 3
14401 Directory Listing
Modified 9 months, 2 weeks ago
Fri Apr 15 21:47:48 2022 UTC
marios
Log:
Add missing '#' in save file header

The command in question was 'save chemisty rates'.

14400 Directory Listing
Modified 9 months, 3 weeks ago
Thu Apr 14 21:17:40 2022 UTC
marios
Log:
Update data/stout/refs.json

14399 Directory Listing
Modified 9 months, 3 weeks ago
Thu Apr 14 21:14:27 2022 UTC
marios
Log:
Update bibliography

14398 Directory Listing
Modified 9 months, 3 weeks ago
Thu Apr 14 21:06:21 2022 UTC
marios
Log:
Update the Stout refs and species PDFs in docs

14397 Directory Listing
Modified 9 months, 3 weeks ago
Thu Apr 14 21:04:41 2022 UTC
marios
Log:
Update scripts to manage Stout references

Copied from the Git repository.

14396 Directory Listing
Modified 9 months, 3 weeks ago
Tue Apr 12 14:02:22 2022 UTC
marios
Log:
Update PDFs in tsuite further

14395 Directory Listing
Modified 9 months, 3 weeks ago
Tue Apr 12 02:25:01 2022 UTC
marios
Log:
Update docs and tsuite in prep for release
14394 Directory Listing
Modified 9 months, 3 weeks ago
Mon Apr 11 14:53:00 2022 UTC
marios
Log:
Tell doxygen to not include full paths on output

14393 Directory Listing
Modified 9 months, 3 weeks ago
Mon Apr 11 01:21:22 2022 UTC
marios
Log:
Update todo_search.pl

Cloudy does not follow a single format to TODO's, which causes the
script to work incorrectly.

The script has been updated to handle such variations:
 - It handles \todo entries, in addition to TODO.
 - It processes entries in C++ comments (starting with //).
 - It does not require a priority number to immediately follow the
   TODO / \todo string.
   - If a dash occurs in lieu of a priority number, it removes it from
     the comment.
 - It accepts any kind of whitespace character after the TODO string,
   not just tabs.
 - It accepts comments in Doxygen docstrings (starting with /**)
   and properly extracts comments from them.
 - It does not print the '#'-only separator in the HTML file.

The few files that do not conform to these rules were edited and
committed previously.

14392 Directory Listing
Modified 9 months, 3 weeks ago
Mon Apr 11 01:09:23 2022 UTC
marios
Log:
Add mole_reactions.cpp missing from previous commit

14391 Directory Listing
Modified 9 months, 3 weeks ago
Mon Apr 11 01:08:00 2022 UTC
marios
Log:
Conform \todo's syntax to standard in source files

Some Cloudy files contain TODO's (or \todo's) that do not follow the
general syntax rules, which require that the string be followed by at
least one space (or tab), and that there is only one TODO per comment.

The edited files atmdat_chianti.cpp, container_classes.h, and stars.cpp
now follow that syntax.

14390 Directory Listing
Modified 9 months, 3 weeks ago
Sun Apr 10 23:12:59 2022 UTC
marios
Log:
Create file to hold unused header files
    
list_headers.pl creates a file that shows all files that use each header
file.  It takes some parsing to find if there are files not being used.
    
The new file contains all unused header files.

14389 Directory Listing
Modified 9 months, 3 weeks ago
Sun Apr 10 23:09:14 2022 UTC
marios
Log:
Show include files in output of list_headers.pl
    
The previous implementation did not search through other header files
when searching for uses of a given header file.  As a result, on output
(in listfiles.list) some header files would be followed by a blank line,
ie, they would appear as not being used.

listfiles.list now shows both header and C++ files that use each header
file.  The only header files that may be followed by a blank line are
those that are genuinely unused.

14388 Directory Listing
Modified 9 months, 4 weeks ago
Thu Apr 7 21:18:59 2022 UTC
marios
Log:
Update author list

14387 Directory Listing
Modified 9 months, 4 weeks ago
Thu Apr 7 21:17:52 2022 UTC
marios
Log:
Update release year to 2022

14386 Directory Listing
Modified 13 months ago
Mon Jan 3 18:46:50 2022 UTC
marios
Log:
Deleting branch update-stout
14385 Directory Listing
Modified 14 months, 1 week ago
Mon Nov 22 19:06:15 2021 UTC
marios
Log:
Fixed cast to of INT_MAX to realnum to silence LLVM v12 warning

14384 Directory Listing
Modified 14 months, 1 week ago
Mon Nov 22 19:03:39 2021 UTC
marios
Log:
Fixed cast to of LONG_MAX to double to silence LLVM v12 warning

14383 Directory Listing
Modified 15 months, 1 week ago
Thu Oct 21 20:04:05 2021 UTC
marios
Log:
Update LineLabels in docs/

14382 Directory Listing
Modified 15 months, 1 week ago
Thu Oct 21 19:59:34 2021 UTC
marios
Log:
Add links to Hazy 1-3 and Quickstart PDFs to docs/

14381 Directory Listing
Modified 15 months, 1 week ago
Thu Oct 21 19:57:35 2021 UTC
marios
Log:
Remove PDF documentation from docs/

14380 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 20:07:10 2021 UTC
marios
Log:
Add Gargi Shaw's Markdown for CO reactions

14379 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 19:36:41 2021 UTC
marios
Log:
Update data/md5datafiles.dat

14378 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:42:42 2021 UTC
marios
Log:
Update md5datafiles.dat, .gitignore

14377 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:27:42 2021 UTC
marios
Log:
Enable Mn+ with Stout baseline model with 45 levels

14376 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:26:25 2021 UTC
marios
Log:
Update energies as per Camilloni et al. 2021, RNAAS

14375 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:25:15 2021 UTC
marios
Log:
Forbid numbers on 'metals deplete' command
    
User Andreas Faisst reported that a scale factor issued with the
'metals deplete' command does not actually reset the abundances.
Cloudy is not designed to do both with a single command.  Hazy 1,
however, does not clearly state so.

Mitigate by explicitly forbidding numbers on the command, and by
updating Hazy 1 to clarify current policy.

https://cloudyastrophysics.groups.io/g/Main/message/4679

14374 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:23:56 2021 UTC
marios
Log:
Fix bug in 'save species bands'
    
User Swayam Panda reported that using the 'save species bands' command
more than once in an input deck leads to a segmentation fault.  I have
been able to reproduce the bug.

What causes the bug is a misconception about C++ vector iterators.
When storing the data entered in the commands, the file that holds the
bands is read in, and its data stored in static vector for the bands file
objects by growing the vector (with push_back()).  An iterator to that
memory location is returned to, and stored by the object that holds all
command info.

This assumes that the iterator remains invariant after growing the vector.
That is not true.  C++ vectors are not like C arrays.  Iterators (save the
last one entered) no longer point to valid memory after the vector grows
by one member.

The least disturbing solution in the current scheme is first to read the
band files, and then to store the info for each command.

14373 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:20:59 2021 UTC
marios
Log:
Fix bug with multiple 'save species lines' commands

Stefano Bianchi reported that for multiple instances of the command
'save species lines', only the first one is honored.

The code expects only one instance of this command, and relies on a
static bool 'lgRunOnce' to decide whether it has run.  As a result,
subsequent calls produce empty files.

Remove the bool, and replace it with a record of processed species
to guarantee that all requested species are processed, and each is
processed only once.

https://cloudyastrophysics.groups.io/g/Main/message/4612

14372 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:18:55 2021 UTC
marios
Log:
Update remaining links in Hazy from trac to gitlab

14371 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:17:35 2021 UTC
marios
Log:
Add description of TABLE STARS

14370 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:16:35 2021 UTC
marios
Log:
Fix broken links to wiki

14369 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:15:01 2021 UTC
marios
Log:
Parse 'no collisional ionization'

Patch ported from git.

Original comments:
==================

Marios Chatzikos, 2021-Apr-07:
------------------------------
Remove dead code from 'no collisional ionization' parser

Gary Ferland, 2021-Apr-07:
--------------------------
more doc on NO COLLISIONAL IONIZATION command

Gary Ferland, 2021-Mar-28:
--------------------------
parse NO COLLISIONAL IONIZATION

14368 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:08:27 2021 UTC
marios
Log:
Update .gitignore

14367 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:06:55 2021 UTC
marios
Log:
Gargi Shaw docs CR background and PAH interactions

This updates two parts of Hazy 1 and adds a citation to
Shaw & Ferland (2021arXiv210103732S).  The discussion
reviews how the PAH abundance affects the cosmic ray secondary
ionization rate and gives the recommended Galactic background
for the case where PAHs are present.  Our recommended default
CR background rate remains the Indriolo+ value but we give
the Cloudy command to change this rate to our recommended value
when PAHs are present.

Patch ported from git.

14366 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 18:03:06 2021 UTC
marios
Log:
Fix bug in maser escape probabilities

Patch ported from git.


Original comments:
==================

Merge branch 'maser' into 'master'

See merge request cloudy/cloudy!9

Gary Ferland, 2021-Feb-15:
--------------------------
Add debug print for special maser escape probability
    
This adds a commented-out debug print statement to the
routine that calls esc_CRDwing_1side.  The report
extends over the range of interesting optical depths.  The
range extends from close to the lower
limit of the maser optical depths we can handle due to
floating point limits to a high enough value well into
the positive tau case.

Note that this printout occurs for whatever damping constant
the routine is called the first time.  The print code
exits after doing one loop.  It does not test a range
of damping constant and would not illustrate the problem
being fixed on this branch..

An assert for positive escape probability has been
added to esc_CRDwing_1side.  That assert would have made
it much easier to trace down the original thrown assert.

Add tfile to list of ignored files. 

Improve the usefulness of error print when maser optical depth
becomes too small by giving the smallest optical depth considered.


Gary Ferland, 2021-Feb-08:
--------------------------
Correct algebra on line 197 to preserve intent
of original source.


Gary Ferland, 2021-Feb-07:
--------------------------
BUGFIX - CRD with damping wings did not do masers
    
A sim that used all levels of the new Fe II and Fe III
datasets threw an assert at
 Failed: escgrd_v > 0.
 It happened in the file ../rt_escprob.cpp at line number 330

It was due to a long-standing bug/oversight.  The complete
redistribution with wings escape probability did not protect
against masers and a negative escape probability resulted.
We now use the appropriate routine when the optical depth is
negative.  The sim follows.

This oversight has been present for a long time.  It is
surprising that it has only now bitten.  This is likely
because we now have atomic models that are much larger
than in the past.

---

````
set save prefix "assert"
TURBULENCE= 0.600000 LOG 3.000000
species "Fe+" dataset="Smyth19"
species "Fe+" levels=all
species "Fe+2" levels=all
stop column density 23
stop temperature exceeds 1e7 K
print lines sort wavelength
print lines column
print lines faint 1
iterate
print last
hden 14
table SED "AGN_Jin12_Eddr_mid.sed"
phi(H) 23
normalize to "Inci" 1215 scale factor = 1215
````

14365 Directory Listing
Modified 15 months, 2 weeks ago
Tue Oct 19 17:52:57 2021 UTC
marios
Log:
Merge updated docs from HEAD

Patch ported from git.

14364 Directory Listing
Modified 2 years, 2 months ago
Tue Dec 1 22:05:10 2020 UTC
gary
Log:
update Ha wavelengths that changed with the NIST
> energy levels upgrade
14363 Directory Listing
Modified 2 years, 2 months ago
Tue Dec 1 18:14:37 2020 UTC
marios
Log:
Merged from mainline r13840 through r14362
14362 Directory Listing
Modified 2 years, 2 months ago
Tue Dec 1 18:13:46 2020 UTC
marios
Log:
Merged from mainline r13796 through r14361
14361 Directory Listing
Modified 2 years, 2 months ago
Tue Dec 1 18:11:56 2020 UTC
marios
Log:
Merged from mainline r12859 through r14360
14360 Directory Listing
Modified 2 years, 2 months ago
Mon Nov 30 21:59:56 2020 UTC
marios
Log:
tsuite/slow/time_cool_cp.in
tsuite/slow/time_cool_cp_eq.in
  - Updated wavelengths following merge from mainline.

14359 Directory Listing
Modified 2 years, 2 months ago
Mon Nov 30 20:55:32 2020 UTC
marios
Log:
Merged from mainline r14155 through r14358
14358 Directory Listing
Modified 2 years, 2 months ago
Mon Nov 30 20:45:25 2020 UTC
marios
Log:
Merged from mainline r14168 through r14357
14356 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 26 00:32:23 2020 UTC
marios
Log:
util/register/viz.py
  - bugfix: Hybrid transitions betweeen inverted levels were counted as
    branching from the top level, when in reality they decay *into* the level.
    This led to some BRs exceeding 1!  Now ignoring inverted levels in
    calculations of BRs.  Fixed.

14355 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 22 01:34:12 2020 UTC
marios
Log:
util/register/viz.py
  - Commented out debugging statements in process_tran_WN_data().

14354 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 22:29:31 2020 UTC
marios
Log:
Removed bzip2-compressed files:
  - data/hydro_tpnl_n2000.dat.bz2
  - data/hydro_tpn_n2000.dat.bz2

Added xz-compressed files, instead:
  - data/hydro_tpn_n2000.dat.xz
  - data/hydro_tpnl_n2000.dat.xz

Updated script to work with .xz files.
  - data/hydro_tpnl_switch.pl

Added instructions for how to use script:
  - data/hydro_tpn.README

14353 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 21:49:38 2020 UTC
marios
Log:
Renamed: data/switch-hydro-Aul -> data/hydro_tpnl_switch.pl

14352 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 19:27:54 2020 UTC
marios
Log:
util/idata/nrg.py
  - bugfix: Attempt to remove indices from an ConfTerm object was done on the
    fly, i.e., while the list to remove from was iterated over to check for
    matching indices.  Now carrying out the deletion in 'post-processing', i.e.,
    after the list of matching indices has been assembled.  Fixed.
  - bugfix: Incorrect deletion of list of indices (done from local variable).
    Now removing them from ConfTerm() object.  Fixed.
  - Logical error: Until now, empty terms were not removed from ConfTerms()
    object. Fixed.

14351 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 15:52:26 2020 UTC
marios
Log:
util/idata/nrg.py
  - bugfix: Incorrect use of del to remove item from list.  Now using remove()
    method.  Fixed.

14350 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 14:28:29 2020 UTC
marios
Log:
Bugfix in term registration plots.

util/register/viz.py
  - bugfix in register_terms(): The hybrid energy used was always that of the
    first list of term indices, so in case of two terms with same configuration
    and term, the indices of the first were used to get the energy of the
    second.  Now getting using the terms of theory_term_to_merged_term(), see
    below.  Fixed.

util/register/convert.py
  - Now returning the hybrid indices corresponding to the given theory ones,
    in addition to the hybrid term.  Needed to disambiguate between terms.

14349 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 13:14:32 2020 UTC
marios
Log:
util/register/viz.py
  - In term plots, do not mirror y-axis on the right-hand side of the plot.
  - Refactored preparation of file name suffixes for term- and BR update
    plots into function.  It returns the format to be used, which includes
    leading zeros when needed, e.g., the suffix for file 1 of 20 is '01of20',
    intead of '1of20' used until now.

14348 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 21 12:33:14 2020 UTC
marios
Log:
util/register/shifts.py
  - bugfix: Energy bracket was flipped, with shifts toward the lower term
    counted as positive, and vice versa.  Reversed the signs.  Fixed.
    - Also, refactored setting of bracket to a function.
  - Added some debugging info to BR update minimization.

14347 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 17:22:22 2020 UTC
marios
Log:
util/idata/nrg.py
  - Logical error: Method BasicEnergy.set_energy() was setting an attribute
    ('_shifted') of the RegisterEnergy() class.  Removed the assignment, and
    introduced method Energy.set_energy(), which calls the homonymous method
    of BasicEnergy(), as well as RegisterEnergy.set_shifted().  The latter has
    been modified to not require indices to be passed on (used with term
    registration).  Fixed.

14346 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 14:23:54 2020 UTC
marios
Log:
util/adas/extract.py
  - bugfix: Reading ionization potential off first ADF04 line failed when spaces
    existed in the ion string.  Removed ion designation before processing the
    line.  Fixed.

14345 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 06:29:16 2020 UTC
marios
Log:
util/register/viz.py
  - Adapted comparisons against experimental wavelengths to handle datasets that
    have no WL uncertainties, or have no observed wavelengths at all.

14344 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 05:42:58 2020 UTC
marios
Log:
adm-ingest-data.py
  - bugfix: Was not removing dismissed levels from final energy dataset.  Fixed.

util/idata/nrg.py
  - Implemented removal of dismissed levels from the entire dataset.
    Added methods:
    - Energies.remove_dismissed()
    - Groups.remove_dismissed()
    - ConfTerms.remove_dismissed()
    - ConfTerm.remove_dismissed()

14343 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 01:22:29 2020 UTC
marios
Log:
util/register/shifts.py
  - bugfix in scipy.optimize.minimize_scalar:
    In some cases, minimization of the change to branching ratios failed to find
    the global minimum, presumably due to the non-linear form of that function.
    In fact, minimization of the level lifetimes produced a smaller BR change
    than the function minimizing the BR change! 
    Tightened energy bracket to 1/4 of the range to the nearest terms, and
    recovered a global minimum lower than that obtained by minimizing the change
    to the lifetimes.  Fixed.

14342 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 20 00:35:27 2020 UTC
marios
Log:
util/register/shifts.py
  - bugfix in prep_trans():
    Interlacing unregistered terms can lead to aborts, since the hybrid energy
    of the lower level cannot be predicted (not yet registered).  For instance,
    in O+5, two interlaced unregistered terms have indices (67, 70), and
    (68, 69).  Obviously transitions from level 70 to (68, 69) cannot be
    considered, for the above reason.  We now explicitly ignore such levels.
    Fixed.
  - Increased the maximum number of iterations from 50 to 100 in the call to
    scipy.optimize.minimize_scalar().

14341 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 23:47:10 2020 UTC
marios
Log:
util/idata/nrg.py
  - bugfix in Energies.is_level_present():
    r14334 introduced an overambituous check against a level's Jtot, which
    prevented J=0 levels from being entered.  Removed the check altogether.
    Fixed.

14340 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 19:34:38 2020 UTC
marios
Log:
data/switch-hydro-Aul
  - Added script to ease switching between the H Aul datasets with maximum
    n=100 and n=2000.

14339 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 17:29:21 2020 UTC
marios
Log:
Added symbolic links:
  - data/hydro_tpn.dat -> hydro_tpn_n100.dat
  - data/hydro_tpnl.dat -> hydro_tpnl_n100.dat

14338 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 17:27:06 2020 UTC
marios
Log:
Renamed: data/hydro_tpn.dat -> data/hydro_tpn_n100.dat
Renamed: data/hydro_tpnl.dat -> data/hydro_tpnl_n100.dat

14337 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 17:21:32 2020 UTC
marios
Log:
Truncated files to n=100.
  - data/hydro_tpn.dat
  - data/hydro_tpnl.dat

14336 Directory Listing
Modified 2 years, 3 months ago
Mon Oct 19 17:10:46 2020 UTC
marios
Log:
Added compressed versions of the Hydrogen Einstein A's going up to n=2000.
  - data/hydro_tpn_n2000.dat.bz2
  - data/hydro_tpnl_n2000.dat.bz2

14334 Directory Listing
Modified 2 years, 3 months ago
Sat Oct 17 22:14:49 2020 UTC
marios
Log:
adm-ingest-data.py
  - Added command-line option to exclude certain levels from hybrid model.

util/nist/nrg.py
  - Added comment to form_name(), explaining that unphysical configurations,
    such as the O5+ level 1s.2d.3d 4D at 5197910 on NIST, produce undefined
    names.

util/idata/nrg.py
  - bugfix: In Energies.is_level_present(), a level with no name (see above)
    would cause an abort.  Now guarding against that possibility.  Fixed.

14333 Directory Listing
Modified 2 years, 3 months ago
Sat Oct 17 17:28:21 2020 UTC
marios
Log:
util/idata/nrg.py
  - Defined method Energies.max_index() to return the maximum index in a dataset.
  - Added missing changelog from module docstring.

test/idata/test_nrg.py
  - Exercised method in unit tests.

14332 Directory Listing
Modified 2 years, 3 months ago
Sat Oct 17 16:50:47 2020 UTC
marios
Log:
test/idata/test_nrg.py
  - Rearranged code.  Inner functions converted to module functions.

14331 Directory Listing
Modified 2 years, 3 months ago
Fri Oct 16 22:05:57 2020 UTC
marios
Log:
Branch to deal with phasing out data/ file hydro_tpnl.dat (and probably hydro_tpn.dat).

14330 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 15 22:12:16 2020 UTC
marios
Log:
adm-ingest-data.py
  - Improved warning for multipole orders discrepant from that determined by ADM.

14329 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 15 22:05:27 2020 UTC
marios
Log:
adm-ingest-data.py
  - bugfix: Spin was extracted from term with a regular expression, which failed
    for uncertain terms (ending in '?').  Now using specialized functions for LS
    and JK coupling to extract spin.  Fixed.
  - Refactored code to figure out the 'correct' J-order of terms only when the
    reordering was requested via the '-r' flag.

14328 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 15 21:43:39 2020 UTC
marios
Log:
Added changelog for r14327.
  - util/idata/tp.py
  - util/idata/wl.py
  - util/nist/extract.py

14327 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 15 21:18:17 2020 UTC
marios
Log:
Added supervised replacement of transition wavelengths.

util/idata/tp.py
  - Updated TranList.insert_transition() to accept a keyword argument 'replace'
    to enable user-permitted replacement of duplicate data, instead of bailing
    with an error.
  - bugfix in TranList.bail_if_exists(): Attempt was made to execute method of
    object on the list that holds such objects.  Fixed.

util/idata/wl.py
  - Enable replacements when entering and object to a list of wavelengths,
    method WLS.add_transition().

util/nist/extract.py
  - Updated process_line_table() to accept keyword argument 'just_wl' to only
    extract the wavelengths from a HTML table, not the probabilities.
  - Updated do_get_transitions() to accept the same keyword.
  - Air wavelengths are obtained ignoring transition probabilities.
    This becomes important for species with a transition specified twice, once
    for each multipole order.  By disabling the TPs, the user does not have to
    validate any replacements for them. S/he has to do so for wavelengths, though.

14326 Directory Listing
Modified 2 years, 3 months ago
Thu Oct 15 17:39:28 2020 UTC
marios
Log:
util/idata/wl.py
  - Uncertainty to calculated wavelength is no longer required.

test/idata/test_wl.py
  - Updated unit tests to new interface.
  - Added tests for data records with no uncertainty in calculated wavelength.

util/nist/extract.py
  - Updated call for WLs() object.
  - A file of wrong wavelengths is created only if any are found.

14325 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 14 20:31:41 2020 UTC
marios
Log:
adm-ingest-data.py
  - Added changelog for r14324.

14324 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 14 20:26:37 2020 UTC
marios
Log:
adm-ingest-data.py
  - Disabled reordering (typically degenerate) terms by default.
    Enabled via command line option, -r.

14323 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 14 16:54:55 2020 UTC
gary
Log:
load leveling for slowest sims.  
The lowest abundant elements were turned off.  Some predictions did change at the five to ten perent
level but the purpose of these sims is to demonstate the global behavior and convergence.
14322 Directory Listing
Modified 2 years, 3 months ago
Wed Oct 14 01:04:31 2020 UTC
gary
Log:
svn merge -r14320:14321 ^/trunk/data/SED
14320 Directory Listing
Modified 2 years, 3 months ago
Tue Oct 13 14:08:56 2020 UTC
marios
Log:
Merged from mainline r14170 through 14319.

14319 Directory Listing
Modified 2 years, 3 months ago
Fri Oct 9 00:00:16 2020 UTC
marios
Log:
adm-merge-tp.py
  - Only use experimental transitions if their accuracy is 10% or better.

14315 Directory Listing
Modified 2 years, 4 months ago
Sun Oct 4 00:09:06 2020 UTC
gary
Log:
svn merge -r14313:14314 ^/trunk/data
14311 Directory Listing
Modified 2 years, 4 months ago
Thu Oct 1 19:22:44 2020 UTC
marios
Log:
tsuite/auto/agn_warm_absorber_hiU.in
  - Updated wavelength for Fe26 1^2S-2^2P to current value, following Priyanka's
    changes to data/phfit.dat.  See r14306.

tsuite/auto/fix_input_scripts_wl.pl
  - Ported changes to look for suggested wavelength, instead of assuming it is
    always 3 lines after the emitted warning.  First implemented on the Priyanka
    branch in late Aug 2020.

docs/LineLabels.txt
  - Updated to current wavelengths.

14309 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 30 19:19:10 2020 UTC
gary
Log:
Priyanka updates to IPs in phfit.dat to current NIST values
14308 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 30 15:59:27 2020 UTC
gary
Log:
svn merge -r14236:14304 ^/trunk 
14307 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 30 14:56:47 2020 UTC
gary
Log:
update wavelengths that changed in r14306
14306 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 30 14:56:04 2020 UTC
gary
Log:
update H-like n=2 energies.  Priyanka extended the ionization potential
precision in data/phfit.dat to current NIST values.  A polynomial correction to 1/n^2 is now applied
in source/iso_create.cpp to bring the n=2 energies to their NIST values.  Some Ka wavelengths change
slightly as a result.
14305 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 30 03:11:55 2020 UTC
gary
Log:
svn merge -r14303:14304 ^/trunk 
14303 Directory Listing
Modified 2 years, 4 months ago
Sun Sep 20 00:35:05 2020 UTC
gary
Log:
svn merge -r14301:14302 ^/trunk 
14301 Directory Listing
Modified 2 years, 4 months ago
Sun Sep 20 00:21:51 2020 UTC
gary
Log:
svn merge -r14299:14300 ^/trunk
14299 Directory Listing
Modified 2 years, 4 months ago
Sat Sep 19 20:48:38 2020 UTC
gary
Log:
svn merge -r14297:14298 ^/trunk 
14297 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 17 21:37:55 2020 UTC
marios
Log:
Merge from mainline r14200 to r14296
14296 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 17 21:33:36 2020 UTC
marios
Log:
Added option to create scatter plots for transition energy updates.
  - adm-visualize.py
  - util/register/trans.py
  - util/register/viz.py

14295 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 17 02:42:56 2020 UTC
gary
Log:
svn merge -r14293:14294 ^/trunk 
14293 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 17 02:16:26 2020 UTC
marios
Log:
util/register/report.py
  - Fix title of TeX table for term registration.

14292 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 15 16:35:38 2020 UTC
marios
Log:
util/io/json.py
  - Indent by only 1 space in output JSON files.  2 spaces were used previously.

14291 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 15 14:56:21 2020 UTC
marios
Log:
adm-fine-tune.py
  - Added menu option 'rp' to inspect the wavelength updates in terms of the
    resolving power required to identify the wavelength shifts.

14290 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 15 14:54:37 2020 UTC
marios
Log:
util/register/trans.py
  - bugfix: The wavelength updates gathered under 'matched_terms' did not truly
    refer to registered terms, but to transitions that involved (exactly) one
    registered level.  Rearranged the logic to first capture transitions that
    involve at least one arbitrarily shifted level, and then those that involve
    two registered terms.  Fixed.
  - Parametrized the registration labels for these transitions with module-wide
    parameters.

14289 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 15 14:07:30 2020 UTC
marios
Log:
adm-fine-tune.py
  - Changed the formatting of the energy splitting ratio in the output of menu
    option 'td' (transition details).

14288 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 22:53:55 2020 UTC
marios
Log:
util/register/viz.py
util/register/trans.py
  - Moved function prepare_WL_scatter_data() from viz.py to trans.py.

14287 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 22:45:46 2020 UTC
marios
Log:
util/register/viz.py
  - Modified data structure for data in wavelength scatter and resolving power
    plots to hold dicts, instead of tuples, as the most fundamental data
    structure.

14286 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 21:50:08 2020 UTC
marios
Log:
adm-fine-tune.py
  - bugfix: Output of menu option 'ld' (level details) fails for a level that
    does not exist in the theoretical dataset. Added check that the theory level
    exists.  Fixed.
    - Now showing the experimental level if the theoretical level does not exist.

14285 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 21:47:22 2020 UTC
marios
Log:
util/register/viz.py
  - Decluttered delchi plots of wavelength offsets between hybrid and
    experimental wavelengths, see r14268: Removed error bars; added dotted
    lines at +/-1, instead, to demark range of consistency within one sigma.

14284 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 16:15:56 2020 UTC
marios
Log:
util/register/viz.py
  - Added log-scale plots for the comparison between theory/hybrid and
    experimental (observed and calculated) wavelengths.

14283 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 14:49:50 2020 UTC
marios
Log:
util/nist/extract.py
  - Added wavelength validation.  Now air wavelengths are also downloaded
    and are compared against vacuum wavelengths.  The user is notified of
    any problems, and prompted to correct for air refraction. 
    Any changes made are also reported in a text file.
  - Refactored line acquisition to be used with both vacuum and air wavelengths.
    Most notably, process_line_table() has been modified to work over table
    'sections', defined as a header followed by lines of data.  This is because
    tables reporting air wavelengths contain three such sections, each
    reporting the switch between vacuum and air values.

util/nist/files.py
  - Modified get_html_transition_filename() to include '_air' in the output file
    name, controlled by a keyword argument.  By default, the string is omitted.

util/idata/wl.py
  - In BasicWL(), added methods reset_calc_wl() and reset_obs_wl() to update
    existing wavelengths.

test/idata/test_wl.py
  - Exercised new methods in unit tests.

14282 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 14:42:12 2020 UTC
marios
Log:
util/nist/wl.py
  - Modified default wavelength strings to use Unicode symbols.

14281 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 14 13:59:32 2020 UTC
marios
Log:
util/nist/phtml.py
  - In TranParser():
    - Enabled parser to read air wavelengths in addition to vacuum.
    - Modified methods obs_wl(), obs_wl_unc(), calc_wl(), and calc_wl_unc() to
      report the wavelengths read, either vacuum or air.
  - In Header(), refactored column validation in method validate_column().

test/nist/test_phtml.py
  - Exercised new capabilities in unit tests.

14280 Directory Listing
Modified 2 years, 4 months ago
Fri Sep 11 19:33:16 2020 UTC
marios
Log:
util/lines
util/lines/__init__.py
  - Added package for spectral lines.

util/lines/air.py
  - Added module for refractive index of air.

test/lines
test/lines/test_air.py
  - Added module to exercise new module.

14279 Directory Listing
Modified 2 years, 4 months ago
Fri Sep 11 15:57:45 2020 UTC
marios
Log:
util/io/log.py
  - Implemented shutting down output to STDOUT from calls to prt() via a keyword
    argument.
    Also adapted calls to error(), warn(), and note() to print their prefix
    (e.g., ERROR) only if the main message is printed.
    Introduced function prep_prefix_kwargs() to handle printing the prefix.

14278 Directory Listing
Modified 2 years, 4 months ago
Fri Sep 11 15:25:35 2020 UTC
marios
Log:
util/io/log.py
  - Added function to tell if printing to STDOUT is enabled or not.

test/io/test_log.py
  - Exercised function in unit tests.

14277 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 10 23:14:47 2020 UTC
marios
Log:
util/nist/phtml.py
  - Refactored code extracting columns from a table line into function
    parse_table_line().

test/nist/test_phtml.py
  - Exercised function in unit tests.

14276 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 10 20:41:12 2020 UTC
marios
Log:
util/nist/web.py
  - Added option to extract air wavelengths for lines in the range
    0.2--2 micron.

test/nist/test_web.py
  - Exercised option in unit test.

14275 Directory Listing
Modified 2 years, 4 months ago
Thu Sep 10 20:37:56 2020 UTC
marios
Log:
adm-fine-tune.py
  - Added option to sort branching ratios (menu option 'br') in ascending
    order.  The default was descending.

14274 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 9 16:48:33 2020 UTC
marios
Log:
adm-fine-tune.py
  - bugfix: In output of branching ratio updates, each level was assumed to have
    at least two transitions.  This fails for the first excited level.  Added
    check against number of radiative decays.  Fixed.

14273 Directory Listing
Modified 2 years, 4 months ago
Wed Sep 9 12:26:42 2020 UTC
marios
Log:
adm-fine-tune.py
  - Added column of theoretical indices to the output of the wavelengths
    option.

util/register/trans.py
  - bugfix: The same dict was used for storing both the calculated and observed
    wavelenghts, causing the calculated wavelengths to be overwritten.  Now the
    observed data are stored in a separate dict, preventing an overwrite.
    Fixed.

util/register/viz.py
  - The word 'Theoretical' was used instead of 'Hybrid' in the output plot
    showing the wavelength differences from the experimental values in units of
    the (exp) uncertainty.  Fixed.

14272 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 21:23:47 2020 UTC
marios
Log:
util/io/nicks.py
  - Added function to append the suffix of a given nickname to another nickname,
    match_suffix().

test/io/test_nicks.py
  - Added unit tests for match_suffix().

adm-fine-tune.py
adm-merge-tp.py
adm-visualize.py
  - Updated to use new function.

14271 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 19:58:32 2020 UTC
marios
Log:
adm-fine-tune.py
  - Added menu option to compare hybrid wavelengths to experimental values.

util/register/trans.py
  - Now recording the experimental indices with wavelength data.

util/ui/upr.py
  - Silence warning in readline_floats() when an empty line is given.

14270 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 16:45:35 2020 UTC
marios
Log:
util/ui/upr.py
  - Added function for reading a list of user-supplied floats.

test/ui/test_upr.py
  - Exercised function in unit tests.

14269 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 14:51:56 2020 UTC
marios
Log:
util/register/viz.py
util/register/trans.py
  - Moved functions to trans.py:
    - experm_level_to_theory()
    - experm_level_to_hybrid()
    - prepare_WL_comparison()
  - Modified 'obs' and 'calc' datasets furnished by prepare_WL_comparison() to
    be lists of dicts, not tuples.

14268 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 13:40:02 2020 UTC
marios
Log:
util/register/viz.py
  - Added delchi plots for wavelength offsets between the hybrid and experimental
    datasets.  In them, the y axis is the difference of wavelengths, divided by
    the error in the wavelength.  Similar to delchi residual plots in XSPEC.

14267 Directory Listing
Modified 2 years, 4 months ago
Tue Sep 8 12:52:25 2020 UTC
marios
Log:
util/register/shifts.py
  - Added comment in module docstring for recent changes (r14265).

14266 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 7 23:27:41 2020 UTC
marios
Log:
util/register/viz.py
  - Now reporting the range for total change in branching ratio changes of all
    levels.

14265 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 7 23:26:11 2020 UTC
marios
Log:
util/register/shifts.py
  - In getting the energy shift by minimizing the total correction to the TP:
    - bugfix: The multipole order index, k, was being as the exponent of the
      energy ratio in the TP update, instead of 2k+1.  Fixed.
    - Modified code to compute change in the level (inverse) lifetime for the
      given energy shift, instead of the sum of the log of the TP update factors.
      This is because the latter does not discriminate between strong and weak
      lines, leading to an unbiased average that did not work well in many cases.
      By contrast, the current implementation favors strong transitions over weak
      ones. 
      The changes are in ufac(); the TP update factors may be obtained by use of a
      keyword argument.
    - Parallelized exponentiation using numpy.

  - Introduced option to set the energy shift by minimizing the total change in
    branching ratios for this level.

  - Modified minimize_tp_ufac() to accept a function as its first argument, to use
    with both minimization options, and renamed to do_minimize().

  - Now using inner function to produce uniform output to log for all shifting
    options.

14264 Directory Listing
Modified 2 years, 4 months ago
Mon Sep 7 00:04:59 2020 UTC
gary
Log:
further update to McCall CR-related rates from r14260
14261 Directory Listing
Modified 2 years, 4 months ago
Sun Sep 6 14:09:38 2020 UTC
gary
Log:
svn merge -r14259:14260 ^/trunk
14257 Directory Listing
Modified 2 years, 4 months ago
Sat Sep 5 17:44:56 2020 UTC
marios
Log:
util/register/report.py
  - Added column for fractional energy change in the output to terminal.
    Complement to r14254.

14254 Directory Listing
Modified 2 years, 4 months ago
Fri Sep 4 21:13:40 2020 UTC
marios
Log:
util/register/report.py
  - Updated TeX output to include column for fractional energy change.

14253 Directory Listing
Modified 2 years, 4 months ago
Fri Sep 4 20:35:04 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modified remove_junk() to also remove '+r' strings trailing energy values.
    Such strings occur, for example, in the NIST data of F+7.

14252 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 15:01:33 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix in output of 'bs' option: Loop was over level indices, leading
    to the first entry of the sorted levels not being displayed.  Now looping
    over the list elements.  Fixed.

14251 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 13:57:40 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - In EnergyParser.parse(), made processing of entries referring to entire
    shells possible through a keyword argument (disabled by default).

14250 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 13:50:52 2020 UTC
marios
Log:
Implemented plots of branching ratio updates per level.
  - adm/adm-visualize.py
  - adm/util/register/viz.py

14249 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 13:41:29 2020 UTC
marios
Log:
adm/util/idata/state.py
  - Added OneState.full_name() to tell the name of a level including any omitted
    subshells.
  - Added MixedState.primary_full_name() to tell the primary full name of the
    level.

adm/test/idata/test_state.py
  - Added unit tests for the new methods.
  - Added unit tests for OneState.name().

14248 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 12:43:51 2020 UTC
marios
Log:
adm/util/register/trans.py
  - Newly added module.
    Contains a refactored function for the weight of a BR update.

adm/adm-fine-tune.py
  - Use refactored function with 'bs' option.

adm/util/register/init.py
  - Added new module to the list of modules for 'import *'.

14247 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 12:32:33 2020 UTC
marios
Log:
Reverted r14246
14246 Directory Listing
Modified 2 years, 5 months ago
Tue Sep 1 12:28:31 2020 UTC
marios
Log:
adm/util/register/trans.py
  - Newly added module.
    Contains a refactored function for the weight of a BR update.

adm/adm-fine-tune.py
  - Use refactored function with 'bs' option.

adm/util/register/__init__.py
  - Added new module to the list of modules for 'import *'.

14245 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 31 21:21:41 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In the output of the 'bs' option:
    Allow user to sort each level by the theoretical value of branching ratio,
    the hybrid one, or the difference.

14244 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 28 18:30:11 2020 UTC
gary
Log:
allow all transitions from ground state of two-electron
systems to become optically thick in the Case B limit.  Previous code had been
designed for He I so expected only E1 transitions to be fast
14243 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 28 13:24:08 2020 UTC
gary
Log:
svn merge -r14234:14236 ^/trunk 
14242 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 28 13:14:12 2020 UTC
gary
Log:
allow all transitions from ground state of two-electron
systems to become optically thick in the Case B limit.  Previous code had been
designed for He I so expected only E1 transitions to be fast
14241 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 28 12:56:05 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Calculations of level lifetimes actually used the total Einstein A.
    Now using the inverse, i.e., computing the proper lifetimes.  Brought in
    line with the calculations for the scatter plots.  The computed ratio is
    now the same between the two calculations.
  - Implemented command to show the largest changes in branching ratios out
    of levels.

14240 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 28 12:40:34 2020 UTC
marios
Log:
adm/util/register/viz.py
  - bugfix in scatter plots of level lifetimes: Calculated theoretical
    values including TP corrections.  Now they are explicitly excluded.
    Fixed.

14239 Directory Listing
Modified 2 years, 5 months ago
Wed Aug 26 16:06:29 2020 UTC
marios
Log:
tsuite/auto/hii_blister.in
  - Fixed typos: Removed repeated list of lines.

14238 Directory Listing
Modified 2 years, 5 months ago
Wed Aug 26 15:25:47 2020 UTC
marios
Log:
tsuite/auto/igm_perseus.in
  - Updated to CS from Si+2017 used for He-like Fe.

14237 Directory Listing
Modified 2 years, 5 months ago
Wed Aug 26 15:21:15 2020 UTC
marios
Log:
Updated wavelengths in test suite and data/LineList_*.

source/lines.h
source/conv_itercheck.cpp
source/iter_startend.cpp
source/lines.cpp
source/parse_stop.cpp
source/parse_test.cpp
source/prt_comment.cpp
source/prt_final.cpp
source/prt_lines_hydro.cpp
  - Parametrized (and updated) Hbeta wavelength, and used it around the code.

tsuite/auto/fix_input_scripts_wl.pl
  - Updated to search for the line that holds the wavelength suggestion,
    instead of assuming that it is always 3 lines after the emitted warning.

14234 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 24 15:34:13 2020 UTC
gary
Log:
svn merge -r14231:14232 ^/trunk 
14233 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 24 15:29:59 2020 UTC
gary
Log:
direct update of r14232, limit number of levels, svn merge failed due to change in format
14231 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 24 12:19:02 2020 UTC
marios
Log:
Partial update to test suite, following r14228.

14228 Directory Listing
Modified 2 years, 5 months ago
Sat Aug 22 13:46:14 2020 UTC
marios
Log:
source/iso.cpp
  - Read the new Stout files holding the H- and He-like energies, instead of
    hydro_energies.dat and helike_energies.dat.

14227 Directory Listing
Modified 2 years, 5 months ago
Sat Aug 22 12:36:47 2020 UTC
marios
Log:
Split hydro_energies.dat and helike_energies.dat into files in the Stout directory
14226 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 21 00:22:30 2020 UTC
gary
Log:
Priyanka update to NIST energies for Fe 1 electron
14225 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 20 00:33:54 2020 UTC
gary
Log:
add command No scattering intensity to not include
electron scattering as part of the reported total line intensity, due to
its very large Doppler width
14224 Directory Listing
Modified 2 years, 5 months ago
Tue Aug 18 15:19:37 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix: Hybrid dataset was used for theoretical level lifetimes in the
    branching ratios menu.  Fixed.

14223 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 21:42:27 2020 UTC
marios
Log:
helike_cs.cpp
  - Added data for Fe, due to Si+2017.

14222 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 20:26:26 2020 UTC
gary
Log:
adjust He II 1640.40 wavelength hardcoded in a few places
14221 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 19:59:25 2020 UTC
gary
Log:
mesh.cpp - improve print statement
data/hydro_energies.dat - adjust energy of He II n=2 shell so not redundant with H I on Cloudy energy mesh
14220 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 16:52:28 2020 UTC
marios
Log:
Implemented scatter plots of branching ratio updates.
  - adm-visualize.py
  - util/register/viz.py

14219 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 15:44:39 2020 UTC
marios
Log:
Implemented genreration of level lifetime scatter plots.
  - adm/adm-visualize.py
  - adm/util/register/viz.py

14218 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 15:40:32 2020 UTC
marios
Log:
util/register/viz.py
  - Modified plots of registration of terms relative to each other to be 20cm in
    length, if more than 10 terms are shown in such a plot.  This was needed to
    improve appearance of Be+ core-excitation term plots.
  - Minor improvements to axis labels of energy, TP, and WL plots.

14217 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 14:05:42 2020 UTC
marios
Log:
test/idata/test_tp.py
  - In unit tests of total_TP(), exercised ground level total TPs of 0.
    This is possible as of the previous commit, r14216.

14216 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 14:02:06 2020 UTC
marios
Log:
util/idata/tp.py
  - Modified Transitions.total_TP() to remove check that given index is among
    the list of upper level indices in the dataset.  Indices without entries
    are now reported as having a total TP of 0.

adm-fine-tune.py
  - Removed function get_level_TP_total() in favor of Transitions.total_TP().
  - bugfix: With get_level_TP_total(), total TPs of theoretical levels were
    computed by applying any known corrections to each TP.  This could, in
    principle, affect the reported TPs, although in practice theoretical TPs are
    computed from the initial dataset, which contains no corrections. 
    In any case, calls to total_TP() now explicitly include a flag to suppress
    application of any corrections.  Fixed.

14215 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 13:26:22 2020 UTC
marios
Log:
util/idata/tp.py
  - Defined new Transitions.total_TP() method to compute the total TP in all
    transitions out of a level; this is essentially the inverse of the level
    lifetime.

test/idata/test_tp.py
  - Exercised new method in unit tests.
    Defined new dataset to use with new method; also used with other unit tests.

14214 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 17 00:54:21 2020 UTC
marios
Log:
Data for level energies in H-like ions are now read from hydro_energies.dat.

iso_create.cpp
  - Replaced hydro_energy() with a function that is similar to helike_energy(),
    so that it uses energy data read from a file.
    The function, in principle, works with all the supplied quantum numbers.
    However, because the data in the input are not resolved (-1's are used in
    lieu of the actual values) calls to this function from iso_create(), and
    prt_lines_hydro() also use -1.

prt_lines_hydro.cpp
  - Updated call to hydro_energy().

helike_energy.cpp
  - Added useful print statements, currectly commented out.

14213 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 14 23:20:34 2020 UTC
gary
Log:
svn merge -r14156:14207 ^/trunk
14212 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 14 20:19:49 2020 UTC
marios
Log:
Added capability to produce TeX files of the level and term registration.

adm/adm-registration-summary.py
  - Added CLI --tex option, which enables the TeX output.  The regular tables
    are not produced in this case.

adm/util/register/report.py
  - Added functions to produce AASTeX long deluxetables summarizing the level
    and term registration.  The code uses the same output for each field as the
    regular tables, so not as many LaTeX formatting options are used as they
    could -- with the exception of the parity.  This may be something to
    improve upon in the future.

14211 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 14 00:28:28 2020 UTC
marios
Log:
adm/util/register/report.py
  - Refactored reporting functions to separate data preparation from table
    presentation.  This is a preparatory step for producing TeX tables with
    the same information.

14210 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 13 17:01:56 2020 UTC
marios
Log:
adm/util/register/convert.py
adm/util/register/viz.py
  - Minor changes.

14209 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 13 16:58:43 2020 UTC
marios
Log:
adm/util/adas/extract.py
  - Switched back to ignoring Aul <= 1e-30, but keeping the associated
    collision strengths.

14208 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 13 15:10:09 2020 UTC
gary
Log:
svn merge -r14206:14207 ^/trunk 
14206 Directory Listing
Modified 2 years, 5 months ago
Wed Aug 12 19:29:15 2020 UTC
marios
Log:
Added wavelength comparison plots.

adm/util/register/viz.py
  - Implemented wavelength comparison plots.  Each plot shows the difference
    between the wavelengths of a dataset and the experimental wavelengths.
    Plots are created for each of the theory and hybrid datasets, against each
    of the observed and calculated experimental data.

adm/adm-visualize.py
  - Added WL comparisons as the first kind of scatter plots created.
    The plots are generated only if experimental wavelength exist (as wls_*.json
    files in the experimental directory).

14205 Directory Listing
Modified 2 years, 5 months ago
Wed Aug 12 14:49:42 2020 UTC
marios
Log:
adm/util/register/merge.py
  - bugfix: The last matched level was reported for levels shifted with
    experimental terms.  The correct level was entered in the hybrid dataset.
    Now reporting all the relevant experimental levels.  Fixed.

adm/adm-merge-nrg.py
  - Minor comment changes.

14204 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 10 22:40:03 2020 UTC
marios
Log:
adm-fine-tune.py
  - bugfix in branching ratios: Theory transition indices were overwritten
    when levels flipped, ie, the lower level was above the upper level relative
    to the hybrid dataset.  Now using temporary variables for the indices.
    Fixed.
  - Reorganized script into separate sections for functions operating on
    energies and transitions.
  - Dropped reading of collision files.  They were initially read in to set the
    connectedness of the dataset, but, as of r14147, this is done upon generation
    of the hybrid dataset.

14203 Directory Listing
Modified 2 years, 5 months ago
Mon Aug 10 16:53:18 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Added scatter plots of theoretical transitions involving valence-only and AI
    levels.  Each dataset is split depending on whether it involves levels that
    that have been registered (resolved terms), registered en masse with their
    term (unresolved terms), and shifted en mass with their term.

14202 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 22:31:50 2020 UTC
marios
Log:
Computing term energy shifts that minimize the total TP updates for the term.

adm-shift-unreg-terms.py
  - Theoretical transitions are always read in; the nickname used depends on
    which command-line option was given.

util/register/shifts.py
  - Implemented the calculation of the energy shift that minimizes the total
    updates for a given term.  The updates are computed as the absolute log
    value, to guarantee that the increasing and decreasing factors are treated
    equally.
    Computed value offered as an option to shift the term by.
  - Modified printed list of terms to show at most 11 terms to the user (5 below
    the term in question, and 5 above).
  - Added final validation confirmation before the update is committed to memory.

util/register/convert.py
  - In predict_hybrid_level_energy(), allow for calculations of terms shifted by
    some amount, using the code for terms registered against experimental terms.

14201 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 17:58:01 2020 UTC
marios
Log:
util/adas/extract.py
  - Reverted changes of r14006: Now using all transitions, not just those with
    TP > 1e-30.  This prevents skipping collisions between intersystem levels.

14200 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 17:49:02 2020 UTC
marios
Log:
Merge from mainline r14094 through r14199. 

14198 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 14:27:12 2020 UTC
marios
Log:
adm-ingest-data.py
  - When setting the custom order of transitions, ask the user if the data
    involve calculations with configuration interaction, and in LS coupling,
    and set the order accordingly.
  - Added index updates for the wavelength dataset, so an initial dataset be
    created.

14197 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 13:07:05 2020 UTC
marios
Log:
util/nist/extract.py
  - When generating the internal energies dataset, use the index of the level
    in the main dataset to insert it in the groups and terms datasets.
    The previous practice of using the level index itself is not rigorous, and
    could in theory cause problems, although that'd be very unlikely.

14196 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 12:59:55 2020 UTC
marios
Log:
util/nist/phtml.py
test/idata/test_nrg.py
test/idata/test_coll.py
  - Minor updates to module docstrings.

14195 Directory Listing
Modified 2 years, 5 months ago
Fri Aug 7 12:54:30 2020 UTC
marios
Log:
util/idata/state.py
  - Renamed class J() -> AngMom().
  - bugfix in AngMom(): Missing comma in list of required keywords led to
    implicit concatentation of strings, which caused copy() and all methods
    that use that list to fail.  Essentially, the code was trying to manipulate
    non-existent private variables, but it was doing nothing.  The test suite
    failed to detect this because the equality operator also operates on these
    keywords, so with no data to compare, it reported that objects were equal.
    Added the missing comma.  Fixed.
  - Added AngMom.pprt().
  - Recoded OneState.term_names_agree() and MixedState.Jtot().

test/idata/test_state.py
  - Updated calls involing new class name, AngMom().
  - bugfix: Putative bugfix in r14185 in a test of MixedState.term_names() was
    (likely) the result of the AngMom() bug involving the missing comma.
    Reverted.

14194 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 23:56:03 2020 UTC
marios
Log:
util/nist/extract.py
  - Query for and extract the wavelengths of all line data, including the
    uncertainties, and the relevant reference code; all wavelength data in
    Angstrom.  Stored in JSON.
  - Renamed:
    - load_tp_data() -> load_line_data()
    - process_tp_table() -> process_line_table()

14193 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 22:41:31 2020 UTC
marios
Log:
util/nist/phtml.py
  - bugfix in Header.parse_header(): Only the last wavelength column read would
    have an uncertainty column set up.  Now columns are set up for both the
    observed and the Ritz wavelengths.  Fixed.
  - In DataParser.parse(): With the previous fix in place, only one wavelength
    uncertainty would be stored. Now the uncertainty value read is copied to
    both uncertainty columns.  The code was redesigned so that the assignment
    of data to columns takes place in one step instead of two.

14192 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 19:38:15 2020 UTC
marios
Log:
util/idata/wl.py
test/idata/test_wl.py
  - Changed names of methods / variables to align names with NIST modules:
    - WL_calc -> calc_wl
    - WL_calc_unc -> calc_wl_unc
    - WL_obs  -> obs_wl
    - WL_obs_unc -> obs_wl_unc
    - WL_unit -> wl_unit

14191 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 17:16:04 2020 UTC
marios
Log:
util/nist/wl.py
  - Added new module.  Contents refactored from util.idata.wl.

util/idata/wl.py
  - Removed code refactored in util.nist.wl module.

test/idata/test_wl.py
  - Updated module imports.

util/nist/__init__.py
  - Added new module to list for 'import *'.

14190 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 16:39:58 2020 UTC
marios
Log:
util/idata/wl.py
  - Defined list of acceptable units for wavelengths, and validation function.
  - Added data field for the unit in the basic wavelength class, and get
    method, and adapted subclasses to pass a value to it.

test/idata/test_wl.py
  - Updated unit tests to set wavelength unit value, and test stored values.

14189 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 13:16:47 2020 UTC
marios
Log:
util/idata/wl.py
  - Added module to handle wavelength data.

test/idata/test_wl.py
  - Exercised new module classes in unit tests.

util/idata/__init__.py
  - Updated for 'import *'.

14188 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 12:52:47 2020 UTC
marios
Log:
util/idata/tp.py
  - Renamed Transitions.copy_tran() -> Transitions.insert_transition().

adm-ingest-data.py
adm-merge-tp.py
  - Updated method calls.

test/idata/test_tp.py
  - Updated unit tests.

14187 Directory Listing
Modified 2 years, 5 months ago
Thu Aug 6 12:44:08 2020 UTC
marios
Log:
util/idata/tp.py
  - Refactored several methods of Transitions() into class TranList().
    Transitions() now derives from TranList().

test/idata/test_tp.py
  - Minor formatting changes.

14186 Directory Listing
Modified 2 years, 6 months ago
Tue Aug 4 21:35:05 2020 UTC
marios
Log:
test/idata/test_tp.py
  - Exercised unit tests for BasicTranMeta.export_dict() and .import_dict();
    the function was written, but never used.
  - Promoted unit_tests() inner functions to module tests.

14185 Directory Listing
Modified 2 years, 6 months ago
Tue Aug 4 16:43:44 2020 UTC
marios
Log:
util/idata/state.py
  - Defined class J() to handle angular momentum data.
    - OneState() methods Jtot() and statw() now methods of J().
  - Renamed SpTerm._ignore -> SpTerm._term_ignore. 
    - OneState() now derives from J, as well as from EConfig & SpTerm.

test/idata/test_state.py
  - Exercises new class in unit tests.
  - Fixed bug in a test of MixedState.term_names(), which failed to identify
    that compatible terms had been provided.

14184 Directory Listing
Modified 2 years, 6 months ago
Tue Aug 4 02:22:17 2020 UTC
gary
Log:
update H3+ rates to Indriolo+2012
14183 Directory Listing
Modified 2 years, 6 months ago
Tue Aug 4 02:21:49 2020 UTC
gary
Log:
svn merge -r14180:14181 ^/trunk 
14180 Directory Listing
Modified 2 years, 6 months ago
Tue Aug 4 01:30:25 2020 UTC
marios
Log:
util/idata/state.py
  - Modified has-a relationship of OneState() to EConfig() and SpTerm() to is-a:
    OneState() now derives from these classes.
    - Updated calls.

test/idata/test_state.py
  - Updated unit tests.

14179 Directory Listing
Modified 2 years, 6 months ago
Mon Aug 3 23:37:54 2020 UTC
gary
Log:
svn merge -r14177:14178 ^/trunk 
14177 Directory Listing
Modified 2 years, 6 months ago
Mon Aug 3 00:43:44 2020 UTC
gary
Log:
svn merge -r14175:14176 ^/trunk 
14175 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 31 15:42:58 2020 UTC
marios
Log:
test/idata/test_state.py
  - Added unit tests for export_dict() and import_dict() methods of
    OneState() and MixedState().

14174 Directory Listing
Modified 2 years, 6 months ago
Thu Jul 30 23:23:24 2020 UTC
marios
Log:
util/atoms/trans.py
  - Renamed keyword argument to clarify its purpose: with_CI -> with_no_CI
    Renamed function: obey_CI_rules() -> obey_no_CI_rules()

test/atoms/test_trans.py
  - Updated unit tests.
  - Promoted inner functions of unit_tests() to module functions.

14173 Directory Listing
Modified 2 years, 6 months ago
Thu Jul 30 19:16:33 2020 UTC
marios
Log:
util/idata/state.py
  - Defined class SpTerm() to handle spectroscopic term data.
  - Renamed OneState.term() -> OneState.spterm().

test/idata/test_state.py
  - Exercised new class methods in unit tests.

util/atoms/spterm.py
  - Minor docstring update.

14172 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 22:59:58 2020 UTC
marios
Log:
util/idata/state.py
  - In EConfig(), renamed private variable: _e_config -> _ec.
  - bugfix in OneState.__eq__(): Using required keywords of EConfig(), instead
    of OneState().  Fixed.

14171 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 22:46:48 2020 UTC
marios
Log:
util/idata/state.py
  - In OneState():
    - Demoted _jtot to an optional keyword, as there may be levels of uknown J.
    - Renamed private variable: _config -> _name
    - Renamed method: config_level() -> name()
 - In MixedState():
    - Renamed:
      - _config -> _names
      - input_config() -> input_names()
      - have_two_configs() -> have_two_names()
      - primary_config() -> primary_name()
      - other_config() -> other_name()
      - config_level() -> names()

adm-fine-tune.py
test/idata/test_nrg.py
test/idata/test_state.py
util/idata/nrg.py
util/register/terms.py
util/register/viz.py
  - Update calls to MixedState() methods.

14170 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 18:23:04 2020 UTC
marios
Log:
Added command 'save dt'.

source/save.h
  - Defined new parameters to control command output.

source/init_defaults_preparse.cpp
  - Initialized some of the new parameters.

source/parse_save.cpp
  - Added parsing of command 'save dt'.

source/dynamics.cpp
  - Defined function that saves the contents of the file.

tsuite/auto/time_cool_cd.in
  - Exercised new command.

docs/latex/hazy1/conout.tex
  - Documented new command.

14169 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 16:13:09 2020 UTC
marios
Log:
source/dynamics.cpp
  - Restored timestep_next() to original coding involving only changes to the
    H density.  Permits cooling below 6,500 K.

14168 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 14:45:42 2020 UTC
marios
Log:
New branch
14167 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 27 00:00:03 2020 UTC
marios
Log:
scripts/adm/util/idata/state.py
  - Defined class EConfig() to handle electronic configurations with.
    Now OneState() uses an object of EConfig() to store, and to manage
    the electronic configuration.  The refactored methods have been removed
    from OneState().
    - The new class also provides methods to access the ground configuration
      subshells, as well as the number of electrons in the ion, used with
      filling any missing shells.  In addition, it comes with methods to copy,
      compare, and export / import data as dictionaries.
  - Refactored OneState() methods copy(), __eq__(), export_dict(), and
    import_dict() to use the base.Base methods.

scripts/adm/test/idata/test_state.py
  - Exercised new class in unit tests.
  - Promoted inner functions of unit_tests() to module functions.

scripts/adm/util/idata/nrg.py
  - Minor formatting changes.

14166 Directory Listing
Modified 2 years, 6 months ago
Sun Jul 26 23:07:45 2020 UTC
gary
Log:
fix user suppled density label dat -> sden
14164 Directory Listing
Modified 2 years, 6 months ago
Sun Jul 26 19:25:10 2020 UTC
gary
Log:
svn merge -r14162:14163 ^/trunk
14162 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 23:43:32 2020 UTC
gary
Log:
svn merge -r14160:14161 ^/trunk 
14160 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 20:08:11 2020 UTC
gary
Log:
svn merge -r14158:14159 ^/trunk 
14158 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 19:13:38 2020 UTC
gary
Log:
svn merge -r14156:14157 ^/trunk 
14156 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 17:36:48 2020 UTC
gary
Log:
hack at lines 864-868 rt_escprob.cpp to include or exclude Pesc
14155 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 17:30:04 2020 UTC
gary
Log:
Copied trunk to branches/Priyanka.
14154 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 25 17:21:50 2020 UTC
gary
Log:
svn merge -r14152:14153 ^/trunk
14152 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 24 18:18:16 2020 UTC
gary
Log:
changes due to r14151, update CR rate from 2020RNAAS...4...78S
14151 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 24 00:08:36 2020 UTC
gary
Log:
svn merge -r14149:14150 ^/trunk/source update from 2020RNAAS...4...78S
14149 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 20 13:16:48 2020 UTC
gary
Log:
svn merge -r14147:14148 ^/trunk/data/SED 
14147 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 18 14:45:22 2020 UTC
marios
Log:
adm/adm-merge-tp.py
adm/adm-merge-coll.py
  - Now setting the connectedness of a dataset as soon as both the transitions
    and collisions datasets have been merged.  The stored energies dataset is
    updated.
  - bugfix: It was possible to operate on an unset value for the energies file
    nickname.  If unset, the merged energies dataset is now used by default.
    Fixed.
  - bugfix: Checks against the presence of the output file actually produced a
    new filename if the one of intereset already existed.  Now using the
    intended file name for the checks.  Fixed.

adm/adm-fine-tune.py
adm/adm-finalize.py
  - No longer setting the hybrid dataset connectedness after loading.

14146 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 18 11:24:48 2020 UTC
marios
Log:
adm/util/register/viz.py
  - In term FS plots, now printing the label of the energy difference on the top
    left corner when the bottom left is being used (by levels).  Left more room
    for the label both on the bottom, and top corners.

14145 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 22:58:17 2020 UTC
marios
Log:
adm/adm-fine-tune.py
adm/adm-visualize.py
  - Removed calls to JoinedEnergies.populate_cterms().  The hybrid dataset now
    has its dataset of terms populated when created.  These calls compromise the
    existing one.  See r14139.

14144 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 22:34:13 2020 UTC
marios
Log:
adm/util/register/viz.py
  - bugfix: Function remove_degenerate_label_positions() did not remove all
    degenerate levels, if more than two existed.  That was due to how the
    removal was done.  Now the removal is done in two steps: first the list
    indices to be removed are recorded, and then they are removed (walking
    the lists backwards).  Fixed.

14143 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 22:29:29 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - bugfix: In the calculation of the energy, validation of the supplied indices
    was using the supplied configuration and term.  A theoretical combination
    that has been replaced by an experimental term would therefore fail the test
    (done on the hybrid dataset).  In addition, two terms of different ancestry
    could also lead to a failure.  To avoid such cases, the cterms() dataset is
    searched for all matches of conf-term combinations, which are then used to
    validate the supplied indices.  Fixed.

14142 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 01:50:22 2020 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Refactored code for sorting the indices in ascending order into function
    get_sort_map().  The function is called before do_sort_energies() is
    invoked, which now requires the index mapping as an argument.
  - Now adding a terms sub-dataset to the hybrid energies dataset, with newly
    defined function update_sorted_cterms().
  - Now saving the level index mapping of unsorted to sorted datasets as a file
    in the OUTPUT directory.

adm/util/idata/nrg.py
  - Defined method ConfTerm.update_indices() to change a list of indices to
    a different list.

adm/util/register/levels.py
  - Updated class LevelIndexMap():
    - It now derives from base.Base, instead of object.
    - Output file name modified to something more meaningful.
    - json.py module's save() and pathname() functions are now invoked with the
      overwrite option turned off.

14141 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 01:37:08 2020 UTC
marios
Log:
adm/util/register/merge.py
  - bugfix: For 14140, I had disabled the copying of level and term data into
    the hybrid dataset to expedite testing, but left them in the commited code
    by accident.  Re-enabled.  Fixed.

14140 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 17 01:34:33 2020 UTC
marios
Log:
adm/util/register/merge.py
  - bugfix: The theoretical data were used to enter a configuration and term
    into the ConfTerms() dataset for a term replaced (level-registered) with
    an experimental.  This led to loss of information, and a mismatch between
    the configurations in the level and term datasets.
    Now using the experimental configuration and term for this procedure.
    Fixed.
  - Now validating the consistency of levels and terms data, to guard against
    the possibility of the previous bug resurfacing.

14139 Directory Listing
Modified 2 years, 6 months ago
Thu Jul 16 23:22:24 2020 UTC
marios
Log:
adm/util/register/merge.py
  - Now complementing the level energy dataset with a term dataset.
    Both theoretical and experimental terms are added to that dataset,
    using their hybrid level indices.

adm/util/idata/nrg.py
  - Defined ConfTerm.set_indices() to set the indices of a term in one go.
  - Defined ConfTerms.insert_term() to insert a term (instance of ConfTerm())
    to the dataset.
  - In JoinedEnergies():
    - Now allocating a ConfTerms() dataset upon initialization, which is now
      removed from method populate_cterms().

14138 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 15 18:31:49 2020 UTC
marios
Log:
adm-ingest-data.py
  - Minor update.

14137 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 15 15:47:16 2020 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Partition the levels into terms before storing the sorted dataset.

14136 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 15 14:47:25 2020 UTC
marios
Log:
adm/util/register/merge.py
  - Now counting experimental levels registered by terms separately from levels
    registered by levels (in (J,p) groups) against theoretical levels.
  - Converted the warning that a level already exists to a note.  Now also
    reporting the energy difference between the hybrid (theoretical) and
    experimental levels to give the user an idea of how different the level
    would be if it were registered.
  - If an experimental level is flagged as possibly not real, let the user
    decide whether to insert it or not in the hybrid dataset.

adm/util/idata/nrg.py
  - Defined BasicEnergyMeta.may_not_be_real to tell if the level is flagged as
    possibly not real.

adm/test/idata/test_nrg.py
  - Exercised new method in unit tests.

14135 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 15 12:31:22 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - bugfix: When selecting terms to shift, terms were skipped if they were both
    shifted to match an experimental term, and shifted by an arbitrary energy.
    The contradictory demand was not met for registered terms (shifted to match
    an experimental term) and caused them to be presented for shifting by an
    arbitrary amount, undoing their registration.  Removed the test against an
    arbitrary shift.  Fixed.

14134 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 14 23:15:45 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Highlight notes saying that the level may not be real.

adm/util/nist/notes.py
  - Defined function to test if the given note is for a possibly unreal level,
    by comparing against a new module parameter.

adm/test/nist/test_notes.py
  - Exercised new function in unit tests.

14133 Directory Listing
Modified 2 years, 6 months ago
Sat Jul 11 00:00:12 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - bugfix in ConfTerms.shifted_with(): Call to ConfTerms.shifted() examines
    if the Term has been shifted by an arbitrary amount, not if it has been
    shifted with an experimental term.  This is an orthogonal use case, and
    the function could never give the list of experimental levels.
    Removed the calls to self.shifted().  Fixed.
  - Energies.register_level_print() now shows the original energy by default,
    but accepts an option to show the current value, and the uncertainty if
    it has been copied.  See r14128.

adm/util/register/terms.py
  - When showing the levels of a shifted term, show the updated energy, not
    the original.  (Update related to last change above, made in function
    check_term_order().)
  - When shifting a term, now copying the experimental uncertainty to the
    theoretical level, see r14128.  (Update in shift_term_interactive().)
  - When multiple experimental terms match the theoretical one, offer to
    shift against the first one that is not already shifted.  No check was
    previously done.  Related to r14105.  (Change in register_term_by_term().)

14132 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 19:46:49 2020 UTC
marios
Log:
scripts/adm/util/idata/nrg.py
  - In ConfTerms.shifted_with(), added validation of input level indices.
    Refactored function.

14131 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 19:38:50 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Updated ConfTerms.shifted_with() to accept a list of level indices to
    operate on.

14130 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 18:27:26 2020 UTC
marios
Log:
adm/util/register/terms.py
  - bugfix in match_levels(): Required variables not passed in the function
    interface.  Fixed.

14129 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 18:06:51 2020 UTC
marios
Log:
adm/util/register/terms.py
  - Refactored code of level registration into function match_levels().
  - Refactored inner function check_term_order() as a module function.

14128 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 16:50:45 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Added methods to BasicEnergy() to allow setting the energy uncertainty
    manually.  This includes an unsetter, as well as method a querying the
    origin of the uncertainty value.  The methods are:
    - set_energy_unc()
    - unset_energy_unc()
    - is_energy_unc_manually_set()
    They are envisioned being used with copying experimental uncertainties to
    the theory dataset.
    

adm/test/idata/test_nrg.py
  - Exercised new methods in unit tests.

14127 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 04:30:10 2020 UTC
marios
Log:
adm/util/register/terms.py
  - bugfix: Attempt to return obsolete variable in do_shift_term().
    Variable name updated.  Fixed.

14126 Directory Listing
Modified 2 years, 6 months ago
Fri Jul 10 04:18:21 2020 UTC
marios
Log:
adm/util/register/terms.py
  - Changes to logic when shifting a theory term with an experimental:
    - The term is shifted en masse, to preserve its fine structure.
      The per-level confirmation has been disabled.
    - It is now possible to register the experimental levels as being
      involved in shifting the theoretical term.  This helps highlight
      already used terms during term registration.
    - Renamed: shift_interactive() -> shift_term_interactive()

adm/util/idata/nrg.py
  - Minor change in RegisterEnergy.unset_shifted().
  - Minor formatting change in Groups.prt_group().

14125 Directory Listing
Modified 2 years, 6 months ago
Thu Jul 9 05:09:30 2020 UTC
marios
Log:
adm/adm-merge-coll.py
  - Added error messages if either of the indices is not found.
    The program aborts in such a case.

14124 Directory Listing
Modified 2 years, 6 months ago
Thu Jul 9 05:07:27 2020 UTC
marios
Log:
adm/util/register/merge.py
  - Added module to handle the synthesis of hybrid datasets.
    Unlike the treatment so far, the hybrid dataset is compiled not by iterating
    over groups and terms, but over the levels themselves, first theoretical and
    then experimental.  The composition of the hybrid no longer requires user
    input.

adm/adm-merge-nrg.py
  - Now using the new functionality, although the old one is still available.

adm/util/idata/nrg.py
  - When printing level details for the purposes of registration, show the
    original energy, not the current value, which may be different.

14123 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 8 23:13:13 2020 UTC
marios
Log:
adm/util/atoms/shells.py
  - bugfix in fix_hex(): Doubly-excited levels with uncertain valence shell
    (appearing as 'n', e.g., in 'nd') could not processed, and led to crashes.
    Such levels have only one electron, so there is no hex number to fix for
    them.  They are now being explicitly skipped.  Fixed.
 
adm/test/atoms/test_shells.py
  - Added a unit test to exercise the new functionality.

14122 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 8 16:49:54 2020 UTC
marios
Log:
adm/util/register/terms.py
  - Removed unused function register_terms().
  - Minor code rearrangement to keep synthesis functions together.

14121 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 8 15:41:18 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - bugfix: When searching for a matching experimental transition, no provision
    was made for levels being in different order between the two datasets.  This
    led to crashes for flipped levels, as the lower index was higher than the
    upper index.  The indices are now brought in order before querying the
    experimental dataset.  Fixed.

adm/util/stout/check.py
  - Minor formatting change.

14120 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 8 15:14:49 2020 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Removed unnecessary import of the util.stout package.

14119 Directory Listing
Modified 2 years, 6 months ago
Wed Jul 8 14:58:42 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Indent warnings with a blank string when printing level details for
    registration.

14118 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 20:40:23 2020 UTC
marios
Log:
adm/util/register/terms.py
  - When inserting terms into the hybrid dataset, no check was made against
    matched theory terms.  This prevented the corresponding experimental terms
    to be used in the hybrid dataset.  Theory matched terms are no longer
    processed.  Fixed.
    - This is the second part of the changes introduced in r14117, which
      prohibit the processing of matched theory levels that do not appear
      in the experimental groups.

adm/util/idata/nrg.py
  - Updated ConfTerms.prt_cterm() to print information only on one term
    based on its level indices.

14117 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 18:56:20 2020 UTC
marios
Log:
adm/util/register/levels.py
  - During synthesis of hybrid energy dataset, omit reporting levels that are
    matched with levels that are not in experimental groups.
    This could happen if the experimental level was removed from the group
    (because, e.g., it was in a degenate term), but the levels were matched
    during the term-by-term registration.
  - Minor updates to how registered levels are presented.  See below.

adm/util/idata/nrg.py
  - Modified Energies.register_level_print() and Groups.level_print() to
    allow passing a string with which to prepend the output for a level.
    The string is used with the first line of state information.  Subsequent
    lines use a blank string instead.
    This now includes the lines showing the energy uncertainty, and the notes
    to the energy value, if present.

14116 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 17:23:45 2020 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Removed unnecessary imports.

14115 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 04:11:44 2020 UTC
marios
Log:
adm/util/register/report.py
  - bugfix in function show_term_registration(): Experimental term energy and
    indices were requested using the theoretical configuration and term.
    That led to craches when ancestry terms were present in the configuration.
    Now using the experimental configuration and term.  Fixed.
    See also r14109.

14114 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 03:59:46 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - bugfix: Incorrect list name in calls to print.  Now using the correct name.
    Fixed.

14113 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 03:37:26 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - In list of bracketing terms, columns of printed configuration and term are
    now guaranteed to be aligned -- string sizes adjust to maximum in dataset.

adm/adm-export-stout.py
  - Removed (repeated) import of util.stout.fmt.

14112 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 03:31:02 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Refactored code formatting the energy value as function fmt_energy().

adm/test/stout/test_nrg.py
  - Exercised new function in unit tests.

14111 Directory Listing
Modified 2 years, 6 months ago
Tue Jul 7 01:08:23 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - bugfix: Bracketing failed for terms above the highest term matched/shifted.
    Redesigned how the bracketing is done to address such cases -- which can be
    quite common in ions with AI levels.  Relative splitting now available for
    terms that fall within the energy range of registered terms.  Fixed.
  - Removed package name from imports of local modules.

adm/util/register/convert.py
  - Added function predict_hybrid_term_energy(), which was extracted from 
    get_final_term_energy(), inner function of get_bracketing_terms_energies()
    in shifts.py.

adm/util/register/terms.py
  - Removed package name from imports of local modules.

14110 Directory Listing
Modified 2 years, 6 months ago
Mon Jul 6 19:40:11 2020 UTC
marios
Log:
adm/util/register/convert.py
adm/util/register/shifts.py
  - Renamed function predict_hybrid_energy() to predict_hybrid_level_energy().

14109 Directory Listing
Modified 2 years, 7 months ago
Fri Jul 3 22:19:29 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - In get_bracketing_terms_energies():
    - bugfix in inner function get_final_term_energy(): Experimental term energy
      and indices were requested using the theoretical configuration and term.
      That led to craches when ancestry terms were present in the configuration.
      Now using the experimental configuration and term.  Fixed.
    - bugfix: When printing the list of terms, the theoretical configuration and
      term were used to query the experimental dataset.  ConfTerms.get_equiv()
      is now used to get a list of matching terms, which are then iterated over
      until a term that matches in indices is also found.  An error is issued if
      no match is produced.  Fixed.
    - Now reporting the relative energy shifts, in terms of the original energy.
  - bugfix in shift_unregistered_terms(): register.terms.do_shift_terms() call
    did not include relative energy shift.  Fixed.

14108 Directory Listing
Modified 2 years, 7 months ago
Fri Jul 3 21:48:07 2020 UTC
marios
Log:
adm/util/idata/state.py
  - bugfix: Methods() statw used Jtot ignoring that might be a string.
    Now converted to float using the jtot.Jtot_tofloat() function.  Fixed.

adm/util/idata/nrg.py
  - Defined method ConfTerms.get_equiv() to find the combination(s) of
    configuration and term that is equivalent (ignoring e.g., ancestry terms)
    to that given.
  - Simplified ConfTerms.exists() to not search for an equivalent pair of
    configuration-term, but instead to just confirm the presence of the given
    pair in the dataset.
  - bugfix in ConfTerms.energy(): Validation of indices was using the given
    list unsorted, which lead to failures when the list was not in order
    (b/c, e.g., two levels flipped).  Now using sorted list in validation.
    Fixed.

adm/test/idata/test_nrg.py
  - In dataset for Ne+7:
    - Added data structure to enable validation of cterms() infrastructure. 
    - bugfix: Additional configurations were not being processed because they
      were not prepended by ':'.  Fixed.
      - Updated tests to enable validation of the full configuration, when an
        additional configuration is available.
  - bugfix in Energies.cterms(): Validation of configurations was done without
    any sorting, leading to test failured.  Now sorting both lists being
    compared.  Fixed. 
  - Exercised ConfTerms.get_equiv() in unit tests.

14107 Directory Listing
Modified 2 years, 7 months ago
Tue Jun 30 05:00:19 2020 UTC
marios
Log:
adm/util/register/terms.py
  - bugfix: Relative energy change is w.r.t. to the original theoretical,
    but the experimental was used.  Fixed.

14106 Directory Listing
Modified 2 years, 7 months ago
Tue Jun 30 04:14:31 2020 UTC
marios
Log:
adm/util/register/terms.py
  - Report relative energy changes when shifting a term to match the term energy
    of the experimental term.

14105 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 29 23:27:55 2020 UTC
marios
Log:
adm/util/register/terms.py
  - bugfix:  When multiple experimental terms matched, only the first one was
    processed, even if it were matched.  Now processing all matching terms.
    Fixed.
  - When shifting levels mark the experimental levels as shifted with their
    corresponding theoretical levels.  These are now shown on screen, and are
    especially useful when multiple experimental terms match the ADAS terms
    that appear the same because their ancestry is not preserved -- they help
    keeping track of level registration.
  - Removed an outdated dict that keeps track of which experimental terms have
    been matched from __process_terms().

adm/util/register/levels.py
  - Now printing energy differences between theory and experiment in bold.

adm/util/idata/nrg.py
  - When printing to screen:
    - Use bold text for headers of terms (prior to the levels being displayed).
    - Use red color for already-matched levels.
    - Print warnings in blue about which levels they are matched with.

adm/util/io/log.py
  - Added ability to print text using ANSI colors and decorations.

14103 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 20:22:17 2020 UTC
marios
Log:
adm/util/register/levels.py
  - To allow for multiple configurations contributing to a level, when comparing
    the excitation signatures of two levels, do not require they be identical,
    but rather that their intersection is not the empty set.

14102 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 16:24:09 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energy.register_level_print(), print the uncertainty on the level energy
    in a separate line, after the data for all configurations contributing to
    the level are reported.

14101 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 16:08:34 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Modified parse_nrg_comment() to process components in the comment string
    irrespective of the order they are written in.

adm/test/nist/test_fmt.py
  - Minor updates:
    - Now sing fmt.py parameter for note string in comments, instead of bare
      'note:'.
    - Promoted inner functions of unit_tests() to module functions.

14100 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 06:11:43 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energies.insert(): Allow for levels duplicate in terms of their
    configuration, term, and J, to be entered to the dataset -- but do issue a
    warning (as before).  The change is necessary for ADAS levels with missing
    ancestry terms to be processed.

14099 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 06:04:36 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Minor formatting changes in partition_overpopulated_multiplets().
  - When processing terms with multiple orderings of J's in the dataset,
    orderings are reported sorted, and for each of them, the reported
    groups of levels are sorted by level index.
  - When asking for the correct order of J's, allow for the order to be
    given by copying and pasting one of the orders listed on output.
  - bugfix in process_wrong_orderings(): Apply the changes, only if changes
    have been made.  Previously, there was no check against the data structure
    (dict) being empty.  Fixed.

14098 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 05:53:39 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Removes superfluous keyword argument 'overwrite' from calls to save_json()
    of the IPs and References classes -- they both invoke util.io.json.save()
    with this argument set to True.

14097 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 24 03:47:14 2020 UTC
marios
Log:
Ingest ADAS ionization potential.

adm/util/adas/extract.py
  - Save ADAS ionization in Stout comment section.

adm/util/stout/files.py
  - In get_IP(), extended acquisition of IP value from Stout file entries that
    do not quite an error value, e.g., files that come from ADAS data.

14096 Directory Listing
Modified 2 years, 7 months ago
Fri Jun 19 18:34:00 2020 UTC
marios
Log:
scripts/adm/util/adas/web.py
scripts/adm/util/atoms/splevel.py
scripts/adm/util/atoms/spterm.py
scripts/adm/util/atoms/trans.py
scripts/adm/util/cloudy/cloudy.py
scripts/adm/util/cloudy/lines.py
scripts/adm/util/cloudy/stout_refs.py
scripts/adm/util/idata/nrg.py
scripts/adm/util/idata/unified.py
scripts/adm/util/io/fs.py
scripts/adm/util/io/json.py
scripts/adm/util/io/nicks.py
scripts/adm/util/nist/extract.py
scripts/adm/util/ptable/element_data.py
scripts/adm/util/ptable/ions.py
scripts/adm/util/ptable/spectra.py
scripts/adm/util/register/convert.py
scripts/adm/util/register/levels.py
scripts/adm/util/register/nocfg.py
scripts/adm/util/register/report.py
scripts/adm/util/register/shifts.py
scripts/adm/util/register/terms.py
scripts/adm/util/register/viz.py
scripts/adm/util/stout/check.py
scripts/adm/util/stout/dirtree.py
scripts/adm/util/stout/files.py
scripts/adm/util/types/base.py
scripts/adm/util/ui/cli.py
scripts/adm/util/ui/dirs.py
scripts/adm/util/ui/pfile.py
  - Use relative imports throughout the util package.
    These modules were using absolute imports.

scripts/adm/util/adas/web.py
  - Removed executable property.

14095 Directory Listing
Modified 2 years, 7 months ago
Wed Jun 17 21:42:48 2020 UTC
marios
Log:
Merged from mainline r13527 through r14094.
14094 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 20:00:35 2020 UTC
marios
Log:
Deleted obsolete file:
  - fetch-NIST-IP.py

14093 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 19:58:53 2020 UTC
marios
Log:
Removed commented out code in:
  - adm/util/idata/nrg.py
  - adm/util/idata/tp.py
  - adm/util/register/levels.py
  - adm/util/register/shifts.py
  - adm/util/register/terms.py

14092 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 19:48:29 2020 UTC
marios
Log:
Updated manual:
  - adm/docs/manual/adm-macros.tex
  - adm/docs/manual/algorithm.tex
  - adm/docs/manual/appendix-ML.tex
  - adm/docs/manual/commands.tex
  - adm/docs/manual/examples.tex

Figures added:
  - adm/docs/manual/images/final-TP-updates-adas-error.pdf
  - adm/docs/manual/images/final-TP-updates-adas.pdf
  - adm/docs/manual/images/final-WL-updates-arbitrary_shift-respowr.pdf
  - adm/docs/manual/images/final-WL-updates-arbitrary_shift-scatter.pdf
  - adm/docs/manual/images/final-WL-updates-matched_levels-respowr.pdf
  - adm/docs/manual/images/final-WL-updates-matched_levels-scatter.pdf
  - adm/docs/manual/images/final-WL-updates-matched_term-respowr.pdf
  - adm/docs/manual/images/final-WL-updates-matched_term-scatter.pdf
  - adm/docs/manual/images/final-WL-updates-respowr.pdf
  - adm/docs/manual/images/final-WL-updates-scatter.pdf
  - adm/docs/manual/images/final-terms-p1of4.pdf
  - adm/docs/manual/images/final-terms-p2of4.pdf
  - adm/docs/manual/images/final-terms-p3of4.pdf
  - adm/docs/manual/images/final-terms-p4of4.pdf

14091 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 18:12:35 2020 UTC
marios
Log:
adm/adm-export-json.py
  - Improved clarity on log output:
    Changed the order of writing lean energies file, and putting together the
    list of excluded level indices -- operations were correct, but the output
    log gave the impression that the file was created before the indices were
    excluded.

14090 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 18:04:57 2020 UTC
marios
Log:
adm/adm-export-json.py
adm/adm-export-stout.py
  - Added option to exclude unconnected levels from output datasets.
    These are defined as levels that partake in no radiative or collisional
    transitions.

adm/util/ui/cli.py
  - Defined function for command-line option to exclude unconnected levels.

adm/util/idata/nrg.py
  - Added option to LeanEnergies.copy() to exlude unconnected levels.

14089 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 16:18:21 2020 UTC
marios
Log:
adm/adm-export-json.py
adm/adm-export-stout.py
  - Now updating the dataset indices before producing an output dataset.
    This necessary procedure was removed from adm-finalize.py in r14075.

adm/util/idata/coll.py
  - Defined JoinedEnergies.update_indices() to update the index in an Energy()
    entry to the index used for that entry in the dataset.

adm/util/idata/nrg.py
  - Defined JoinedTransitions.update_indices() to update the indices in a
    Transitions() entry to the indices used for that entry in the dataset.

adm/util/idata/tp.py
  - Defined Collisions.update_indices() to update the indices in a Collisions()
    entry to the indices used for that entry in the dataset.

14088 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 15 15:09:20 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - In References.prt_to_file(), use util.stout.fmt.compose_comment_line() to
    write the line to the file -- it automatically prepends the line with a
    comment character, if appropriate.

adm/util/stout/fmt.py
  - As above, for write_comments_header().

14087 Directory Listing
Modified 2 years, 7 months ago
Fri Jun 12 22:39:09 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In JoinedEnergies.populate_cterms(), now processing levels sorted by index.
  - In ConfTerm(), renamed __get_term_index_by_term_indices() to
    __get_term_index_by_level_indices().

14086 Directory Listing
Modified 2 years, 7 months ago
Fri Jun 12 17:56:45 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Added option to produce registration plots of terms relative to each other.
  - Undid (unintentional) commenting-out of scatter plots.

adm/util/idata/nrg.py
  - Absorbed data field for energy, and method energy() into ConfTermBasic()
    from ConfTermSort().
  - bugfix in ConfTerms.cterm_by_indices(): Comparison of list of indices fails
    if they are out of order.  Now sorting indices before comparison.  Fixed.

adm/util/register/convert.py
  - Added function to identify the hybrid term that matches the given theory
    one.  Identification is done by virtue of the registered indices (see also
    changes in cterm_by_indices() above).

adm/util/register/viz.py
  - Added plots for the registration of terms relative to each other.
  - Renamed pre-existing functions treating term levels to contain '_FS_'.
  - Refactored code for adjusting term labels into function edit_label().

14085 Directory Listing
Modified 2 years, 7 months ago
Tue Jun 9 23:50:56 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Refactored common functionality between ConfTerm() anc ConfTermSort()
    in class ConfTermBasic() from which the former two both derive.
    - Renamed ConfTerm() data field '_levels' to '_indices'.

14084 Directory Listing
Modified 2 years, 7 months ago
Mon Jun 8 20:54:06 2020 UTC
marios
Log:
Changed order in argument lists of all plot-generating functions.
  - adm/adm-visualize.py
  - adm/util/register/viz.py

adm/util/register/viz.py
  - Prepended detailed-transition-update file names with dataset nickname.

14083 Directory Listing
Modified 2 years, 7 months ago
Sun Jun 7 23:56:50 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Refined Gnuplot plots.  Font sizes increased.

14082 Directory Listing
Modified 2 years, 7 months ago
Sun Jun 7 21:22:04 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Use the nickname of the dataset selected as the final dataset (stored in
    the JSON file, r14081) to read the correct theoretical energies dataset.

adm/util/register/viz.py
  - Added scatter plots for the individual transition subsets (according to
    whether both levels were (J,p)-matched, term-matched, or shifted by some
    amount -- introduced in r14077), and a resolving-power plot for the entire
    dataset.
    Now both scatter and resolving-power plots are generated for the dataset
    subsets, as well as for the whole.

14081 Directory Listing
Modified 2 years, 7 months ago
Sun Jun 7 04:55:54 2020 UTC
marios
Log:
adm/adm-finalize.py
  - Save a JSON file in each of the species directories, holding the given
    nickname for the final dataset.

adm/util/io/nicks.py
  - Defined class FinalDataset() to handle storing the nickname for the final
    dataset, as well as writing and reading JSON files.

adm/test/io/test_nicks.py
  - Added unit tests for new class, FinalDataset().

14080 Directory Listing
Modified 2 years, 7 months ago
Sat Jun 6 23:43:27 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Changed the order scatter plots are generated:
    Now WL plots are done after TP plots.

adm/util/register/viz.py
  - Now printing the output of gnuplot runs to the log file.
    - To do so, now using prun.run_command() to run gnuplot in the background,
      instead of prun.run_command_interactive().

adm/util/misc/prun.py
  - Guarantee that the command output is printed to file.
    - To do so, run_command() now uses subprocess.getoutput() instead of
      subprocess.check_output().
  - Both run_command() and run_command_interactive() flush the log before
    executing a subprocess.

adm/util/io/log.py
  - When a subprocess is executed, end_of_run() now prints only the command
    name. It used to be that if the entire command was given as one str, the
    entired command would be reported.
    - To do so, updated argument processing function (__proc_cline_args()) to
      split single-line commands into a list of arguments.

14079 Directory Listing
Modified 2 years, 7 months ago
Sat Jun 6 22:10:11 2020 UTC
marios
Log:
adm/docs/manual/NIST-notes.txt
  - Added file.

14078 Directory Listing
Modified 2 years, 7 months ago
Sat Jun 6 22:06:34 2020 UTC
marios
Log:
adm/docs/manual/images/adm-flowchart-export-stout-json.pdf
  - Updated Figure.

14077 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 22:57:55 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Added menu for updates on transition wavelengths.

adm/util/register/viz.py
  - Added functionality to produce plots on wavelength updates, both a scatter
    plot (cross-correlation) of theory vs hybrid values, as well as a plots of
    theory wavelengths vs the inverse relative change, i.e., in terms of the
    resolving power a spectrograph must have to detect the wavelength change.

14076 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 22:49:42 2020 UTC
marios
Log:
adm/util/register/viz.py
  - bugfix in energy update plots: Energy was scaled by a power of 10 more than
    intended.  Fixed.

adm/docs/manual/images/energy-updates.pdf
  - Deleted incorrect plot.

adm/docs/manual/images/sorted-energy-updates.pdf
  - Added new plot.

adm/docs/manual/examples.tex
  - Updated text to use correct plot of energy updates.

14075 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 21:20:15 2020 UTC
marios
Log:
adm/adm-finalize.py
  - Index updates are no longer done for the 'final' dataset, so that it may be
    used with other tools, notably adm-visualize.py.

14074 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 19:09:23 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Refactored code that computes precision to use with printed energy, TP, and
    collision strength values as methods of the relevant classes.

adm/util/idata/nrg.py
  - In Energies(), defined set_nrg_prec() and nrg_prec().

adm/util/idata/tp.py
  - In Transitions(), defined set_exp_prec() and  exp_prec().

adm/util/idata/coll.py
  - In Collisions(), defined set_exp_prec() and  exp_prec().

adm/util/types/base.py
  - In Base.__eq__(), fields with empty values (empty str or None) no longer
    trigger a False result if the field is missing in only one of the datasets.

adm/test/idata/test_coll.py
adm/test/idata/test_nrg.py
adm/test/idata/test_tp.py
  - Added unit tests to exercise new methods.

14073 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 18:49:13 2020 UTC
marios
Log:
adm/test/idata/test_tp.py
  - Updated to r14069.

14072 Directory Listing
Modified 2 years, 8 months ago
Thu Jun 4 18:45:24 2020 UTC
marios
Log:
adm/test/idata/test_coll.py
  - Updated to r14065.

14071 Directory Listing
Modified 2 years, 8 months ago
Fri May 29 05:00:47 2020 UTC
marios
Log:
adm/util/idata/tp.py
adm/util/idata/coll.py
  - Changed the upper level index short keyword from 'h' to 'u' in:
    - LeanTransition()
    - LeanCollision()

14070 Directory Listing
Modified 2 years, 8 months ago
Fri May 29 02:05:05 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - Removed call to dict_remove_empty() from IonPot.export_dict().

adm/util/types/base.py
  - Removed definition of dict_remove_empty(). No longer needed.

14069 Directory Listing
Modified 2 years, 8 months ago
Fri May 29 02:01:37 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In LeanEnergyMeta():
    - Defined keyword renaming map, to use on output JSON files.
    - Implemented export_dict(), instead of simply calling its super() method.
  - In LeanEnergy():
    - Changed keyword for metadata to 'm', used on output.

adm/util/idata/tp.py
  - In LeanTranMeta():
    - Replaced storing the comment with storing both the reference code, and
      the TP accuracy.
    - Defined keyword renaming map, to use on output JSON files.
    - Removed unused method init().
    - Implemented export_dict(), instead of simply calling its super() method.
  - In LeanTransition():
    - Changed keyword for metadata to 'm', used on output.

adm/util/idata/coll.py
  - In LeanCollMeta():
    - Defined keyword renaming map, to use on output JSON files.
    - Implemented export_dict(), instead of simply calling its super() method.
  - In LeanCollision():
    - Changed keyword for metadata to 'm', used on output.

adm/adm-export-json.py
  - Trivial change: order of CLI arguments on help message.

14068 Directory Listing
Modified 2 years, 8 months ago
Thu May 28 20:24:29 2020 UTC
marios
Log:
adm/adm-view-json
  - bugfix: After turning into executable, script runs in a separate shell,
    and so is unaware of the ADM installation.  Modified to specify the ADM
    directory, where it can find the required util.io.json module.  Fixed.

14067 Directory Listing
Modified 2 years, 8 months ago
Thu May 28 20:08:14 2020 UTC
marios
Log:
Further reduced storage footprint of output JSON files.

adm/util/idata/nrg.py
  - Defined LeanEnergies.export_dict() to modify section titles in output JSON.

adm/util/idata/tp.py
  - In LeanTransition():
    - Changed the TP key in the output JSON to 'P'.
    - In export_dict(), commented out code to print the TPs as strings in
      exponential notation, as it makes files bigger.
  - Defined LeanTransitions.export_dict() to export the data as a list of
    LeanTransition() data, instead of a dict of dicts.  Reduces JSON storage
    footprint.

adm/util/idata/coll.py
  - Defined LeanCollisionBlock.export_dict() to export the data as a list of
    LeanCollision() data, instead of a dict of dicts of dicts.  Reduces JSON
    storage footprint.
  - Defined LeanCollisions.export_dict() to modify section titles in output
    JSON.

adm/adm-view-json
  - Turned into an executable.

14066 Directory Listing
Modified 2 years, 8 months ago
Thu May 28 05:31:30 2020 UTC
marios
Log:
adm/adm-view-json
  - Added (bash) script to view the contents of compact JSON files.

adm/util/io/json.py
  - Added function to load a JSON, and then pretty-print it.

14065 Directory Listing
Modified 2 years, 8 months ago
Thu May 28 05:27:39 2020 UTC
marios
Log:
adm/adm-export-json.py
  - Added command-line option '-c' to generate compact JSON files of minimal
    size.

adm/util/types/base.py
  - In Base():
    - In export_dict(), added ability to swap the stored keyword names with
      given alternatives.
      - No longer storing empty strings.
    - In import_dict(), implemented the reverse operation: Loading data stored
      under different keywords.

adm/util/idata/nrg.py
  - Modified LeanEnergy() to use abbreviated keywords with export_dict().
  - Enabled LeanEnergies.save_json() to save compact dataset.

adm/util/idata/tp.py
  - Modified LeanTransition() to use abbreviated keywords with export_dict().
    - Storing TP as a str in exponential notation, for extra savings in space.
  - Enabled LeanTransitions.save_json() to save compact dataset.

adm/util/idata/coll.py
  - Modified LeanCollision() to use abbreviated keywords with export_dict().
  - Modified LeanCollisionBlock() to store the list of temperatures, not the
    temperature data line.
  - Enabled LeanCollisions.save_json() to save compact dataset.

adm/util/io/json.py
  - Added option to save() to create a compact file, of minimal size.

14064 Directory Listing
Modified 2 years, 8 months ago
Wed May 27 16:52:52 2020 UTC
marios
Log:
adm/adm-export-json.py
  - It is now possible to exclude auto-ionization levels, and any transitions
    they are involved in, from the output datasets with the '--noai' CL option.

adm/util/idata/nrg.py
  - In LeanEnergies.copy(), enabled exclusion of auto-ionization levels.

adm/util/idata/tp.py
  - In LeanTransitions.copy(), enabled exclusion of transitions that involve
    excluded levels.

adm/util/idata/coll.py
  - In LeanCollisionBlock.copy(), and LeanCollisions.copy(), enabled exclusion
    of transitions that involve excluded levels.

adm/test/idata/test_nrg.py
adm/test/idata/test_tp.py
adm/test/idata/test_coll.py
  - Exercised exclusion capabilities in unit tests.

adm/adm-export-stout.py
  - Minor docstring updates.

14063 Directory Listing
Modified 2 years, 8 months ago
Wed May 27 05:28:49 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Refactored statistical calculations on the registration as a separate script
    (not yet added).

14062 Directory Listing
Modified 2 years, 8 months ago
Tue May 26 02:30:13 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Added command-line option '--noai'.  It prints auto-ionization levels,
    and any transitions involving them, after the end-of-data line in the
    respective files.
  - Now loading the experimental IP file before preparing the energy data
    lines, instead of while preparing the energy comments.
  - Modified .tp output to print TP values in exp notation, with an adaptive
    precision.
  - bugfix in add_tp_accuracy(): Attempt was made to append non-existent
    variable to list of accuracies.  Now using the correct local variable.
    Fixed.
  - Defined prep_coll_datalines() to prepare the datalines to print, and
    the ones to print as excluded, in the output .coll file.
  - Slightly modified the format of the command output.

adm/util/ui/cli.py
  - Added parse_add_noai() to enter option '--noai' to the CLI.

adm/util/idata/tp.py
  - bugfix in JoinedTransitions.new_dataline(): stout.tp.compose_line() was
    invoked with the TP value cast as a str().  This caused the printed string
    to appear as a plain float, not in exponential notation.  Now using the
    float TP value directly, which produces output in exponential notation.
    Fixed.

adm/util/idata/coll.py
  - Defined BasicCollision.new_dataline(), with variable precision, to produce
    a dataline.
  - Defined CollisionBlock.sorted_order() to access the output of the sort()
    method.

adm/util/stout/tp.py
  - Modified compose_line():
    - To allow None values be given for the precision.
    - To work with both str and float TP values.

adm/util/stout/coll.py
  - Modified compose_dataline() to permit control over the precision of the
    collision parameter values.

adm/util/stout/files.py
  - In FileSections():
    - Defined add_excluded_dataline() to add an 'excluded' line of data.
    - Defined excluded_datalines() to access these lines.
    - Modified prepare_file_lines() to print these lines after an end-of-data
      line.

adm/util/stout/__init__.py
  - Added missing module check.py.

adm/util/stout/info.py
  - Updated module docstring.

adm/test/stout/test_files.py
  - Added unit tests for new FileSections() methods.

14061 Directory Listing
Modified 2 years, 8 months ago
Tue May 26 01:37:49 2020 UTC
marios
Log:
adm/util/adas/extract.py
adm/util/nist/extract.py
  - Updated stout subpackage calls from r14060:
    - nrg.get_energy_fmt_precision() -> fmt.get_fmt_precision_floats()
    - tp.get_tp_fmt_precision() -> fmt.get_fmt_precision_exps()

14060 Directory Listing
Modified 2 years, 8 months ago
Tue May 26 01:32:09 2020 UTC
marios
Log:
adm/util/stout/nrg.py
adm/util/stout/fmt.py
  - Moved get_energy_fmt_precision() to fmt.py as get_fmt_precision_floats().

adm/util/stout/tp.py
adm/util/stout/fmt.py
  - Moved get_tp_fmt_precision() to fmt.py as get_fmt_precision_exps().
    - Adapted to process lists of floats, as well.
    - Introduced get_fmt_precision_exp() to handle the processing of a single
      float value.

adm/test/stout/test_nrg.py
adm/test/stout/test_fmt.py
  - Moved tests for get_energy_fmt_precision() to test_fmt.py, using the new
    function name.

adm/test/stout/test_tp.py
adm/test/stout/test_fmt.py
  - Moved tests for get_tp_fmt_precision() to test_fmt.py, using the new
    function name.
  - Added unit tests for get_fmt_precision_exp().

14058 Directory Listing
Modified 2 years, 8 months ago
Mon May 25 15:24:18 2020 UTC
marios
Log:
Moved: adm/util/idata/meta.py
 from: adm/util/stout/meta.py

Moved: adm/test/idata/test_meta.py
 from: adm/test/stout/test_meta.py

adm/util/idata/__init__.py
adm/util/stout/__init__.py
adm/test/stout/__init__.py
  - Updated lists of modules loaded with 'import *'.

14057 Directory Listing
Modified 2 years, 8 months ago
Sun May 24 16:45:28 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Fixed typos in branching ratios sub-menu.

14055 Directory Listing
Modified 2 years, 8 months ago
Sun May 24 06:00:21 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Updated command-line interface to require a nickname for a complete dataset,
    as opposed to nicknames for energies and transitions, separately.
  - bugfix in show_level_details(): Text input that is not a level name caused
    abort.  Added check before resolving name into configuration and level.
    Fixed.

14054 Directory Listing
Modified 2 years, 8 months ago
Sat May 23 21:48:31 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Added CLI option (--nick) for the nickname of a complete dataset.
    If a numerical label is present in the nickname, it is also applied in the
    selection of a (merged) theoretical dataset.

adm/util/register/viz.py
  - Output file names are now prepended by a string.

adm/adm-visualize.py
adm/adm-merge-tp.py
  - bugfix: Missing import of util.types.  Fixed.

14053 Directory Listing
Modified 2 years, 8 months ago
Sat May 23 21:02:48 2020 UTC
marios
Log:
adm/adm-ingest-data.py
adm/util/nist/extract.py
  - Make sure that when original and initial JSON datasets are created:
    they overwrite any pre-existing files.

adm/util/nist/extract.py
  - Extended this policy to IP and reference JSON files:
    existing files are overwritten.

14052 Directory Listing
Modified 2 years, 8 months ago
Sat May 23 15:48:43 2020 UTC
marios
Log:
Same nickname for merged JSON energy datasets in input and output directories.

adm/util/io/nicks.py
  - Removed nickname 'matched'.

adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-visualize.py
adm/adm-fine-tune.py
  - Now using nickname 'merged' instead of 'matched'.

14051 Directory Listing
Modified 2 years, 8 months ago
Sat May 23 15:29:04 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - Provide option to use energy shift preserving the relative gaps to both
    bracketting terms, in addition to preserving the energy gap to the nearest
    term.  Also, let arbitrary energy shifts be used.

adm/util/register/levels.py
  - Clarify pre-matching HINT message.

14050 Directory Listing
Modified 2 years, 8 months ago
Sat May 23 00:38:45 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - bugfix: Old Energy() method name copy_level() used instead of new name
    copy().  Fixed.
  - Added space on log output after creation of energies_original.json.

adm/adas-fix-fnames.py
  - Modified to operate with a path, instead of with an ADM parameter file.

adm/adm-setup.py
adm/adm-fetch-nist.py
  - Reordered CLI options.

adm/adm-adas-to-stout.py
  - Added clarification in help message.

adm/util/nist/extract.py
  - Guard against creating a JSON file, when only the IP uncertainty is
    available.
  - In write_nrg() and write_nrg_json(), guard against not extracting
    ionization potential values.

adm/util/nist/files.py
  - Use fs.write_file() in save_original_data(), instead of custom code.

14049 Directory Listing
Modified 2 years, 8 months ago
Fri May 22 19:58:36 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - Bugfix in prep_URL_data(): Check for commented refcode was done after the
    check for Lines and Transitions, and as a result never accessed.  Now done
    before any other check.  Fixed.
  - Print to log with Reference.show() and References.show().
  - Parameterized the heading "Bibliography" as a References() class-wide
    parameter.

14048 Directory Listing
Modified 2 years, 8 months ago
Thu May 21 01:50:48 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Updated to current flow of operations.

adm/docs/manual/adm-macros.tex
  - Added definitions for missing scripts.

Updated flowcharts (removed "Fix filenames" box, and adjusted size):
  - adm/docs/manual/images/adm-flowchart-adas-acquisition.pdf
  - adm/docs/manual/images/adm-flowchart-nist-acquisition.pdf

Added new flowcharts:
  - adm/docs/manual/images/adm-flowchart-export-stout-json.pdf
  - adm/docs/manual/images/adm-flowchart-vertical-sections-setup-collision-json.pdf

14047 Directory Listing
Modified 2 years, 8 months ago
Wed May 20 17:44:53 2020 UTC
marios
Log:
adm/docs/manual/intro.tex
  - Updated Chapter 1, Introduction.
    - Now showing current format of Stout file contents (minor changes).
    - Colored in red the discussion about preserving data from current Stout
      files -- not sure this will ever be done.
    - Added discussion on JSON-format output files, instead of Stout.

14046 Directory Listing
Modified 2 years, 8 months ago
Wed May 20 16:45:38 2020 UTC
marios
Log:
adm/nist-extract-species.py
  - Import missing modules, not ported with the move from nist.extract.py.

14045 Directory Listing
Modified 2 years, 8 months ago
Wed May 20 02:51:22 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Modified the code to look for an 'original' energies dataset before
    ingesting a Stout file.  This enables reading datasets with energy
    uncertainties (produced with adm-fetch-nist.py).

adm/util/stout/files.py
  - Updated get_IP():
    - To skip the title line of the IP comment section.
    - To parse the IP value correctly, now that its error may also appear
      on that line.

14044 Directory Listing
Modified 2 years, 8 months ago
Wed May 20 02:28:58 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Enabled extraction of level energy uncertainties.
  - Storage of 'original' energy dataset as a JSON file now depends on requests
    for uncertainty values, and for creating a JSON file.  If the uncertainty
    column is not present in the HTML table output, no JSON file is produced.
  - Now sanitizing reported paths to newly created files.
  - Modified drive() to accept the directory for data storage, instead of
    evaluating it based on the given species.

adm/adm-fetch-nist.py
  - Added CLI option to fetch the level energy uncertainties, if available.
  - Now using the relative basepath including the top directory
    (e.g., 'nist/li/li_1/li_1') when calling the driver function to extract
    data from NIST.  No need to move into the top experimental directory
    anymore (that was a residual of running NistExtractor.py as a subprocess).
  - Also, now requesting to save 'original' JSON datasets, if fetching the
    uncertainties has also been requested, and the uncertainty column is there.

adm/util/nist/extract.py
adm/nist-extract-species.py
  - Moved path preparation function from util.stout.nist.extract.
  - Moved statements processing the output of prepare_path() from
    extract.drive() to the main program.

adm/util/idata/nrg.py
  - In BasicEnergy():
    - Added optional data field for energy uncertainty.
    - Updated init() to process the energy uncertainty and store it as float.
    - Defined method energy_unc() to access stored value.

adm/util/nist/nrg.py
  - In EnergyLevel(), added data field for energy uncertainty.

adm/util/nist/files.py
  - Now sanitizing reported paths to newly created files.

adm/test/nist/test_nrg.py
adm/test/idata/test_nrg.py
  - Updated unit tests to exercise energy uncertainty data fields.

14043 Directory Listing
Modified 2 years, 8 months ago
Wed May 20 00:25:21 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Refactored all functions to accept all options to data table acquisition
    as keyword arguments.
  - Modified process_nrg_table() to accept a variable for the IP as an argument,
    instead of accepting a flag for fetching the IP and returning its data.

adm/util/nist/extract.py
adm/nist-extract-species.py
adm/adm-fetch-nist.py
  - Renamed extract_IP to fetch_IP.
  - Updated script docstring.

14042 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 23:23:55 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Converted all positional arguments, except the one for the species, to
    keyword arguments.

adm/adm-fetch-nist.py
  - Prepended all variables that store relevant command-line options with
    'fetch_'.
  - Eliminated function run().  Its contents (two statements) are now part of
    main().
  - Updated script docstring.

adm/adm-fetch-nist.py
adm/nist-extract-species.py
  - Updated call to nist.extract_drive().

14041 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 22:12:01 2020 UTC
marios
Log:
adm/run-unittests.sh
  - Include all modules in unit-test suite runs.

adm/test/idata/test_tp.py
  - Update to stout.tp.compose_line() expecting a string for TP.

14040 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 21:57:04 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Defined write_nrg_json() to produce an 'original' energies JSON dataset.
    The dataset is converted into an internal Energies() dataset from the
    existing list of EnergyLevel()'s.

adm/util/idata/nrg.py
  - In BasicEnergyMeta():
    - Turned dataline into an optional data field.  It may now be undefined
      on calls to init().
  - Defined Energy.set() to synthesize an Energy() object from BasicEnergy()
    and BasicEnergyMeta() objects.

adm/util/types/base.py
  - In Base.export_dict(), do not write out keys with None values.

14039 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 21:47:29 2020 UTC
marios
Log:
adm/util/ptable/ions.py
  - Defined function ion_nelectrons() to compute the number of electrons in an
    ion.
  - Refactored species_nelectrons() to use new function.

adm/test/ptable/test_ions.py
  - Added unit tests to exercise new function.
  - Updated tests of get_isoseq_ions() to accommodate extending the list of
    natural elements to Plutonium.

14038 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 21:43:37 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - In EnergyLevel.init(): Changed attribute from note to notes, which is
    actually used in set().

adm/util/nist/extract.py
  - bugfix in write_nrg(): Use of unset EnergyLevel.note instead of .notes.
    Fixed.
  - List of notes now accumulated during the preparation of datalines, because
    a comprehension does not accommodate the list of strings stored in notes.

adm/test/nist/test_nrg.py
  - Updated unit tests to use EnergyLevel.notes instead of .note.
  - Added unit test to exercise list of two notes.

14037 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 21:09:45 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - form_nrg_comment() now accepts a list of str for notes, and formats them
    into a string using notes.fmt_note().

adm/util/nist/fmt.py
adm/util/nist/extract.py
  - Updated to use a nickname for the notes module, to avoid conflicts with
    local variables.

adm/test/nist/test_fmt.py
  - Updated unit tests for form_nrg_comment() to use list of str for comments.
    Added test using a list of two elements for notes.

adm/util/idata/nrg.py
  - Updated to new interface for nist.fmt.form_nrg_comment().

14036 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 20:49:49 2020 UTC
marios
Log:
adm/adm-ingest-data.py
adm/util/stout/files.py
  - Removal of degenerate terms from the (J,p) groups is no longer done as part
    of reading a Stout file.  It is now done by the data-ingestion script, after
    the original energies have been written to a JSON file.

14035 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 00:35:44 2020 UTC
marios
Log:
Created subpackage adm/util/misc
containing:
  - adm/util/misc/util_misc.py (moved from adm/util/util_misc.py)
  - adm/util/misc/util_prun.py (moved from adm/util/util_prun.py)

Created testing subpackage adm/test/misc
containing:
  - adm/test/misc/test_misc.py (moved from adm/test/test_misc.py)
  - adm/test/misc/test_prun.py (moved from adm/test/test_prun.py)

Updated function calls.

14034 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 00:18:46 2020 UTC
marios
Log:
Created subpackage adm/util/chianti
containing only:
  - adm/util/chianti/chianti.py (moved from adm/util/chianti.py)

Created testing subpackage adm/test/chianti
containing only:
  - adm/test/chianti/test_chianti.py (moved from adm/test/test_chianti..py)

14033 Directory Listing
Modified 2 years, 8 months ago
Tue May 19 00:05:23 2020 UTC
marios
Log:
adm/util/register/levels.py
  - Now using io.json functions with LevelIndexMap(), instead of calling
    Python's json module directly.

adm/util/stout/info.py
  - Removed unused method StoutInfo.emit_json().

14032 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 23:35:19 2020 UTC
marios
Log:
Created subpackage adm/test/io
containing:
  - adm/util/io/fs.py (moved from adm/util/fs.py)
  - adm/util/io/json.py (moved from adm/util/json.py)
  - adm/util/io/log.py (moved from adm/util/ui/log.py)
  - adm/util/io/nicks.py (moved from adm/util/ui/nicks.py)
  - adm/util/io/__init__.py (for 'import *')

Created testing subpackage adm/test/io
containing:
  - adm/test/io/test_fs.py (moved from adm/test/test_fs.py)
  - adm/test/io/test_json.py (moved from adm/test/test_json.py)
  - adm/test/io/test_log.py (moved from adm/test/ui/test_log.py)
  - adm/test/io/test_nicks.py (moved from adm/test/ui/test_nicks.py)

Updated function calls.

14031 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 22:20:47 2020 UTC
marios
Log:
Renamed:
  - adm/util/io -> adm/util/ui
  - adm/test/io -> adm/test/ui

Updated calls to functions.

14030 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 22:12:58 2020 UTC
marios
Log:
Broke apart adm/util/io/ui.py into:
  - adm/util/io/cli.py (command-line interface)
  - adm/util/io/upr.py (user prompt)

Renamed:
  - adm/test/io/test_ui.py -> adm/test/io/test_upr.py
  - adm/test/io/test_ui.py -> adm/test/io/test_upr.py

adm/adas-extract-species.py
adm/adas-fix-fnames.py
adm/adm-adas-to-stout.py
adm/adm-export-json.py
adm/adm-export-stout.py
adm/adm-fetch-nist.py
adm/adm-finalize.py
adm/adm-fine-tune.py
adm/adm-ingest-data.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-query-adas.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
adm/adm-registration-summary.py
adm/adm-setup.py
adm/adm-shift-unreg-terms.py
adm/adm-sort-nrg.py
adm/adm-visualize.py
adm/stout-data-summary.py
adm/util/adas/extract.py
adm/util/cloudy/lines.py
adm/util/cloudy/stout_refs.py
adm/util/io/__init__.py
adm/util/nist/tp.py
adm/util/register/levels.py
adm/util/register/shifts.py
adm/util/register/terms.py
fetch-NIST-IP.py
  - Updated calls to functions.

14029 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 22:07:54 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Writing of output files now uses the stout.files.FileSections()
    infrastructure.  Calls to stout.fmt.compose_comment_line() have been
    dropped.
  - Preparation of energy and TP datalines has been refactored into functions,
    which also use stout package functions to get the optimal precision for
    output: stout.nrg.get_energy_fmt_precision() for energy and
    stout.tp.get_tp_fmt_precision() for TP values.
  - Now confirming the user name before putting together the ADM comments.
    The comments are now formed before producing any output files, and passed
    to the relevant functions.
  - Updated to new util package interface.

adm/util/idata/nrg.py
  - Updated Energy.new_dataline() to the new interface of
    stout.nrg.compose_line().  Added keyword arguments to specify the accuracy
    of the output energy strings.
  - Updated to new util package interface.

adm/util/idata/tp.py
  - Updated Transition.new_dataline() to the new interface of
    stout.tp.compose_line().  Added keyword argument to specify the accuracy
    of the output TP strings.
  - Updated to new util package interface.

14028 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 21:15:44 2020 UTC
marios
Log:
adm/util/fs.py
adm/util/misc.py
adm/util/json.py
  - Moved the JSON() class from util.fs into new module util.json as module
    functions.  Also moved JSON encoder class myEncoder() from util.misc. 

adm/util/__init__.py
  - Added util.json to list modules loaded with 'import *'.

adm/test/test_fs.py
adm/test/test_json.py
  - Extracted unit tests into new module test.test_json.

adm/open-adas-download.py
adm/util/cloudy/stout_refs.py
adm/util/idata/coll.py
adm/util/nist/ip.py
adm/util/nist/refs.py
adm/util/stout/meta.py
  - Updated calls to json functions.

14027 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 20:22:43 2020 UTC
marios
Log:
adm/util/types/__init__.py
  - Added for loading modules with 'import *'.

14026 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 19:12:44 2020 UTC
marios
Log:
Removed missing files:
  - adm/test/test_chtypes.py
  - adm/test/test_types.py

14025 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 19:07:56 2020 UTC
marios
Log:
Created subpackage util.types and moved therein the util modules:
  - chtypes.py as chtypes.py
  - types.py as istype.py
  - base.py

Created util.types.__init__ for 'import *' calls.

Created testing subpackage test.types and moved therein the modules:
  - test_chtypes.py as test_chtype.py
  - test_types.py as test_istype.py

Updated all scripts and modules using these modules.

14024 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 17:56:38 2020 UTC
marios
Log:
adm/util/cloudy/lines.py
adm/util/idata/state.py
adm/util/io/dirs.py
adm/util/io/pfile.py
adm/util/nist/nrg.py
adm/util/nist/tp.py
adm/util/register/viz.py
adm/util/stout/files.py
adm/util/stout/info.py
adm/util/stout/meta.py
adm/test/cloudy/test_lines.py
  - Switched deriving from chtypes.Valid() to base.Base().

adm/util/chtypes.py
  - Removed class Valid().

14023 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 17:50:15 2020 UTC
marios
Log:
adm/test/test_fs.py
  - Remove all intermediate JSON files.

14022 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 17:37:22 2020 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Updated to r14017.

14021 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 17:25:13 2020 UTC
marios
Log:
adm/test/nist/test_nrg.py
  - Updated unit tests to r14020.  Added unit tests for EnergyLevel.set_index().

14020 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 17:09:33 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Now assigning level indices after the levels have been sorted in energy.

adm/util/nist/nrg.py
  - In EnergyLevel():
    - Removed the level index from the interface of set().
    - Defined method set_index() to set the level index.

14019 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 16:41:38 2020 UTC
marios
Log:
adm/util/adas/db.py
  - Added module containing parameter for ADAS database name.

adm/util/adas/__init__.py
  - Included new module to list of modules loaded with 'import *'.

adm/util/adas/extract.py
  - Updated to use new parameter instead of bare string.
  - Removed obsolete module parameter 'magic_number'.

14018 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 16:36:50 2020 UTC
marios
Log:
adm/util/nist/db.py
  - Added module containing parameter for NIST database name.

adm/util/nist/__init__.py
  - Included new module to list of modules loaded with 'import *'.

adm/util/nist/extract.py
adm/util/nist/files.py
adm/util/register/shifts.py
adm/nist-asd-ip.py
fetch-NIST-IP.py
  - Updated to use new parameter instead of bare string.

14017 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 15:41:25 2020 UTC
marios
Log:
adm/util/adas/extract.py
  - Writing of output files now uses the stout.files.FileSections()
    infrastructure.  Modified functions:
    - write_nrg_file()
    - write_tp_file()
    - write_coll_file()
  - Renamed write_end_of_file() to add_timestamp_filename(): It enters the ADF04
    file name as a Stout file comment.
  - Level.set() now expects the energy as a str, not a float.
  - RCtran.set() now expects the TP and the collision strengths as str, not
    floats.
  - No longer determine the energy precision in read_ADF04_file().  This is now
    done on output, because the energy is stored as a str, not a float.
  - Output file names are now set in the relevant functions, not in drive().

adm/adm-adas-to-stout.py
  - Now writing directly into the theory directory, without having to move into
    it.

adm/util/stout/check.py
  - Defined parameters for Einstein A data type 'A", and collision data type
    'CS'.

adm/util/stout/coll.py
  - In compose_dataline(), now accepting collision strength parameters as str,
    not float.

14016 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 03:27:19 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - In process_nrg_table():
    - bugfix: Notes on IP value no longer embedded in the energy value.  Now
      using parser method instead.  Fixed.
    - Extracting the IP or level refcodes now done only if requested.
  - In write_nrg() and write_tp():
    - Now using the refactored code in stout.nrg.get_energy_fmt_precision()
      and stout.tp.get_tp_fmt_precision() to get the energy/TP precision for
      the output file.
    - Now using the stout.files.FileSections() infrastructure for preparing
      the contents of the output file.
  - Now using stout.dirtree functions for the output Stout filenames, instead
    of the intermediate functions in nist.files.

adm/util/nist/files.py
  - Removed wrapper functions:
    - get_energy_filename()
    - get_transition_filename()
    - get_collisions_filename()

adm/util/nist/refs.py
  - Modified title of Stout file (sub)section from "References" to
    "Bibliography":
    - References.show()
    - References.prep_print_pub()

Removed calls to stout.fmt.compose_comment_line(), as it is handled by
stout.files.FileSections.prepare_file_lines():
    - adm.util.nist.notes.prepare_table()
    - adm.util.nist.tp.prepare_acc_table()
    - adm.util.nist.ip.IonPot.prep_for_stout()
    - adm.util.nist.ip.IonPots.prep_for_stout()
    - adm.util.nist.refs.References.prep_print_pub()

14015 Directory Listing
Modified 2 years, 8 months ago
Mon May 18 02:41:48 2020 UTC
marios
Log:
adm/util/stout/files.py
  - In FileSections():
    - In add_comment_line():
      - Allowed for blank lines.
      - Comment lines now have their leading comment sentinel ('#') removed, if
        present.
    - In prepare_file_lines():
      - Set the magic number to the default value, if not defined.
      - Set the header of the comment section, so that the user does not have to
        issue it explicitly.  The comments passed to the method should no longer
        include it, or it will be duplicated.
      - Comment lines may have a leading comment sentinel ('#') added before
        being added onto the output for printing.  This is controlled by
        fmt.use_comment_sentinel().
  - bugfix in parse_file_into_sections():  A blank comment line caused the check
    for magic number in the input line to fail.  Changed the order of checks, so
    that comment lines are processed before anything else.  Fixed.

adm/util/stout/fmt.py
  - Defined remove_leading_comment_sentinel() to remove the leading comment
    sentinel ('#'), if present.
  - Prepending comment lines with a leading comment sentinel ('#') is now handled
    by FileSections.prepare_file_lines().  Changed the following functions to no
    longer process it by default:
    - prep_comments_header()
    - prep_IP_line()

adm/util/stout/nrg.py
  - Defined get_energy_fmt_precision() to determine the max number of integer
    and fractional digits in a list of energy strings.  Refactored from module
    nist.extract.
  - Changes in compose_line():
    - Modified to allow it to be called with None values for the arguments for
      whole and fractional digits.
    - Limited the number of fractional digits to the maximum number to prevent
      printing too high a precision for levels that have been shifted.

adm/util/stout/tp.py
  - Defined get_tp_fmt_precision() to determine the max number of fractional
    digits in a list of TP strings.  Refactored from module nist.extract.
  - Modified compose_line() to accepted the TP argument as a str (from float).

adm/test/stout/test_files.py
adm/test/stout/test_fmt.py
adm/test/stout/test_nrg.py
adm/test/stout/test_tp.py
  - Updated unit tests.
  - Added unit tests to exercise new functions.

14014 Directory Listing
Modified 2 years, 8 months ago
Fri May 15 23:08:59 2020 UTC
fguzman
Log:
fix bug in unitary test
14013 Directory Listing
Modified 2 years, 8 months ago
Fri May 15 06:14:15 2020 UTC
marios
Log:
Renamed:
  - adm-adas-extract.py -> adas-extract-species.py
  - adm-fix-fnames.py -> adas-fix-fnames.py
  - adm-nist-extract.py -> nist-extract-species.py
  - adm-nist-notes.py -> nist-fetch-notes.py

open-adas-download.py
  - Minor formatting change.

14012 Directory Listing
Modified 2 years, 8 months ago
Fri May 15 03:58:24 2020 UTC
marios
Log:
adm/open-adas-download.py
  - Do not download already existing files.

adm/adm-query-adas.py
adm/util/adas/web.py
  - Refactored function fetch_file_maybe() into module.

14011 Directory Listing
Modified 2 years, 8 months ago
Fri May 15 00:53:56 2020 UTC
marios
Log:
adm/open-adas-download.py
  - bugfix: Guard against non-existing species.  If the table is empty, return
    immediately to caller.  Fixed. 

14010 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 23:45:34 2020 UTC
marios
Log:
adm/open-adas-download.py
  - Added script to download the entire OpenADAS database.
    Apart from the data, for each species save a JSON file with the retrieved
    HTML table.

adm/util/fs.py
  - Modified JSON.save() to accept data in the form of a list of dicts,
    in addition to a dict.

14009 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 23:38:23 2020 UTC
marios
Log:
adm/adm-query-adas.py
adm/util/adas/web.py
  - Refactored web access and HTML table parsing as module util.adas.web.py.
  - Replaced function parse_page() with aweb.extract_table_data().
    The latter only extracts a BeautifulSoup representation of the HTML table,
    and does not attempt to parse it, or provide a user interface for file
    selection.  (The latter are now absorbed in the driver function.)
    Thus, it is more friendly for use with other scripts.

adm/util/adas/__init__.py
  - Added web.py to the list of modules loaded with 'import *'.

14008 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 21:23:07 2020 UTC
marios
Log:
adf042stout.py
NistExtractor/NistExtractor.py
  - Restore Matt's scripts to their versions on the trunk.

14006 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 21:16:16 2020 UTC
marios
Log:
adm/util/adas/extract.py
  - Ignore all transitions and collisions with TP <= 1e-30.  Previously, only
    transitions with TP of 1e-30 were excluded.

14005 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 21:01:10 2020 UTC
marios
Log:
adm/adm-adas-extract.py
adm/util/adas/extract.py
  - Added Matt Lykin's adf042stout.py as an ADM script, and refactored its
    main functionality as a util.adas module.

adm/adm-adas-to-stout.py
  - Updated to use the new util.adas module, instead of running adf042stout.py
    as a subprocess.

adm/util/adas/__init__.py
  - Updated to include the new extract.py module to the list of modules for
    'import *'.

14004 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 19:23:17 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Do not use levels of uncertain or unresolved J with groups.

adm/util/idata/state.py
  - In OneState.Jtot(), return a string for uncertain or unresolved J values.
    Exact J's are returned as a float.

adm/util/stout/tp.py
  - bugfix: Restored default format for transition probabilities, used by
    idata.tp.do_printed_TP_differ().  Fixed.

adm/test/idata/test_nrg.py
  - Updated unit tests.  Added made-up level involving a mixed term, and
    uncertain / unresolved J to the dataset for Ne+7.

14003 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 18:01:15 2020 UTC
marios
Log:
adm/util/nist/__init__.py
  - Added extract.py to the list of modules for 'import *'.

14002 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 17:57:26 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - In spec_term_nist_fmt(), allowed for blank terms.

14001 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 17:55:31 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - In is_spec_level(), also accept missing and uncertain terms, in addition to
    unassigned terms (which equal the energy), as valid terms.
    This is the conjugate for writing blank terms with nist-extract.
  - In spec_level_nist_fmt(), allowed for blank terms.

adm/util/atoms/spname.py
  - In fmt_spname_output_noJ(), allowed for blank terms.
  - Removed leading and trailing spaces from the output of fmt_spname_output()
    and fmt_spname_output_noJ().

adm/test/atoms/test_splevel.py
adm/test/atoms/test_spname.py
  - Updated unit tests.  Added a few more to exercise levels with blank terms.

14000 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 05:26:44 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Now using the Header() and DataParser() classes to extract data from the
    HTML tables.
  - Now processing uncertain (e.g., '1 or 2') and unresolved ('1,2,3') J-values.
  - Energy is no longer converted to a float -- permits exact matches for line
    data, and energies of higher precision in output files.
  - Now printing energy levels with all available precision.

adm/util/nist/phtml.py
  - bugfix in extract_notes(): Permitted note codes with HTML markup to be added
    to the list of notes.  Now exiting as soon as the first batch of notes is
    obtained.  Fixed.
  - In TranParser.parse(): Restored storage of statistical weights as integers.

adm/util/nist/nrg.py
  - Refactored form_name() to process first the case that we have only a valid
    configuration, and removed checks on the term.  This permits levels without
    terms to be printed.
  - Removed functions parse_ionization() and level_parse_line(), both made
    obsolete with the use of the Parser classes.

adm/util/nist/tp.py
  - In RadTrans.set() and AllRadTrans.insert(), switched to using str for
    Einstein A values.

adm/test/nist/test_phtml.py
adm/test/nist/test_nrg.py
adm/test/nist/test_tp.py
  - Updated unit tests.
  - Promoted unit_tests() inner functions to module functions.

13999 Directory Listing
Modified 2 years, 8 months ago
Thu May 14 03:24:53 2020 UTC
marios
Log:
adm/util/atoms/jtot.py
  - Implemented the identification and processing of J values that are uncertain
    (1 or 2), or unresolved (1,2), or both (1, 2 or 3).
    'Mixed' J values can be used with any of the module functions.

adm/util/atoms/spterm.py
  - Updated are_terms_equiv() to be able to compare mixed terms.

adm/util/atoms/splevel.py
  - Updated module functions to be able to handle mixed J values:
    - are_term_Jtot_consistent()
    - convert_spec_level_to_real()
    - convert_spec_level_to_frac()

adm/util/atoms/spname.py
  - Updated parse_spname_into_ecl() to be able to handle mixed J values.

adm/test/atoms/test_jtot.py
adm/test/atoms/test_spterm.py
adm/test/atoms/test_splevel.py
adm/test/atoms/test_spname.py
  - Exercised new functions and new capabilities in unit tests.

13998 Directory Listing
Modified 2 years, 8 months ago
Wed May 13 19:43:38 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Updated calc_gtot() to handle mixed terms: the highest statistical weight
    is returned for them.
  - Also updated valid_Jtot() to handle mixed terms: a concatenated list of
    valid J values is returned for them.

adm/test/atoms/test_spterm.py
  - Exercised new capabilities of functions in unit tests.

13997 Directory Listing
Modified 2 years, 8 months ago
Wed May 13 17:29:03 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Renamed is_term_mixed() to the more appropriate is_term_missing().
  - Defined function is_term_mixed() to identify mixed terms of the form '1,3G'
    or '2P,4P'.
  - Defined function resolve_mixed_term() to convert a mixed term into a list of
    (LS) terms.
  - Updated is_term() to handle mixed terms.

adm/test/atoms/test_spterm.py
  - Updated function name in tests of is_term_mixed() to is_term_missing().
  - Added unit tests for new functions is_term_mixed() and resolve_mixed_term().
  - Exercised is_term() in unit tests with mixed terms.
  - Promoted inner functions of unit_tests() to module functions.

13996 Directory Listing
Modified 2 years, 8 months ago
Tue May 12 05:05:10 2020 UTC
marios
Log:
adm/util/stout/tp.py
  - Modified compose_line() to admit, as a keyword argument, the precision in
    printed (exponential format) value of the Einstein A value. 
  - Removed unused module parameter TP_format.

adm/test/stout/test_tp.py
  - Added unit tests to exercise new functionality.
  - Fixed failing test to came up after adjusting the format of the type column
    in r13958.
  - Promoted inner functions of unit_tests() to module functions.

13995 Directory Listing
Modified 2 years, 8 months ago
Mon May 11 22:46:44 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Expanded is_nprim() to be able to handle str input.  If the string can be
    converted to an positive integer with no fractional part, it is considered
    to be a valid principal quantum number.

adm/util/atoms/econfig.py
  - Expanded are_econfig_equiv(), econfig_has_ancestor(), and fix_econfig()
    to handle configurations that are principal quantum numbers; unassigned
    (e.g., '1234d'); or mixed (e.g., '2,3.sp').

adm/test/atoms/test_orbitals.py
adm/test/atoms/test_econfig.py
  - Added unit tests for the new capabilities of the modified functions.

adm/util/atoms/shells.py
  - Minor format change to error message.

adm/util/atoms/splevel.py
  - Removed unnecessary import of orbitals module.

13994 Directory Listing
Modified 2 years, 8 months ago
Mon May 11 21:44:24 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Modified compose_line() to preserve the number of decimal places in the
    energy.  It now accepts the energy as a str, and also accepts two keyword
    arguments to control the number of characters to be used in its integer and
    fractional parts.

adm/test/stout/test_nrg.py
  - Updated to new interface of stout.nrg.compose_line().  Added unit tests for
    new functionality.
  - Promoted inner functions of unit_tests() to module functions.

adm/util/idata/nrg.py
adm/test/idata/test_nrg.py
  - Updated to new interface of stout.nrg.compose_line().

13993 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 22:36:02 2020 UTC
fguzman
Log:
ion_solver:
retourning to the population solver

iso_condensed:
	adapted to the population representation using bool variable lgpop
	obtained real ionization energies to get rid of negative source terms
	simplified indexing on Sourcebound and Sinkbound

iso_level:
	retaured iso_level with condensation


13992 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 21:51:21 2020 UTC
marios
Log:
adm/util/atoms/parity.py
adm/util/atoms/trans.py
  - Warn when processing shells of multiple L symbols that the first one is
    being used.

13991 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 21:40:41 2020 UTC
marios
Log:
adm/util/nist/nrg.py
adm/test/nist/test_nrg.py
  - bugfix in level_parse_line(): extract_notes() now returns a list.
    Updated calls.  Fixed.

adm/util/nist/phtml.py
  - Modified extract_notes() to not bail after the first notes have been
    retrieved.

adm/util/atoms/econfig.py
  - Missed in previous commit.

13990 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 21:36:30 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Removed functions exported to shells.py and econfig.py.

adm/adm-fine-tune.py
adm/util/atoms/econfig.py
adm/util/atoms/parity.py
adm/util/atoms/spname.py
adm/util/atoms/trans.py
adm/util/idata/nrg.py
adm/util/idata/state.py
adm/util/nist/extract.py
adm/util/nist/nrg.py
adm/util/register/levels.py
adm/util/register/shifts.py
adm/util/register/terms.py
adm/util/register/viz.py
adm/test/atoms/test_spname.py
adm/test/atoms/test_trans.py
adm/test/idata/test_nrg.py
adm/test/idata/test_state.py
  - Updated calls to the appropriate module.

adm/test/atoms/test_orbitals.py
  - Removed unit tests exported to tests for the shells.py and econfig.py
    modules.

13989 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 19:08:21 2020 UTC
marios
Log:
adm/util/adas/adas.py
adm/util/adas/eissner.py
  - Update to using fmt_econfig() in econfig.py

13988 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 17:55:21 2020 UTC
marios
Log:
adm/util/atoms/spname.py
  - Removed duplicate functions that have been moved to econfig.py.

adm/test/atoms/test_spname.py
  - Removed relevant unit tests.

13987 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 04:30:43 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - In EnergyParser.parse(), if an ionization potential data line is read for a
    bare nucleus, use a single space, as its configuration.

adm/nist-asd-ip.py
  - Drop resetting the ion above configuration to 3 spaces, now that it is
    guaranteed to not be the empty string.

adm/test/nist/test_phtml.py
  - Exercised new functionality in unit test.

13985 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 03:43:25 2020 UTC
marios
Log:
adm/nist-asd-download.py
  - Added script to download the NIST level and line data for the main isotope
    of all elements.

adm/nist-asd-refs.py
  - Added script to extract the reference codes from NIST tables, and to resolve
    them into actual bibliographical references by querying the NIST bib server.

adm/nist-asd-ip.py
  - Added script to extract the ionization potential information from NIST level
    tables, and to compose Cloudy's 'ionization_potential.dat' file.

13984 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 03:23:26 2020 UTC
marios
Log:
adm/test/nist/test_web.py
  - Updated column parameter names to current in phtml.py.

13983 Directory Listing
Modified 2 years, 8 months ago
Fri May 8 03:17:56 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Standardized the reading of table data.  The header of the table is first
    ingested to record the order of columns.  Accessing data for a column may
    simply be done by invoking its name.  Column names in level and line tables
    are defined, and can be directly accessed, but for convenience two classes
    for reading level and line data are also defined.  Overall, the new classes
    defined in this commit are:
    - Header()
    - DataParser()
    - EnergyParser()
    - TranParser()

adm/test/nist/test_phtml.py
  - Exercised new classes in unit tests.
  - Promoted inner functions of unit_tests() to module functions.

13982 Directory Listing
Modified 2 years, 8 months ago
Thu May 7 18:11:47 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modified extract_note() to return list of note codes, not a concatenated
    string.  Renamed to extract_notes().

adm/util/nist/nrg.py
  - Updated call to function.

adm/util/nist/notes.py
  - Updated docstring of parse_note().

adm/test/nist/test_phtml.py
  - Updated unit tests.

13981 Directory Listing
Modified 2 years, 8 months ago
Thu May 7 17:20:22 2020 UTC
marios
Log:
adm/util/atoms/shells.py
  - Added file containing all functions that manage configuration shells.
    Extracted mainly from orbitals.py, but also from spname.py.
    The configuration parser, named subshells() in orbitals.py and renamed to
    parse_config(), has been completely rewritten to be able to handle the rich
    syntax encountered on NIST without relying on functions of the re module.

adm/util/atoms/econfig.py
  - Added file containing all functions that manage configurations.
    Extracted mainly from orbitals.py, but also from spname.py.

adm/test/atoms/test_shells.py
adm/test/atoms/test_econfig.py
  - Exercised existing and new functionality in unit tests.
    Existing functions extracted mainly from test_orbitals.py, but also from
    test_spname.py.

adm/util/atoms/__init__.py
  - Included new modules in the list of modules loaded with 'import *'.

13980 Directory Listing
Modified 2 years, 9 months ago
Sun May 3 15:01:28 2020 UTC
marios
Log:
adm/util/nist/files.py
  - bugfix: Missing module re.  Now imported.  Fixed.

adm/util/io/log.py
  - In error(), removed the empty line before the error message.

adm/util/fs.py
  - In chdir(), removed the empty line after the message.

13979 Directory Listing
Modified 2 years, 9 months ago
Sun May 3 14:58:08 2020 UTC
marios
Log:
adm/util/ptable/elements.py
  - Extend list of natural elements to include Plutonium.
  - Defined order_all_elements() to access all elements.

adm/util/nist/web.py
  - Added keyword argument for Lande g column to set_NIST_levels_query().
  - Added keyword arguments to query_NIST_levels_form() and
    query_NIST_lines_form() to allow for not getting a valid webpage from NIST.

adm/util/stout/dirtree.py
  - bugfix in species_stout_relpath(): Case-sensitive relative paths were
    returned, non-compliant with the Stout format.  Now all paths are returned
    in lowercase.  Fixed.

13978 Directory Listing
Modified 2 years, 9 months ago
Fri May 1 21:42:53 2020 UTC
fguzman
Log:
minor fixes
13977 Directory Listing
Modified 2 years, 9 months ago
Fri May 1 00:37:50 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - In References():
    - bugfix in prt_to_file(): Did not update call prep_print() to
      prep_print_pub().  Now fixed.

13976 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 30 15:28:00 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - In IonPots(), defined methods __len__() and __getitem__().

adm/test/nist/test_ip.py
  - Added unit tests for new methods.
  - Converted inner functions to module functions.

13975 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 30 04:33:00 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - In References():
    - Now using the fs.JSON infrastructure for handling JSON files.  This has
      necessitated:
      - Dropping the '.json' suffix from the class-wide filename (now basename)
        parameters. 
      - Defining object method to set the basename (pathname() won't do, as it
        sets the entire path).
    - Also refactored JSON-serialization code into methods export_dict() and
      import_dict().
    - Defined method __len__(), used with calls to length().
  - Defined function to read a master references file from a given directory.

adm/test/nist/test_refs.py
  - Added unit tests for the new methods and functions.

13974 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 30 02:08:42 2020 UTC
marios
Log:
util/nist/refs.py
  - bugfix in fetch_ref_data(): Some authors field do not have the expected
    number of HTML anchors, and that caused a failure.  Now adapting to the
    number of returned fields.  Fixed.
  - bugfix in References.__contains__(): Code could use an uninitialized object.
    Now guarding against an empty reference dict.  Fixed.
  - bugfix in copy_ref(): Not copying a Reference() object if it already exists
    in the rederence dict prevented populating records with data from the master
    list of references.

test/nist/test_refs.py
  - Added a couple of units tests for is_ref_commented(), parse_commented_ref().

13973 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 29 21:33:00 2020 UTC
fguzman
Log:
comment gap reducing on get_pivotal
13972 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 29 21:08:53 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - In References():  The practice of telling save_json() and read_json() if the
    dataset is for more than one species (master references) was fragile.
    To use a master references dataset consistently with reading and writing
    JSON files, method set_master() has been defined. 
    - The is_master argument has been removed from save_json() and read_json().
    - It has been retained in pathname(), because as a class method it has no
      access to the object data.
    - Class-wide parameters have been defined to the JSON filenames for master
      and regular datasets.

adm/test/nist/test_refs.py
  - Updated unit tests.

13971 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 29 20:24:06 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - Fundamentally refactored class References().  It now holds a dict of
    Reference() objects.  Methods and inner functions that did the bulk of
    the work for resolving a table entry into a URL, and fetching ref data
    have been made module functions.
  - Class Reference() provides get functions to all its data fields, populated
    after a call to resolve() to actually get the data.  base.Base methods
    copy(), __eq__(), export_dict(), and import_dict() are overridden to ease
    the handling of objects.
  - Class References() maintains the methods it had, which now iterate over
    Reference() objects.  The following methods have also been defined:
    - __iter__()
    - __contains__()
    - __getitem__()
    - __eq__()
    - copy_ref() - to copy Reference() objects into the dataset.
    Also, the JSON-related methods: pathname(), save_json(), and read_json(),
    now admit a keyword argument to set the JSON filename to 'master_refs.json',
    instead of 'refs.json'.

adm/test/nist/test_refs.py
  - Exercised all function and class methods in unit tests.
    Several calls to the NIST server are made, which makes the unit test slow.

13970 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 29 14:49:56 2020 UTC
fguzman
Log:
corrected factor 2 in iso_sequences departure coefficients and populations derivation, removed calculation of departures from populations
13969 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 28 21:21:59 2020 UTC
fguzman
Log:
iso_level.cpp:
	reverted

iso_departure.cpp:
	changed headers order to include definitions first
	removed unused variables
	optimize Boltzmann factors filling.
	print departures after matrix inversion.




13968 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 28 14:37:54 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - In IonPot, added optional field for notes on the IP value, and method note()
    to access it.  Updated other methods as needed.
  - In IonPots.add_IP(), added optional keyword for IP notes.

adm/test/nist/test_ip.py
  - Exercised new functionality in unit tests for both IonPot() and IonPots().

adm/util/fs.py
  - Changed default indentation in JSON files from 4 spaces to 2.

13966 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 27 00:35:57 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - bugfix in load_nrg_data(): Report used TP filename.  Fixed.
  - Updated call to nist.web.set_NIST_lines_query() to request references
    according to command-line input.
  - Updated call to can_skip_line().

adm/util/misc.py
  - Silence debug print statement.

13965 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 27 00:26:09 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Renamed: skip_line() -> can_skip_line()

fetch-NIST-IP.py
NistExtractor/NistExtractor.py
adm/test/nist/test_phtml.py
adm/test/nist/test_web.py
  - Updated function calls.

13964 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 26 23:53:28 2020 UTC
marios
Log:
adm/util/nist/web.py
  - In set_NIST_lines_query():
    - Combined options 'with_obs_wl' and 'with_calc_wl' into option 'with_wl'.
      If only observed wavelengths are asked for, but none exist on output, no
      table is returned.  For that reason, we will always get both.
    - Renamed option 'with_unc' to 'with_wl_unc' to clarify its meaning.

adm/test/nist/test_web.py
  - Updated unit tests.

13963 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 26 17:52:47 2020 UTC
marios
Log:
adm/util/nist/web.py
  - Added options to set_NIST_lines_query() to more finely control which columns
    to request.
  - Modified query_NIST_levels_form() and query_NIST_lines_form() to report the
    exception error, and give a more informative error message before exiting,
    should the data download fail.

adm/util/misc.py
  - In download_page():
    - bugfix: Angstrom and micron symbols cannot be converted into UTF-8, and
      throw exceptions that cause the code to abort.  Unconvertable characters
      are now replaced with a unicode box.  Fixed.
    - Updated to throw more meaningful messages on Exceptions raised when
      getting data from a remote server, and when decoding data into UTF-8.

adm/test/nist/test_web.py
  - Exercised new options to query_NIST_lines() in unit tests.

13962 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 25 18:02:26 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Removed property svn:executable.

13961 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 25 17:52:12 2020 UTC
marios
Log:
adm/util/nist/extract.py
  - Read HTML tables from files, if present.
    Otherwise, do as before: download the data, and store them, if asked.

13960 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 25 06:38:45 2020 UTC
marios
Log:
adm/adm-nist-extract.py
adm/util/nist/extract.py
  - Added NistExtractor.py under these names.  It has been refactored to hold
    the UI in the script, and the core functionality in the module.  This
    permits using the latter from adm-fetch-nist.py directly.

adm/adm-fetch-nist.py
  - The script now uses the functionality of NistExtractor.py refactored in the
    util.nist.extract module, instead of launching NistExtractor.py as a
    subprocess.

13959 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 25 05:53:21 2020 UTC
marios
Log:
adm/util/nist/ip.py
adm/util/nist/notes.py
adm/util/nist/refs.py
  - In table output of notes, ionization potentials, and references, show title
    only if there are any data to be shown.

13958 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 25 01:28:16 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Now including the comments of the original dataset with the theoretical
    comments in all output Stout files.
  - Now printing in the comment section some information about the ADM run.
  - The experimental part of the comment section of energy and transition files
    is not a mere copy of the input file.  It has been updated to include only
    the notes table (in .nrg), accuracy table (in .tp), and references (in both)
    that involved in the dataset.

adm/util/idata/nrg.py
  - In Energy.new_dataline(), now printing the notes on energy, and the comment,
    but without the secondary configuration.

adm/util/idata/tp.py
  - In JoinedTransitions.new_dataline():
    - bugfix: Check on existence of transition used the upper level index
      instead of the lower.  Fixed.
    - An empty string is now used for the multipole order if it is missing, so
      as to keep the column of comments aligned.  Custom orders are no longer
      accepted.

adm/util/nist/refs.py
  - References.prep_print() now sorts all the references.  Previously, sorting
    only occured when no list was given, and the entire dataset would be sorted.

adm/util/nist/tp.py
  - In print_acc_table(): Refactored preparation of table contents into function
    prepare_acc_table(), which it now calls.

adm/util/stout/files.py
  - bugfix in FileSections.prepare_file_lines(): Call of end_of_data_sentinel()
    did not include its module.  Prepended with stout.fmt.  Fixed.

adm/util/stout/tp.py
  - In compose_line(), now using an empty string when the order is missing
    to keep the column of comments aligned.

adm/util/stout/meta.py
  - Make output JSON files overwrite existing ones.

13957 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 21:45:17 2020 UTC
marios
Log:
adf042stout.py
  - Added ADM path to list of paths, to enable running stand-alone.
  - In write_end_of_file(), now using stout.fmt.compose_comment_line() to
    format the comment line.

adm/adm-query-adas.py
adm/util/adas/adas.py
  - Moved definition of the 'comments_file' to the module to make it
    more widely accessible.

13956 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 21:35:40 2020 UTC
marios
Log:
Adjusted appearance of comment section in the output of NistExtractor.py.

adm/util/stout/fmt.py
  - In prep_comments_header(), added an empty line at the end of the header.
  - bugfix: In compose_comment_line(), in r13949 comment line was made to be
    stripped both at its front and back.  This breaks the alignment of the
    notes when a comment sentinel is not being used.  Now stripping only the
    back of the comment line.  Fixed.

adm/util/nist/notes.py
  - Updated prepare_table() to let util.stout.fmt.compose_comment_line() handle
    printing lines as comments.

adm/util/nist/refs.py
  - In prep_print():
    - Added header for the references.
    - Updated prep_print() to let util.stout.fmt.compose_comment_line() handle
      printing lines as comments.

NistExtractor/NistExtractor.py
  - Updated call to IonPots.add_IP().
  - Now using IonPots.prep_for_stout() to print the IP data.

13955 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 21:16:16 2020 UTC
fguzman
Log:
1) Changed name of the function from iso_departure to iso_departure_solver to
avoid ambiguity;

2) Finished coding iso_departure_solver implemented all checks and normalizations. Wrote header on iso.h

3) Checked and corrected Boltzmann factors implementation in iso_departure_solver

4) iso_solve would call now to iso_departure_solver


13954 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 20:58:53 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - In IonPots.prep_for_stout(), added 3 lines of header to the output.

adm/test/nist/test_ip.py
  - Updated tests.

13953 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 20:40:17 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - Defined method IonPot.prep_for_stout(), as a wrapper around
    util.stout.fmt.prep_for_stout().
  - Defined method IonPots.prep_for_stout() to iterate over the IonPot data.
    Interface includes an option to only print data for the first IP entry.

adm/test/nist/test_ip.py
  - Exercised new methods in unit tests.

13952 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 20:06:05 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - Updated interface of IonPot.init() and IonPots.add_IP():
    - refcode is now a keyword argument.
    - Swapped order of ion and IP.

adm/test/nist/test_ip.py
  - Updated calls to IonPot() and IonPots() methods.

13951 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 18:46:54 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - In IonPot(), restored optional keywords, eliminated in r13947.

13950 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 18:14:27 2020 UTC
marios
Log:
adm/util/stout/fmt.py
  - In prep_IP_line(), added keyword argument 'error' to also report the error
    on the IP value.

adm/test/stout/test_fmt.py
  - Added unit tests to exercise use of the new argument.

13949 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 17:49:27 2020 UTC
marios
Log:
adm/util/stout/fmt.py
  - Refactored code to handle the writing of comment lines.
    - Defined use_comment_sentinel() to control starting a comment line with a
      sentinel.
    - Defined compose_comment_line() to write comment lines.  Now used by 
      prep_comments_header() and prep_IP_line().
  - compose_dataline() now strips whitespace from the output line.

adm/test/stout/test_fmt.py
  - Exercised new functions in unit tests.
  - bugfix: By rearranging in r13948, data needed by get_fields_from_dataline()
    were moved after it.  Fixed.

13948 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 16:15:08 2020 UTC
marios
Log:
adm/test/stout/test_fmt.py
  - Rearranged tests of functions to the same order as in the module.

13947 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 06:25:46 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Now processing all ionization potential records, instead of reading just
    the first one.  Only the first one is printed in the .nrg file, but the
    entire dataset is saved in a JSON file (IP.json) in the output directory.

adm/util/nist/ip.py
  - Switched to using relative imports.
  - In IonPot():
    - Eliminated optional keywords.  Now they are all required.
    - Allowing for empty NIST refcodes, in case they are not present, or they
      are not picked up.
    - In export_dict(), omiting fields with empty or None values.
  - bugfix in IonPots.__next__(): Typo in data structure name over which the
    method iterates.  Fixed.

adm/util/base.py
  - Switched to using relative imports.
  - In Base.pprt(): Now skipping fields of value None.

13946 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 05:36:58 2020 UTC
marios
Log:
adm/util/nist/notes.py
  - __prepare_table() -> __prepare_table_data()
  - Refactored data preparation of function print_table() into new function
    prepare_table().

adm/util/nist/refs.py
  - Refactored method prt_to_file() to separate data preparation from data
    presentation.
  - Defined method prep_print(), which contains the refactored code, and
    handles the preparation.
    - Designed the method to only report a subset of all the references
      specified on the call to the method.
  - prt_to_file() now calls prep_print().

adm/util/nist/__init__.py
  - Added 'ip.py' to the list of modules loaded with 'import *'.

adm/test/nist/test_notes.py
  - Updated calls to new function name __prepare_table_data().
    Updated test function name.

13945 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 24 05:14:43 2020 UTC
marios
Log:
adm/util/nist/ip.py
  - Added module to handle ionization potential values more efficiently.
    Currently, the module defines two classes.

adm/test/nist/test_ip.py
  - Exercised the new classes in unit tests.

13944 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 22:49:08 2020 UTC
marios
Log:
adm/adm-export-json.py
adm/adm-finalize.py
  - Moved the process of updating the indices of each record from 'export-json'
    to 'finalize', as the information is needed for exporting in Stout format,
    as well.

13943 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 20:27:51 2020 UTC
marios
Log:
adm/adm-export-json.py
  - Added utility to export a lean JSON dataset from the 'final' dataset.
    The output files use the Stout filenames as their base, e.g., ne_9.nrg.json.

adm/util/base.py
  - Added function to remove empty entries from a dictionary.

adm/util/idata/nrg.py
  - Defined LeanEnergyMeta.export_dict() to remove empty fields from the
    dictionary produced by the parent method.
  - Updated LeanEnergy.copy():
    - It now instructs the parent method to not copy optional keywords.
    - It now overwrites the state() object with the primary name of the level.
  - Defined LeanEnergy.export_dict() to store the metadata as a separate dict,
    so that they easily distinguishable in the output JSON record.
  - In LeanEnergies(), overrode methods save_json() and read_json() to enable
    saving under a different naming scheme.

adm/util/idata/tp.py
  - Added argument to BasicTransition.copy() to skip copying optional keywords.
  - bugfix in LeanTranMeta.copy(): The keywords (required and optional) of
    BasicTranMeta were copied, not of LeanTranMeta.  Changed variables.  Fixed.
  - Defined LeanEnergyMeta.export_dict() to remove empty fields from the
    dictionary produced by the parent method.
  - Updated LeanTransition.copy() to not copy the optional keywords in the call
    to the parent method.
  - Defined LeanTransition.export_dict() to store the metadata as a separate
    dict, so that they easily distinguishable in the output JSON record.
  - In LeanEnergies(), overrode methods save_json() and read_json() to enable
    saving under a different naming scheme.

adm/util/idata/coll.py
  - Defined LeanCollMeta.export_dict() to remove empty fields from the
    dictionary produced by the parent method.
  - Defined LeanCollision.export_dict() to store the metadata as a separate
    dict, so that they easily distinguishable in the output JSON record.
  - In LeanCollisions(), overrode methods save_json() and read_json() to enable
    saving under a different naming scheme.

adm/test/idata/test_nrg.py
  - Defined facility __compare_Energy_with_Lean() to compare Energy() and
    LeanEnergy() objects.  Used where needed, in lieu of repeating comparison
    statements.

adm/test/idata/test_tp.py
  - In test of LeanTranMeta.copy(), removed check on refcode, which is not
    stored with lean metadata.

13942 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 13:13:29 2020 UTC
marios
Log:
adm/util/idata/coll.py
  - In CollisionBlock.copy(), make use of insert_collision(), instead of
    repeating its code.
  - Defined classes:
    - LeanCollMeta(), a lightweight version of BasicCollMeta(). 
    - LeanCollision(), a composite of BasicCollision() & LeanCollMeta(). 
    - LeanCollisionBlock(), a lightweight version of CollisionBlock(), with
      data stored as LeanEnergy() records.
    - LeanCollisions(), a lightweight version of Collisions(), with blocks
      stored as LeanCollisionBlock() datasets.

adm/test/idata/test_coll.py
  - Added unit tests for new classes.
  - Fixed some docstrings.

13941 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 06:11:49 2020 UTC
marios
Log:
adm/util/idata/coll.py
  - Partition Collision() into three classes from which it now derives:
    - BasicCollision(), which holds the main collision data.
    - BasicCollMeta(), which holds metadata.
    - BasicCollProc(), which holds processing info, if any.
    - Defined methods pprt(), copy(), __eq__(), export_dict(), and
      import_dict() on each of them, as well as on Collision(), which calls
      these methods.
  - Defined method unset_replaced(), now part of BasicCollProc() along with
    the set_replaced() and replaced().
  - CollisionBlock() and Collisions() now derive from base.Base.
  - bugfix in CollisionBlock.add_collision_record(): Missed replacing method
    Collision.init_dataline() with .init() in r13940.  Fixed.

adm/test/idata/test_coll.py
  - Exercised new classes in unit tests.

adm/util/base.py
  - In Base.pprt(), changed format to separate variable name from value with
    ':\t', instead of '\t'.

adm/util/idata/nrg.py
  - Minor variable name changes.

13940 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 03:32:40 2020 UTC
marios
Log:
adm/util/idata/coll.py
  - Collision.init_dataline() -> Collision.init()

adm/test/idata/test_coll.py
  - Updated method calls and relevant test function names.

13939 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 23 03:24:08 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - Defined classes:
    - LeanTranMeta(), a lightweight version of BasicTranMeta(). 
    - LeanEnergy(), a composite of BasicEnergy() & LeanTranMeta(). 
    - LeanEnergies(), a lightweight version of Energies(), with data stored as
      LeanEnergy() records.

adm/test/idata/test_tp.py
  - Exercised new classes in unit tests.

adm/util/idata/nrg.py
  - In BasicEnergyMeta.dataline(), guarded return value with a check that the
    attribute exists.  If not, an empty string is returned.
    This is needed because LeanEnergyMeta inherits the method, and not storing
    the attribute, the call might lead to a crash.
  - bugfix in LeanEnergy.copy(): The input type validated to be BasicEnergy()
    and then used to populate a BasicEnergyMeta() object.  Now validating for
    an Energy() object, which can be used with both.  Fixed.

13938 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 22:51:49 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - Partitioned Transition() methods and data into two new classes,
    BasicTransition(), and BasicTranMeta(), which Transition derives from.
    - The partition follows the partition of the Energy() class.
      BasicTransition() holds the data of the transition, while BasicTranMeta()
      hold the metadata for the transition.
    - Both of the new classes derive from base.Base, and override its pprt(),
      copy(), __eq__(), export_dict(), and import_dict() methods.
  - Renamed: Transition.init_dataline() -> Transition.init()

adm/test/idata/test_tp.py
  - Added unit tests for new classes.
  - Updated calls to Transition.init(), from .init_dataline(), and testing
    function name.

13937 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 21:03:06 2020 UTC
fguzman
Log:
coded matrix inversion and conversion of eigenvector to extended array
13936 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 16:36:37 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Renamed:
    - BasicMeta() -> BasicEnergyMeta()
    - LeanMeta() -> LeanEnergyMeta()

adm/test/idata/test_nrg.py
  - Updated calls to class methods, and names of testing functions.

13935 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 16:12:42 2020 UTC
fguzman
Log:
filled matrix z and condensed into matrix c
13934 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 05:48:54 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined classes:
    - LeanMeta(), a lightweight version of BasicMeta(). 
    - LeanEnergy(), a lightweight version of BasicEnergy(). 
    - LeanEnergies(), a lightweight version of Energies(). 

adm/test/idata/test_nrg.py
  - Exercised new classes in unit tests.

13933 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 22 05:05:20 2020 UTC
marios
Log:
adm/util/base.py
  - Added base class from which other can derive.  It contains the classmethods
    of Valid (valiate() and is_obj()), and methods for pprt(), copy(), __eq__(),
    import_dict(), and export_dict(), with code refactored from methods in
    idata.nrg.

adm/util/idata/nrg.py
  - The following classes now derive from Base(), instead of Valid():
    - BasicEnergy()
    - BasicMeta()
    - RegisterEnergy()
    - ConfTerm()
    - ConfTermSort()
    - ConfTerms()
    - Groups()
    - Energies()
  - Rewrote methods to use their Base() equivalents in classes:
    - BasicEnergy()
    - BasicMeta()
    - RegisterEnergy()
    - ConfTerm()
    - ConfTermSort()
  - In BasicEnergy.__init__() removed obsolete keyword argument 'meta'.

adm/util/__init__.py
  - Added 'base' module to the list of modules for 'import *'.

13932 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 21 21:09:10 2020 UTC
fguzman
Log:
filled electron impact collisional and radiative terms in the CR matrix
13931 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 21 20:18:38 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Refactored Energy() to inherit from three separate classes that partition
    it into distinct logical units:
    - BasicEnergy() encapsulates the fundamental data for energy level.
    - BasicMeta() holds metadata on the level, such as its original database
      name, any comments given on the Stout energy record, etc.
    - RegisterEnergy() holds only data relevant to registration.
    - Energy() methods have been partitioned between these three classes.
      A few notes:
      - Method name changes:
        - reset_energy() -> set_energy().  Now in BasicEnergy().
          A new reset_energy() has been introduced in BasicEnergy() that
          restores the level energy to its original value.
        - set_comment() -> reset_comment().  Now in BasicMeta().
        - dismissed() -> set_dismissed().  Now in RegisterEnergy().
        - toggle_ignore() -> toggle_ignored().  Now in RegisterEnergy().
      - Energy() overrides RegisterEnergy.unset_shifted(), which calls the new
        BasicEnergy.reset_energy() as well as invoking the RegisterEnergy()
        homonymous method.
      - Each class defines its own pprt(), copy(), __eq__(), export_dict() and
        import_dict().  The Energy() homonymous methods call all of these
      - The old BasicEnergy() attributes, which derived from the even older
        LeanEnergy() class have been removed.
  - In Energies.copy(), removed the keyword arguments 'lean' and 'meta'.
    The method now longer produces 'lean' copies of the data.

adm/util/idata/state.py
  - Removed explicit tab characters ('\t') from pprt() methods.
    Now using log.tab_right() and log.tab_left() to control indentation.

adm/test/idata/test_nrg.py
  - Exercised functionality of the new classes (BasicEnergy(), BasicMeta(),
    and RegisterEnergy()) in unit tests.
  - Removed tests on lean energy records and datasets.

adm/adm-ingest-data.py
adm/test/idata/test_nrg.py
  - Updated calls to new method name: Energy.set_dismissed().

adm/util/register/levels.py
adm/test/idata/test_nrg.py
  - Updated calls to new method name: Energy.toggle_ignored().

adm/adm-fine-tune.py
adm/util/register/terms.py
adm/test/idata/test_nrg.py
  - Updated calls to new method name: Energy.set_energy()

13930 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 21 13:24:18 2020 UTC
fguzman
Log:
corrections on the error function formula. Activated PSM20
13929 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 19 06:18:08 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Modified functions that validate collections (list, tuple, etc) to use the
    relevant bool functions from the types.py module.
  - Defined method Valid.is_obj(). 

adm/test/test_chtypes.py
  - Added unit tests for validate_collection().

adm/util/types.py
adm/test/test_types.py
  - Renamed is_obj() -> is_obj_of().

13928 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 19 05:54:17 2020 UTC
marios
Log:
adm/util/types.py
  - Defined functions:
    - is_obj(), is_tuple(), is_dict()
    - and auxiliary functions: __validate_class(), __are_list_elements_obj().
  - Renamed is_collection_given() -> is_collection()

adm/test/test_types.py
  - Exercised new functions in unit tests.
  - Added unit tests for is_collection().

13927 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 18 22:53:46 2020 UTC
marios
Log:
adm/util/chtypes.py
adm/util/types.py
  - Added change log.
  - Removed unnecessary imports.

adm/util/types.py
  - Added Return type in docstrings of functions:
    - is_int()
    - is_int_pos()
    - is_int_notneg()
    - is_float()
    - is_float_pos()

13926 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 18 22:02:22 2020 UTC
marios
Log:
adm/util/nist/tp.py
  - Now classes RadTrans() and AllRadTrans() inherit from chtypes.Valid(),
    not object.  That is, they automatically have validate() methods.

adm/test/nist/test_tp.py
  - Use newly-endowed validate() methods for type-checking RadTrans() objects.

adm/test/cloudy/test_lines.py
  - Local class ThisLine() now derives from chtypes.Valid().
    Removed the existing homonymous method.

13925 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 18 18:38:27 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Renamed class LeanEnergy() to BasicEnergy().
    - Renamed method ingest() to set().

adm/util/idata/nrg.py
adm/test/idata/test_nrg.py
  - Update calls to the new class and method names.

13924 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 23:43:31 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined class LeanEnergy(), the scope of which is to provide a data
    structure without all the registration-related variables.
    - Its data fields are those that appear on a Stout energy record:
      index, energy, statistical weight, state, and comment.
    - Metadata can be used as well, including the DB of the original data, any
      notes on the level energy from the original dataset, and the energy shift
      that was applied to it, if applicable.
    - Refactored Energy() methods to access the basic data fields:
      - index()
      - energy()
      - statw()
      - state()
      - reset_index()
    - Defined new methods to report on the metadata fields:
      - db()
      - dEnergy()
      - notes()
    - Defined method ingest() to populate a LeanEnergy() object from an Energy()
      one.
  - Modified Energy() to inherit the methods of LeanEnergy().
  - Enabled Energies.copy() to create a lean copy of its contents:
    - The method accepts keyword arguments 'lean' and 'meta' that control its
      behavior.  A lean copy does not include the cterms() and groups() data.
      It also stores the energy level data using LeanEnergy() objects, instead
      of Energy().

adm/test/idata/test_nrg.py
  - Exercised new LeanEnergy() class in unit tests.
  - Exercised Energies.copy( lean = True ) in unit tests, with and without
    metadata.

13923 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 21:38:30 2020 UTC
fguzman
Log:
1) Iniciated a new file iso_departure.cpp where the matrix will be solved for departures.
   a) created source and sink terms from recombination and CX
   b) this file is not linked to the rest of the code yet and is under
      construction

2) Removed the divition by LTE populations as this will not give us the correct matrix. it need to be solved using departure coefficients

The populations are not sensitive enough to adapt Brocklehurst 1971 method for
departures, it could work however using a spline or other tipe of extrapolation if we are sure it works.

The best approach is to use departure coefficients as we know they need to asymptotically approach 1

13922 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 13:05:48 2020 UTC
marios
Log:
adm/adm-finalize.py
  - Changed how the script operates.  Instead of presenting the user with the
    output of the 'ls' command, and prompting for a selection, the nickname of
    choice must now be specified on the command line.
    - Removed function select_dataset().
    - Defined function copy_JSON_dataset().

adm/util/io/ui.py
  - Defined function parse_add_JSON_nick().  It adds CLI option for a nickname
    for the entire dataset.

adm/util/io/nicks.py
  - Added nickname 'final'.

adm/docs/manual/examples.tex
  - Added Section 'Finalize Dataset'.

13921 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 12:54:59 2020 UTC
marios
Log:
adm/util/idata/unified.py
  - Modified set_connectedness() to admit a keyword argument that prints a title
    announcing the operation to take place.  Two empty lines are added at the
    end of the operation.

adm/adm-ingest-data.py
  - Removed the two empty lines after the call to set_connectedness().

13920 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 12:04:12 2020 UTC
marios
Log:
adm/util/idata/coll.py
  - In Collisions():
    - Modified pathname() and save_json() to admit an 'overwrite' keyword
      argument, which is passed to JSON.pathname() and JSON.save(), resp.
    - Modified save_json() to return the name of the file created.

adm/test/idata/test_coll.py
  - Added unit tests for Transitions.save_json() exercising file overwriting.

13919 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 11:51:51 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - In Transitions():
    - Modified pathname() and save_json() to admit an 'overwrite' keyword
      argument, which is passed to JSON.pathname() and JSON.save(), resp.
    - Modified save_json() to return the name of the file created.
  - Likewise for JoinedTransitions().

adm/test/idata/test_tp.py
  - Added unit tests for Transitions.save_json() exercising file overwriting.
  - Likewise for JoinedTransitions.save_json().

13918 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 02:17:18 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energies():
    - Modified pathname() and save_json() to admit an 'overwrite' keyword
      argument, which is passed to JSON.pathname() and JSON.save(), resp.
    - Modified save_json() to return the name of the file created.
  - Likewise in JoinedEnergies().

adm/test/idata/test_nrg.py
  - In unit tests for Energies.save_json(), now testing JSON file overwriting.
  - Likewise for the JoinedEnergies() methods.
    - bugfix: pathname() was using Energies.basename, instead of the
      JoinedEnergies equivalent.  Fixed.
      That did not cause a problem, though, because they have the same value,
      'energies'.

13917 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 17 01:38:20 2020 UTC
marios
Log:
adm/util/fs.py
  - In class JSON():
    - In pathname(), replaced keyword argument 'unique' with 'overwrite',
      negating the meaning of the keyword.
    - In save():
      - Added keyword 'overwrite', which is now passed to pathname() as is.
        Previously, pathname() was called to create a unique file name.
        Now by default it is called to not overwrite any existing files.
      - Method now returns the name of the file it created.

adm/test/test_fs.py
  - Updated calls to methods in existing unit tests.
  - Exercised new keyword argument overwrite() to JSON.save() in unit tests.

13916 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 20:59:49 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added section on yet another attempt at registration, one that involves
    limiting the energy shifts of "1s.5f 1F*<3>" within the range suggested by
    the experimental transition to 1s.3d 1D<2>.
    This, again, consists, of 3 subsections:
    - On "Shifting of unregistered terms", which entails a description of the
      new interface to that command.
    - On "Creating the Synthetic Dataset"
    - And, on "Fine Tuning", which involves a critical evaluation of the new
      dataset.
    

adm/util/register/shifts.py
  - Disabled debugging info in get_transition_bounds()

13915 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 18:21:15 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - In Transition():
    - No longer storing the accuracy and refcode embedded in the comment as
      separate object attributes.  Removed attribute names from class-wide list
      of optional keywords.
    - Methods accuracy() and refcode() now extract their data on the fly.

13914 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 18:14:34 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In the output of option 'td', function show_transition_details():
    - bugfix: Typo in variable name prevented row of experimental data to be
      printed.
    - Added column for the accuracy of the TP value, which prints both the
      label, and its meaning.
    - A warning is now printed if the offset of hybrid and experimental TPs
      exceeds the experimental accuracy.
 
adm/docs/manual/examples.tex
  - In the Ne+8 example, updated the output of the 'td' option on the 45->17
    transition when fine-tuning a second time.

13913 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 17:33:55 2020 UTC
marios
Log:
adm/util/nist/tp.py
  - Function name change: __get_accuracy_limit() -> get_accuracy_limit().

adm/test/nist/test_tp.py
  - Updated function name in unit tests.
    - Now exercising function for all known accuracies.

13912 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 17:25:23 2020 UTC
marios
Log:
adm/util/register/__init__.py
  - Added missing modules for 'import *'.

13911 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 17:11:36 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - Added functionality to search for transitions involving the levels to be
    shifted, and to convert their accuracies into limits for the energy shift.
    If the shift suggested from term bracketing is not consistent with these
    limits, the user is prompted for a decision on the size of the shift.
  - Defined functions:
    - calc_bounds()
    - dE_hybrid_bounds()
    - common_shift_bounds()
    - get_transition_bounds()
    - get_term_bounds()
    - adjust_dEnergy()
  - Modified shift_unregistered_terms() to admit two keyword arguments for the
    theoretical and experimental transitions datasets.

adm/util/register/convert.py
  - Defined function predict_hybrid_energy(), which tells what the energy of a
    level will be in the hybrid dataset given the registration of levels and
    terms done.

adm/util/idata/nrg.py
  - ConfTerms.energy() now checks if the given level indices actually belong to
    the given term, specified by configuration and term.

adm/util/idata/tp.py
  - Transition.pprt() now prints the keyword without the leading '_', and with
    the first letter capitalized.

adm/test/register
  - Added directory for testing modules of the register subpackage.

adm/test/register/test_shifts.py
  - Added module to exercise functions of the register.shifts module in unit
    tests.  Currently testing calc_bounds() and common_shift_bounds().

adm/util/io/err.py
  - Defined function unitt_assert_float() to test the value of a float.  The
    default tolerance may be changed with a keyword argument.

adm/adm-shift-unreg-terms.py
  - Modified CLI to also accept a transition JSON file nickname.  This permits
    searching for experimental counterparts of known accuracy to theoretical
    transitions of the levels up to be shifted.  If any are found, limits are
    obtained for the energy shifts, and the user is prompted to make a decision
    on the size of the shift.  See comments above to shifts.py.
  - Removed function read_data().
  - No consistency check on the magic number of files is done anymore.

13910 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 04:11:05 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - Function name changes:
    - __get_bracketing_terms_energies() -> get_bracketing_terms_energies()
    - __get_new_term_energy() -> get_new_term_energy()

13909 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 04:09:04 2020 UTC
marios
Log:
adm/util/register/shifts.py
  - In __get_new_term_energy(), report which of the two terms is used to
    preserve the energy separation from.
  - Refactored code from shift_unregistered_terms() that carries out the energy
    shift using registered terms into function bracket_term_shift(). 
  - In shift_unregistered_terms():
    - Replaced code for energy shift with call to function bracket_term_shift().
    - Now using register.terms.do_shift_term() to carry out the shifting of the
      term and its levels.  Previously, the shifting of term was done regardless
      of whether all of levels being shifted or not.  This functions take that
      into account before registering a shift in the term data.
      Also removed the premature call to ConfTerms.shift(), now done in
      do_shift_term(), if appropriate.

13908 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 16 03:31:35 2020 UTC
marios
Log:
adm/util/register/terms.py
  - Refactored code that updates the energy of the term and its levels into
    function do_shift_term().  Function now called from shift_term(), original
    location of code.

13907 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 15 22:27:27 2020 UTC
fguzman
Log:
corrected conversion to departure coefficients
13906 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 15 21:22:14 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix in option 'ur', function update_term():  Experimental indices were
    deduced after the theoretical ones had been overwritten.  Now the code
    figures out the hybrid and experimental indices before performing any
    updates.  Fixed.

13905 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 15 00:09:33 2020 UTC
marios
Log:
adm/util/register/terms.py
adm/util/register/shifts.py
  - Extracted code for shifts of unregistered terms into new module, shifts.py.

adm-shift-unreg-terms.py
  - Updated module import for shift_unregistered_terms().
  - Other minor changes.

13904 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 20:29:04 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined ConfTerm.term_indices() to identify the list of term indices from
    one level index.

adm/test/idata/test_nrg.py
  - Added unit tests to exercise the new method.

13903 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 20:09:52 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Modified ConfTerm.dEnergy() to accept the list of term indices as a keyword
    (optional) argument.  Also added keyword to accept a single level index.
    This has required:
    - Renaming method __get_term_index() to __get_term_index_by_term_indices()
    - Introducing method __get_term_index_by_level_index() to handle the
      single level index calls
    - Introducing method __get_term_index() as a wrapper between those two
      methods.
    - Updating calls in methods shift(), shifted(), and unshift() to use method
      __get_term_index_by_term_indices().

adm/test/idata/test_nrg.py
  - Updated unit tests of ConfTerm.dEnergy() using the term indices, and added
    tests to exercise the method using a level index at a time.

13902 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 19:42:54 2020 UTC
fguzman
Log:
1) Correct typo in formula for PS-M20

2) print rates to compare with Nigel mlchng FORTRAN code

3) Sum bnl to obtain total b_n

13901 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 18:49:16 2020 UTC
marios
Log:
adm/util/register/convert.py
  - Refactored code in adm-fine-tune.py to convert a theoretical level to an
    experimental index into function theory_level_to_experm_index().

adm/adm-fine-tune.py
  - In show_transition_details(), use new function instead of bare code
    instructions.

13900 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 14:38:13 2020 UTC
marios
Log:
adm/util/nist/tp.py
  - Defined function get_acc_num() to convert NIST accuracy flags to floats.

adm/test/nist/test_tp.py
  - Exercised new function in unit tests.

13899 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 02:55:39 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - In Transition():
    - In init_dataline(), parse the comment with the parser for NIST comments,
      and store the accuracy and refcode of the transition, if not None.
    - Defined methods accuracy() and refcode() to access stored values; return
      value is None, if not stored.

adm/test/idata/test_tp.py
  - Exercise new methods and attributes in unit tests.

13898 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 02:35:52 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - In parse_tp_comment(): Accept as refcodes only those strings that begin with
    'T' and are followed by at least one digit.

adm/test/nist/test_fmt.py
  - Add tests to exercise new functionality.

13897 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 14 02:14:21 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Defined function parse_tp_comment() to extract the accuracy and refcode from
    a comment in a Stout-format record of NIST data.

adm/test/nist/test_fmt.py
  - Exercised new function in unit tests.

13896 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 13 21:57:14 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Added the nickname suffix (the '_02' in '_sorted_02') to the theoretical and
    experimental 'matched' energy filenames to be read.
  - Added option to CLI to enter a nickname for the transition JSON data in the
    theoretical and experimental directories.  This permits reading 'tuned' data,
    as opposed to '_init', when available.
    - Defined function parse_add_JSON_nick_te_trans() to add the option to CLI.
  - Changed 'sv' option, function save(), to save 'tuned' transition datasets
    only when they have been modified.  Both the experimental and theoretical
    transitions are saved when either has been modified.
  - Option 'td', function show_transition_details() now shows the experimental
    transition even available, if available, even if neither experimental level
    is used in the hybrid energy dataset.  This permits inspecting how the
    hybrid TP differs from the experimental.

adm/docs/manual/examples.tex
  - Added subsection "Fine Tuning, again" presenting a detailed evaluation of
    the hybrid dataset.

13895 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 13 17:55:56 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - Added command line option to set the nickname of the transitions file.
    This overrides the default 'init' nickname.
  - Adjusted matched energies filenames to include the same suffix as the one
    given on the command line.  E.g., if 'sorted_02' is given on the CL, the
    program will open the 'matched_02' files in the experiment and theory
    directories.

adm/adm-merge-coll.py
  - bugfix: The script checked for the default ('merged') collision file
    nickname instead of the energy nickname given on the CL.  Now using that.
    Fixed.

adm/util/register/terms.py
  - Bugfix: shift_interactive() was using the energy of a level, instead of its
    original energy.  When reprocessing a level in a dataset, the shift would be
    applied on the already-corrected value, not on the original.  Now using the
    original energy.  Fixed.
  - Updated docstring of __get_new_term_energy().
  - Minor rearrangement in subtitle printed by insert_missing_terms().  It now
    reads as "Inserting missing <DB>...", instead of "Inserting <DB> missing..."

adm/util/io/nicks.py
  - Defined function to extract the suffix (e.g., the '_02' from 'sorted_02')
    from the given nickname, if it matches one of the existing ones.

adm/test/io/test_nicks.py
  - Added tests for the nicks.py module.

adm/docs/manual/examples.tex
  - Added discussion on how to recreate a complete dataset, ready to be
    evaluated with adm-fine-tune.py.

13894 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 13 14:48:29 2020 UTC
marios
Log:
adm/util/register/terms.py
  - In shift_unregistered_terms(), sort terms by their original energy.
  - In __get_bracketing_terms_energies():
    - Now admits as an argument the sorted list of terms, so that it doesn't
      redo the sorting every time it is called.
    - Converted debugging statements into table of matched/shifted terms to give
      the user a better sense of what the bracketing algorithm does.
      - The table of terms now lists the final (experimental) term energy, too.
        It also highlights the term to be matched by prepending stars, '***'.

adm/docs/manual/examples.tex
  - Added tables of terms to the output of adm-shift-unreg-terms.py in the
    Section of level registration.
  - Added new Section 'Shifting of unregistered terms, again' discussing the
    choices on term shifting following the step of fine-tuning.

13893 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 13 13:32:42 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined ConfTerms.matched_with() to get the list of levels against which the
    term has been matched.

adm/util/register/report.py
  - Updated show_term_registration() to use the new method.

13892 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 12 16:46:09 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix in inner function reset_term_levels() of update_term(), option 'ur':
    Theory level indices were used instead of those passed to the function,
    which led to crashes.  Now the given indices are used.  Fixed.
  - Now storing a pristine copy of the experimental transitions.
  - In option 'sv', function save():
    - Updated to also store the experimental transitions, even though they have
      not been changed.  This derives from a desire to use the same nicknames
      for all datasets at the same processing stage.
    - bugfix: Messages that datasets were written when they had not changed.
      Modified the if-statements to check for inequality instead.  Fixed.
    - Added a check that the experimental transitions have not changed.  If so,
      a warning is issued, but the saving of datasets proceeds.

adm/docs/manual/examples.tex
  - Added discussion on unregistering terms on adm-fine-tuning.py, and saving
    JSON datasets for further processing.

13891 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 12 03:50:39 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Furthered discussion on high levels in the theoretical model that involve
    transitions with large correction factors.
  - Updated UI of adm-fine-tune.py.

adm/adm-fine-tune.py
  - bugfix in show_transition_details(): Experimental splitting was reported
    using theory level indices. Fixed.

13890 Directory Listing
Modified 2 years, 9 months ago
Sun Apr 12 02:04:35 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Implemented option 'li', in function show_indices(), which shows the
    correspondence between the level indices of the three datasets.

13889 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 11 21:48:28 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Changed the definition of \config{} to be rendered in math mode.
  - Defined macros \nameTerm, \nameTermOdd, \nameLevel, and \nameLevelOdd to
    standardize how the combination of configuration and term / level should
    appear, including the spacing between them.  They are all rendered in math
    mode.

adm/docs/manual/examples.tex
  - Replaced calls to \config{} followed by \specTerm*{} or \specLevel*{} with
    the equivalent \name*{} macro. 

13888 Directory Listing
Modified 2 years, 9 months ago
Sat Apr 11 15:06:44 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix in option 'br', function show_branching ratios():
    Theoretical transitions are no longer an instance of the JoinedTransitions()
    class.  This caused crashes on validation.  Validation checks are now done
    against the Transitions() class.  Fixed.
  - In the output of option 'td', function show_transition_details(): Put the
    multipole order in parentheses, as in the output of the 'lt' option.

adm/docs/manual/examples.tex
  - Updates to current interface.
  - Some text clarifications on fine-tuning.

13887 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 23:57:31 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Minor changes to user menu.

13886 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 23:47:02 2020 UTC
marios
Log:
adf042stout.py
  - Ignore transitions (both radiative and collisional) whose radiative
    probability is '1.00-30'.  Previously, only the radiative transition was
    ignored, but its associated collisional data were still used in the .coll
    file.

13885 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 23:32:47 2020 UTC
marios
Log:
Undo commit r13884.   Discarding of transitions with TP of '1.00-30' will be
done by adf042stout.py.

13884 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 22:55:39 2020 UTC
marios
Log:
adm/util/adas/adas.py
  - Defined function is_TP_zero(), which checks if the TP listed on ADAS is 0.
    ADAS reports 0 probabilities as having a value of 1e-30.

adm/test/adas/test_adas.py
  - Exercised new function in unit tests.

13883 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 22:20:40 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Modified option 'sv', function save(), to also save the theoretical and
    hybrid transitions.  If no changes have been made, no output is created.
    The function monitors the changes by comparing datasets to their untuned
    states.
  - bugfix in fine_tune(): Level connected for hybrid levels was set after the
    energies data had been copied to the placeholder for untuned data.  This
    caused the possibly-tuned and untuned datasets to compare different, even
    when no changes were made.  Postponed saving the untuned dataset until after
    the connectedness is set.  Fixed.

13882 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 21:47:43 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In the output of option 'td', inner function prt_table_row() of
    show_transition_details(), print the multipole order in parentheses, if it
    is a custom order.

13881 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 21:43:14 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Modified option 'rt', reset_tran(), to also restore the theoretical data for
    a transition to its untuned state.
    A copy of the theoretical transition data must now be saved prior to tuning.

13880 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 21:15:47 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Fleshed out stub function update_tran().
    The function skips updates to experimental transitions.
    For theoretical transitions, it permits removing the custom order(), and if
    the order index or the energy splitting has changed, it proceeds to update
    the TP correction factor.
  - bugfix in reset_tran(): There was no check that the requested transition
    exists, which led to crashes when it didn't.  Changed the logic to do that
    check before restoring the data for this transition to their untuned state.

adm/util/idata/tp.py
  - Defined Transition.unset_custom_order(). 
  - In Transitions.replace(): Store a new Transition() object in the dataset,
    which contains a copy of the data of the given object.

adm/test/idata/test_tp.py
  - Exercised new method in unit tests.

13879 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 18:30:29 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - bugfix in Transitions.__eq__(): There was no check that the object had the
    '_order' property before comparing its value against the given.  (By that
    point it is known that either both have it, or neither does.)  Added check.
    Fixed.

13878 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 18:27:32 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Use new copy() methods of the Energies(), JoinedEnergies(), and
    JoinedTransitions() classes, instead of reading the JSON file anew.

13877 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 18:20:22 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - Defined Transition.__eq__() for object comparisons.
  - In Transitions, defined copy() and __eq__() methods.
    - The implementation allows for these methods to be inherited by
      JoinedTransitions().

adm/test/idata/test_tp.py
  - Exercised new methods in unit tests.

13876 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 17:46:34 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - In Transition(), moved the copy() method before export_dict().

13875 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 17:25:15 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energy():
    - In copy(), now using the MixedState.copy() method, instead of coupling its
      export_dict() and import_dict() methods.
    - Defined __eq__() method.
  - In Energies():
    - Defined methods copy() and __eq__().
    - The methods have been designed so that JoinedEnergies() can inherit them
      without having to overload them.

adm/test/idata/test_nrg.py
  - Exercised new methods in unit tests.
    - Renamed test_Energy_copy() to test_Energy_copy__eq__().  Comparison is
      carried out with the new __eq__() method, instead of the custom function
      __compare_Energy_objects().

13874 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 16:45:06 2020 UTC
marios
Log:
adm/util/idata/state.py
  - bugfix in OneState(): Tuple of required keywords did not include the
    percentage ('_pct'), which led some comparisons of equality to fail.
    Added property.  Fixed.

13873 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 16:11:34 2020 UTC
marios
Log:
adm/util/idata/state.py
  - bugfix in OneState(): Incomplete copy in copy() method.  Optional keywords
    were used (created by methods other than init()), but not registered in a
    class-wide tuple, conventionally named 'optional_keywords'.  copy() operated
    only on the tuple of 'required_keywords', thereby missing the additional
    fields.
    Defined class-wide tuple, and adjusted copy() to operate on these, too.
    Fixed.
  - bugfix in OneState(): Incomplete comparison of __eq__() method for the same
    reasons as copy().  Adjusted method to operate on 'optional_keywords' fields
    as well.  Fixed.

13872 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 15:40:31 2020 UTC
marios
Log:
adm/util/idata/state.py
  - Defined methods copy() and __eq__() in both OneState() and MixedState()
    classes.
  - Removed unnecessary imports.

adm/test/idata/test_state.py
  - Exercised new methods in unit tests.

13871 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 02:31:46 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In class ConfTerm():
    - Defined equality operator (method __eq__()) to directly compare two
      objects of the class.
  - In class ConfTerms():
    - Defined copy() method, which performs a deep-copy of the data of a given
      object into the current one.
    - Defined equality operator (method __eq__()) to directly compare two
      objects of the class.
  - In class Groups():
    - Same as in ConfTerms(): Defined methods copy() and __eq__().

adm/test/idata/test_nrg.py
  - Added unit tests to exercise new ConfTerm(), ConfTerms(), and Groups()
    methods.

13870 Directory Listing
Modified 2 years, 9 months ago
Fri Apr 10 01:14:51 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In class ConfTerm():
    - Defined method copy(), which performs a deep-copy of the data of a given
      object into the current one.
    - bugfix in partition(): The original _dEnergy data were not removed before
      adding an energy shift for each new term (list of indices).  The list of
      shifts ended up having N+1 entries, where N is the number of list of level
      indices associated with that combination of configuration and term.  Now
      the list of shifts is reset to an empty list before a shift per term is
      added.  Fixed.

adm/test/idata/test_nrg.py
  - Exercised new method, ConfTerm.copy(), in unit tests.

13869 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 22:41:50 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - Modified Transitions() method name copy() to copy_tran().

adm/adm-ingest-data.py
adm/adm-merge-tp.py
adm/test/idata/test_tp.py
  - Updated calls to new method name. 

13868 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 22:31:17 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Modified method names:
    - Energies.copy() -> Energies.copy_level()
    - JoinedEnergies.copy() -> JoinedEnergies.copy_level()

adm/adm-fine-tune.py
adm/adm-ingest-data.py
adm/adm-sort-nrg.py
adm/util/register/levels.py
  - Updated to new method names, copy_level().

13867 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 22:04:21 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Modified function reset_level() to reset a level to its untuned values
    for the theoretical and experimental datasets, in addition to the hybrid.
  - Now reading theoretical and experimental datasets into Energies() and
    Transitions() objects, not their Joined*() counterparts.
  - Variable name changes: "_original" suffix changed to "_untuned".
    E.g., trans_original -> trans_untuned.
    This aims to avoid confusing these datasets with the 'original' JSON data,
    e.g., 'energies_original.json', which record the state of the data
    immediately after reading them in from Stout files.
  - In convert_hybrid_index_to_theory(), report conversion to hybrid only if
    successful.

13866 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 20:30:34 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In do_tune():
    - Partitioned the menu in inner function show_menu() into commands
      relevant to Levels, Transitions, and Execution Flow for more clarity.
    - Added option 'h', as an alternative to 'm' for showing the menu.
  - In show_levels(), removed commented-out implementation of output.

13865 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 20:11:25 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Absorbed option 'ln' into 'ld'.
    - Extended user interface in show_level_details() so that, in addition to
      accepting a level index and 'q', a level (e.g., '1s.2s 1S<0>') is also
      accepted.  The conversion to an index in the latter case, is done with
      code that used to be part of show_level_details_by_name().
    - Removed function show_level_details_by_name().
    - Removed menu option 'ln', which used to call show_level_details_by_name().

13864 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 19:41:35 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In update_term(), allowed for term selection by configuration and term.
    - Refactored code for selecting level indices into inner function,
      select_by_indices().
    - Defined inner function select_by_term() which asks for a configuration
      and term pair, and figures out the level indices from that information.
      If multiple terms exist for that Conf/Term, the user is asked to pick a
      term by its levels.
    - The user is prompted to decide how to define the term: by giving a list
      of level indices, or by providing a configuration and term.

13863 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 17:55:54 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix in convert_hybrid_range_to_theory(): Theoretical level indices of
    None were allowed, which caused the first instruction to use them to crash.
    Now, before appending a theory index to the list of indices, its value is
    checked against None.  Fixed.
  - Fleshed out stub function update_level().
    - The energy of the hybrid level is now set, as before, to the arbitrary
      energy value provided by the user, but its 'matched' and 'shifted'
      properties are removed first.  (The 'shifted' property is reset with the
      energy update.)
    - The theoretical energy is also updated, in the exact same way.
    - The experimental energy has its 'matched' and 'shifted' properties
      removed, and no energy update is performed.
  - Defined option 'ur', which calls the new function update_term(), to reset
    the chosen term to its pre-matching state.  The term is identified by its
    constituent levels.  For each dataset, the term is set as unshifted in
    ConfTerms() dataset, while its levels are each unmatched and unshifted.

adm/util/idata/nrg.py
  - In ConfTerms():
    - In method energies(), check that the energies are set before checking its
      number of levels.
    - Defined method cterm_by_indices() to pick out a term identified by a list
      of indices.

adm/test/idata/test_nrg.py
  - Exercised new ConfTerms.cterm_by_indices() method in unit tests.

13862 Directory Listing
Modified 2 years, 9 months ago
Thu Apr 9 01:07:02 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - The save option ('sv') now also saves the theory and experimental energy
    data.

13861 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 8 21:06:20 2020 UTC
marios
Log:
adm/util/prun.py
  - bugfix: Do not use subprocess.check_output only for versions older than 3.5.
    The function has been replaced with run() as of v3.5, but is still available
    on the API.  The check for older versions has been removed.  Fixed.

13860 Directory Listing
Modified 2 years, 9 months ago
Wed Apr 8 18:59:16 2020 UTC
marios
Log:
adm/util/fs.py
  - Updated class JSON() to not overwrite existing files.
    - Refactored code that produces the full path to a JSON file into method
      get_file_path().
    - Defined method unique_nickname() to generate a unique nickname.  If the
      given nickname corresponds to a file that exists, it is appended with
      "_<num>", where the number is incremented until it a non-existing filename
      can be produced.
    - Refactored method pathname() to use these new methods.  It also admits a
      new keyword argument, unique, which controls whether a unique file will
      be produced.
    - Updated method save() to always write to a unique file name (a new file).
      Method read() on the other hand, always reads from the file name and nick
      name with which it is called -- it makes no sense to read from a new file!
adm/test/test_fs.py
  - Exercised new methods in unit tests.
  - Added unit tests to exercise methods JSON.save() and .read().
  - Refactored call to os.remove() as an inner function, __rm_file().

13859 Directory Listing
Modified 2 years, 9 months ago
Tue Apr 7 14:00:45 2020 UTC
fguzman
Log:
corrected energy term in PS20 equations
13858 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 6 21:58:27 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Defined function save(). It currently saves the (possibly modified) hybrid
    energy dataset, bearing the nickname 'tuned'.
    - This used to be done by default at the end of all processing.
      Now it can only be done with the newly-added menu option: 'sv'.

13857 Directory Listing
Modified 2 years, 9 months ago
Mon Apr 6 21:40:31 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Changes in the format of option 'ld', show_level_details().

13856 Directory Listing
Modified 2 years, 10 months ago
Sat Apr 4 16:44:41 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - For the output of option 'll', function show_levels(), use function
    show_level_registration() of util.register.report, instead of showing the
    Stout-format records for each of the hybrid, theory, and experiment
    datasets.

adm/util/register/report.py
  - Change column headers of both show_level_registration() and
    show_term_registration() to clarify that the energy reported is the original
    theoretical energy of the level.
  - In show_level_registration(), omit '.0' from reported J values.

adm/docs/manual/examples.tex
  - Update to new output of option 'll'.

13855 Directory Listing
Modified 2 years, 10 months ago
Sat Apr 4 04:44:01 2020 UTC
marios
Log:
adm/docs/manual/man.tex
  - Fix typo in epigraph.

13854 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 21:27:26 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In the output of option 'ld', function show_level_details(), report the
    experimental level with which a theoretical level has been matched.
  - In show_branching_ratios():
    - Bugfix: Theoretical level indices deduced from hybrid ones were allowed
      to be flipped, i.e., the lower to exceed the upper index.  Fixed.
    - Reworked the format of the output table.  Changed column headings, and
      width of printed fields.

adm/docs/manual/examples.tex
  - Expand discussion on the singlet levels 30 and 31 by including the changes
    to their branching ratios due to registration.

13853 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 19:11:33 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Updated description of command adm-register-terms.
  - Created new section for command adm-shift-unreg-terms.
  - Moved section on term-by-term-only registration in between the two above.
  - Corrected output of adm-registration-summary.  The previous one was showing
    output of a dataset that was processed beyond what was reported in the
    manual.
  - Added Section on "Collision Data Synthesis" before the visualization step,
    reflecting the work flow change in r13843.
  - In Section 'Visualization':
    - Updated the output of adm-visualize.py.  Now showing that only scatter
      plots need be produced at first.
    - Fell back to old plots, so that the manual can tell the story of why and
      how we make our registration decisions.
  - Added Section 'Fine Tuning'.  It goes over the processing of the hybrid
    dataset, and discusses our logic for what to do next.  Currently incomplete.
  - Added Section 'Final Visualization', as a temporary placeholder for the
    detailed Veusz plots.  Will likely change.

adm/docs/manual/images/TP-updates-adas-error.pdf
  - Fall back to old plot, to tell the story of why we need to fine tune the
    energies.

adm/adm-registration-summary.py
  - bugfix: Matched theory energy dataset was read, not the one intended by
    the user.  Fixed.

adm/util/register/terms.py
  - In shift_unregistered_terms(), capitalized title.

13852 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 17:07:40 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Updated Section on 'Level Registration' to include a discussion on the need
    to shift unregistered theoretical terms.

adm/docs/manual/adm-macros.tex
  - Added macro definition for the adm-shift-unreg-terms.py script.

adm/docs/manual/images/adm-flowchart-registration-shift-with-summary.pdf
  - Added flowchart of the level registration process that includes all the
    possible steps.

13851 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 16:04:26 2020 UTC
marios
Log:
adm/adm-shift-unreg-terms.py
  - Added script to carry out the shifting of unregistered terms separately.

adm/adm-register-terms.py
  - Refactored the shifting of unregistered terms into script above.
    The present script only handles the registration of homologous terms.

adm/util/io/nicks.py
  - Added nickname for output of new script, indicating that it involves
    shifted terms.

13850 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 15:51:29 2020 UTC
marios
Log:
adm/adm-fine-tune.py
adm/util/nist/tp.py
adm/util/register/terms.py
  - Stop preventing a newline from being printed in calls to log.warn().

13849 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 15:08:56 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Renamed method Energy.reset_matched() to .unset_matched() to be in line
    with other unset methods.

adm/util/register/levels.py
adm/util/register/terms.py
adm/test/idata/test_nrg.py
  - Updated calls to new method name.

13848 Directory Listing
Modified 2 years, 10 months ago
Fri Apr 3 03:46:54 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Function show_terms() no longer prints the title of function
    show_term_registration().
  - Modified show_transition_details() to produce a table in the style of that
    produced by show_level_details().
  - Modified show_transitions() to report the energy ratio involved in the
    calculation of the correction factor.  This column can be manipulated like
    the other columnds (e.g, can be sorted, can have limits applied to it, etc).

adm/util/idata/tp.py
  - In Transition():
    - set_TP_correction() now stores the energy ratio given to the method.
    - Defined method dEnergy_ratio() to access saved value.
    - Added attribute '_dEnergy_ratio' to the list of optional keywords.

adm/util/register/report.py
  - In show_level_registration(): Added keyword arguments to enable reporting
    a level's connectedness, and to disable the display of the title of the
    function.
  - In show_term_registration(): Added keyword argument to disable the display
    of the title of the function. 

13847 Directory Listing
Modified 2 years, 10 months ago
Thu Apr 2 16:06:58 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Upon startup, the hybrid dataset is processed to set the connected of each
    level.  This uses both the radiative and collisional transition datasets.
    Defined function set_hybrid_connectedness() for that purpose.
    This need to set the hybrid levels' connectedness is what prompted the work
    flow change in r13843.
  - Updated show_terms() to use function show_term_registration() of
    util.register.report.
  - Defined helper functions convert_hybrid_index_to_theory() and
    convert_hybrid_range_to_theory().
  - Modified show_level_details() to present details of a level in all datasets
    (i.e., hybrid, theory, experiment).

13846 Directory Listing
Modified 2 years, 10 months ago
Thu Apr 2 15:08:41 2020 UTC
marios
Log:
adm/adm-registration-summary.py
  - Refactored functions show_level_registration() and show_term_registration()
    into module register.report.

adm/util/register/report.py
  - Functions refactored from adm/adm-registration-summary.py.
    - They have been given keyword arguments to set the range of level indices
      (inclusive) that will be reported.  Terms containing any levels within
      that range are reported.

13845 Directory Listing
Modified 2 years, 10 months ago
Thu Apr 2 01:56:33 2020 UTC
marios
Log:
adm/adm-merge-coll.py
  - Refactored copy_dataset() to use the theory_index_to_merged_index() function
    of util.register.convert instead of local equivalent get_joined_level().
    The latter has been removed.

adm/docs/manual/algorithm.tex
  - Clarified discussion on need to include resonances for accurate updates to
    collision strenghts in Section on 'Collision Data Synthesis'.

13844 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 21:20:16 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In show_levels(), the levels of an experimental term by which a theoretical
    term has been shifted are now also printed.  (Blank lines were printed
    previously.)
  - In show_level_details(), output format changes to ease reading of a level's
    details.
    - Some experimental level details are shown for a level that has been
      registered, including any known notes (e.g., from NIST).  This requires
      fetching the table of notes from NIST when setting up the program.

adm/util/idata/nrg.py
  - Refactored code in Energies.register_level_print() to print notes
    (from NIST, at this point) on the energy level as method Energy.prt_notes().
    The length of each note (in characters), and of the indentation (if more
    than one line is printed) are now set as keyword arguments with default
    values those they had in Energies.register_level_print().

13843 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 21:02:49 2020 UTC
marios
Log:
adm/adm-merge-coll.py
  - Bugfix in copy_dataset(): Transition indices were not checked to be in
    ascending order (lower level index before upper level index).  This led
    to crashes when theoretical levels had flipped in the hybrid dataset.
    The code now reorders flipped indices.  Fixed.
  - Now saving the updated collisions file with the same nickname as in the
    input energy file.

adm/docs/manual/algorithm.tex
  - Updated Chapter 2, 'Algorithm'.
    - Updated flowchart to show that the collisions are now treated before the
      inspection is carried out.
    - Updated Section on NIST data to discuss how we now set the connectedness
      of each level based on its radiative and collisional transitions.
    - Updated Section on Level Registration to include its Figure along with
      the text (it was shown a few pages later after the changes above).
    - Now Section on 'Collision Data Synthesis' appears before Section on
      'Data Inspection / Correction'.
      - Minor updates to the text of both of these sections.

adm/docs/manual/images/adm-flowchart-vertical-sections-setup-collision.pdf
  - Added new flowchart for the logical flow of the package.

13842 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 20:15:54 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Refactored code that sets the connectedness of each level in an energy
    dataset as function set_connectedness() in the new unified.py module below.
  - Updated script changelog (including changes from r13828). 

adm/util/idata/unified.py
  - Added script, containing only one function, set_connectedness(), refactored
    from adm-ingest-data.py.

adm/util/idata/__init__.py
  - Listed new module for 'import *'.

13841 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 18:55:24 2020 UTC
fguzman
Log:
calculate effective recombination probabilities and critical densities in iso_solve.cpp
13840 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 18:36:38 2020 UTC
fguzman
Log:
This branch is created to implement a functionality that writes caseB SH95 files
13839 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 14:10:35 2020 UTC
marios
Log:
adm/adm-registration-summary.py
  - Small changes on the output of the term registration table:
    - Changed last column to 'Matched/Shifted' from 'Matched'.  Matched terms
      are now designated with 'm:', while shifted term with 's:'.
    - Dropped the '.0' from the reported Jtot values.

adm/docs/manual/adm-macros.tex
  - Added macro for adm-registration-summary.py.

adm/docs/manual/images/adm-flowchart-registration-with-summary.pdf
  - Added figure for the logical sequence of level and term registration that
    includes the possible use of the new command, adm-registration-summary.py.

adm/docs/manual/algorithm.tex
  - In Chapter 'Algorithm', Section 'Level Registration':
    - Now using updated figure for the registration, that includes the summary
      review.
    - Brief discussion of the new utility.

adm/docs/manual/commands.tex
  - Added Section for the new command, adm-registration-summary.py.

adm/docs/manual/examples.tex
  - Added example use of new command in the context of the registration of the
    Ne+8 model.

13838 Directory Listing
Modified 2 years, 10 months ago
Wed Apr 1 00:00:51 2020 UTC
marios
Log:
adm/adm-registration-summary.py
  - Added utility to show a summary of the registration, both for levels and
    terms.

adm/util/io/log.py
  - Defined _nchars_underline() to calculate the correct number of characters
    to use when underlining a string, taking into account tabs.
    - Used in title() and subtitle().

13837 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 31 21:37:56 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - In update_theory_tran(): Expanded debugging information.

13836 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 31 21:21:49 2020 UTC
fguzman
Log:
added branch in CS_l_mixing_PS64_expI() for PSM20. Still need testing
13834 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 31 17:44:23 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - In finalize_ingest_nrg(): Issue warning without suppressing a new line
    character.

adm/util/idata/nrg.py
  - In Energies(): Copy level using the native Energy.copy() method, instead
    of copy.deepcopy().

13833 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 30 23:37:30 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Bugfix: In prepare_TP_scatter_data(), joined indices were reversed when out
    of order, overwriting the correspondence between the theoretical and merged
    upper level indiced.  Now joined indices are stored in temporary variables,
    which are used for preparing the data (including reordering).  Fixed.
  - bugfix: In create_TP_updates_datafile(), an empty line was written between
    successive records; a remnant from when the output file was written with a
    call to open(), instead of with fs.write_file().  Removed extra '\n'.
    Fixed.

13832 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 30 17:22:25 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - In show_transitions(), option 'lt': Added option to order transitions in
    ascending order for any of the columns that can be sorted.  Only descending
    (largest-to-smallest) sorting was possible previously.

13831 Directory Listing
Modified 2 years, 10 months ago
Sun Mar 29 19:38:34 2020 UTC
marios
Log:
adm/util/io/log.py
  - In __proc_cline_args(): Remove the path of the program, if it appears at the
    beginning of the command line.  This is needed because most of the command
    line is replaced with blanks, if the command, say, sends its output to
    /dev/null.
  - In warn(): Remove the blank line before the warning is issued.

13830 Directory Listing
Modified 2 years, 10 months ago
Sun Mar 29 19:04:24 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - ConfTerms.prt_levels() now uses the same interface as with the
    level-matching interface: Energies.register_level_print().
  - Energies.register_level_print() now issues a warning when the level is not
    connected to other levels through radiative and/or collisional transitions.

13829 Directory Listing
Modified 2 years, 10 months ago
Sun Mar 29 18:57:21 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Ask for user input before generating any plots.

13828 Directory Listing
Modified 2 years, 10 months ago
Fri Mar 27 23:11:15 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Modified ingest_tp() and ingest_coll() to return the datasets just ingested.
  - Now creating the 'initial' energies JSON file after the .tp and .coll data
    are processed.
    - Defined function finalize_ingest_nrg() that operates on all datasets,
      counts the number of radiative and collisional transitions to and fro a
      level, and sets the level 'connectedness' accordingly.
      At the end of the process it produces the 'initial' energies file.

adm/docs/manual/examples.tex
  - Updated the output of adm-ingest-data.py, and discussed the new logic.

13827 Directory Listing
Modified 2 years, 10 months ago
Fri Mar 27 23:00:20 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energy():
    - Defined methods set_connected(), unset_connected(), and connected() to
      create, delete, and access a new '_connected' attribute, which holds a
      boolean value indicating whether the level has any radiative and / or
      collisional transitions to other levels.
  - In JoinedEnergies():
    - Overloaded method copy().  It uses the parent (Energies) copy method,
      but then also calls the unset_connected() method on the Energy() object
      just created.

adm/util/idata/tp.py
  - Modified Transitions.ntrans_level() to return two integers, not explicitly
    a tuple of these same variables.

adm/util/idata/coll.py
  - In CollisionBlock():
    - Added method ncolls_level() to count the number of collisions to and fro
      the given level.
  - In Collisions():
    - Added method ncolls_level() to count the number of collisions to and fro
      the given level.  It reports the cumulative transitions over all its
      blocks.  Similar in spirit to Transitions.ntrans_level().

adm/test/idata/test_nrg.py
adm/test/idata/test_coll.py
  - Exercised new methods in unit tests.

13826 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 26 18:02:56 2020 UTC
marios
Log:
adm/util/register/levels.py
  - Variable name changes: *level -> *index.

13825 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 26 10:04:23 2020 UTC
marios
Log:
adm/util/types.py
  - Defined function is_int_notneg() to test if an int is >= 0.

adm/util/chtypes.py
  - Defined function validate_int_notneg() to make sure that an int >= 0, or
    exit to the system.

adm/test/test_types.py
adm/test/test_chtypes.py
  - Exercised new functions in unit tests.

13824 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 26 09:27:01 2020 UTC
marios
Log:
adm/util/idata/tp.py
  - Defined Transitions.ntrans_level() to count the number of transitions from
    and into the given level.

adm/test/idata/test_tp.py
  - Exercised new method in unit tests.
  - bugfix: Test for method hi_levels() was written but not exercised.  Fixed.

13823 Directory Listing
Modified 2 years, 10 months ago
Wed Mar 25 20:13:09 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Modified the output of option 'ld' to show only important information, not
    just print the internal data of the level in the hybrid and input datasets.
    Changes in show_level_details():
      - Now it presents only the level name and energy, along with the energy
        change for matched levels, and the energy shift for levels that have
        been modified with their term as a whole.
      - The function has been changed so that it is possible to view more levels
        without falling back to the main menu and reissuing the command.

adm/util/idata/tp.py
  - bugfix: In Transitions.pprt(), index validation was using the upper level
    index twice.  Now using both the lower and the upper index.  Fixed.

13822 Directory Listing
Modified 2 years, 10 months ago
Wed Mar 25 16:40:03 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Implemented option to select a level by its name, i.e., its electronic
    configuration and spectroscopic level.
    The option is 'ln', which calls show_level_details_by_name().
  - bugfix: show_levels() reported the original level index for the hybrid
    dataset, instead of the current index therein.  Fixed.

13821 Directory Listing
Modified 2 years, 10 months ago
Wed Mar 25 15:18:38 2020 UTC
marios
Log:
adm/util/io/ui.py
  - Added function readline() to return user input as a string.
    The function is a wrapper around the module-private __get_user_input()
    function.

adm/test/io/test_ui.py
  - Exercised new function in unit tests.

13820 Directory Listing
Modified 2 years, 10 months ago
Wed Mar 25 14:40:38 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - Improved interface to the 'lt' (list transitions) option:
    - Transitions that have been replaced with experimental data are no longer
      listed with a correction factor.  Instead, that column is left blank, the
      '=' is replaced with '->', and the database name appears within '[]' in
      the last column.
      If the transition occurs only in the experimental dataset, the theoretical
      TP, correction, and '=/->' columns are left blank, and the hyrbid TP is
      printed followed by the database name and the keyword 'only' in '[]'.
    - Now the user has the option to see the transitions that come from a level,
      and into a level separately, as well as both subsets.
    - Added title to the table of output results.

13819 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 23:14:59 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Now generating separate plots of the TP updates for hybrid transitions
    taken from NIST, and adjusted from ADAS.
    Subset datasets now produced by:
    - prepare_TP_scatter_data()
    - get_TP_updates_filenames()
  - Now using fs.write_file() instead of writing files with open in:
    - create_energy_updates_datafile()
    - create_energy_scatter_gnufile()
    - create_TP_updates_datafile()
    - create_TP_scatter_gnufile()

adm/docs/manual/examples.tex
  - Added new plots of TP updates separated in transitions coming from ADAS
    and NIST.  Expanded discussion.
  - Updated output of adm-visualize.py.

adm/docs/manual/images/TP-updates-error.pdf
adm/docs/manual/images/TP-updates.pdf
  - Removed old TP scatter plots.

adm/docs/manual/images/TP-updates-adas-error.pdf
adm/docs/manual/images/TP-updates-adas.pdf
adm/docs/manual/images/TP-updates-nist-error.pdf
adm/docs/manual/images/TP-updates-nist.pdf
  - Added TP scatter plots separated in NIST and ADAS transitions.

13818 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 21:07:51 2020 UTC
marios
Log:
adm/adm-fine-tune.py
  - bugfix: Call of Energy.new_dataline() did not specify a level.
    Now using None.  Fixed.
  - show_level_inverse_lifetimes() has been augmented to permit sorting by any
    of the columns shown on output: level index, merged TP, theory TP, and their
    ratio.
  - Call to fs.set_execpath() added before call to main() to sanitize paths on
    output.

13817 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 17:33:03 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Added macro for the adm-visualize command.
  - Updated macros \specTermOdd and \specLevelOdd.

adm/docs/manual/algorithm.tex
  - Added discussion of adm-visualize role.

adm/docs/manual/commands.tex
  - Added description of adm-visualize command.

adm/docs/manual/examples.tex
  - Added example of use of adm-visualize.

adm/docs/manual/images/adm-flowchart-inspection.pdf
  - Updated plot to include adm-visualize as a script to run.

adm/docs/manual/images/energy-updates.pdf
adm/docs/manual/images/term_1s_2p_3Po.pdf
adm/docs/manual/images/term_1s_5g_3G.pdf
adm/docs/manual/images/TP-updates-error.pdf
adm/docs/manual/images/TP-updates.pdf
adm/docs/manual/images/tran_FS_1s_2p_3Po.pdf
adm/docs/manual/images/tran_FS_1s_5g_3G.pdf
adm/docs/manual/images/tran_mult_1s_3d_1D__to__1s_3d_3D.pdf
adm/docs/manual/images/tran_mult_1s_3d_3D__to__1s_2p_3Po.pdf
  - Added plots

13816 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 16:39:52 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Bugfix: In set_tran_labels_TP(), the theoretical transition was printed
    instead of the hybrid for transitions that involve no TP correction.  Fixed.

13815 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 16:21:49 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Bugfix: In the transition updates file, the hybrid TP was printed without
    application of the relevant correction.  For transitions that were not
    replaced with NIST data, this resulted in scatter plots of the theory vs.
    hybrid TP looking nearly diagonal.  The correction is now applied, leading
    to more realistic plots.  Fixed.
  - Changed the output of TP error plots to show all data, not just those with
    theoretical TP >= 1.  Also changed the legends to use 'TP' (as in the axis)
    as opposed 'A' -- this was deemed confusing.

13814 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 14:51:52 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Defined _validate_angle() to accept both float and int for the angle of a
    label.
  - Renamed: create_term_plots() -> create_term_FS_plots().
  - bugfix: In set_tran_labels_TP(), the label for the hybrid TP was being
    appended before it was created.
  - Added keyword 'is_broken' to prepare_tran_labels() to help distinguish
    between plots that involve a broken axis (multiplets) from those that do
    not (FS transitions).
  - Changed axes labels in scatter plots: new -> hybrid, old -> theory.

adm/adm-visualize.py
  - Updated call to viz.create_term_FS_plots().

13813 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 03:35:31 2020 UTC
marios
Log:
adm/util/register/viz.py
  - bugfix: In set_tran_arrows_labels(), the theoretical TP was used instead of
    the hybrid value.  Fixed.

13812 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 24 01:37:42 2020 UTC
marios
Log:
adm/util/io/pfile.py
  - In ParFile.parse():
    - Bugfix: In error message for unrecognized sections, the known sections
      were being accessed as module parameters, as opposed to as class
      parameters.  Fixed.
    - Minor improvements to the error message for unrecognized sections.

13811 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 23:03:44 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - Updated log output to report the correction factor and the multipole order
    of transitions with updated energy splittings.  The order is presented with
    a label telling if it is custom, or the default (E1, see below).

adm/util/idata/tp.py
  - Defined module parameters for the default order (E1).
  - In Transition():
    - Defined method is_order_custom() to tell if the order is custom, or if it
      was read in with the data.
    - If the order is not set (that is, there is not even a custom order),
      order_index() returns the type of the default transition.  Previously, an
      undocumented '1' was returned.

adm/test/idata/test_tp.py
  - Exercised new method in unit tests.

adm/docs/manual/algorithm.tex
  - Clarified text to TP updates to say that the transitions that have not had
    their energy splitting changed require no updates.

adm/docs/manual/examples.tex
  - Updated log file extract of adm-merge-tp.py to discuss the new output format.

13810 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 20:56:24 2020 UTC
marios
Log:
Implemented Fran's suggestion to report energy differences to aid the user with
level registration.

adm/util/register/levels.py
  - Defined print_dEnergy() to report the energy difference as an absolute value
    and relative to the theoretical value.
    - Used in all registration stages: pre-matching, matching, and confirmation.
    - Also used during the synthesis of the hybrid dataset.

adm/util/register/terms.py
  - Now using util.register.levels.print_dEnergy() with term registration.
  - Also used during the synthesis of the hybrid dataset (when inserting missing
    terms).
  - bugfix: In insert_missing_terms(), the iterant ConfTermSort() was still
    being accessed as a dict.  Now using the appropriate class methods.  Fixed.

adm/docs/manual/examples.tex
  - Updated Chapter Examples to show the current output of the scripts.

13809 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 16:31:25 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Renamed:
    - get_registered_indices -> get_registered_level_indices
    - register_energies -> register_level_energies
  - Moved relative_energy() to the 'COMMON UTILITIES' section of the module.

13808 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 06:28:46 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Added label in term registration plots showing the change in the term
    average energy, and enclosed it in a box.
    - Defined two regions in the bottom left and top right corner where the
      label is to be printed.  These are pairs of (x,y) coordinates, defined
      as module parameters.
    - Added keyword argument to LabelInfo.set_properties() for border width.
      add_veusz_label() uses that attribute to define a border around the label.
    - Defined set_dE_label() to produce the label to be printed, as well as its
      position (and horizontal alignment).
  - bugfix: Now printing the labels of the theory and hybrid datasets exactly
    below the stack of level lines (as x-axis labels).

13807 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 06:12:36 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Modified add_veusz_label() to accept a LabelInfo() object as an argument,
    instead of a list of parameters, such as text size, alignment, etc.
    Updated calls to function.

13806 Directory Listing
Modified 2 years, 10 months ago
Mon Mar 23 04:02:38 2020 UTC
marios
Log:
adm/util/register/viz.py
  - In transition plots, shifted the first transition arrow by 0.10 (in relative
    units) to the left.
  - In multiplet plots, the term label of the lower term is now printed below
    the lowest level.
    - The spacing between the label and the level has increased from 2 to 3
      times the default offset (_plot_label_yoffset) for both the upper and the
      lower terms.

13805 Directory Listing
Modified 2 years, 10 months ago
Sat Mar 21 00:24:42 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Modified appearance of transition plots:
    - Shifted x-axis position of term and level labels, almost flush against the
      y-axis.
    - Shifted center of level marker (horizontal lines in plots) to the left
      by 0.04 (in relative units).
    - Extended level markers by ~10% (from 180pt to 200pt).  Now using the same
      configuration for both FS and multiplet plots.
    - Reduced the offset of labels from arrow lines by 0.01 (in relative units).
      Offset applied only to the theoretical labels now.
    - Now using only one label for degenerate levels, which lists all J values.
      - Defined function remove_degenerate_label_positions() to remove labels
        and positions from the lists to be printed.
  - Refactored code.
    - In both LabelInfo() and LevelLabelsInfo():
      - Removed the align_horz keyword from the constructor.
      - Defined method set_properties() to set the properties of a label:
        horizontal alignment, text size, angle, and color.
        This allows operating on the object, instead of passing around the
        properties as function arguments.
      - Defined method prt() to print the contents of an object.
    - Defined method validate_labels_positions() to make sure there are as many
      positions to plot, as there are labels.
    - Defined function sanitize_term_filename() to prepare a string from a given
      term, suitable to use in file names.  This is now used with all file names:
      for terms, FS and multiplet transitions.
    - Removed keyword align_horz from set_term_labels().  This can now be done
      by calling the set_properties() method of the LevelLabelsInfo object
      returned.
    - In term registration plots: Defined X-axis labels for datasets as
      LabelInfo() objects.  Adjusted calls to prepare_veusz_term() and
      create_veusz_file_term().
    - In TranLevelLabels():
      - Added x-axis position of the term and level labels to the constructor.
      - Replaced internal representation with a LabelInfo() object for the term,
        and a LevelLabelsInfo() for the levels.  Their properties can be set by
        calling their set_properties() methods.
    - Defined function set_tran_labels_TP() to set the labels printed on either
      side of a transition arrow.  Used with all transition plots (functions
      set_tran_arrows_labels() and set_tran_mult_arrows_labels()).
    - Refactored body of code of get_tran_labels_FS() as prepare_tran_labels(),
      which prepares the lists of labels and their positions, checks that they
      are of equal length, and removes degenerate level labels.
      - Used with get_tran_labels_FS(), as well as get_tran_mult_labels().
    - get_tran_labels_FS() now also requires the x-axis position of the labels
      to feed to the constructor of the TranLevelLabels() object.
  - Bugfix in register_multiplet_transitions(): Loop variable overwritten when
    swapping the transition level indices.  Now using temporary variables.
    Fixed.
  - bugfix in create_tran_multiplet_plots(): Only singlet-to-singlet plots were
    produced.  For now, all multiplets are treated.  Fixed.
  - bugfix in create_tran_multiplet_plots(): Test of terms_overlap() was not
    called with temporary cterms.  Fixed.

13804 Directory Listing
Modified 2 years, 10 months ago
Fri Mar 20 00:54:14 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Refactored labels code.
    - Defined class LabelInfo() to hold the details a label.
    - Redefined class LevelLabelsInfo() to hold a list of LabelInfo() objects.
      Also defined iterator methods (__iter__ and __next__) to loop over list
      without recourse to the size of the array held.
      - Simplified loop in set_term_level_labels().
  - bugfix: Commit r13803 used a different name for renamed function
    create_plot() that contradicted the commit message.  That name, run_veusz,
    is replaced with the intended create_veusz_plots in this commit.  Fixed.

13803 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 19 23:24:51 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Function name changes to clarify scope:
    - create_plot -> create_veusz_plots
    - set_plot_xrange -> set_veusz_plot_xrange
    - set_plot_yrange -> set_veusz_plot_yrange
    - add_label -> add_veusz_label
    - set_plot_ybroken -> set_veusz_plot_ybroken

13802 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 19 23:10:34 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Refactored code for creating level labels for term plots.
    - Defined class LevelLabelsInfo() to pack all information needed for
      printing the level labels in term plots.
    - Refactored code that produces the labels and their positions into function
      set_term_labels(), which returns an object of the LevelLabelsInfo class.
      This is now used in create_term_plot().
    - Using objects of new class, simplified interface of functions:
      - set_term_level_labels()
      - prepare_veusz_term()
      - create_veusz_file_term()

13801 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 19 01:24:14 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Further improvements in term registration plots: Print only one label for
    degenerate levels.  The label lists all the degenerate Js.
    - Modified get_term_level_labels() to also admit the level energies as a
      parameter.  Updated all calls to it.
    - Updated set_term_labels_ypos() to deal with degenerate levels when adding
      offsets to overlapping labels.
  - Used the new check.validate_energies() function instead of validating lists
    of floats.

adm/util/stout/check.py
  - Defined function validate_energies() to validate that each item in a list is
    a valid energy.

13800 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 19 00:09:54 2020 UTC
marios
Log:
adm/util/register/viz.py
  - Improved outlook of term registration plots.
    - Widened page to 20cm from the default of 15cm.
    - Now printing level labels next to levels: theoretical on the left of the
      level lines, hybrid on the right.
      - Added horizontal alignment keyword argument to set_term_level_labels(). 
      - Defined function _validate_veusz_alignHorz(), refactored from
        all_label().
    - Added vertical space between overlapping level labels.
      - Defined function are_levels_clustered() to tell if labels overlap.
    - Added space between term symbol and odd parity exponent.
  - In file names, replaced dots in configuration with underscores, so that
    plots can be used directly with LaTeX without need for renaming them.

13799 Directory Listing
Modified 2 years, 10 months ago
Wed Mar 18 15:49:54 2020 UTC
marios
Log:
adm/adm-visualize.py
  - Added script to generate plots of energy and TP updates.

adm/util/register/viz.py
  - Added module that does all the work needed for the plot generation.

adm/util/idata/nrg.py
  - Defined ConfTermSort.prt() method for printing the object contents.

adm/util/register/convert.py
  - Defined theory_index_to_merged_index() to access the level index in the
    hybrid dataset of a theoretical level.
  - Defined experm_index_to_merged_index() to access the level index in the
    hybrid dataset of an experimental level.
  - Simplified merged_index_to_theory_index() to not check if a merged level
    that has been matched comes from the theoretical database -- that can never
    happen: If a theoretical level is matched, it is also replaced in the hybrid
    dataset.

adm/util/register/__init__.py
  - Updated list of modules for 'import *' of subpackage.

13798 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 17 15:05:55 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - ConfTerms.sort() by default now sorts by original energies.

adm/util/register/terms.py
  - Updated calls to the sort method.

13797 Directory Listing
Modified 2 years, 10 months ago
Tue Mar 17 13:23:13 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - Bugfix: Transitions whose levels flipped after registration were being
    ignored.  If the theoretical levels are out of order, they are now flipped.
    Fixed.

13796 Directory Listing
Modified 2 years, 10 months ago
Thu Mar 12 20:13:04 2020 UTC
fguzman
Log:
new branch for the implementation of PSM20 l-changing formalism
13795 Directory Listing
Modified 2 years, 11 months ago
Thu Mar 5 17:43:31 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined Energies.index_for_level() to get the index of a level specified by
    configuration, spectroscopic term, and J.

adm/test/idata/test_nrg.py
  - Exercised new method in unit tests.

13794 Directory Listing
Modified 2 years, 11 months ago
Thu Mar 5 17:15:42 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energies(), renamed:
    - validate_level() to validate_index().
    - validate_levels() to validate_indices().

adm/util/idata/nrg.py
adm/adm-fine-tune.py
adm/adm-merge-tp.py
adm/util/idata/tp.py
adm/util/register/convert.py
adm/util/register/levels.py
adm/util/register/terms.py
  - Update method calls.

13793 Directory Listing
Modified 2 years, 11 months ago
Wed Mar 4 00:23:54 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined ConfTermSort() to provide an abstraction to the output of the
    ConfTerms.sort() method.
    - The class only has methods to access its private data, and it has a method
      to overload its equals comparison operator.
  - In ConfTerms():
    - Modified sort() to return a list of ConfTermSort() objects, as opposed to
      a list of custom dicts.
    - Bugfix in shifted(): The code had not been updated to use the new method
      indices(), but was using levels(), instead.  Fixed.

adm/test/idata/test_nrg.py
  - Exercised new class ConfTermSort() in unit tests. 

adm/adm-fine-tune.py
adm/util/register/terms.py
  - Updated to new data structure returned by ConfTerms.sort().

adm/util/stout/check.py
  - Bugfix in validate_energy(): Error issued to log was not accompanied by call
    to an abort function of the err.py package.  Fixed.

13792 Directory Listing
Modified 2 years, 11 months ago
Tue Mar 3 16:07:08 2020 UTC
marios
Log:
adm/adm-setup.py
  - Create plots subdirectory along with the rest of the directory tree.

adm/docs/manual/commands.tex
  - Update description of 'adm-setup.py'.

adm/docs/manual/examples.tex
  - Update output of 'adm-setup.py'.

adm/docs/manual/adm-macros.tex
  - Update macros for species to print the element in Roman font.

13791 Directory Listing
Modified 2 years, 11 months ago
Sat Feb 29 00:00:52 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Revert ConfTerm() attribute name from '_indices' to '_levels', because it is
    more clear in the output JSON files.

13790 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 28 23:50:59 2020 UTC
marios
Log:
adm/util/io/dirs.py
  - Added Dirs.species_plots_path() to access the plots directory in a species
    directory.

adm/test/io/test_dirs.py
  - Exercised new method.

13789 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 28 22:15:32 2020 UTC
fguzman
Log:
new approach, now pops are converted into bn's just before inverting the matrix leading to negative populations
13788 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 27 23:23:52 2020 UTC
marios
Log:
adm/util/stout/check.py
  - Renamed:
    - validate_level() -> validate_index()
    - validate_tran_levels() -> validate_tran_indices()
  - Defined validate_indices() to test the validity of a list of level
    indices.

adm/adm-fine-tune.py
adm/adm-merge-coll.py
adm/test/idata/test_nrg.py
adm/test/idata/test_tp.py
adm/util/idata/coll.py
adm/util/idata/nrg.py
adm/util/idata/tp.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Updated calls to use validate_index().

adm/util/idata/coll.py
adm/util/idata/tp.py
adm/util/stout/coll.py
adm/util/stout/tp.py
adm/test/idata/test_coll.py
adm/test/stout/test_tp.py
  - Updated calls to use validate_tran_indices().

adm/util/idata/nrg.py
  - Updated calls to use validate_indices().

13787 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 27 22:41:38 2020 UTC
marios
Log:
adm/util/stout/check.py
  - Renamed validate_levels() to validate_tran_levels().

adm/util/stout/coll.py
adm/test/idata/test_coll.py
  - Updated calls to use validate_tran_levels().

13786 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 27 20:14:06 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Renamed JoinedEnergies.form_multiplets() to .populate_cterms().

adm/adm-fine-tune.py
adm/test/idata/test_nrg.py
  - Updated calls to JoinedEnergies.form_multiplets().

13785 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 27 20:02:06 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Modified ConfTerm() to use the words 'index' when referring just to the 
    index number of an energy level.
    - Method levels() renamed indices().

adm/test/idata/test_nrg.py
  - Updated calls to ConfTerm.levels() with .indices(). 

13784 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 27 19:52:11 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energy():
    - Bugfix: '_state' attribute had not been promoted to the list of required
      keywords, even though an MixedState() object is always created.  Fixed.
    - Bugfix in copy(): Attempt to copy attribute '_config', instead of '_state'.
      Fixed.
    - Bugfix in copy(): Attempt to copy optional keywords if they dodn't exist
      in the object we are copying from.  Fixed.

13783 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 18 18:15:35 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added Section on "Transition Data Synthesis".

adm/docs/manual/algorithm.tex
  - Updated equation for the TP update to use the absolute value of updated
    energy differenece.

13782 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 18 18:11:07 2020 UTC
marios
Log:
adm/adm-merge-tp.py
  - Modified update_theory_tran() to use the merged_index_to_theory_index()
    function of the util.register.convert module, instead of its inner function
    get_theory_index().
    - Argument list now takes the parameter file for the run, instead of the
      theoretical DB name.
    - Removed inner function get_theory_index().
    - Minor variable name changes.
  - In do_join(), minor format changes ('joined' -> 'hybrid') on output.
  - In join_transitions(), now storing the hybrid radiative dataset with the
    same nickname as the joined level dataset used.  This is conducive to the
    compilation of self-consistent datasets.

adm/util/idata/tp.py
  - In photon_energy_update_ratio(), compute the absolute value of the energy
    ratio, in case two levels are flipped.

adm/util/register/convert.py
  - Minor variable name change in merged_index_to_exprem_index().

13781 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 18 16:11:28 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added subsection on "Level Data Synthesis", explaining how to
    "Synthesize Energy Level Data" and how to "Sort Levels by Energy".

adm/docs/manual/commands.tex
  - Minor changes.

13780 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 18 16:05:50 2020 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Bugfix: NIST notes were not fetched.  Fixed.

adm/adm-sort-nrg.py
  - Added end-of-run banner to log file.

adm/util/register/levels.py
adm/util/register/terms.py
  - Minor formatting changes.

13779 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 18 00:00:20 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added subsubsection on "Only term-by-term registration".

adm/util/idata/nrg.py
  - In ConfTerms():
    - Bugfix in unshift(): Energies.validate_levels() was called without using
      the energies() method.  Fixed.
  - In Energies():
    - Added optional keyword showJ, by default True, to register_level_print()
      so as to handle showing the J of a level.  The relevant code has been
      uncommented, and added to an if-statement involving the new showJ keyword.
  - In Groups():
    - In level_print(): Call Energies.register_level_print() with the optional
      keyword showJ=False to prevent printing of J (which does not change within
      a (J,p) group.

13778 Directory Listing
Modified 2 years, 11 months ago
Mon Feb 17 18:18:05 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added subsubsection on "Term-by-term registration" in Chapter 'Examples'.

adm/docs/manual/adm-macros.tex
  - Updated macros \specTermOdd and \specLevelOdd to decrease the space between
    the term symbol and the 'o' superscript.

13777 Directory Listing
Modified 2 years, 11 months ago
Mon Feb 17 18:15:25 2020 UTC
marios
Log:
adm/adm-register-terms.py
  - Bugfix: NIST notes were not being fetched.  Fixed.

adm/util/register/terms.py
  - Changed function and variable names that involved 'multiplet' to use 'term'
    instead.
  - In __get_bracketing_terms_energies():
    - Added checks that the bracketing terms do bracket the term in the original
      dataset.  New terms are obtained if conditions not met.
    - Added warnings about terms in flipped energy order in the final dataset.
      New terms are sought if conditions not met.
  - In register_term_by_term():
    - Bugfix: Missing line continuation '\'.  Fixed.
    - Bugfix: Attempts to access method now moved to the ConfTerms() class.
      Fixed.
 
adm/util/idata/nrg.py
  - In ConfTerms():
    - Bugfix in _fmt_cterm_line(): Attempts to access validate_levels() method
      of the Energies() class, without using the energies() method.  Fixed.
    - Bugfix in prt_levels() and prt_cterm(): Use of _fmt_multiplet_line()
      method; now replaced by _fmt_cterm_line().  Fixed.
    - Bugfix in shifted_with(): Name collision of local variable 'indices' with
      method of same name.  Fixed.
    - Bugfix in sort(): Method relied on energy order of levels, so it did not
      sort the terms.  Now enforcing sorting of terms on output.  Fixed.

13776 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 14 18:19:19 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Added subsubsection on level-by-level registration.  Updated output.

13775 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 14 18:15:14 2020 UTC
marios
Log:
adm/adm-register-levels.py
  - Fetch the table of NIST notes.

adm/util/idata/nrg.py
  - In Groups():
    - Renamed exists() as level_exists().
    - Defined method exists() to test the existence of a (J,p) group.
      Now used in level_exists().
    - Removed optional keyword 'cur_index' from level_next().
    - In level_next_valid() and level_prev_valid():
      - Bugfix: The methods crashed when the given index was None.  Now they
        return None in that case.  Fixed.
      - Bugfix: The methods were trying to access '_data', a remnant from the
        time they were part of the Energies() class.  Replaced with call to the
        energies() method.  Fixed.
  - In Energies.register_level_print(), modified printout.  Jtot has been
    removed, and the statistical weight is now listed first after the database
    name.  This way all values that vary in the group appear at the end of the
    line.

adm/util/register/levels.py
  - Minor changes to the menu presented to the user.
  - Updated method name Groups.exists() to Groups.level_exists().
  - Bugfix: Replaced call to non-existent print_menu_for_config() with
    get_user_option().

13774 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 14 16:37:20 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Bugfix in Energies.register_level_print(): Extra indentation prevented note
    from being displayed.  Fixed.

13773 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 14 16:32:05 2020 UTC
marios
Log:
Enabled printing energy notes for registration purposes.

adm/util/idata/nrg.py
  - Fixed omissions in Energy():
    - Added '_notes' to class's list of optional keywords.
    - Defined method notes() to access list of notes, if available, or return an
      empty list if not present.
    - Bugfix: copy() method did not perform a deep-copy of the list of notes.
      Fixed.
  - Fixed omission in Energies():
    - In register_level_print(), now printing notes on energy values below the
      main output line.

adm/util/nist/notes.py
  - Promoted inner function fold_line() to module function.

13772 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 23:44:07 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Updated subsection on "ADAS Data Preparation".  Removed verbatim output for
    the NIST processing, now presented in the section "NIST Data, Preparation".

adm/docs/manual/adm-macros.tex
  - Leave space between term symbol and parity in the macros \specTermOdd and
    \specLevelOdd.

adm/adm-ingest-data.py
adm/util/idata/coll.py
  - Remove debugging print() calls.

13771 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 22:54:51 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Updated subsection "ADAS Data Acquisition --- Stout filenames".

13770 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 22:45:07 2020 UTC
marios
Log:
adf042stout.py
  - Do not convert the given filename to an absolute path.
  - Print an end-of-run string before closing the log file.

adm/docs/manual/examples.tex
  - Updated output of adm-adas-to-stout.py.

adm/util/prun.py
  - In run_command_interactive(), do not PIPE the subprocess' stdin and stderr.
    This prevents any output from showing up on screen.  Collides with r13375
    (changes made for adm/adm-finalize.py).  Requires review.

13769 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 22:12:53 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Updated section for acquisition of ADAS data (adm-query-adas).

adm/adm-query-adas.py
  - Print comments file entries to the log file, as well.

13768 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 20:58:18 2020 UTC
marios
Log:
adm/adm-query-adas.py
  - Modified to let the user extract comments from the comments of the selected
    file, and to save them in an output file, to be used with Stout files.
    - Parametrized comments file name with variable 'comments_file'.
  - Modified function get_adf04() to not return the downloaded file name.

13767 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 19:59:12 2020 UTC
marios
Log:
adm/adm-query-adas.py
  - Modified script to report relative path to species directory, not absolute.

13766 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 19:49:44 2020 UTC
marios
Log:
adm/util/io/dirs.py
  - In DirInfo():
    - Defined data field '_species_relpath' to hold the relative path to the
      species subdirectory, initialized with set().
    - Defined method species_relpath() to provide access to the data field.
  - In Dirs():
    - Defined method species_relpath() to provide access to the underlying
      dataset.

adm/test/io/test_dirs.py
  - Exercised new method in unit tests of DirInfo() and Dirs().

13765 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 19:03:10 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Parametrized the separator used with Jtot-order signatures.
    Reset it from ":" to ", " to allow for improve readability.

13764 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 18:44:30 2020 UTC
marios
Log:
adm/adm-ingest-data.py
  - Bugfix: Old Energies() methods were still in use.  Updated and fixed.
    - multiplet_levels() -> cterms().indices()
    - store_level_in_group() -> groups().insert()
    - store_level_in_multiplet() -> cterms().insert()

adm/util/idata/nrg.py
  - In Groups.remove_degenerate_terms():
    - Bugfix: Use method energies() omitted the parenthesis.  Fixed.
    - Bugfix: Incomplete variable name change led to attempt to remove 'level',
      an Energy() object, from a list of integer indices.  Fixed by using the
      'index' variable instead.

13763 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 12 04:52:54 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined class Groups() and move all Energies.group_*() methods to it.
  - In Energies():
    - Guard against missing _cterms attribute in cterms().
    - Defined groups() method similar to cterms().

adm/adm-ingest-data.py
adm/util/register/levels.py
adm/util/stout/files.py
adm/test/idata/test_nrg.py
  - Updated calls to groups() functions.

13762 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 21:01:03 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - Defined class ConfTerms() and moved all Energies.multiplet_*() methods to it.
  - Energies() now uses a ConfTerms() objects, instead of dict to store
    'multiplets'.
    - Access to object methods through Energies.cterms().

adm/test/idata/test_nrg.py
  - Updated unit tests for ConfTerm (former 'test_Energies_multiplets').
    - Added unit tests for methods:
      - energies()
      - require()
      - match_econfig()
      - match_term()
      - export_dict() / import_dict()
  - Refactored test_ConfTerm() into helper inner functions to use with
    'test_Energies_cterms'.

adm/adm-fine-tune.py
adm/adm-ingest-data.py
adm/util/register/terms.py
adm/util/stout/files.py
adm/test/idata/test_nrg.py
  - Updated calls to cterms() methods (former 'multiplet_*').

13761 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 14:55:23 2020 UTC
marios
Log:
adm/util/idata/state.py
  - Guarded all OneState() methods for uninitialized objects.
  - Defined module parameter for invalid number of excited electrons.

adm/test/idata/test_state.py
  - Unit testing OneState() methods for unset objects.

13760 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 13:53:29 2020 UTC
marios
Log:
adm/util/idata/state.py
  - Defined methods OneState.statw() and MixedState.statw().

adm/util/atoms/jtot.py
  - Defined invalid statistical weight value.

adm/test/idata/test_state.py
  - Added unit tests for OneState.statw() and MixedState.statw().

13759 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 12:27:30 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energies() and JoinedEnergies(), attribute name change:
    '_multiplets' to '_cterms'.

13758 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 00:49:42 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Multiplet():
    - Changed class name to ConfTerm(), as the former is inappropriate.
    - Changed helper method __get_multiplet_index() to __get_term_index().
  - Updated calls from Energies() methods.

adm/test/idata/test_nrg.py
  - Updated calls to class.

13757 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 11 00:45:29 2020 UTC
marios
Log:
adm/test/idata/test_nrg.py
  - Missed atoms.spname function name changes.

13756 Directory Listing
Modified 2 years, 11 months ago
Mon Feb 10 05:09:45 2020 UTC
marios
Log:
adm/util/idata/state.py
  - In OneState():
    - Renamed multiplet() to term_name(); in_multiplet() to term_names_agree().
  - In MixedState():
    - Renamed multiplets() to term_names(); in_multiplet() to term_names_agree().

adm/test/idata/test_state.py
  - Updated unit test names and calls.

13755 Directory Listing
Modified 2 years, 11 months ago
Mon Feb 10 02:55:22 2020 UTC
marios
Log:
adm/util/atoms/spname.py
  - Renamed functions:
    - fmt_config_output() to fmt_spname_output()
    - fmt_config_output_noJ() to fmt_spname_output_noJ()
    - join_into_alt_config() to join_level_names()
    - parse_config_into_ecl() to parse_spname_into_ecl()
    - parse_config_into_ectJ() to parse_spname_into_ectJ()
    - is_spec_config() to is_spname()
    - validate_spec_config() to validate_spname()
    - compare_spec_levels() to level_names_agree()
    - parse_alt_configs() to parse_mixed_level()
    - in_multiplet() to levels_in_term()
    - in_multiplet_alt() to mixed_levels_in_term()
    - are_alt_econfig_same() to mixed_econfig_agree()
    - are_alt_subshell_lists_same() to mixed_subshells_agree()
    - are_alt_term_lists_same() to mixed_terms_agree()

adf042stout.py
adm/util/adas/adas.py
adm/util/idata/state.py
adm/util/nist/fmt.py
adm/util/nist/nrg.py
adm/util/register/levels.py
adm/test/atoms/test_spname.py
adm/test/idata/test_state.py
  - Update calls to functions.

13754 Directory Listing
Modified 2 years, 11 months ago
Sun Feb 9 22:45:07 2020 UTC
marios
Log:
adm/util/idata/nrg.py
  - In Energy():
    - Data variable '_config' renamed to '_state'.
    - Method config() renamed as state().

adm/adm-ingest-data.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/test/idata/test_nrg.py
  - Update calls to use the new state() method.

13753 Directory Listing
Modified 2 years, 11 months ago
Sun Feb 9 20:10:15 2020 UTC
marios
Log:
adm/util/atoms/spname.py
adm/util/idata/state.py
  - Extracted *State() classes from atoms.spname into module idata.state.

adm/util/atoms/spname.py
  - Removed local variables accessing nist.fmt formatting parameters.  Now the
    latter are accessed directly.

adm/test/atoms/test_spname.py
adm/test/idata/test_state.py
  - Extracted unit tests for *State() classes from atoms.test_spname into test
    module idata.test_state.

adm/util/idata/nrg.py
  - Updated calls to MixedState().

adm/util/idata/__init__.py
  - Update 'import *' export.

13752 Directory Listing
Modified 2 years, 11 months ago
Sun Feb 9 19:03:53 2020 UTC
marios
Log:
Renamed: adm/util/atoms/config.py
     to: adm/util/atoms/spname.py

Renamed: adm/test/atoms/test_config.py
     to: adm/test/atoms/test_spname.py

NistExtractor/NistExtractor.py
adf042stout.py
adm/adm-ingest-data.py
adm/util/adas/adas.py
adm/util/adas/eissner.py
adm/util/atoms/__init__.py
adm/util/atoms/trans.py
adm/util/idata/nrg.py
adm/util/nist/nrg.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/test/atoms/test_trans.py
adm/test/idata/test_nrg.py
adm/test/stout/test_nrg.py
  - Updated module imports.

13751 Directory Listing
Modified 2 years, 11 months ago
Sun Feb 9 18:19:12 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Updated class names Config() to OneState() and ConfigAlt() and MixedState().

adm/util/idata/nrg.py
adm/test/idata/test_nrg.py
adm/test/atoms/test_config.py
  - Updated calls to classes, and unit test names.

13750 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 23:55:44 2020 UTC
fguzman
Log:
It seems that QUADPACK integral dqgai_() have problems reaching the maximum number of intervales when integrating source terms. Results look reasonable and theintegrand has no singularities though.

Using dqgaie_() instead gives no problems so I have switched to it.

I have included source inside the sources and sink terms inside the matrix.

Populations are negative unless a mitigation is done on the condensed level index. A higher density of condensed levels is created at the extremes of the original levels.

However, the departure coefficients still dont make sense being oscilating over 1 for most of the n's and falling bellow one at the higher levels. Testing has been done with 10 resolved levels and 290 condensed levels. The source and sink terms starting in resolved or condensed levels does not seems to affect,


13749 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 17:52:48 2020 UTC
fguzman
Log:
cleaning of add_equilibrium_levels()
13748 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 06:11:18 2020 UTC
marios
Log:
Renamed: adm/util/stout/parse.py
     to: adm/util/stout/files.py

Renamed: adm/test/stout/test_parse.py
     to: adm/test/stout/test_files.py

Updated imports:
  - adm/adm-export-stout.py
  - adm/adm-ingest-data.py
  - adm/adm-register-levels.py
  - adm/adm-register-nocfg.py
  - adm/adm-register-terms.py

Added for 'import *':
  - adm/util/stout/__init__.py

13747 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 05:51:08 2020 UTC
marios
Log:
Update files to point to new idata modules for class definitions.
  - adm/adm-export-stout.py
  - adm/adm-finalize.py
  - adm/adm-fine-tune.py
  - adm/adm-ingest-data.py
  - adm/adm-merge-coll.py
  - adm/adm-merge-nrg.py
  - adm/adm-merge-tp.py
  - adm/adm-register-levels.py
  - adm/adm-register-nocfg.py
  - adm/adm-register-terms.py
  - adm/adm-sort-nrg.py
  - adm/util/register/convert.py
  - adm/util/register/levels.py
  - adm/util/register/nocfg.py
  - adm/util/register/terms.py

13746 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 05:36:55 2020 UTC
marios
Log:
Update calls to *Record() class methods with function calls.
  -  NistExtractor/NistExtractor.py
  -  adm/test/idata/test_nrg.py
  -  adm/test/idata/test_tp.py
  -  adm/test/stout/test_coll.py
  -  adm/test/stout/test_tp.py
  -  adm/util/idata/coll.py
  -  adm/util/idata/nrg.py
  -  adm/util/idata/tp.py
  -  adm/util/stout/info.py
  -  adm/util/stout/parse.py

13745 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 05:24:56 2020 UTC
marios
Log:
Converted classes for reading / writing records to plain module functions.
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_tp.py
  - adm/util/stout/coll.py
  - adm/util/stout/nrg.py
  - adm/util/stout/tp.py

13744 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 05:00:44 2020 UTC
marios
Log:
Decoupled internal data model from the classes that read and write Stout data.
Created subpackage util.idata, and also test.idata.
  - adm/util/idata
  - adm/util/idata/__init__.py
  - adm/util/idata/coll.py
  - adm/util/idata/nrg.py
  - adm/util/idata/tp.py
  - adm/test/idata
  - adm/test/idata/test_coll.py
  - adm/test/idata/test_nrg.py
  - adm/test/idata/test_tp.py
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_tp.py
  - adm/util/stout/coll.py
  - adm/util/stout/nrg.py
  - adm/util/stout/tp.py

13743 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 01:46:17 2020 UTC
marios
Log:
adm/util/stout/coll.py
adm/util/stout/check.py
  - Moved validation functions and relevant data from coll.py to check.py.
    Updated coll.py to the right location of these functions.

adm/test/stout/test_coll.py
adm/test/stout/test_check.py
  - Moved relevant unit tests from test_coll.py to test_check.py.

13742 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 01:26:38 2020 UTC
marios
Log:
adm/adm-export-stout.py
  - Bugfix: Script was using parse module, not its 'stparse' alias.  Fixed.

13741 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 01:23:32 2020 UTC
marios
Log:
adm/util/stout/fmt.py
adm/util/stout/parse.py
  - Moved from fmt.py to parse.py:
    - class FileSections()
    - get_IP()
    - parse_file_into_sections()
 
adm/test/stout/test_fmt.py
adm/test/stout/test_parse.py
  - Moved unit tests for class and functions above from test_fmt.py to
    test_parse.py.
  - Moved inner function create_file_lines() as __create_file_lines().
  - Removed inner function __create_dataset(), repeat of __create_file_lines().
    Using former instead.
  - Modified tests for get_IP() & parse_file_into_sections() to work with
    datasets.
  - Converted data needed for unit tests of get_IP() into datasets.

adm/adm-export-stout.py
  - Updated definition of FileSections() to point to parse.py.

13740 Directory Listing
Modified 2 years, 11 months ago
Fri Feb 7 00:29:30 2020 UTC
marios
Log:
adm/util/stout/check.py
  - Added module containing validation functions from nrg.py and tp.py.

adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Removed functions now found in check.py.

adm/test/stout/test_check.py
  - Added module containing unit tests for is_TP_valid() moved here from
    test_tp.py.

adm/test/stout/test_tp.py
  - Removed unit tests for is_TP_valid() and divide_TPs().

adm/adm-fine-tune.py
adm/adm-merge-coll.py
adm/test/stout/test_coll.py
adm/test/stout/test_nrg.py
adm/test/stout/test_tp.py
adm/util/register/terms.py
adm/util/stout/coll.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Updated calls to point stout.check.

13739 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 23:33:22 2020 UTC
marios
Log:
adm/util/adas/adas.py
  - Bugfix: Drop double quotes before processing the configuration.

13738 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 23:31:13 2020 UTC
marios
Log:
adm/adm-export-stout.py
adm/adm-ingest-data.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
  - Updated calls to parse_*() functions to point to the stout.parse module.

13737 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 23:21:31 2020 UTC
marios
Log:
adm/util/stout/parse.py
  - Added module containing all parse_*() functions of nrg.py, tp.py, & coll.py.

adm/util/stout/coll.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Removed parse_*() functions.

adm/test/stout/test_parse.py
  - Moved unit tests of parse_*() functions from nrg.py and coll.py.
  - Added missing unit tests for parse_nrg().
  - Added missing unit tests for parse_tp() and parse_tp_sections().
  - Added missing unit tests for parse_coll_sections().


adm/test/stout/test_coll.py
adm/test/stout/test_nrg.py
  - Removed existing unit tests of parse_*().

13736 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 22:05:23 2020 UTC
marios
Log:
adm/util/stout/dirtree.py
  - Renamed fname_energy() to fname_nrg().
 
adm/adm-export-stout.py
adm/test/stout/test_dirtree.py
adm/test/stout/test_nrg.py
adm/util/nist/files.py
adm/util/stout/info.py
adm/util/stout/nrg.py
  - Updated calls to fname_nrg().

13735 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 21:39:15 2020 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock():
    - Demoted '_order' to an optional keyword.
    - Made use of '_order' conditional on its presence in the object in
      insert_collision(), copy(), prt_input_order().
    - Likewise for '_sorted_order' in prt_sorted().
    - These attributes are now excluded from export_dict() and import_dict().

adm/util/stout/nrg.py
  - In Energies():
    - Added '_order' as a keyword argument.
    - Order is stored only for levels entered with insert().
    - Defined prt_input_order() to print levels in the order they were read in.
    - export_dict() and import_dict() now explicitly skip '_order'.

adm/util/stout/tp.py
  - In Transitions():
    - Added class-wide tuple of optional keywords, with only member of '_order'.
    - Order is stored only for levels entered with add_transition().
    - Defined prt_input_order() to print transitions in the order they were read in.
    - export_dict() and import_dict() now explicitly skip '_order'.

adm/test/stout/test_coll.py
  - Removed tests of input order -- it is now a optional data field.

13734 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 16:39:36 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Refactored code that writes the configuration comment into function
    prep_other_config_comment().
  - Updated form_nrg_comment() to use new function.

adm/util/atoms/config.py
  - In ConfigAlt():
    - Updated prt_percentages() to not format the string for output.  That is,
      to not prepend the output with the 'pct:' string.
    - Defined method prepare_comment() to produce a comment string for output to
      a Stout file.  It is a wrapper around nist.fmt.prep_other_config_comment()
      that uses prt_percentages() as input to that function (hence the need to
      drop the 'pct:' sentinel.

adm/util/stout/nrg.py
  - In Energy.new_dataline(), use new ConfigAlt.prepare_comment() method,
    instead of forging the comment therein.

adm/test/nist/test_fmt.py
  - Exercised prep_other_config_comment() in unit tests.

adm/test/atoms/test_config.py
  - Exercised ConfigAlt.prepare_comment() in unit tests.
  - Updated unit tests of ConfigAlt.prt_percentages().

13733 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 06:03:35 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Removed "Closing log file:..." from examples.  See below.
  - Added Section "NIST Data Acquisition & Preparation".
    - Added previous text as subsection "NIST Data Acquisition".
    - Added new subsection "NIST Data Preparation", discussing 'adm-ingest-data'
      run.

adm/adm-ingest-data.py
  - Changed program description.
  - Minor format updates.
  - dismiss_levels() no longer returns a bool variable.
  - In process_wrong_orderings():
    - Inner function process_multiplets() no longer evaluates if levels have
      been modified.

adm/docs/manual/adm-macros.tex
  - Defined commands \specTerm and \specTermOdd.

adm/util/stout/nrg.py
  - In Energy():
    - Changed data field '_level' to '_index'.
    - In pprt(), changed the output to remove underscores from fields, and to
      capitalize the first letter of each field.

adm/util/atoms/config.py
  - Minor formatting change in Config.pprt().
  - Likewise in ConfigAlt.pprt() -- title has changed from '_ConfigAlt' to
    'State Info'.

adm/util/io/log.py
  - lclose() now reports which log file it is closing to screen only, not the
    log file itself.

13732 Directory Listing
Modified 2 years, 11 months ago
Thu Feb 6 00:18:47 2020 UTC
marios
Log:
Last bugfixes in test suite.

adm/util/stout/coll.py
  - Bugfix: CollionRecord.extract_data() was parsing the input line with the
    default delimiter of tabs.  Records in the Ne+8 dataset were using spaces
    instead.  Fixed by using any amount of whitespace characters for parsing.

adm/test/adas/test_adas.py
  - Bugfix: Inconsistent J with the term in unit test for process_spec_level().
    1P<0> changed to 1P<1>.

13731 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 23:32:43 2020 UTC
marios
Log:
Minor updates to unit test suite.
  - adm/test/adas/test_adas.py
  - adm/test/adas/test_eissner.py
  - adm/test/atoms/test_config.py
  - adm/test/atoms/test_jtot.py
  - adm/test/atoms/test_orbitals.py
  - adm/test/atoms/test_splevel.py
  - adm/test/atoms/test_spterm.py
  - adm/test/cloudy/test_cloudy.py
  - adm/test/cloudy/test_lines.py
  - adm/test/cloudy/test_stout_refs.py
  - adm/test/io/test_dirs.py
  - adm/test/io/test_log.py
  - adm/test/io/test_pfile.py
  - adm/test/io/test_ui.py
  - adm/test/nist/test_fmt.py
  - adm/test/nist/test_notes.py
  - adm/test/nist/test_nrg.py
  - adm/test/nist/test_phtml.py
  - adm/test/nist/test_refs.py
  - adm/test/nist/test_tp.py
  - adm/test/nist/test_web.py
  - adm/test/ptable/test_elements.py
  - adm/test/ptable/test_ions.py
  - adm/test/ptable/test_spectra.py
  - adm/test/stout/test_c2s.py
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_dirtree.py
  - adm/test/stout/test_fmt.py
  - adm/test/stout/test_info.py
  - adm/test/stout/test_meta.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_tp.py
  - adm/test/test_chianti.py
  - adm/test/test_chtypes.py
  - adm/test/test_fs.py
  - adm/test/test_misc.py
  - adm/test/test_types.py

13730 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 23:09:21 2020 UTC
marios
Log:
No longer attempt to import Python3's print function.
  - adf042stout.py
  - adm/adm-create-pfile.py
  - adm/adm-export-stout.py
  - adm/adm-finalize.py
  - adm/adm-fine-tune.py
  - adm/adm-merge-coll.py
  - adm/adm-merge-nrg.py
  - adm/adm-merge-tp.py
  - adm/adm-query-adas.py
  - adm/adm-register-levels.py
  - adm/adm-register-nocfg.py
  - adm/adm-register-terms.py
  - adm/adm-sort-nrg.py
  - adm/test/adas/test_adas.py
  - adm/test/adas/test_eissner.py
  - adm/test/atoms/test_config.py
  - adm/test/atoms/test_jtot.py
  - adm/test/atoms/test_orbitals.py
  - adm/test/atoms/test_splevel.py
  - adm/test/atoms/test_spterm.py
  - adm/test/atoms/test_trans.py
  - adm/test/cloudy/test_cloudy.py
  - adm/test/cloudy/test_lines.py
  - adm/test/cloudy/test_stout_refs.py
  - adm/test/io/test_dirs.py
  - adm/test/io/test_log.py
  - adm/test/io/test_pfile.py
  - adm/test/io/test_ui.py
  - adm/test/nist/test_fmt.py
  - adm/test/nist/test_refs.py
  - adm/test/nist/test_tp.py
  - adm/test/ptable/test_elements.py
  - adm/test/ptable/test_ions.py
  - adm/test/ptable/test_spectra.py
  - adm/test/stout/test_c2s.py
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_dirtree.py
  - adm/test/stout/test_fmt.py
  - adm/test/stout/test_info.py
  - adm/test/stout/test_meta.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_tp.py
  - adm/test/test_chianti.py
  - adm/test/test_chtypes.py
  - adm/test/test_fs.py
  - adm/test/test_misc.py
  - adm/test/test_types.py
  - adm/util/adas/adas.py
  - adm/util/adas/eissner.py
  - adm/util/atoms/splevel.py
  - adm/util/atoms/spterm.py
  - adm/util/atoms/trans.py
  - adm/util/chianti.py
  - adm/util/chtypes.py
  - adm/util/cloudy/cloudy.py
  - adm/util/cloudy/lines.py
  - adm/util/cloudy/stout_refs.py
  - adm/util/fs.py
  - adm/util/io/dirs.py
  - adm/util/io/err.py
  - adm/util/io/log.py
  - adm/util/io/pfile.py
  - adm/util/io/ui.py
  - adm/util/misc.py
  - adm/util/nist/err.py
  - adm/util/nist/refs.py
  - adm/util/prun.py
  - adm/util/ptable/ions.py
  - adm/util/register/convert.py
  - adm/util/register/levels.py
  - adm/util/register/nocfg.py
  - adm/util/register/terms.py
  - adm/util/stout/c2s.py
  - adm/util/stout/coll.py
  - adm/util/stout/dirtree.py
  - adm/util/stout/fmt.py
  - adm/util/stout/info.py
  - adm/util/stout/meta.py
  - adm/util/stout/nrg.py
  - adm/util/stout/tp.py
  - adm/util/types.py

13729 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 23:00:48 2020 UTC
marios
Log:
Update list of modules for 'import *' of subpackages:
  - adm/util/atoms/__init__.py
  - adm/util/io/__init__.py
  - adm/util/nist/__init__.py

13728 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 22:50:49 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Defined new class Valid() with only one classmethod validate(), which makes
    sure that the given object is a valid instance of the class.

adm/util/atoms/config.py
adm/util/cloudy/lines.py
adm/util/io/dirs.py
adm/util/io/pfile.py
adm/util/nist/nrg.py
adm/util/nist/refs.py
adm/util/stout/coll.py
adm/util/stout/fmt.py
adm/util/stout/info.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - All classes that hold data (i.e., they don't only contain classmethods) now
    derive from chtypes.Valid.  Their private validate() methods have been
    removed.

13727 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 20:21:00 2020 UTC
marios
Log:
Drop energy level grouping by excitation signature.

adm/util/stout/nrg.py
  - Bugfix: Typo in Energy.pprt(), missing parenthesis after method config().
    Fixed.
  - In Energies():
    - In store_level_in_group(), ignore levels with invalid Jtot.
    - Remove the grouping by excitation signature, i.e., the top _group list.
      Now, _group is a list of list of levels.
      Affected methods:
      - store_level_in_group()
      - is_level_in_group() 
      - groups_remove_degenerate_terms()
      - group_excit() -- REMOVED
      - group_Jtot()
      - group_parity()
      - group_levels()
      - register_level_print()
      - group_level_print()
      - group_level_next()
      - group_level_next_valid()
      - group_level_prev_valid()
      - reset_group() -- commented out
      - show_group()
      - get_unmatched_levels()
      - export_dict()
      - do_import()

adm/util/register/levels.py
  - Updated to new interfaces of Energies() methods.
    Affected functions:
    - validate_all_matches()
    - prematch_group()
    - match_group()
    - reset_group()
    - confirm_registration()
    - process_group()
    - register_levels()
    - join_group()
    - join_levels()

adm/test/stout/test_nrg.py
  - Updated functions:
    - test_Energies_groups()
    - __compare_Energies_objects()
  - Updated datasets:
    - dataset_fe_4
    - dataset_ne_8

13726 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 19:45:53 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Bugfix: Did not switch parse_note() reference from nist.fmt to nist.notes.
    Fixed.

13725 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 04:01:08 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - In Energy():
    - Updated init() to the list-of-strings return value of
      nist.fmt.parse_note().  Now the attribute '_notes' holds the list, instead
      of storing the code and its message into a dict.  Notice that with this
      change multiple values can be stored.
    - Updated pprt() to print the codes with the codes before the configuration,
      instead of after it.

13724 Directory Listing
Modified 2 years, 11 months ago
Wed Feb 5 03:52:26 2020 UTC
marios
Log:
Moved parse_note() from fmt.py to notes.py, and refactored.

adm/util/nist/notes.py
  - Defined module parameter ('__note_sep') for the separator (a comma ',')
    between note codes.
    Updated __prepare_table() to use the parameter, instead of ',' strings.
  - Moved function parse_note() from fmt.py and changed its functionality to not
    expect the message after the code, separated by ':'.  Instead, it expects a
    comma-delimited string of codes, which it parses into a list.
  - Defined fmt_note() to carry out the reverse operation of parse_note(), i.e.,
    to assemble a note from a list of codes.

adm/util/nist/fmt.py
  - Changed module parameter 'note_sentinel' from a value of "note" to "note:".
  - Removed obsolete module parameter note_sep.
  - Removed obsolete function parse_note().  It operated on a format that is no
    longer supported (the messages of the notes are now shown only at the end of
    the file).
  - Updated function fmt_note_output() to note accept the message as an keyword
    argument.

adm/util/nist/phtml.py
  - In extract_note(), now using notes.fmt_note() to prepare a note string from
    the list of codes extracted from the HTML markup.

adm/test/nist/test_notes.py
  - Added unit tests for notes.parse_note() and notes.fmt_note().

adm/test/nist/test_fmt.py
  - Removed unit tests for obsolete fmt.parse_note().
  - Adapted unit tests to new interface of fmt_note_output().
  - Updated unit tests for parse_nrg_comment().

13723 Directory Listing
Modified 2 years, 11 months ago
Tue Feb 4 20:59:53 2020 UTC
marios
Log:
adm/test/atoms/test_config.py
  - For ConfigAlt():
    - Added unit tests to establish that basic access to the underlying Config()
      object works as expected.
    - Added unit tests for methods:
      - given()
      - primary_econfig_full()
      - primary_term()
      - primary_subshells()
    - Now validating unitialized objects with methods:
      - primary_config()
      - other_config()
      - Jtot()
      - parity()
  - Other minor formatting changes.

13722 Directory Listing
Modified 3 years ago
Mon Feb 3 23:09:23 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - In Energy():
    - Eliminated all methods that were wrappers to ConfigAlt() methods.
      Now a ConfigAlt() object is always created, but populated only when state
      configuration info exists.
    - Defined method config() to provide access to the underlying ConfigAlt()
      object.
    - Removed methods (also listed names of ConfigAlt() methods, if different):
      - have_config()        given()
      - econfig()
      - econfig_full()
      - config_level()
      - input_config()
      - have_alt_config()    have_other_config()
      - primary_config()
      - primary_econfig()    primary_econfig_full()
      - alternate_config()   other_config()
      - have_percentages()
      - percentages()
      - prt_percentages()
      - terms()
      - primary_term()
      - Jtot()
      - parity()
      - excit()              excitations()
      - subshells()
      - primary_subshells()

adm/util/atoms/config.py
  - Renamed Config() and ConfigAlt() methods:
    - get_excitations() to excitations()
    - get_subshells() to subshells()
  - In ConfigAlt():
    - Defined:
      - boolean data field (attribute) _is_set, True only when the init() method
        is called. 
      - given() to tell if the object has been initialized (using _is_set).
      - primary_econfig_full()
      - primary_term()
      - primary_subshells()
    - Renamed:
      - have_alt_config() to have_two_configs()
      - alternate_config() to other_config()
    - For uninitialized objects:
      - primary_config() now returns an empty string.
      - other_config() now returns an empty string.
      - Jtot() returns jtot.invalid_Jtot
      - parity() returns parity.invalid_parity

adm/test/atoms/test_config.py
  - Updated calls to Config() and ConfigAlt() methods.

adm/adm-ingest-data.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/util/stout/nrg.py
adm/test/stout/test_nrg.py
  - Updated calls to Energy() methods to ConfigAlt() with Energy().config().

13721 Directory Listing
Modified 3 years ago
Mon Feb 3 20:11:39 2020 UTC
marios
Log:
adm/util/atoms/jtot.py
  - Rename module variable Jtot_invalid to invalid_Jtot.

adm/util/stout/nrg.py
  - Remove Energy.invalid_Jtot.  Use jtot.py module's instead.

adm/test/atoms/test_config.py
adm/test/atoms/test_jtot.py
adm/test/stout/test_nrg.py
  - Update references to the energy class variable with references to the jtot
    module one.

13720 Directory Listing
Modified 3 years ago
Mon Feb 3 20:07:55 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Missed call to parity() function in parity.py

13719 Directory Listing
Modified 3 years ago
Mon Feb 3 17:58:24 2020 UTC
marios
Log:
adm/util/atoms/config.py
adm/util/atoms/splevel.py
adm/util/atoms/spterm.py
adm/util/atoms/trans.py
adm/util/register/levels.py
adm/util/stout/nrg.py
adm/test/atoms/test_config.py
adm/test/atoms/test_trans.py
adm/test/stout/test_nrg.py
  - Update calls to parity.py module functions and variables.

13718 Directory Listing
Modified 3 years ago
Mon Feb 3 16:59:24 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
adm/util/atoms/parity.py
  - Exported all parity-related functions exported from 'orbitals.py' to new
    module 'parity.py'.

adm/util/atoms/__init__.py
  - Updated file for 'import *'.

adm/test/atoms/test_parity.py
adm/test/atoms/test_orbitals.py
  - Exported all parity-related unit tests exported from 'test_orbitals.py' to
    new test module 'test_parity.py'.

13717 Directory Listing
Modified 3 years ago
Mon Feb 3 15:32:43 2020 UTC
marios
Log:
adm/util/fs.py
adm/util/io/log.py
  - Updated module docstrings.

13716 Directory Listing
Modified 3 years ago
Sun Feb 2 02:02:15 2020 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Reworked Chapter "Examples" Sections "Setting up" and "Preparing NIST data",
    renamed "Setup" and "NIST Data Acquisition", respectively, to be consistent
    with the main flowchart of Chapter "Algorithm Description".
    - Eliminated presentation of Stout file contents from "Data Acquisition"
      section, now discussed in more detailed in Chapter "Introduction".

adm/docs/manual/intro.tex
  - In section "Transition files".
    - Added comment on ordering of data i; moved from "Examples", above.
    - Added comment on default (assumed) multipole order of E1.
    - Added reference to online transition accuracy table, moved from above.

13715 Directory Listing
Modified 3 years ago
Sun Feb 2 01:16:06 2020 UTC
marios
Log:
adm/docs/manual/intro.tex
  - Updates on Stout file contents.

13714 Directory Listing
Modified 3 years ago
Sun Feb 2 00:45:03 2020 UTC
marios
Log:
Hide absolute path names from log files, as they are likely to end up online.

adm/util/fs.py
  - Set up infrastructure from not reporting absolute paths on log files, as
    they may posted online.
    - Defined function set_execpath(), which must be called before main() to
      set up the path from which an ADM command is executed.
    - Defined functions execpath() and unset_execpath() to report the path,
      and reset it to None, respectively.
    - Defined sanitize_path() to remove the execution path from the path that
      is being written out to the log file.
      Now called from:
      - write_file()
      - copy_file()
      - create_subdir()
      - chdir()
      - validate_file()
      - JSON.read()
      Note that all these functions use absolute paths for their operations,
      and 'sanitized' paths only for reporting.

adm/util/io/log.py
  - Do not report absolute path on log file.  Implemented with os.path.basename()
    because the importing the fs.py infrastructure would create a circular
    dependence.  Enforced on lopen() and lclose().

adm/test/test_fs.py
  - Exercised sanitize_path() in unit tests.

adm/adm-setup.py
  - Now that the default for printing to screen has changed, change the coding
    of verbosity to maintain much of the old behavior: with -v the printout is
    sent to screen, otherwise it goes to the log file, if one is specified.
    Note: if a log file is not given, the output is no longer sent to screen by
    default.

NistExtractor/NistExtractor.py
adm/adm-adas-to-stout.py
adm/adm-export-stout.py
adm/adm-fetch-nist.py
adm/adm-finalize.py
adm/adm-fix-fnames.py
adm/adm-ingest-data.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-query-adas.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
adm/adm-setup.py
adm/adm-sort-nrg.py
  - Setup the execution directory before main() is called.

13713 Directory Listing
Modified 3 years ago
Sat Feb 1 18:41:08 2020 UTC
marios
Log:
adm/stout-data-summary.py
  - Report end of run to log file with a suitably decorated line.
    Missed file in previous commit...

13712 Directory Listing
Modified 3 years ago
Sat Feb 1 18:37:57 2020 UTC
marios
Log:
adm/util/io/log.py
  - Added function __proc_cline_args to prepare the command line to write to
    output.  If not supplied, the command-line arguments used are from sys.argv.
    Only the basename of the executed program is reported.
  - In print_cline_as_comment():
    - Report command-line call to both the log file and the screen.
    - Use __proc_cline_args() to prepare the command-line arguments -- not using
      sys.argv directly anymore.
  - Defined function end_of_run() to print a message to the log file reporting
    the end of execution of a program.  Uses __proc_cline_args() to prepare the
    program name.  Different decorators are used for subprocesses.
    The purpose of this program is to ease reading the log file.

adm/util/prun.py
  - In run_command() and run_command_interactive():
    - Do not prepare the command line on the fly; instead, use
      log.print_cline_as_comment().
    - Mark the end of the run with decorators appropriate to subprocesses.

adm/adm-adas-to-stout.py
adm/adm-export-stout.py
adm/adm-fetch-nist.py
adm/adm-finalize.py
adm/adm-fine-tune.py
adm/adm-fix-fnames.py
adm/adm-ingest-data.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-query-adas.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
adm/adm-setup.py
  - Report end of run to log file with a suitably decorated line.

13711 Directory Listing
Modified 3 years ago
Sat Feb 1 17:02:13 2020 UTC
marios
Log:
adm/util/io/log.py
  - Drop microseconds from reported time.

13710 Directory Listing
Modified 3 years ago
Fri Jan 31 22:24:37 2020 UTC
fguzman
Log:
assessing integral values of sink and source terms
13709 Directory Listing
Modified 3 years ago
Fri Jan 31 20:45:17 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Command-line option for verbosity was assigned the wrong value.

adm/util/io/log.py
  - Print to stdout by default

fetch-NIST-IP.py
  - Upgraded to python3

13708 Directory Listing
Modified 3 years ago
Fri Jan 31 20:38:36 2020 UTC
marios
Log:
adm/adm-adas-to-stout.py
adm/adm-fetch-nist.py
  - Do not use the python3 command when running scripts in the background.

adm/create-elements-module.py
  - Use '/usr/bin/env python3' when creating module.

13707 Directory Listing
Modified 3 years ago
Fri Jan 31 20:32:28 2020 UTC
marios
Log:
Updated to python3.
  - adm/util/stout/tp.py
  - adm/util/types.py

13706 Directory Listing
Modified 3 years ago
Fri Jan 31 20:31:24 2020 UTC
marios
Log:
Upgraded all scripts to python3.
  - NistExtractor/NEWrapper.py
  - adf042stout.py
  - adm/test/adas/test_adas.py
  - adm/test/adas/test_eissner.py
  - adm/test/atoms/test_config.py
  - adm/test/atoms/test_jtot.py
  - adm/test/atoms/test_orbitals.py
  - adm/test/atoms/test_splevel.py
  - adm/test/atoms/test_spterm.py
  - adm/test/atoms/test_trans.py
  - adm/test/cloudy/test_cloudy.py
  - adm/test/cloudy/test_lines.py
  - adm/test/cloudy/test_stout_refs.py
  - adm/test/io/test_dirs.py
  - adm/test/io/test_log.py
  - adm/test/io/test_pfile.py
  - adm/test/io/test_ui.py
  - adm/test/nist/test_fmt.py
  - adm/test/nist/test_phtml.py
  - adm/test/nist/test_refs.py
  - adm/test/nist/test_tp.py
  - adm/test/nist/test_web.py
  - adm/test/ptable/test_elements.py
  - adm/test/ptable/test_ions.py
  - adm/test/ptable/test_spectra.py
  - adm/test/stout/test_c2s.py
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_dirtree.py
  - adm/test/stout/test_fmt.py
  - adm/test/stout/test_info.py
  - adm/test/stout/test_meta.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_tp.py
  - adm/test/test_chianti.py
  - adm/test/test_chtypes.py
  - adm/test/test_fs.py
  - adm/test/test_misc.py
  - adm/test/test_prun.py
  - adm/test/test_types.py
  - adm/util/adas/adas.py
  - adm/util/adas/eissner.py
  - adm/util/atoms/config.py
  - adm/util/atoms/jtot.py
  - adm/util/atoms/orbitals.py
  - adm/util/atoms/spterm.py
  - adm/util/atoms/trans.py
  - adm/util/chianti.py
  - adm/util/chtypes.py
  - adm/util/cloudy/cloudy.py
  - adm/util/cloudy/lines.py
  - adm/util/cloudy/stout_refs.py
  - adm/util/fs.py
  - adm/util/io/dirs.py
  - adm/util/io/err.py
  - adm/util/io/log.py
  - adm/util/io/nicks.py
  - adm/util/io/pfile.py
  - adm/util/io/ui.py
  - adm/util/misc.py
  - adm/util/nist/err.py
  - adm/util/nist/fmt.py
  - adm/util/nist/phtml.py
  - adm/util/nist/refs.py
  - adm/util/nist/tp.py
  - adm/util/nist/web.py
  - adm/util/prun.py
  - adm/util/ptable/element_data.py
  - adm/util/ptable/elements.py
  - adm/util/ptable/ions.py
  - adm/util/ptable/spectra.py
  - adm/util/register/levels.py
  - adm/util/register/nocfg.py
  - adm/util/register/terms.py
  - adm/util/stout/c2s.py
  - adm/util/stout/coll.py
  - adm/util/stout/dirtree.py
  - adm/util/stout/fmt.py
  - adm/util/stout/info.py
  - adm/util/stout/meta.py
  - adm/util/stout/nrg.py
  - adm/util/stout/tp.py
  - adm/util/types.py
  - fetch-NIST-IP.py

13705 Directory Listing
Modified 3 years ago
Fri Jan 31 20:12:29 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Restored verbosity flag, and redefined it to apply only to new functionality.

13704 Directory Listing
Modified 3 years ago
Fri Jan 31 04:42:10 2020 UTC
marios
Log:
adm/docs/manual/commands.tex
  - Completed updates to Chapter "Commands".  Added section for several commands
    that were missing.

adm/adm-export-stout.py
  - Script UI description correction.

13703 Directory Listing
Modified 3 years ago
Fri Jan 31 02:28:29 2020 UTC
marios
Log:
adm/docs/manual/commands.tex
  - Updated Chapter "Commands" up to 'adm-register-levels'.

13702 Directory Listing
Modified 3 years ago
Thu Jan 30 23:19:58 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Commented out obsolete sections on 'excitation signature' and
    'algorigthm description'.

13701 Directory Listing
Modified 3 years ago
Thu Jan 30 23:06:27 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Sections "Finalize Dataset" and "Export Stout Dataset" to Chapter
    "Algorithm Description".

adm/docs/manual/images/adm-flowchart-export.pdf
adm/docs/manual/images/adm-flowchart-finalize.pdf
  - Added supporting figures. 

adm/docs/manual/images/adm-flowchart-vertical-sections-setup.pdf
  - Updated flowchart, changed title of export process to
    "Export Stout Dataset".

13699 Directory Listing
Modified 3 years ago
Thu Jan 30 19:59:07 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added section on "Collision Data Synthesis" to chapter
    "Algorithm Description".

adm/docs/manual/images/adm-flowchart-collision.pdf
  - Added supporting figure.

13698 Directory Listing
Modified 3 years ago
Thu Jan 30 16:44:06 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section "Data Inspection / Correction" to chapter "Algorithm Description".

adm/docs/manual/images/adm-flowchart-inspection.pdf
  - Added supporting Figure.

13697 Directory Listing
Modified 3 years ago
Thu Jan 30 15:24:06 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section "Transition Data Synthesis" to Chapter "Algorithm Description".

adm/docs/manual/images/adm-flowchart-transition.pdf
  - Added supporting figure.

13696 Directory Listing
Modified 3 years ago
Thu Jan 30 14:36:57 2020 UTC
marios
Log:
Renamed adm/docs/manual/images/adm-flowchart-levels.pdf
     to adm/docs/manual/images/adm-flowchart-level.pdf

adm/docs/manual/algorithm.tex
  - Update file name in figure.

13695 Directory Listing
Modified 3 years ago
Thu Jan 30 14:02:48 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section "Level Data Synthesis" to Chapter "Algorithm Description".

adm/docs/manual/images/adm-flowchart-levels.pdf
  - Added supporting figure.

13694 Directory Listing
Modified 3 years ago
Thu Jan 30 06:08:27 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section on "Level Registration".

adm/docs/manual/images/adm-flowchart-registration.pdf
  - Added registration figure.

adm/docs/manual/man.tex
  - Added quotation.

13693 Directory Listing
Modified 3 years ago
Thu Jan 30 03:45:34 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section in "NIST Data Acquisition & Preparation". 

13692 Directory Listing
Modified 3 years ago
Thu Jan 30 02:16:08 2020 UTC
marios
Log:
adm/adm-fetch-nist.py
  - Updated call to NistExtractor.py to include all missing command-line options.

13691 Directory Listing
Modified 3 years ago
Thu Jan 30 02:14:21 2020 UTC
marios
Log:
adf042stout.py
  - Explained user prompt in more detail -- previous prompt was a bit obscure.

adm/docs/manual/appendix-ML.tex
  - Added Section on "adf042stout.py updates" to Appenix on Matt's scripts.

13690 Directory Listing
Modified 3 years ago
Thu Jan 30 02:11:04 2020 UTC
marios
Log:
Added change log to module's docstring
  - adm/util/atoms/config.py

13689 Directory Listing
Modified 3 years ago
Thu Jan 30 00:56:52 2020 UTC
marios
Log:
Added change log to modules' docstrings.
  - adm/util/atoms/orbitals.py
  - adm/util/atoms/splevel.py
  - adm/util/atoms/spterm.py

13688 Directory Listing
Modified 3 years ago
Thu Jan 30 00:01:35 2020 UTC
marios
Log:
adm/docs/manual/appendix-ML.tex
  - Added Appendix section on "Known Limitations" of NistExtractor.py.

13687 Directory Listing
Modified 3 years ago
Wed Jan 29 23:44:17 2020 UTC
marios
Log:
adm/util/nist/tp.py
  - Simplified user prompt for replacing an existing transition.

adm/docs/manual/appendix-ML.tex
  - Updated Appendix on Matt's scripts to show new prompt.

13686 Directory Listing
Modified 3 years ago
Wed Jan 29 23:39:49 2020 UTC
marios
Log:
adm/docs/manual/appendix-ML.tex
  - Added sub-subsection on "Uncertain Configurations & Terms" to Appendix on
    Matt's scripts.

13685 Directory Listing
Modified 3 years ago
Wed Jan 29 23:22:27 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - In level_parse_line(), clean up the J value only if it not empty.
    Such a case may arise in entries in the levels table that relate to entire
    terms, instead of levels; for example, the neutral Be entry '1s2.2p.5d 3D*'.

13684 Directory Listing
Modified 3 years ago
Wed Jan 29 23:16:13 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Bugfix in fmt_econfig(): An certain level terminating in an ancestry term
    was formatted to use a dot before the question mark, i.e., it ended in '.?'.
    Fixed: Ending now has the dot removed.

adm/test/atoms/test_config.py
  - Added unit tests of such a level for fmt_econfig() and fix_econfig().

adm/test/atoms/test_orbitals.py
  - Added unit test for subshells(), involving an uncertain level with an
    ancestry term as its last element; this makes sure that fmt_econfig()
    get from fix_econfig() exactly what it should.

13683 Directory Listing
Modified 3 years ago
Wed Jan 29 22:26:38 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Modified is_ancestor() to allow for a trailing '?'.
  - Updated fmt_uncertain_subshell() to also process ancestry terms.

adm/util/atoms/config.py
  - Modified fix_hex() to allow for uncertain ancestry terms.

adm/test/atoms/test_orbitals.py
  - Added unit tests for ancestor terms to is_ancestor() and
    fmt_uncertain_subshell().

adm/test/atoms/test_config.py
  - Added unit tests for uncertain ancestor terms to fix_hex().

13682 Directory Listing
Modified 3 years ago
Wed Jan 29 21:37:12 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Edited script docstring.
  - Now issuing a warning for uncertain and unresolved Jtot values, and
    skipping the level.
  - Now storing the unprocessed C&T of the level. Used in energy2index() to
    correctly convert levels to indices for output to the transition Stout file.
  - Bugfix: The entire table of notes was printed to the energy Stout file
    when no notes were found in the dataset.  Fixed.  Now requiring that the
    list of notes to print not be empty.

13681 Directory Listing
Modified 3 years ago
Wed Jan 29 21:07:09 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Updated function form_name() to also accept unassigned terms (i.e., terms
    that are equal to the integer part of the energy).
  - Modified EnergyLevel() to also store a LevelName() object, holding an
    unmodified copy of the C&T read in from the HTML table.

adm/test/nist/test_nrg.py
  - Updated EnergyLevel.set() to also accept a LevelName() for the original
    'name' of the level.

13680 Directory Listing
Modified 3 years ago
Wed Jan 29 20:14:15 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Removed infrastructure involving boolean variables on whether the term
    and/or configuration were uncertain.  Now that the util.atoms package
    natively supports uncertain C&T (ending in '?'), and unassigned terms
    (which hold the integer value of the energy), this infrastructure is not
    needed.
    In detail:
    - Removed keyword arguments for uncertain configs and terms from interface
      of form_name().
    - In LevelName():
      - Removed object attributes for uncertain C&T.
      - In set(): Removed keyword arguments for uncertain C&T.  Also, no longer
        validating unassigned terms.
      - Reverted call to function form_name() to not use keyword arguments.
      - Removed uncertainty attributes from pprt().
    - In level_parse_line(), removed boolean variables on C&T uncertainty.
      Also, this means that an unassigned term is returned verbatim by the
      function.
    - In adjust_names(), no longer mark the 'main name' as uncertain when its
      C/T are modified.

adm/test/nist/test_nrg.py
  - Updated unit tests for:
    - LevelName.set()
    - EnergyLevel.set()
    - level_parse_line()

13679 Directory Listing
Modified 3 years ago
Wed Jan 29 19:49:04 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modified sanitize_term() to not remove trailing '?'.

adm/test/nist/test_phtml.py
  - Updated unit tests for sanitize_term().

13678 Directory Listing
Modified 3 years ago
Wed Jan 29 18:04:22 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Bugfix: fix_hex() did not preserve the uncertainty character ('?') at the
    end of a subshell string.  Fixed.
  - Removed needless check against unassigned terms.

adm/test/atoms/test_config.py
  - Modified test for ConfigAlt.econfig_full() to return the full electronic
    configuration.
  - Bugfix: Some unit tests of fix_hex() were processing illegal subshells.
    Fixed.
  - Added tests for uncertain subshells, configurations, and terms for:
    - fmt_econfig()
    - is_spec_config()
    - validate_spec_config()
    - compare_spec_levels()
    - in_multiplet()
    - parse_alt_configs()
    - in_multiplet_alt()
    - are_alt_econfig_same()
    - are_alt_subshell_lists_same()
    - are_alt_term_lists_same()
    - Config():
      - multiplet()
      - econfig()
      - econfig_full()
      - term()
      - Jtot()
      - parity() -- these were none of these before, even for certain confs!
      - subshells()
      - n_excited()
      - set/get_excitations()
    - ConfigAlt():
      - multiplet()
      - econfig()
      - econfig_full()
      - term()
      - Jtot()
      - parity()
      - subshells()
      - n_excited()
      - set/get_excitations()
    - are_alt_term_lists_same(), but operating on ConfigAlt() objects

13677 Directory Listing
Modified 3 years ago
Wed Jan 29 17:43:00 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Defined fmt_uncertain_subshell() to produce a subshell string terminating
    in a '?'.

adm/test/atoms/test_orbitals.py
  - Exercised new function in unit tests.

13676 Directory Listing
Modified 3 years ago
Wed Jan 29 17:41:23 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - In is_spec_level() remove uncertainty '?' from term before processing.
    This gurads against unassigned terms (e.g., '1234e') that also bear a '?'.
    This shouldn't occur in real data, but it is done here preemptively.

adm/test/atoms/test_splevel.py
  - Exercised new capability of is_spec_level() in unit test.

13675 Directory Listing
Modified 3 years ago
Wed Jan 29 04:41:18 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Updated is_term_unassigned() to allow for the parity ('*') in the term.

adm/util/atoms/splevel.py
  - Bugfix in is_spec_level(): Allow for unassigned terms (those that are equal
    to the integer part of the energy) with valid Jtot values.  Consistency
    checks between the two are impossible.

adm/util/atoms/config.py
  - Bugfix in parse_config_into_ecl() and parse_config_into_ectJ(): Allow for
    terms that can be ignored from further processing.  These are defined
    according to spterm.ignore_term().

adm/test/atoms/test_splevel.py
  - Updated unit tests to is_spec_level() to accept as valid terms that are
    uncertain, or unassigned.

adm/test/atoms/test_config.py
  - Added unit tests to parse_config_into_ecl() and parse_config_into_ectJ()
    for uncertain and unassigned configurations and terms.

13674 Directory Listing
Modified 3 years ago
Wed Jan 29 03:42:34 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - In parse_config_into_ecl() remove support for outdated NistExtractor
    format, where Jtot would precede the term, if the term was obtained
    from the 'Leading percentages' column.

adm/test/atoms/test_config.py
  - Removed relevant unit tests of parse_config_into_ecl() and
    parse_config_into_ectJ().

13673 Directory Listing
Modified 3 years ago
Wed Jan 29 03:21:18 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - In parse_config_into_ecl():
    - Updated to not return obsolete variable 'is_term_uncertain'.  The meaning
      of what is uncertain has changed, and can be deduced with the relevant
      functions of spterm.py.
    - Now using splevel.parse_Jtot() instead of bare instructions.
  - Updated parse_config_into_ectJ() to not return variable 'is_term_uncertain'.
  - In Config():
    - Removed '_is_term_uncertain' from object attributes.
    - Removed method is_term_uncertain().
  - In ConfigAlt():
    - Removed method is_term_uncertain().

adm/test/atoms/test_config.py
  - Updated calls to and unit tests of:
    - parse_config_into_ecl()
    - parse_config_into_ectJ()
  - Removed unit tests for method is_term_uncertain() in Config() and
    ConfigAlt().

adm/test/stout/test_nrg.py
  - Updated calls to parse_config_into_ectJ().

13672 Directory Listing
Modified 3 years ago
Wed Jan 29 02:52:35 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - Refactored code for parsing Jtot out of a string into function parse_Jtot().
  - Updated parse_spec_level() to use parse_Jtot().

adm/test/atoms/test_splevel.py
  - Exercised parse_Jtot() in unit tests.

13671 Directory Listing
Modified 3 years ago
Tue Jan 28 23:45:10 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - Do not validate terms that should be ignored:
    - are_term_Jtot_consistent()
    - fmt_spec_level()

adm/test/atoms/test_splevel.py
  - Added unit tests involving terms that are uncertain or should be ignored for
    functions:
    - are_term_Jtot_consistent()
    - fmt_spec_level() 
    - parse_spec_level()
    - spec_level_nist_fmt()
    - convert_spec_level_to_real()
    - convert_spec_level_to_frac()
    - convert_spec_level_to_plain()
  - Added missing unit tests appropriate for LK coupling to:
    - parse_spec_level()
    - is_spec_level()

13670 Directory Listing
Modified 3 years ago
Tue Jan 28 23:34:50 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Defined module parameter 'uncert' to hold the '?' used with uncertain terms
    on NIST.
  - Defined function is_term_mixed() to tell if the term is blank or '*' (just
    the parity).
  - In function is_term_unassigned(), which tests if the term is the integer
    part of the energy, require at least 3 digits up front.
  - Defined function ignore_term() to tell if the term is mixed, or equal to the
    energy, or just a '?'.  Such terms cannot be processed by a number of
    functions.
  - Changed the meaning of an uncertain term to mean one trailed by a '?', not
    a mixed one.
  - Defined function sanitize_term() to remove a trailing '?', if present.
  - In function is_term() ignore trailing '?'.  I.e., call sanitize_term() and
    then process normally.
  - Updated error message in validate_term().
  - Guard against uncertain terms (trailed by '?') in:
    - are_terms_equiv()
    - nlevels_term() 
    - calc_gtot()
    - valid_Jtot()
    - spec_term_nist_fmt()

adm/test/atoms/test_spterm.py
  - Exercised in unit tests:
    - is_term_mixed()
    - ignore_term()
    - sanitize_term()
  - Added unit tests against uncertain terms (with a '?') to:
    - is_term()
    - validate_term()
    - are_terms_equiv()
    - nlevels_term()
    - calc_gtot()
    - valid_Jtot()
    - spec_term_nist_fmt()

13669 Directory Listing
Modified 3 years ago
Tue Jan 28 23:16:03 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - In Config():
    - Now fill_subshells() also stores the number of electrons in the ion.
    - Removed the number of electrons from the interface of set_excitations(),
      in favor of the stored quantity.
    - Updated call to orb.n_excited().
    - Removed ground subshells from the interface of n_excited(), in favor of
      the stored list.  Method now checks that all required attributes are
      present.
    - In pprt(), now also printing the number of electrons.
  - In ConfigAlt():
    - Modified interfaces to methods set_excitations() and n_excited() to mirror
      changes in Config().  Calls to methods of the latter also updated.

adm/util/stout/nrg.py
  - Updated calls to ConfigAlt() method set_excitations().

adm/test/atoms/test_config.py
  - Updated calls in unit tests for methods n_excited() & set/get_excitations()
    of the Config() and ConfigAlt() classes. 

13668 Directory Listing
Modified 3 years ago
Tue Jan 28 23:04:15 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Updated fill_all_subshells() to enter any ancestor terms in the output list
    of subshells.
  - Updated get_excitations() to dismiss ancestor terms prior to processing.

adm/test/atoms/test_orbitals.py
  - Exercised new capabilities in unit tests.

13667 Directory Listing
Modified 3 years ago
Tue Jan 28 21:54:37 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Refactored n_excited() to use get_excitations().  Updated function interface
    to also require the number of electrons in the ion.

adm/test/atoms/test_orbitals.py
  - Updated unit tests for n_excited().

13666 Directory Listing
Modified 3 years ago
Tue Jan 28 21:19:34 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Refactored most code of ground_excitations() to function get_excitations(),
    returning a list of the number of excited electrons out of each ground state
    subshell.
  - Now ground_excitations() calls get_excitations() to acquire the list of
    excitations.
  - Renamed ground_excitations()
         to get_conf_exc_sig()

adm/test/atoms/test_orbitals.py
  - Exercised get_excitations() in unit tests.
  - Updated calls to and unit tests for ground_excitations().

adm/util/atoms/config.py
  - Updated call to ground_excitations().

13665 Directory Listing
Modified 3 years ago
Tue Jan 28 20:47:42 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Defined function is_subshell_uncertain() to tell if a '?' appears at the end
    of a subshell string.
  - Defined sanitize_subshell() to remove a trailing '?', if present.
  - Updated __parse_subshell() to use sanitize_subshell() before any processing.

adm/test/atoms/test_orbitals.py
  - Exercised is_subshell_uncertain() and sanitize_subshell() in unit tests.
  - Added unit tests to other functions in connection to the trailing '?'.

13664 Directory Listing
Modified 3 years ago
Tue Jan 28 16:53:51 2020 UTC
marios
Log:
Prepare for uncertain configurations, marked by a final '?'.
To eschew confusion, function name changes are in order.

adm/util/atoms/orbitals.py
  - Renamed is_nprim_uncertain()
         to is_nprim_mixed()
  - Renamed is_subshell_uncertain()
         to is_subshell_mixed()
  - Expanded the explanation in their docstrings.
 
adm/test/atoms/test_orbitals.py
  - Updated function calls and test function names.

13663 Directory Listing
Modified 3 years ago
Tue Jan 28 16:39:55 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Updated functions to accept uncertain configuration assignments, such as the
    neutral Al term y2D, which has a configuration of 3s2.nd.
    - Defined function is_nprim_uncertain() to tell if the principal quantum
      number is uncertain (given as 'n').
    - Updated is_Lorb() to not test for consistency between the principal
      quantum and the angular momentum if the former is uncertain.
    - Updated __parse_subshell() to not search for a numerical value for nprim,
      if uncertain.
    - Updated is_subshell() and validate_subshell() to also accept uncertain
      principal quantum numbers.
    - Updated subshell_info() to not validate nprim and Lorb, when the former is
      uncertain.
    - Defined is_subshell_uncertain() to tell if a subshell is uncertain, based
      on its principal quantum number.
    - Updated fill_all_subshells() to ignore all ancestor terms and uncertain
      subshells at the end of the configuration.  Previously, it checked only
      the final subshell for ancestor terms. Uncertain subshells are appended
      at the end of the subshell list produced by the filling algorithm.
    - Updated ground_excitations() to work with uncertain subshells in the
      excited configuration.

adm/test/atoms/test_orbitals.py
  - Added unit tests for is_nprim_uncertain() and is_subshell_uncertain().
  - Updated unit tests against input of uncertain subshells.

13662 Directory Listing
Modified 3 years ago
Sun Jan 26 16:04:33 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Updated is_term_uncert() to allow for trailing characters after the value of
    the energy in the given term.
  - Blank terms, and term of '*' are now also flagged as uncertain.

adm/test/nist/test_nrg.py
  - Exercised new functionality of is_term_energy() in unit tests from Fe I.
  - Added unit tests of level_parse_line() for picking up missing and '*' term
    values.

13661 Directory Listing
Modified 3 years ago
Sun Jan 26 14:49:19 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Modified form_name() to accept two keyword arguments for uncertain
    configurations and terms.  Currently unused.
  - In LevelName():
    - Store flags for uncertain configurations and terms.
    - Updated interface to method set() to turn the percentages into a keyword
      argument, and also added keyword arguments for uncertain configurations
      and terms.
    - Updated method form_name() to call the homonymous function with the
      additional keywords.  Also updated pprt() to report the new variables.
  - In EnergyLevel():
    - Removed all commented-out lines involving object attributes for uncertain
      configurations and terms.  These are now embedded in LevelName() and set
      only for the 'main_name' data field (attribute).
  - Removed term_is_energy(), a duplicate of is_term_energy().
  - Modified adjust_names() to set the relevant uncertainty flags of the main
    name to False, when its conf or term are reset.

adm/test/nist/test_nrg.py
  - Updated unit tests for LevelName.set().  Also, added unit test for uncertain
    conf & term.
  - Updated __compare_LevelName_objects() to also compare flags for uncertain
    conf & term.
  - In __confirm_EnergyLevel(), now using __compare_LevelName_objects() to
    compare all the values of objects, not just conf & term.
  - Removed test_term_is_energy().  Its tests are now absorbed by
    test_is_term_energy().

13660 Directory Listing
Modified 3 years ago
Sun Jan 26 03:42:39 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Defined function is_term_energy() to tell if the given term is the same as
    the integer part of the energy.
  - In level_parse_line():
    - Check if configuration and term have a trailing '?', and set uncertainty
      flags accordingly.
    - Also mark the term as uncertain if the term is the same as the energy,
      according to is_term_energy().
    - Return the flags for uncertain configuration and term.

adm/test/nist/test_nrg.py
  - Exercised is_term_energy() in unit tests.
  - Updated existing units test for level_parse_line().
    - Also added unit tests for the new capability of detecting uncertain
      configurations (trailing ?) and terms (trailing ?, (integer) energy
      values).

13659 Directory Listing
Modified 3 years ago
Sun Jan 26 03:09:52 2020 UTC
marios
Log:
adm/docs/manual/appendix-ML.tex
  - Add HTML reference to the NIST section on ionization energies as a footnote.

13658 Directory Listing
Modified 3 years ago
Sun Jan 26 02:51:10 2020 UTC
marios
Log:
adm/util/nist/refs.py
  - Remove all instances of boldface markup from journal string.  Previously,
    only the markup for the outermost grouping of <b> and </b> would be removed.

13657 Directory Listing
Modified 3 years ago
Sun Jan 26 01:25:48 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modified sanitize_term():
    - To remove all spaces before further processing (was done last).
    - To remove question marks only if the appear at the end of the string.

adm/util/nist/nrg.py
  - Removed commented-out for detecting a question mark after an energy value.
    This is already recorded as a note, when found.

adm/test/nist/test_phtml.py
  - Exercised new functionality of sanitize_term() in unit test.

adm/test/nist/test_nrg.py
  - Removed absurd test of parse_ionization(), which tried to ignore a reference
    present in the HTML data line.  Such cases cannot exist -- if the ref is
    there, that's because it has been requested.
  - Added unit test to exercise the retention of question marks in ancestry
    terms.

13656 Directory Listing
Modified 3 years ago
Sat Jan 25 18:57:41 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Include macros for formatting the configuration and spectroscopic level.

adm/docs/manual/appendix-ML.tex
  - Added Section "Ionization Potential" in Appendix on updates to NistExtractor.

adm/util/nist/nrg.py
  - Bugfix: Last column was dismissed even when references were not requested.
    Fixed.

13655 Directory Listing
Modified 3 years ago
Sat Jan 25 18:08:01 2020 UTC
marios
Log:
adm/docs/manual/appendix-ML.tex
  - In Section "Notes on Energy Values", point to Appendix "NIST Notes" for a
    complete reference of notes.

13654 Directory Listing
Modified 3 years ago
Sat Jan 25 18:01:26 2020 UTC
marios
Log:
adm/adm-nist-notes.py
  - Added script to write the table of NIST notes and explanations to a text
    file.

adm/docs/manual/appendix-notes.tex
  - Added TeX file of an (Appendix) Chapter with all NIST notes.

adm/docs/manual/man.tex
  - Added Appendix Chapter, after the Matt Lykins script updates.

adm/docs/manual/mkpdf
  - Turned into a Bash script.
  - Now runs adm/adm-nist-notes.py if the file 'NIST-notes.txt' does not exist
    before creating the PDF.

13653 Directory Listing
Modified 3 years ago
Sat Jan 25 17:44:07 2020 UTC
marios
Log:
- Renamed: adm/docs/manual/appendix.tex
       to: adm/docs/manual/appendix-ML.tex

adm/docs/manual/man.tex
  - Updated to use the new file name.

13652 Directory Listing
Modified 3 years ago
Sat Jan 25 17:33:22 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added section "Notes on Energy Values".

13650 Directory Listing
Modified 3 years ago
Sat Jan 25 03:40:11 2020 UTC
gary
Log:
svn merge -r12905:12909 ^/trunk/data/SED 
13649 Directory Listing
Modified 3 years ago
Sat Jan 25 03:35:45 2020 UTC
gary
Log:
svn merge -r13646:13648 ^/trunk 
13646 Directory Listing
Modified 3 years ago
Sat Jan 25 00:52:07 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Now printing a table of notes used in the code and their meaning near the
    end of the file -- in the comment section, before the references.  This is
    subject to the script being called with '-n' (fetch notes).

13645 Directory Listing
Modified 3 years ago
Sat Jan 25 00:44:57 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - In fmt_note_output(), turned argument 'message' to keyword.
  - In form_nrg_comment():
    - Now printing the note before the reference.
    - Now omitting the message from the note text.

adm/test/nist/test_fmt.py
  - Updated unit tests for form_nrg_comment().

13644 Directory Listing
Modified 3 years ago
Sat Jan 25 00:37:43 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modified extract_note() to separate codes with a comma.

adm/util/nist/notes.py
  - Added functionality to print a table of notes to a file handle.  The table
    is ordered alphabetically by key, which may be combined into comma-separated
    keys for identical messages (happens for '[' and ']').  Lines are folded at
    80 characters.
    - The function __prepare_table() is self-explanatory.
    - The actual formatting is done by print_table(). 

adm/test/nist/test_phtml.py
  - Updated failing test that involved '[' and ']'.

adm/test/nist/test_notes.py
  - Exercised new functions in unit tests.

13643 Directory Listing
Modified 3 years ago
Fri Jan 24 22:32:11 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Imported notes module.  (Importing nrg instead created a circular module
    dependence.) 
  - Bugfix in fmt_note_output(): Guard against empty message.
  - Updated form_nrg_comment() to new singleton module notes: removed object of
    the now obsolete Notes() class.

adm/test/nist/test_fmt.py
  - Updated tests for fmt_note_output(), and added new tests to allow for empty
    messages.
  - Updated tests for form_nrg_comment() to new module notes.py, and removed
    obsolete Notes() objects.

NistExtractor/NistExtractor.py
  - Update to new modules and interfaces.

13642 Directory Listing
Modified 3 years ago
Fri Jan 24 22:29:17 2020 UTC
fguzman
Log:
Final version of kbn() function.
13641 Directory Listing
Modified 3 years ago
Fri Jan 24 22:15:58 2020 UTC
marios
Log:
adm/util/nist/nrg.py
  - Moved infrastructure for energy notes to module notes.py

adm/util/nist/notes.py
  - Class was removed in favor of a module-wide data storage.  The module is
    effectively a singleton.

adm/test/nist/test_nrg.py
  - Moved unit test to test_notes.py.

adm/test/nist/test_notes.py
  - Content from test_nrg.py adapted to new singleton architecture.

13640 Directory Listing
Modified 3 years ago
Fri Jan 24 21:24:16 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Update to new location of Notes in nnrg.

adm/util/nist/tp.py
  - Imported missing module nist.err.

13639 Directory Listing
Modified 3 years ago
Fri Jan 24 21:22:55 2020 UTC
marios
Log:
- Moved energy Notes() class
  from: adm/util/nist/web.py
    to: adm/util/nist/nrg.py

- Moved energy Notes() class
  from: adm/test/nist/test_web.py
    to: adm/test/nist/test_nrg.py

13638 Directory Listing
Modified 3 years ago
Fri Jan 24 21:08:05 2020 UTC
marios
Log:
adm/test/nist/test_nrg.py
  - Updated to use module nist.nrg instead of nist.parse.

13637 Directory Listing
Modified 3 years ago
Fri Jan 24 20:52:57 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Updated to new modules nist.nrg and nist.tp.

13636 Directory Listing
Modified 3 years ago
Fri Jan 24 20:51:32 2020 UTC
marios
Log:
adm/util/nist/tp.py
  - Bugfix: Imported missing module util.io.ui.

adm/util/nist/nrg.py
  - Removed extraneous module util.io.ui.

13635 Directory Listing
Modified 3 years ago
Fri Jan 24 20:47:17 2020 UTC
marios
Log:
- Renamed: adm/util/nist/parse.py
       to: adm/util/nist/nrg.py

- Renamed: adm/test/nist/test_parse.py
       to: adm/test/nist/test_nrg.py

13634 Directory Listing
Modified 3 years ago
Fri Jan 24 20:43:21 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Bugfix in parse_ionization(): If the reference is in the data, but it was
    not requested, the function used to not get rid of it, which led to a
    crash.  Fixed; now the last column (ref) is always removed.
  - Renamed variable 'have_leading_percentages' to 'have_LP'.

adm/test/nist/test_parse.py
  - Updated unit test of EnergyLevel.set_percentages() to new behavior for terms
    in different coupling schemes, r13627.
  - Bugfix: Updated parse_ionization unit tests to include the flag to fetch the
    references.
    - Added unit tests to address possible values of new parameter.

13633 Directory Listing
Modified 3 years ago
Fri Jan 24 20:12:15 2020 UTC
marios
Log:
adm/util/nist/parse.py
adm/util/nist/tp.py
  - Moved definitions for classes RadTrans() and AllRadTrans() to tp.py module.

adm/test/nist/test_parse.py
adm/test/nist/test_tp.py
  - Moved unit tests for these classes to test_tp.py.

13632 Directory Listing
Modified 3 years ago
Fri Jan 24 17:51:54 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added Section "Duplicate Transitions".

13631 Directory Listing
Modified 3 years ago
Fri Jan 24 17:31:13 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added sections on "References" and "Accuracy of Transition Probability".

13630 Directory Listing
Modified 3 years ago
Fri Jan 24 16:49:55 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Comments for energy levels were generated on the condition that the
    secondary configuration be defined.  This prevented other data (notes and/or
    refcodes) from being printed to the output file when they could have been.
    Fixed.
  - To avoid repetition of bibliographical records being written to energy files
    the lists for levels and ionization potential have been joined into one that
    is printed instead.  It also returned to main(), and used with the saving of
    the master list of references (including for line data).

13629 Directory Listing
Modified 3 years ago
Fri Jan 24 15:44:08 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added section on changes to level notation in output of NistExtractor.
  - Added example of leading components in different coupling schemes, of which
    one is not dominant.
  - Other texts updates.

adm/docs/manual/adm-macros.tex
  - Defined commands for species and spectra designations.

adm/docs/manual/man.tex
  - Moved package imports to head_info.tex.

adm/docs/manual/head_info.tex
  - Also removed Hazy-related macros (already commented out).

13628 Directory Listing
Modified 3 years ago
Fri Jan 24 04:54:27 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added subsections on "Additional State Information",
    and "Miscellaneous Changes".

13627 Directory Listing
Modified 3 years ago
Fri Jan 24 04:51:34 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Print percentages in the output even for different coupling schemes.

13626 Directory Listing
Modified 3 years ago
Fri Jan 24 04:22:49 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - BUGFIX: In parse_lp_column(), inner function parse_portion(), the code
    would bail when it would find more than one strings in the configuration.
    Now, it has been changed to concatenate all strings into one, and bail only
    if the produced string is not a configuration.
  - Bugfix: Imported missing nist.err module.

13625 Directory Listing
Modified 3 years ago
Fri Jan 24 02:57:43 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Reworked subsection "Original Data".

13624 Directory Listing
Modified 3 years ago
Fri Jan 24 02:39:57 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Updated Appendix section on User Interface.

13623 Directory Listing
Modified 3 years ago
Fri Jan 24 02:26:58 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Do not disable output to STDOUT with the '-s' option.
  - Updated comments on '-s' option to emphasize that the script does not keep
    completely quiet.

13622 Directory Listing
Modified 3 years ago
Fri Jan 24 02:08:39 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Added command-line option '--ip' to extract the ionization potential of the
    species.

13621 Directory Listing
Modified 3 years ago
Fri Jan 24 01:13:07 2020 UTC
gary
Log:
this will be c17.02
13620 Directory Listing
Modified 3 years ago
Fri Jan 24 01:04:22 2020 UTC
gary
Log:
update md5 checksum file
13619 Directory Listing
Modified 3 years ago
Thu Jan 23 23:06:37 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Defined function form_tp_comment() to put together comment for .tp files.

adm/test/nist/test_fmt.py
  - Exercised new function in unit tests.

NistExtractor/NistExtractor.py
  - Used new function instead of staight-up code in get_transitions().

13618 Directory Listing
Modified 3 years ago
Thu Jan 23 22:35:21 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Renamed form_comment()
         to form_nrg_comment()
        and parse_comment()
         to parse_nrg_comment()

adm/test/nist/test_fmt.py
  - Updated unit tests for form_nrg_comment() and parse_nrg_comment().

NistExtractor/NistExtractor.py
adm/util/stout/nrg.py
  - Updated calls to form_nrg_comment() and parse_nrg_comment().

13617 Directory Listing
Modified 3 years ago
Thu Jan 23 22:11:42 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Added command-line option to fetch the 'Leading percentages' column.
    No longer done by default.
  - Now bibliography is fetched only if requested.

adm/util/nist/parse.py
  - In parse_ionization(), the bibliographical reference is processed only if
    requested on the web call to NIST.

13616 Directory Listing
Modified 3 years ago
Thu Jan 23 21:20:53 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Added command line option '--html' to save original HTML tables.
    It is not done by default anymore.

13615 Directory Listing
Modified 3 years ago
Thu Jan 23 20:55:05 2020 UTC
gary
Log:
adjust grains in sim
13614 Directory Listing
Modified 3 years ago
Thu Jan 23 20:46:47 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/util/nist/files.py
  - Renamed append_to_unaccepted_TP_file()
         to append_to_ignored_TP_file()

13613 Directory Listing
Modified 3 years ago
Thu Jan 23 20:38:57 2020 UTC
marios
Log:
adm/util/nist/files.py
  - Broke up functions get_energy_filenames() and get_transition_filenames()
    into separate functions one for each filename they'd return:
    - get_html_energy_filename()
    - get_energy_filename()
    - get_html_transition_filename()
    - get_ignored_transition_filename()
    - get_transition_filename()

NistExtractor/NistExtractor.py
  - Updated calls.

13612 Directory Listing
Modified 3 years ago
Thu Jan 23 20:19:13 2020 UTC
gary
Log:
update monitors on cloud9 following change
in s-p he-like collisions in r13594
13611 Directory Listing
Modified 3 years ago
Thu Jan 23 20:13:13 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Moved all file-related functions from the script into module below.

adm/util/nist/files.py
  - Added new module.

13610 Directory Listing
Modified 3 years ago
Thu Jan 23 19:44:07 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed flag for uncertain levels from data of EnergyLevel() objects.
  - Added commented-out checks for uncertain configuration, term, and energy in
    level_parse_line().  The checks must be done there, before the data fields
    are sanitized.

adm/test/nist/test_parse.py
  - Updated unit tests to ignore the uncertainty flag in tests of
    EnergyLevel.set() and EnergyLevel.set_spec_levels().

13609 Directory Listing
Modified 3 years ago
Thu Jan 23 19:06:19 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Updated form_name() to produce a valid state-information string when the
    entire term is given, instead of a (J-specific) level.

adm/test/nist/test_parse.py
  - Exercised new functionality in form_name() and LevelName.form_name() unit
    tests.

13608 Directory Listing
Modified 3 years ago
Thu Jan 23 15:02:48 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Defined function fmt_config_output_noJ() to generate output for terms, that
    is, (NIST) levels with no Jtot information.

adm/test/atoms/test_config.py
  - Exercised fmt_config_output_noJ() in unit tests.

13607 Directory Listing
Modified 3 years ago
Thu Jan 23 14:36:21 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Extracted code from spec_level_nist_fmt() to format term in the NIST idiom
    as a stand-alone function, spec_term_nist_fmt().

adm/util/atoms/splevel.py
  - Now calling spec_term_nist_fmt() from spec_level_nist_fmt(), in lieu of the
    extracted code.

adm/test/atoms/test_spterm.py
  - Exercised spec_term_nist_fmt() in unit tests.

13606 Directory Listing
Modified 3 years ago
Thu Jan 23 04:09:47 2020 UTC
marios
Log:
Missed module file in previous commit...

13605 Directory Listing
Modified 3 years ago
Thu Jan 23 04:08:23 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Adapted to allow for missing values of Jtot, if the statistical weight is
    present.  The latter refer to the entire term in such cases.

adm/util/nist/parse.py
  - In EnergyLevel.set(), made validation of Jtot values occur only if these
    are not None.

13604 Directory Listing
Modified 3 years ago
Thu Jan 23 03:52:15 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Updated script to current state of parse.py.
  - In get_energies():
    - Removed all 'temp_' prefixes from variables.
    - Stopped skipping levels with no term and no Jtot.
    - Now resolving mixed terms ('*') before entering to level list.  Removed
      all relevant post-processing.
    - Now using nist.fmt.form_comment() to prepare comment for output in energy
      files, instead of putting it together in the output loop.
    - Now using Stout format function for energy output records.

13603 Directory Listing
Modified 3 years ago
Thu Jan 23 03:41:56 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Imported missing module ui.py from subpackage util.io.

adm/test/nist/test_parse.py
  - Exercised AllRadTrans.insert() in unit tests.

13602 Directory Listing
Modified 3 years ago
Thu Jan 23 02:55:52 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In RadTrans.set(), check that float value for Einstein A is also positive.

adm/test/nist/test_parse.py
  - Added unit tests for RadTrans.set().

13601 Directory Listing
Modified 3 years ago
Thu Jan 23 02:29:19 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed function convert_energy_to_float().

adm/test/nist/test_parse.py
  - Removed unit tests for convert_energy_to_float().

13600 Directory Listing
Modified 3 years ago
Thu Jan 23 02:01:07 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed now obsolete functions:
    - one_true_in_list()
    - level_exists()
    - resolve_uncertain()
    - is_any_level_uncertain()
    These were related to resolving mixed terms ('*') in post-processing.
    However, these are now resolved during normal processing by adjust_names().

13599 Directory Listing
Modified 3 years ago
Thu Jan 23 01:54:44 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed EnergyLevel.set_statw(), because mixed terms ('*') are no longer
    resolved in post-processing, so the statistical weights are set before the
    level is added to the level list.
  - In adjust_statw(), remove comment talking about resolving mixed terms ('*')
    in post-processing.

adm/test/nist/test_parse.py
  - Removed EnergyLevel.set_statw() unit tests.

13598 Directory Listing
Modified 3 years ago
Thu Jan 23 01:40:59 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In EnergyLevel():
    - Replaced data fields 'config' and 'term' with 'main_name' which holds a
      LevelName() object.
    - Renamed field 'J' to 'Jtot'.
    - Removed field 'termbare'.
    - In set(), added type checks.
    - In set_spec_levels(), removed guard against term of '*'.

adm/test/nist/test_parse.py
  - Updated all calls to unit tests to make use of LevelName() objects for
    the main name of the term. 

13597 Directory Listing
Modified 3 years ago
Wed Jan 22 19:00:51 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Updated debugging statements in adjust_names().

13596 Directory Listing
Modified 3 years ago
Wed Jan 22 18:59:01 2020 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - BUGFIX in are_subshell_lists_equiv(): Logic allowed for an ancestor term to
    be compared against a subshell.  Fixed.

13595 Directory Listing
Modified 3 years ago
Wed Jan 22 18:30:58 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In LevelName():
    - Defined attribute (data field) 'is_set' to tell if an object has been
      initialized with the set() method.
    - Added keyword argument to pprt() to limit print out to set() values.
  - In swap_names():
    - Renamed to adjust_names().  The function now adjusts the internal data
      of LevelName() objects in place, without requiring return of any (new)
      variables.
    - The function takes up the slack left by 'parse_lp_column', and sets the
      configuration and term of the first leading components as needed, provided
      that the nominal term is known.
      It also swaps them LP names around (but in place), as before.
    - If the term is unknown, it sets the configurations of the components as
      needed, and sets the nominal term to that of the either component, if
      known, and if both components are in the same coupling scheme and have the
      same configuration.
    - Finally, if the first component is the same as the nominal, but its
      configuration retains ancestry information, while the nominal does not,
      the former is used as the latter.

adm/test/nist/test_parse.py
  - Exercised adjust_names() in unit tests.

13594 Directory Listing
Modified 3 years ago
Wed Jan 22 12:56:47 2020 UTC
gary
Log:
svn merge -r13513:13514 ^/trunk/source 
13593 Directory Listing
Modified 3 years ago
Wed Jan 22 12:51:49 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Changes to function parse_leading_percentages():
    - Renamed to parse_lp_column().
    - Dropped configuration and term from interface of parse_lp_column().
      Setting blank fields will be taken care of by a different function.
    - Refactored (almost) repetitive code into inner function, parse_portion(),
      which extracts any of the configuration, term, and percentage that are
      present, and returns them as LevelName() object.
    - Changed behavior to now parse the column even when a second percentage is
      not present.  This typically recovers the percentage of the 'official'
      level name, i.e., according to its Configuration and Term columns.

adm/test/nist/test_parse.py
  - Exercised function parse_lp_column() in unit tests.

13592 Directory Listing
Modified 3 years ago
Wed Jan 22 03:45:47 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Updated adjust_statw():
    - It now accepts int, float, and str values for statw and Jtot.
    - Replaced checks on term validity with a call to spterm.is_term().

adm/test/nist/test_parse.py
  - Exercised adjust_statw() in unit tests.

13591 Directory Listing
Modified 3 years ago
Wed Jan 22 03:27:39 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed optional keyword 'current_line' from convert_energy_to_float().

13590 Directory Listing
Modified 3 years ago
Wed Jan 22 03:13:49 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Renamed adjust_J_statw() to adjust_statw().  Simplified its logic and
    removed error messages that obfuscated its purpose.  The function now
    returns only the statistical weight.

13589 Directory Listing
Modified 3 years ago
Wed Jan 22 02:34:04 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Broke function swap_names() out of parse_leading_percentages().  The new
    function used to be listed at the end of the latter.
  - Removed Jtot from argument list of parse_leading_percentages().

13588 Directory Listing
Modified 3 years ago
Wed Jan 22 00:34:14 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In adjust_J_statw():
    - Turned 'current_line' and 'silent' into keyword arguments.  Adjusted print
      statements accordingly.
    - Removed useless if-branch for term of '*'.  It was setting the statistical
      weight to None, even though it was already None or empty string.

13587 Directory Listing
Modified 3 years ago
Tue Jan 21 22:33:33 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Removed unused function convert_J_to_float().

13586 Directory Listing
Modified 3 years ago
Tue Jan 21 22:31:56 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In convert_energy_to_float(), turned 'current_line' into optional keyword.
    Output of relevant portion of error message contigent on the line's
    presence.

adm/test/nist/test_parse.py
  - Exercised convert_energy_to_float() in unit tests.

13585 Directory Listing
Modified 3 years ago
Tue Jan 21 22:11:57 2020 UTC
marios
Log:
adm/test/nist/test_parse.py
  - Exercised term_is_energy() in unit tests.

13584 Directory Listing
Modified 3 years ago
Tue Jan 21 21:56:19 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In level_parse_line(), change the default value of 'note' from None to
    empty string.

adm/test/nist/test_parse.py
  - Exercised level_parse_line() in unit tests.

13583 Directory Listing
Modified 3 years ago
Tue Jan 21 19:54:58 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Bugfix in EnergyLevel.set_percentages(): Check that neither percentage is
    None when setting the percentages string for output.

13582 Directory Listing
Modified 3 years ago
Tue Jan 21 19:44:16 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Modify extract_note() to return empty string when no note is present.

adm/test/nist/test_phtml.py
  - Updated unit tests.

13581 Directory Listing
Modified 3 years ago
Tue Jan 21 04:43:18 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In parse_ionization(), removed all leading and trailing spaces from all
    retrieved data.

adm/test/nist/test_parse.py
  - Exercised parse_ionization() in unit tests.

13580 Directory Listing
Modified 3 years ago
Tue Jan 21 04:03:40 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In LevelName():
    - Initialized data fields 'spec_level' and 'spec_config' to None.  That is,
      these are now created when the object is created, not when form_name() is
      called.
    - Added method pprt() for pretty-printing of data structure.
  - In EnergyLevel():
    - In set(), add check against None values in the percentage fields of the
      name1/2 fields.
    - Removed superfluous method can_form_comment().

13579 Directory Listing
Modified 3 years ago
Tue Jan 21 03:18:42 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Imported missing modules from util.io: err.py and log.py.
  - In EnergyLevel():
    - In set(), added check that the sum of two percentages from the same
      coupling scheme do not add up to more than 100%.
    - In set_percentages(), the percentages are not printed unless they are
      computed in the same coupling scheme.

adm/test/nist/test_parse.py
  - Exercised EnergyLevel.set_percentages() in unit tests.

13578 Directory Listing
Modified 3 years ago
Tue Jan 21 02:50:34 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - In EnergyLevel.set_statw():
    - Make 'silent' a keyword argument with a default value of True, so that it
      is not required to pass a value to the method.
    - Remove test of term being '*' for running the method.  All that is needed
      is for the statistical weight to not be defined.

adm/test/nist/test_parse.py
  - Exercised EnergyLevel.set_statw() in unit tests.

13577 Directory Listing
Modified 3 years ago
Tue Jan 21 02:25:14 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Bugfix in EnergyLevel.set_spec_levels(): Set the names of the configurations
    in the Leading Percentages column only if defined.

adm/test/nist/test_parse.py
  - Exercised EnergyLevel.set_spec_levels() in unit tests.

13576 Directory Listing
Modified 3 years ago
Tue Jan 21 00:38:17 2020 UTC
marios
Log:
adm/test/nist/test_parse.py
  - Exercised EnergyLevel.set() in unit tests.

adm/util/nist/parse.py
  - Renamed EnergyLevel.configuration
         to EnergyLevel.config 

13575 Directory Listing
Modified 3 years ago
Mon Jan 20 23:31:22 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Defined function form_name() to standardize the 'name' of NIST levels.
    Used from LevelName.form_name() and EnergyLevel.set_spec_levels().
  - In EnergyLevel():
    - Renamed data fields 'other_name_1/2' to 'name1/2'.
    - Replaced stray data fields 'ld1_config, ld1_term, ld1_pc' (and 'ld2'
      equivalents) with LevelName() objects.
    - Defined method can_form_comment().
  - Using an int instead of a float for the statistical weight in set_statw()
    and in adjust_J_statw().
  - Updated parse_leading_percentages() to return two LevelName() objects
    instead of 6 strings for the configuration, term, and percentage of the
    two entries in the column.
    - Renamed variable 'ld2_is_alt' to 'have_other_scheme', a more appropriate
      name.

adm/test/nist/test_parse.py
  - Exercised function parse_name() and LevelName methods in unit tests.

13574 Directory Listing
Modified 3 years ago
Mon Jan 20 23:26:34 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Updated calc_gtot*() family of functions to return positive ints.
    Results validated before return.

adm/test/atoms/test_spterm.py
  - Updated unit tests for calc_gtot*() family of functions.
  - Fixed broken calls to test_are_terms_equiv().

13573 Directory Listing
Modified 3 years ago
Mon Jan 20 22:40:16 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Updated EnergyRecord.compose_line() to validate that the statistical given
    is both an integer _and_ positive (not checked before).

13572 Directory Listing
Modified 3 years ago
Mon Jan 20 22:36:41 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - No longer count unassigned or uncertain terms as valid.

adm/test/atoms/test_spterm.py
  - Adjusted unit tests of is_term().
  - Exercised validate_term() in unit tests.

13571 Directory Listing
Modified 3 years ago
Mon Jan 20 05:06:15 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Defined function is_term_uncertain() to check if the term is given as '*'.

adm/test/atoms/test_spterm.py
  - Exercised functions is_term_unassigned() and is_term_uncertain() in unit
    tests.

13570 Directory Listing
Modified 3 years ago
Mon Jan 20 03:24:13 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Defined function form_comment() to prepare a NIST level's comment string for
    output to Stout files.

adm/test/nist/test_fmt.py
  - Exercised new function in unit tests.

adm/util/nist/web.py
  - Added classmethod Notes.validate().

13569 Directory Listing
Modified 3 years ago
Sun Jan 19 20:50:06 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - In parse_config_into_ectJ(), use splevel.validate_term_Jtot_consistent()
    instead of simply checking that a valid Jtot has been given.
  - Defined function is_spec_config(), a bool wrapper around function
    parse_config_into_ectJ().
  - Defined function validate_spec_config(), which exits, if is_spec_config()
    returns False.

adm/test/atoms/test_config.py
  - Exercised new functions in unit tests.
  - Added unit tests of parse_config_into_ectJ() with examples from FeII that
    involve a term separated by space (z 6P*), and a term in the LK/JL coupling
    scheme notation.
    These are also exercised by the unit tests of the new functions.

13568 Directory Listing
Modified 3 years ago
Sun Jan 19 02:58:13 2020 UTC
marios
Log:
adm/test/atoms/test_config.py
  - Fixed inconsistent term/Jtot combinations in a few unit tests.

13567 Directory Listing
Modified 3 years ago
Sun Jan 19 02:45:19 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - Remove superfluous calls in validate_term_Jtot_consistent().
  - Enforce term/Jtot consistency in spec_level_nist_fmt().

adm/test/atoms/test_splevel.py
  - Remove illegal unit test.

13566 Directory Listing
Modified 3 years ago
Sun Jan 19 02:27:25 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - Defined are_term_Jtot_consistent() to check that a Jtot value is consistent
    with the term given, and validate_term_Jtot_consistent() to enforce
    consistency.
  - Updated fmt_spec_level() to require consistency between the Jtot and term.
  - Updated is_spec_level() to check for consistency.

adm/test/atoms/test_splevel.py
  - Exercised new functions in unit tests.
  - Fixed a broken unit test of test_fmt_spec_level() and added several others
    in coupling schemes other than LS.

13565 Directory Listing
Modified 3 years ago
Sun Jan 19 00:59:32 2020 UTC
marios
Log:
adm/test/atoms/test_spterm.py
  - Added unit test to make sure that we get the right range with
    __get_tuple_from_range() when both limits are 0.

13564 Directory Listing
Modified 3 years ago
Sun Jan 19 00:58:03 2020 UTC
marios
Log:
adm/test/atoms/test_jtot.py
  - Added tests for input of 0 value as int, float, or str.

13563 Directory Listing
Modified 3 years ago
Sun Jan 19 00:48:30 2020 UTC
marios
Log:
adm/util/atoms/jtot.py
  - Bugfix: In Jtot_tofloat(), the function returned an invalid Jtot value when
    the value was not a str.  Changed to do that if the input value is not a
    valid Jtot.

13562 Directory Listing
Modified 3 years ago
Sun Jan 19 00:40:32 2020 UTC
marios
Log:
adm/test/test_types.py
  - Added tests for int and float values of 0.

13561 Directory Listing
Modified 3 years ago
Sun Jan 19 00:07:06 2020 UTC
marios
Log:
adm/util/atoms/splevel.py
  - Updated is_spec_level() to check that the total angular momentum is
    consistent with its spectroscopic term.

adm/test/atoms/test_splevel.py
  - Fixed a number of unit tests that were not using consistent terms and jtot.
    Removed superfluous tests.

13560 Directory Listing
Modified 3 years ago
Sat Jan 18 23:51:38 2020 UTC
marios
Log:
adm/util/atoms/spterm.py
  - Defined functions to obtain the list of valid Jtot values for a given term.
    The functions follow their gtot counterparts.  They are:
    - __get_tuple_from_range() - helper function 
    - valid_Jtot_LS()
    - valid_Jtot_jj_or_J1J2()
    - valid_Jtot_J1K_or_LK()
    - valid_Jtot()

adm/test/atoms/test_spterm.py
  - Exercised new functions in unit tests.

13559 Directory Listing
Modified 3 years ago
Sat Jan 18 17:57:03 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Renamed variable in get_energies() from 'temp_leading_pct' to
    'temp_lp_column' to more accurately reflect its content.

13558 Directory Listing
Modified 3 years ago
Sat Jan 18 17:51:28 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Renamed variable in level_line_parse() from 'pct' to 'lp_column' to more
    accurately reflect its content.

13557 Directory Listing
Modified 3 years ago
Sat Jan 18 17:47:27 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Removed unneeded module imports.

adm/util/nist/parse.py
  - Added missing module imports.
  - Defined missing DEBUGMODE.
  - Brought energy-related classes to top to energy section.
  - Restored level_parse_line() to return data of LevelName() object, instead of
    an object of that class.

13556 Directory Listing
Modified 3 years ago
Sat Jan 18 17:23:13 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Extracted parsing classes and functions I (M.C.) have added to Matt's
    scripts into module parse.py of the adm.util.nist subpackage, and removed
    from this script.

13555 Directory Listing
Modified 3 years ago
Sat Jan 18 17:10:50 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Added missing parse_ionization().

13554 Directory Listing
Modified 3 years ago
Sat Jan 18 17:05:22 2020 UTC
marios
Log:
adm/util/nist/parse.py
  - Extracted functions and classes I added to NistExtractor.py as a module.

adm/test/nist/test_parse.py
  - Added empty test file.

13553 Directory Listing
Modified 3 years ago
Sat Jan 18 15:45:03 2020 UTC
marios
Log:
adm/docs/manual/appendix.tex
  - Added appendix.

adm/docs/manual/adm-macros.tex
  - Added macros for subpackages of the adm.util.
  - Added macros for Matt Lykin's scripts.

adm/docs/manual/man.tex
  - Added Appendix before References section.

13552 Directory Listing
Modified 3 years ago
Sat Jan 18 00:17:21 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Added optional keyword to interface of fmt_config_output() to not reprocess 
    the level.  This can be used to keep the output string close to the input
    ones.  The default is to reformat.

adm/test/atoms/test_config.py
  - Updated unit test definition to accommodate the optional keyword.
  - Exercised new functionality in unit tests.

13551 Directory Listing
Modified 3 years ago
Fri Jan 17 23:11:44 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Update EnergyRecord.compose_line() to put configuration within double quotes
    if they are missing.

adm/test/stout/test_nrg.py
  - Exercised new functionality in unit tests.

13550 Directory Listing
Modified 3 years ago
Fri Jan 17 22:54:46 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Further updates to module docstring.

13549 Directory Listing
Modified 3 years ago
Fri Jan 17 22:25:23 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Update module docstring.

13548 Directory Listing
Modified 3 years ago
Fri Jan 17 22:23:01 2020 UTC
fguzman
Log:
Low levels might produce oscilations so a minimum level for extrapolation to affect might need to be set

Test for assessing K() matrix elements under development

13547 Directory Listing
Modified 3 years ago
Fri Jan 17 04:24:17 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Assembled percentages strings was not stored in the correct variable
    and was not written in the output file.  Fixed.

adm/util/nist/fmt.py
  - Defined function prep_pcts_output() to prepare the percentage string as it
    appears in the output file.

adm/test/nist/test_fmt.py
  - Exercised new function in unit tests.

13546 Directory Listing
Modified 3 years ago
Fri Jan 17 01:24:46 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Alternate notations (e.g., Fe_1 and Fe+0) fetched spectrum for Fe_II
    instead of Fe_I.  The problem came up because the same variable was used to
    hold both the ionic and the spectroscopic charge, with different meaning at
    different points.  Fixed by using two separate variables.
  - Changed ambiguous variable name 'ion_int' to the explicit 'spec_charge'.

adm/util/nist/fmt.py
  - bugfix: Omitted to print string in format (had left out '{}').  Fixed.

adm/util/ptable/spectra.py
  - bugfix: Omitted to print string in format (had left out '{}').  Fixed.

13545 Directory Listing
Modified 3 years ago
Fri Jan 17 00:08:00 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Datasets exist (e.g., Fe_I) that include the same transition twice,
    as two transitions of different type (e.g., M1 and E2).  The method
    AllRadTrans.insert() used to abort in such a case, assuming an software
    error has been triggered.  It has now been modified to let the user decide
    whether to ignore the duplicate transition, use it instead of the existing,
    or abort the program.

13544 Directory Listing
Modified 3 years ago
Thu Jan 16 23:10:27 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Restored functionality of printing output to screen by default.
    Replaced option '-v' (verbose) with '-s' (silent) to keep the script quiet.
  - Now resolving python3 instead of specifying a certain python2 executable.
  - Added missing record in changelog.
  - Bugfix: Added missing variable for the current line data to the interface
    of function adjust_J_statw() -- used in warnings.

13543 Directory Listing
Modified 3 years ago
Thu Jan 16 22:41:29 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Guard against missing content in 'Leading percentages' column.

13542 Directory Listing
Modified 3 years ago
Thu Jan 16 20:48:39 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Bugfix: Command expected in all caps.  Fixed.

13541 Directory Listing
Modified 3 years ago
Thu Jan 16 20:37:58 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Defined command \ADM.

adm/docs/manual/algorithm.tex
adm/docs/manual/commands.tex
adm/docs/manual/examples.tex
adm/docs/manual/man.tex
  - Use command in lieu of plain text.

13540 Directory Listing
Modified 3 years ago
Thu Jan 16 18:58:32 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added Section "ADAS Data Acquisition & Preparation".

adm/docs/manual/images/adm-flowchart-adas-acquisition.pdf
adm/docs/manual/images/adm-flowchart-nist-acquisition.pdf
  - Added flowcharts for fetching and preparing the ADAS and NIST data.

13539 Directory Listing
Modified 3 years ago
Thu Jan 16 18:55:46 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - In Section "Setup" clarified that only the 'top' directories are created if
    they don't already exist, and that the subdirectories for the species are
    always created by adm-setup.py.  This means that running the software is
    mandatory.

adm/docs/manual/images/adm-flowchart-setup.pdf
  - Updated flowchart to remove curved corners, which are suggestive of an
    optional step.

13538 Directory Listing
Modified 3 years ago
Thu Jan 16 17:51:19 2020 UTC
marios
Log:
adm/docs/manual/adm-macros.tex
  - Added file that holds macros related to the ADM software.

adm/docs/manual/images/adm-flowchart-setup.pdf
  - Added flowchart for initial operations of software.

adm/docs/manual/algorithm.tex
  - Added Section "Setup" describing the procedure for getting started with an
    ADM run.  Used flowchart added above for illustration.
  - Padded Chapter introduction with whitespace, and started first section on a
    new page.

13537 Directory Listing
Modified 3 years ago
Thu Jan 16 16:12:27 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Used new flowchart with "Setup" starting point, in lieu of the one without.
  - Updated text to refer to the new figure.

13536 Directory Listing
Modified 3 years ago
Thu Jan 16 15:58:35 2020 UTC
marios
Log:
adm/docs/manual/images/adm-flowchart-vertical-sections.pdf
  - Updated figure.

adm/docs/manual/images/adm-flowchart-vertical-sections-setup.pdf
  - Added flowchart, similar to adm-flowchart-vertical-sections.pdf, but also
    contains a starting point called "Setup".

13535 Directory Listing
Modified 3 years ago
Thu Jan 16 00:58:40 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added introduction to Chapter 2, "Algorithm Description", with figure of
    operation flowchart.

adm/docs/manual/images
adm/docs/manual/images/adm-flowchart-vertical-sections.pdf
  - Added directory for figures and its first denizen.

13534 Directory Listing
Modified 3 years ago
Wed Jan 15 22:31:22 2020 UTC
marios
Log:
Renamed: adm/adm-write-stout.py
     to: adm/adm-export-stout.py

13533 Directory Listing
Modified 3 years ago
Wed Jan 15 20:27:52 2020 UTC
marios
Log:
adm/docs/manual/algorithm.tex
  - Added new file to hold a chapter on the description of the package
    algorithm.

adm/docs/manual/intro.tex
  - Moved Sections "Excitation signature" and "Algorithm Description" to the new
    file.

adm/docs/manual/man.tex
  - Include new file as the first chapter after the introduction.

13532 Directory Listing
Modified 3 years ago
Wed Jan 15 17:03:58 2020 UTC
marios
Log:
adm/docs/manual/intro.tex
  - Added Section 'Collision files, ".coll"'

13531 Directory Listing
Modified 3 years ago
Wed Jan 15 16:13:58 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Added changelog.

13530 Directory Listing
Modified 3 years ago
Wed Jan 15 16:03:30 2020 UTC
marios
Log:
adm/docs/manual/intro.tex
  - In Section 'Energy files, ".nrg"', explained purpose of files.
  - Added Section 'Transition files, ".tp"'

13529 Directory Listing
Modified 3 years ago
Wed Jan 15 15:49:53 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Ignore references for line data in transition files.

13528 Directory Listing
Modified 3 years ago
Wed Jan 15 01:07:46 2020 UTC
marios
Log:
source/atmdat.h
  - Removed declaration of removed function atmdat_STOUT_readin_nrg().

13527 Directory Listing
Modified 3 years ago
Wed Jan 15 01:01:45 2020 UTC
marios
Log:
Merged from mainline r13512 through r13526
13526 Directory Listing
Modified 3 years ago
Wed Jan 15 00:57:20 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Added command-line option (-n) to control whether notes on energy values are
    saved or not.  This preserves the functionality of the script as it is on
    the trunk.
  - Bugfix in get_energies(): Notes were printed only if refcodes or alternate
    state information were printed as well.  Fixed to print any of them as
    comments, regardless of whether the others are present or requested.

adm/adm-fetch-nist.py
  - Added command-line option (-n) to pass to NistExtractor.py.

13525 Directory Listing
Modified 3 years ago
Tue Jan 14 23:37:14 2020 UTC
marios
Log:
adm/docs/manual/intro.tex
  - Improved language in Section "Directories & Filenames".
  - Added subsection on the structure of energy files ("Energy files, '.nrg'")
    to Section "Files & their Contents".

13524 Directory Listing
Modified 3 years ago
Tue Jan 14 22:46:31 2020 UTC
marios
Log:
latex/common/macros.tex
  - Added macro definition for unit of wavenumbers, \wn.

13523 Directory Listing
Modified 3 years ago
Tue Jan 14 20:18:51 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Updated Energies.init() to ingest NIST note as a dict with two entries of
    'code' and 'message'.
  - Updated Energies.pprt() to print the note, if present, as the last field
    reported.

13522 Directory Listing
Modified 3 years ago
Tue Jan 14 19:35:56 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Defined functions:
    - fmt_note_output() to handle printing to note to files.
    - get_note() to extract note from the string printed in files.
    - parse_note() to break the output of get note into a code and message.
  - Updated parse_comment() to use get_note().
  - Broke the ':' from the note sentinel into a separator parameter.

adm/test/nist/test_fmt.py
  - Added unit tests for the new functions.

NistExtractor/NistExtractor.py
  - Updated get_energies() to use fmt_note_output().

13521 Directory Listing
Modified 3 years ago
Tue Jan 14 04:39:57 2020 UTC
marios
Log:
adm/util/nist/fmt.py
  - Added note sentinel parameter, to be used in writing and reading comment
    strings in output files.
  - Adapted parse_comment() to also return the note.

adm/test/nist/test_fmt.py
  - Added unit tests to exercise return of the note found in comment strings.

NistExtractor/NistExtractor.py
  - Use fmt.py note parameter, instead of bare string.

13520 Directory Listing
Modified 3 years ago
Tue Jan 14 02:12:23 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Extract note code on the energy value, if present, and append it to the
    comment prepended by 'note:', and followed by the note's explanation.

13519 Directory Listing
Modified 3 years ago
Tue Jan 14 02:07:11 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Bugfix in extract_note(): A greedy pattern was used in the regular
    expression used to get the note code.  This led to the wrong string being
    picked up when the note was missing.  Fixed by using a non-greedy pattern,
    i.e., '.*?' insteaed of '.+?'.

adm/test/nist/test_phtml.py
  - Added unit test for extract_note() that failed in a test run of
    adm-fetch-nist (with H I).

13518 Directory Listing
Modified 3 years ago
Mon Jan 13 21:54:35 2020 UTC
marios
Log:
adm/util/nist/web.py
  - Defined Notes() class, which handles downloading the notes that appear as
    popups on the NIST web interface.  It also provides access to the message
    for each defined note.

adm/test/nist/test_web.py
  - Exercised methods of the Notes() class.

13517 Directory Listing
Modified 3 years ago
Mon Jan 13 20:48:42 2020 UTC
marios
Log:
adm/util/nist/phtml.py
  - Added function to get note from NIST ASD record.  These are listed within
    HTML anchors to JavaScript functions (*Balloon()).  The function extracts
    the note; its meaning (message) is stored in a different file.

adm/test/nist/test_phtml.py
  - Exercised new function in unit tests.

13515 Directory Listing
Modified 3 years ago
Mon Jan 13 17:35:53 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Bugfix: Function parse_ionization() used the second to last column for the
    ionization energy, regardless of whether a 'Leading percentages' column is
    present in the HTML table or not.  Fixed by passing the relevant variable to
    the function, and skipping the column, if needed.
    - Changed the order of reading the ionization potential and parsing the
      table header (to tell if the 'Leading percentages' column is present) in
      order to highlight the dependence of the former on the latter. 
  - Bugfix: "Collapsed" level data may appear, which involve no term or Jtot,
    e.g., H I levels n=2 and n=40.  The script crashes for these, because it is
    designed to operate on resolved levels.  These levels are now ignored.
    - As a corollary, transitions involving levels missing either the term or
      the configuration are also ignored.
  - Added script docstring, including log of major changes to its behavior.

13513 Directory Listing
Modified 3 years ago
Fri Jan 10 22:14:58 2020 UTC
marios
Log:
adm/util/cloudy/stout_refs.py
  - Incorrect validation call of dict, instead of list.  Fixed.

13512 Directory Listing
Modified 3 years ago
Fri Jan 10 21:44:57 2020 UTC
marios
Log:
Merged from mainline r12154 through 13511
13511 Directory Listing
Modified 3 years ago
Fri Jan 10 21:40:42 2020 UTC
marios
Log:
source/Makefile
source/atmdat_chianti.cpp
  - Reverted obsolete changes to Cloudy source.  These were needed at the time
    they were made, and were accessed by Python code through a Cython interface.
    In the current implementation, native Python functions are used, instead.
    This change largely decouples ADM from Cloudy.

13510 Directory Listing
Modified 3 years ago
Fri Jan 10 21:31:02 2020 UTC
marios
Log:
adm/util/cloudy/icloudy.pyx
adm/util/cloudy/setup_icloudy.py
  - Removed obsolete Cython files.

adm/util/register/levels.py
  - Updated docstring of class LevelIndexMap().

13509 Directory Listing
Modified 3 years ago
Fri Jan 10 21:25:19 2020 UTC
marios
Log:
source/cython.cpp
source/cython.h
  - Deleted obsolete Cython files.

13508 Directory Listing
Modified 3 years ago
Fri Jan 10 21:13:10 2020 UTC
marios
Log:
adm/test/test_match.py
  - Removed outdated module test.

adm/test/test_chtypes.py
  - Missed updating call to validate_class().

adm/test/test_misc.py
  - Inappropriately replaced call to validate_collection() with validate_list().
    Reverted change.

13507 Directory Listing
Modified 3 years ago
Fri Jan 10 21:08:22 2020 UTC
fguzman
Log:
changes in kbn(). PRoperly account for levels instead of departure coefficients
13506 Directory Listing
Modified 3 years ago
Fri Jan 10 21:04:52 2020 UTC
marios
Log:
adm/util/dbdir.py
  - Removed outdated module.

adm/util/__init__.py
  - Removed module from list obtained with 'import *'.

adm/util/stout/coll.py
  - Removed useless import of dbdir.

adm/test/stout/test_coll.py
  - Removed useless import of dbdir.
  - Replaced use of Stout directory parameter of dbdir.py module with explicit
    string.

13505 Directory Listing
Modified 3 years ago
Fri Jan 10 20:56:52 2020 UTC
marios
Log:
adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/update-stout.py
  - Removed outdated scripts.

13504 Directory Listing
Modified 3 years ago
Fri Jan 10 20:17:53 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Updated processing of subshells in fmt_econfig() to not add a dot after
    the closing parenthesis of an ancestry term, if the term appears at the
    end of the subshell string.

adm/test/atoms/test_config.py
  - Added unit test of fmt_econfig() having an ancestry term at its end.

13503 Directory Listing
Modified 3 years ago
Fri Jan 10 20:07:43 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Adapted fmt_econfig() to disambiguate subshells that are jumbed together
    with ancestry terms.

adm/test/atoms/test_config.py
  - Unit testing fmt_econfig() against input '3d6(5D)4s', ie, not separated by
    dots, and involving an ancestry term.

13502 Directory Listing
Modified 3 years ago
Fri Jan 10 19:53:56 2020 UTC
marios
Log:
adm/util/atoms/config.py
  - Promote inner function fix_hex() to module function.

adm/test/atoms/test_config.py
  - Exercised fix_hex() in unit tests.

13501 Directory Listing
Modified 3 years ago
Fri Jan 10 18:35:09 2020 UTC
marios
Log:
adm/test/atoms/test_orbitals.py
adm/test/cloudy/test_lines.py
adm/test/io/test_ui.py
adm/util/atoms/config.py
  - Corrections to validation calls.

adm/test/io/test_dirs.py
adm/test/io/test_log.py
adm/test/io/test_pfile.py
adm/test/stout/test_nrg.py
  - Update module imports.

13500 Directory Listing
Modified 3 years ago
Fri Jan 10 18:13:39 2020 UTC
marios
Log:
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/util/cloudy/lines.py
adm/util/stout/info.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Missed calls to validate_int(), validate_float(), validate_str(), and
    validate_bool() which involved variable names containing '.' (e.g,
    'self.'), or had the variable description enclosed in single quotes.

13499 Directory Listing
Modified 3 years ago
Fri Jan 10 17:57:36 2020 UTC
marios
Log:
adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/cloudy/test_lines.py
adm/test/io/test_ui.py
adm/test/ptable/test_elements.py
adm/test/stout/test_coll.py
adm/test/stout/test_fmt.py
adm/test/stout/test_info.py
adm/test/stout/test_nrg.py
adm/test/test_match.py
adm/test/test_misc.py
adm/util/adas/adas.py
adm/util/atoms/config.py
adm/util/atoms/orbitals.py
adm/util/chianti.py
adm/util/cloudy/lines.py
adm/util/cloudy/stout_refs.py
adm/util/misc.py
adm/util/register/terms.py
adm/util/stout/coll.py
adm/util/stout/fmt.py
adm/util/stout/info.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
  - Refined calls to validate_collection() to calls to validate_list(),
    validate_dict(), or validate_tuple(), where appropriate.

13498 Directory Listing
Modified 3 years ago
Fri Jan 10 17:20:23 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_collection().

adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/cloudy/test_lines.py
adm/test/ptable/test_elements.py
adm/test/stout/test_fmt.py
adm/test/stout/test_info.py
adm/test/stout/test_nrg.py
adm/test/test_match.py
adm/test/test_misc.py
adm/util/adas/adas.py
adm/util/atoms/config.py
adm/util/atoms/orbitals.py
adm/util/chianti.py
adm/util/cloudy/lines.py
adm/util/cloudy/stout_refs.py
adm/util/io/ui.py
adm/util/misc.py
adm/util/register/levels.py
adm/util/stout/fmt.py
adm/util/stout/info.py
adm/util/stout/meta.py
  - Updated calls to validate_collection().

13497 Directory Listing
Modified 3 years ago
Fri Jan 10 17:11:50 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_class().

NistExtractor/NistExtractor.py
adm/merge-with-stout.py
adm/test/cloudy/test_lines.py
adm/util/atoms/config.py
adm/util/cloudy/lines.py
adm/util/io/dirs.py
adm/util/io/pfile.py
adm/util/nist/refs.py
adm/util/stout/coll.py
adm/util/stout/fmt.py
adm/util/stout/info.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Updated calls to validate_class().

13496 Directory Listing
Modified 3 years ago
Fri Jan 10 17:04:23 2020 UTC
marios
Log:
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/cloudy/test_lines.py
adm/test/stout/test_meta.py
adm/test/stout/test_nrg.py
adm/util/atoms/orbitals.py
adm/util/cloudy/lines.py
adm/util/io/ui.py
adm/util/nist/refs.py
adm/util/stout/meta.py
  - Missed validate_int() calls which involved variable names containing '_'.

13495 Directory Listing
Modified 3 years ago
Fri Jan 10 17:02:56 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/test/stout/test_meta.py
adm/test/stout/test_nrg.py
adm/util/stout/meta.py
  - Missed validate_float() calls which involved variable names containing '_'.

13494 Directory Listing
Modified 3 years ago
Fri Jan 10 17:00:41 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/atoms/test_splevel.py
adm/test/atoms/test_spterm.py
adm/test/cloudy/test_cloudy.py
adm/test/cloudy/test_lines.py
adm/test/stout/test_coll.py
adm/test/stout/test_fmt.py
adm/util/adas/adas.py
adm/util/adas/eissner.py
adm/util/atoms/config.py
adm/util/cloudy/lines.py
adm/util/dbdir.py
adm/util/misc.py
adm/util/nist/refs.py
adm/util/register/levels.py
adm/util/stout/nrg.py
  - Missed validate_str() calls which involved variable names containing '_'.

13493 Directory Listing
Modified 3 years ago
Fri Jan 10 16:57:44 2020 UTC
marios
Log:
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/test_misc.py
adm/util/adas/adas.py
  - Missed validate_bool() calls which involved variable names containing '_'.

13492 Directory Listing
Modified 3 years ago
Fri Jan 10 16:50:20 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_bool().

adm/test/atoms/test_config.py
adm/test/atoms/test_jtot.py
adm/test/atoms/test_orbitals.py
adm/test/atoms/test_splevel.py
adm/test/atoms/test_spterm.py
adm/test/stout/test_fmt.py
  - Updated calls to validate_bool().

13491 Directory Listing
Modified 3 years ago
Fri Jan 10 16:46:42 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_str().

NistExtractor/NistExtractor.py
adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/test/adas/test_adas.py
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/atoms/test_splevel.py
adm/test/cloudy/test_lines.py
adm/test/stout/test_fmt.py
adm/test/stout/test_info.py
adm/test/stout/test_nrg.py
adm/test/stout/test_tp.py
adm/test/test_misc.py
adm/util/adas/adas.py
adm/util/atoms/config.py
adm/util/atoms/orbitals.py
adm/util/atoms/splevel.py
adm/util/chianti.py
adm/util/cloudy/lines.py
adm/util/fs.py
adm/util/io/ui.py
adm/util/misc.py
adm/util/nist/refs.py
adm/util/stout/coll.py
adm/util/stout/dirtree.py
adm/util/stout/fmt.py
adm/util/stout/info.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Updated calls to validate_str().

13490 Directory Listing
Modified 3 years ago
Fri Jan 10 16:38:46 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_float().

adm/test/adas/test_adas.py
adm/test/atoms/test_spterm.py
adm/test/stout/test_meta.py
adm/test/stout/test_nrg.py
adm/test/stout/test_tp.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
adm/util/stout/tp.py
  - Updated calls to validate_float().

13489 Directory Listing
Modified 3 years ago
Fri Jan 10 16:35:29 2020 UTC
marios
Log:
adm/util/chtypes.py
  - Removed useless variable description from interface of validate_int().

adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
adm/test/cloudy/test_lines.py
adm/test/stout/test_info.py
adm/test/stout/test_meta.py
adm/test/stout/test_nrg.py
adm/test/test_misc.py
adm/util/adas/eissner.py
adm/util/atoms/config.py
adm/util/cloudy/lines.py
adm/util/misc.py
adm/util/stout/info.py
adm/util/stout/meta.py
adm/util/stout/nrg.py
  - Updated calls to validate_int().

13488 Directory Listing
Modified 3 years ago
Fri Jan 10 16:25:54 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/util/adas/adas.py
  - Updated calls to util.atoms.splevel functions.

13487 Directory Listing
Modified 3 years ago
Fri Jan 10 16:21:17 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/adm-ingest-data.py
adm/test/atoms/test_trans.py
adm/test/stout/test_nrg.py
adm/util/atoms/trans.py
adm/util/register/terms.py
adm/util/stout/nrg.py
  - Updated calls to util.atoms.spterm funtions.

13486 Directory Listing
Modified 3 years ago
Fri Jan 10 16:07:06 2020 UTC
marios
Log:
NistExtractor/NistExtractor.py
adm/merge-with-stout.py
adm/test/atoms/test_trans.py
adm/util/atoms/trans.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/util/stout/nrg.py
  - Updated calls to util.atoms.jtot funtions.

13485 Directory Listing
Modified 3 years ago
Fri Jan 10 15:48:33 2020 UTC
marios
Log:
adm/test/atoms/test_jtot.py
  - New module.
  - Extracted from test_config.py all tests of functions in the jtot.py module.

adm/test/atoms/test_spterm.py
  - New module.
  - Extracted from test_config.py all tests of functions in the spterm.py
    module.

adm/test/atoms/test_splevel.py
  - New module.
  - Extracted from test_config.py all tests of functions in the splevel.py
    module.
  - Added tests for functions convert_spec_level_to_frac() and
    convert_spec_level_to_plain().

adm/test/atoms/test_config.py
  - Removed all tests now contained in the modules above.
  - Rearranged to bring order of tests in the order that the functions are
    listed in config.py.
  - Updated test_are_alt_subshell_lists_same() to work independently of the
    ConfigAlt() class.
  - Removed outdated tests for copy.deepcopy() of Config() and ConfigAlt()
    objects.

13484 Directory Listing
Modified 3 years ago
Fri Jan 10 15:38:59 2020 UTC
marios
Log:
adm/util/atoms/jtot.py
  - New module.
  - Extracted from config.py all functions related to the total angular momentum.
  - Parameter Jtot_invalid now defined herein.

adm/util/atoms/spterm.py
  - New module.
  - Extracted from config.py all functions related to terms in various coupling
    schemes, the number of levels they can contain, and their statistical
    weights.
  - Parameters level_sentinel_left and level_sentinel_right now defined herein.

adm/util/atoms/splevel.py
  - New module.
  - Extracted from config.py all functions related to spectroscopic levels,
    that is, spectroscopic terms, and Jtot.

adm/util/atoms/config.py
  - Removed all functions now contained in the new modules above.
  - Set classes Config() and ConfigAlt() to derive from object, instead of
    misc.DeepCopy() -- a fossil of an earlier implementation.

adm/util/atoms/__init__.py
  - Updated to include new modules in list obtained with 'import *'.

13483 Directory Listing
Modified 3 years ago
Thu Jan 9 23:02:35 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Modified message from the ominous-looking (and confusing) "Error" to the
    more benign "Abort test", printed when certain datasets miss crucial data
    for meaningful testing, yet the code does not exit to system.

13482 Directory Listing
Modified 3 years ago
Thu Jan 9 22:58:53 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - In __compare_JoinedEnergies_objects(), added comparisons between data for
    multiplets.
  - Now using JoinedEnergies.form_multiplets() to test multiplet infrastructure
    in test_JoinedEnergies_save_read_json()
    and test_JoinedEnergies_export_import_dict().

13481 Directory Listing
Modified 3 years ago
Thu Jan 9 22:55:09 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - In __compare_Energies_objects() added comparisons for groups and multiplets.

13480 Directory Listing
Modified 3 years ago
Thu Jan 9 22:46:26 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for JoinedEnergies.export_dict() and .import_dict().

13479 Directory Listing
Modified 3 years ago
Thu Jan 9 22:41:14 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Multiplet.export_dict() now uses copy.deepcopy() to store the levels data in
    the output dict.
  - In Energies():
    - Bugfix in export_dict(): copy.deepcopy() was not used to set the output
      dict.  Now the output is constructed in detail to accommodate the
      underlying data structures.  export_dict() methods are used when needed.

adm/test/stout/test_nrg.py
  - Exercised unit tests for Energies.export_dict() and .import_dict().

13478 Directory Listing
Modified 3 years ago
Thu Jan 9 21:40:46 2020 UTC
fguzman
Log:
Sinks do not need to be inside the loop of condensed levels

No need to have resolved and condensed branch inside Kbn()

13477 Directory Listing
Modified 3 years ago
Thu Jan 9 21:37:10 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Renamed: test_Energies_JSON()
         to: test_Energies_save_read_json()
  - Defined function __compare_Energies_objects() to carry out the comparison of
    two Energies() objects.
  - Bugfix: test_Energies_save_read_json() was not comparing the read-in dataset
    with the original.  Now comparing with __compare_Energies_objects().

13476 Directory Listing
Modified 3 years ago
Thu Jan 9 21:29:31 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for JoinedEnergies.save_json() and .read_json().
    - Defined helper function __compare_JoinedEnergies_objects() to carry out
      the comparison of two JoinedEnergies() objects.
    - Renamed: __compare_two_Energy_obj()
           to: __compare_Energy_objects()

13475 Directory Listing
Modified 3 years ago
Thu Jan 9 20:56:07 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for JoinedEnergies.nlevels_unmatched_db().

13474 Directory Listing
Modified 3 years ago
Thu Jan 9 20:48:23 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercise unit tests for JoinedEnergies.set_DB().

13473 Directory Listing
Modified 3 years ago
Thu Jan 9 20:12:38 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for JoinedEnergies.term_exists().

13472 Directory Listing
Modified 3 years ago
Thu Jan 9 20:02:13 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for JoinedEnergies.form_multiplets().

13471 Directory Listing
Modified 3 years ago
Thu Jan 9 19:48:39 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for setting up JoinedEnergies() datasets.
    - Defined function __create_dataset_JoinedEnergies() to compile an object of
      the JoinedEnergies() class from the given dataset.
    - Defined function __validate_JoinedEnergies_setup() to test new object.

13470 Directory Listing
Modified 3 years ago
Thu Jan 9 17:26:31 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Now exercising Energies.validate_energy_order() in 
    __create_dataset_Energies().

13469 Directory Listing
Modified 3 years ago
Thu Jan 9 17:23:28 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised Energies.levels_no_config() in unit tests.
    - Updated __dict_to_lines_of_data() to also return a list of indices for
      levels without configuration data.  Updated all calls to function.

13468 Directory Listing
Modified 3 years ago
Thu Jan 9 17:01:21 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Added units tests for Energies.nlevels_autoion().

13467 Directory Listing
Modified 3 years ago
Thu Jan 9 16:45:38 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised method nlevels_matched() as part of the unit test function
    test_Energies_level_matching().

13466 Directory Listing
Modified 3 years ago
Thu Jan 9 16:35:21 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Exercised unit tests for Energies.nlevels() with all datasets.

13465 Directory Listing
Modified 3 years ago
Thu Jan 9 16:27:53 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Added ionization potentials to all datasets, and updated function to work
    with the dict key, instead of an additional parameter.
    - Now exercising unit tests for the IP with all datasets.

13464 Directory Listing
Modified 3 years ago
Wed Jan 8 21:43:31 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Added unit tests for Energies.is_level_present().
    - Now using full electronic configurations for Fe+3 levels.

13463 Directory Listing
Modified 3 years ago
Wed Jan 8 21:19:28 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Added unit tests for Energies.IP().

13462 Directory Listing
Modified 3 years ago
Wed Jan 8 20:40:43 2020 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Use Energies.validate_energy_order() to confirm that the levels are in order
    of ascending energy.

adm/util/stout/nrg.py
  - In Energies.validate_energy_order(), use method get_ground() to confirm the
    uniqueness of the ground state.

13461 Directory Listing
Modified 3 years ago
Wed Jan 8 16:58:22 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Renamed: __populate_Energies()
         to: __create_dataset_Energies()
  - Added level-matching data to the Fe+ dataset.
  - Removed moot unit tests:
    - Fe+ from tests of groups methods
    - Fe+ and Ne+7 from tests of multiplets methods

13460 Directory Listing
Modified 3 years ago
Wed Jan 8 16:42:20 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Split up test_Energies() into functions:
    - test_Energies_elevel()
    - test_Energies_groups()
    - test_Energies_multiplets()
    - test_Energies_level_matching()
    - test_Energies_JSON()

13459 Directory Listing
Modified 3 years ago
Tue Jan 7 22:38:17 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Updated test_Energies() to work with the defined dataset dicts.

13458 Directory Listing
Modified 3 years ago
Mon Jan 6 22:43:04 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Converted the data for Fe+, Fe+3, and Ne+7 into dataset structures and used
    with the test_Energies_setup() function.

adm/util/stout/nrg.py
  - Bugfix: In Energy.pprt(), print configuration info only if configuration
    data exist.

13457 Directory Listing
Modified 3 years ago
Mon Jan 6 17:44:20 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - In class Energies():
    - In method insert():
      - Bugfix: The method used to insert a level whose index was already in use
        with an index equal to one past the total number of levels in the dataset
        without checking if that index was being used.  Now the appended level
        has an index of one past the highest index in the dataset.
        This essentially guards against adding duplicate level indices in datasets
        with missing indices.
      - Modified method to return the index with which the level was entered
        into the dataset.
    - In method add_level(), now using insert() for adding a level.
    - Renamed method set_ground() to set_ground_subshells().
    - Defined method get_ground() to obtain an Energy() object for the ground
      state.  It checks that only one state has 0 energy.
      - Used with methods set_ground_subshells() and set_missing_comments().
    - In is_level_present(), replaced calls to validate_*() functions with calls
      to is_*() functions.  If any fails, the method returns False, instead of
      exiting.
  - In function parse_nrg(), updated call to Energies.set_ground().

adm/test/stout/test_nrg.py
  - Refactored code that compiles an Energies() dataset from a given dict into
    functions:
    - __dict_to_lines_of_data()
    - __populate_Energies()
  - Defined functions to exercise some basic methods of the Energies() class:
    - test_Energies_setup()
    - __ground_subshells()
    - __validate_Energies_setup() 

adm/adm-ingest-data.py
adm/adm-merge-nrg.py
adm/adm-sort-nrg.py
  - Updated calls to Energies.set_ground().

13456 Directory Listing
Modified 3 years ago
Mon Jan 6 15:55:15 2020 UTC
marios
Log:
Removed validate_*() from all is_*() functions in favor of calls to is_*()
functions.  If the latter fail, each is_*() function returns False.
  - adm/util/atoms/orbitals.py
    - is_nprim()
    - is_Lorb_sym()
    - is_Lorb()
    - is_nelec()
    - is_subshell()
    - is_ancestor()
    - is_econfig()
    - is_even_parity()
    - is_odd_parity()
    - is_parity()
    - is_exc()

  - adm/util/atoms/config.py
    - is_term_LS()
    - is_term_jj_or_J1J2()
    - is_term_J1K_or_LK()
    - is_term_unassigned()
    - is_term()
    - are_terms_equiv()
    - is_Jtot()
    - is_spec_level()

adm/test/atoms/test_orbitals.py
adm/test/atoms/test_config.py
  - Added tests to each of the is_*() function above with invalid values (None,
    "", []) to exercise new capabilities. 
    - Removed all validate_*() calls from inner functions to allow these tests.

adm/test/atoms/test_orbitals.py
  - Added unit tests for is_exc() and validate_exc().

13455 Directory Listing
Modified 3 years ago
Sun Jan 5 16:22:27 2020 UTC
marios
Log:
adm/adm-ingest-data.py
adm/util/stout/nrg.py
  - Used new method Energy.primary_subshells() in lieu of using the first object
    of the list returned by the subshells() method (ie, Energy.subshells()[0]).

13454 Directory Listing
Modified 3 years ago
Sun Jan 5 16:16:22 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Defined method Energy.primary_subshells() to get the subshells of the
    primary configuration.

adm/test/stout/test_nrg.py
  - Exercised method as part of the Energy object-comparison function,
    __compare_two_Energy_obj(), used with checking the process of exporting to
    and importing from dicts, and copying an Energy() object into another.

13453 Directory Listing
Modified 3 years, 1 month ago
Sun Jan 5 04:11:57 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - In Multiplet.add_level() use validate_level() to check on the input level,
    instead of checking merely that it is an integer; this makes sure it is
    positive.

13452 Directory Listing
Modified 3 years, 1 month ago
Sun Jan 5 03:53:37 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
adm/util/stout/nrg.py
  - Minor rearrangements.

13451 Directory Listing
Modified 3 years, 1 month ago
Sun Jan 5 03:49:23 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Defined inner function for unit tests of the *ignore*() family of methods
    of the Energy() class.
  - Exercised two tests of the *ignore*() methods.

adm/util/stout/nrg.py
  - Renamed: Energy.is_ignored
         to: Energy.ignored

13450 Directory Listing
Modified 3 years, 1 month ago
Sun Jan 5 02:53:39 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Defined inner function for unit tests of the *dismiss*() family of methods
    of the Energy() class.
  - Exercised two tests of the *dismiss*() methods.

adm/util/stout/nrg.py
  - Renamed: Energy.reset_dismissed
         to: Energy.unset_dismissed

13449 Directory Listing
Modified 3 years, 1 month ago
Sun Jan 5 02:43:18 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Defined inner function for unit tests of the *shuffled() family of methods
    of the Energy() class.
  - Exercised two tests of the *shuffled() methods.

adm/util/stout/nrg.py
  - Defined method Energy.shuffled() to query the state of the parameter.

13448 Directory Listing
Modified 3 years, 1 month ago
Sat Jan 4 23:30:54 2020 UTC
marios
Log:
adm/test/stout/test_nrg.py
  - Renamed inner function for unit test of Energy.init():
    test_Energy_setter_getter -> test_Energy_init.
  - Added checks for methods pertinent to the electronic configuration and
    spectroscopic level when such information is absent.
  - Added unit test that does not contain the electronic configuration.

adm/util/stout/nrg.py
  - In Energy.init(), added check that a valid number of electrons is given
    in order to process, and store, the electronic configuration in the input
    data line.

13447 Directory Listing
Modified 3 years, 1 month ago
Fri Jan 3 20:58:14 2020 UTC
fguzman
Log:
assessed smooth working of source factors, corrected bug on extra levels index
13446 Directory Listing
Modified 3 years, 1 month ago
Fri Jan 3 14:47:06 2020 UTC
fguzman
Log:
merged from trunk
13445 Directory Listing
Modified 3 years, 1 month ago
Thu Jan 2 18:06:02 2020 UTC
marios
Log:
adm/util/stout/nrg.py
adm/adm-ingest-data.py
  - Use Energy.primary_econfig() instead of accessing the first element of the
    econfig_full() list.
  - Use Energy.primary_term() instead of accessing the first element of the
    terms() list.

13444 Directory Listing
Modified 3 years, 1 month ago
Thu Jan 2 17:52:53 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - In class Energy():
    - Use have_config() to tell if configuration information is available.
    - Methods primary_config(), primary_econfig(), alternate_config(), and
      primary_term() now return empty string, instead of None, if configuration
      information is not available.

13443 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 16:36:45 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Renamed method Energies.get_object() to Energies.elevel().

adm/adm-fine-tune.py
adm/adm-ingest-data.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-sort-nrg.py
adm/adm-write-stout.py
adm/merge-with-stout.py
adm/reorder-stout-levels.py
adm/test/stout/test_nrg.py
adm/util/register/convert.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/util/stout/nrg.py
  - Updated method calls.

13442 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:51:56 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Use base method Energies.pprt() in JoinedEnergies.pprt().

13441 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:50:41 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.new_dataline().  Now Energy.new_dataline()
    must be used instead.

adm/adm-fine-tune.py
adm/adm-write-stout.py
  - Updated calls to point to the right method.

13440 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:41:55 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.get_data().  Direct access to the data is now
    impossible.

13439 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:40:07 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.shifted().  Now method Energy.shifted() must
    be used, instead.

13438 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:36:25 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.frac_dEnergy().  Now Energy.frac_dEnergy()
    must be used instead.

adm/adm-write-stout.py
  - Updated calls to point to the right method.


13437 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:33:56 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.dEnergy().  Now the method Energy.dEnergy()
    must be used.

adm/adm-write-stout.py
  - Updated calls to point to the right method.

13436 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:28:59 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed unused method JoinedEnergies.find_original_index().

13435 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 15:26:29 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method JoinedEnergies.get_level_DB().  Now method Energy.db() must
    be used.

adm/util/stout/nrg.py
adm/adm-merge-tp.py
  - Updated calls to point to right method.

13434 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:55:41 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.matched_with().  Now Energy.matched_with() must be
    used instead.

adm/adm-merge-tp.py
adm/merge-with-stout.py
adm/util/register/levels.py
adm/util/register/terms.py

adm/test/stout/test_nrg.py
  - Updated unit tests.

13433 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:34:37 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.matched().  Now method Energy.matched() must be used
    instead.
  - Updated calls to point to the right method.

adm/adm-merge-tp.py
adm/adm-write-stout.py
adm/merge-with-stout.py
adm/util/register/levels.py
adm/util/register/terms.py
  - Updated calls to point to the right method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13432 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:26:46 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.reset_matched().  Now method Energy.reset_matched()
    must be used instead.

adm/util/register/levels.py
  - Updated calls to point to the right method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13431 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:20:23 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.set_matched().  Now method Energy.set_matched() must
    be used instead.

adm/merge-with-stout.py
adm/util/register/levels.py
adm/util/register/terms.py
  - Updated calls to point to the right method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13430 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:10:52 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.dismissed().  Now the method Energy.dismissed() must
    be used.

adm/adm-ingest-data.py
  - Updated calls to point to the right method.

13429 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:05:06 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.prt_level_dataline().

13428 Directory Listing
Modified 3 years, 1 month ago
Wed Jan 1 00:01:17 2020 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.Jtot().  Now the method Energy.Jtot() must be used
    instead.

adm/adm-ingest-data.py
adm/util/register/terms.py
  - Updated calls to point to the right method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13427 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:55:00 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.subshells().  Now the method Energy.subshells()
    must be used instead.

adm/util/register/levels.py
  - Updated calls to point to the right method.

13426 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:49:24 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Moved method Energies.primary_term() to Energy.primary_term().
 
adm/util/register/terms.py
  - Updated calls to point to the right method.

13425 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:38:44 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.terms().  Now Energy.terms() must be used instead.

adm/util/register/levels.py
adm/util/register/terms.py
  - Updated calls to point to the right method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13424 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:30:39 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Moved the Energies.primary_econfig() method to the Energy() class.

adm/util/register/terms.py
  - Update calls to point to the right method.

13423 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:12:46 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.input_config().  Now the method Energy.input_config()
    must be used instead.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13422 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 23:08:38 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.statw().  Now the method Energy.statw() must be used
    instead.

adm/merge-with-stout.py
adm/util/register/levels.py
  - Updated calls to use the Energy.statw() method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13421 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:55:08 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.original_energy().  Now the method 
    Energy.original_energy() must be used instead.

adm/adm-merge-tp.py
  - Updated calls to use the Energy.original_energy() method.

13420 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:51:06 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.energy().  Now the Energy.energy() method must be
    used.
  - Redirected calls to the appropriate method.

adm/adm-ingest-data.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-sort-nrg.py
adm/util/register/terms.py
  - Updated calls to the Energy.energy() method.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13419 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:33:38 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed Energies.dataline() method.  Now the Energy.dataline() must be used
    instead.

adm/test/stout/test_nrg.py
  - Updated unit tests.

13418 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:27:40 2019 UTC
marios
Log:
adm/merge-with-stout.py
  - Update calls from Energies.prt_level_dataline() to Energy..prt_dataline().
    Missed those from r13417, because they were using an older name of the
    method.

13417 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:20:34 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Removed method Energies.print_dataline().  The homonymous function of the
    Energy class is to be used, instead. 

adm/adm-ingest-data.py
adm/util/register/terms.py
  - Updated calls to print_dataline().

13416 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 31 22:14:05 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Moved methods toggle_ignore_level() and is_ignored() from the Energies()
    class to the Energy class().  The former has been renamed toggle_ignored().
  - Use Energy.is_ignored() where the Energies() method was used.

adm/test/stout/test_nrg.py
  - Update unit tests.

adm/util/register/levels.py
  - Use new toggle_ignored() method.

13415 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 30 00:33:54 2019 UTC
gary
Log:
update PDF versions of docs
13414 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 30 00:18:26 2019 UTC
gary
Log:
svn merge -r13412:13413 ^/trunk
13412 Directory Listing
Modified 3 years, 1 month ago
Sun Dec 29 23:51:36 2019 UTC
gary
Log:
add LineLabels.out since it contains
results of database print command
13411 Directory Listing
Modified 3 years, 1 month ago
Sun Dec 29 23:48:49 2019 UTC
gary
Log:
svn merge -r13409:13410 ^/trunk
13408 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 15:52:17 2019 UTC
marios
Log:
Renamed adm/adm-joined-stout.py
     to adm/adm-write-stout.py

13407 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 15:49:02 2019 UTC
marios
Log:
adm/adm-joined-stout.py
  - Added missing imports of modules argparse and util.io.err.

13406 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 15:46:29 2019 UTC
marios
Log:
adm/adm-merge-coll.py
  - Removed unnecessary module imports.
  - Minor prompt update.

13405 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 15:43:21 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Bugfix: The theoretical transition was shown instead of the experimental in
    the output of 'show transition details'.
  - Adapted output of 'show branching ratios' to also show the ratio of TPs.
    Sorting by this ratio is also possible.

13404 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 00:38:30 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Adapted the output of 'show transition details' to also display the details
    of the experimental transition, if it exists.

13403 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 00:35:37 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - BUGFIX: The wrong experimental transition was copied on occasion, due to a
    bug in how the experimental indices were determined.  Essentially, the code
    was not checking which the original database of the transition was.  This is
    now delegated to the function merged_index_to_exprem_index() in
    util.register.convert.py.
    - Removed function find_native_tran().
  - Removed unnecessary module imports.
  - Bugfix: Variable nicks.initial does not exist.  Now using correct variable
    nicks.init.

13402 Directory Listing
Modified 3 years, 1 month ago
Sat Dec 21 00:17:56 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Adapted output of 'list levels' to show the levels of the theoretical and
    experimental datasets that correspond to the merged ones.

13401 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 23:13:13 2019 UTC
marios
Log:
adm/util/register/convert.py
  - Added module.  Moved functions merged_index_to_theory_index() and
    merged_index_to_exprem_index() from adm/adm-fine-tune.py.

adm/util/register/__init__.py
  - Updated the list of modules in the subpackage, suitable for 'import *'.

adm/adm-fine-tune.py
  - Now using the functions in the new module.
  - Updated module imports.

13400 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 23:07:50 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - Added option to method Transitions.get_transition() to suppress warning
    for missing transitions.  This is used with the 'show branching ratios'
    option of adm-fine-tune.py.

13399 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 22:48:50 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Minor change in the output of show_transition_details().  Now a missing
    transition is reported as such.

13398 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 22:47:08 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Now the user can display the transitions of choice over and again without
    having to go back to the main menu.

13397 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 22:23:04 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Adapted output of 'show level details' to print the experimental level, as
    well, if available.
    - Added function merged_index_to_exprem_index() to get the experimental
      level index that corresponds to the given merged level index.

13396 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 21:19:54 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Promoted inner function get_TP_total() to script function, and renamed to
    get_level_TP_total().
  - Added menu option 'lf' to show the inverse lifetimes (total Einstein A's)
    of levels within a range.
  - Minor improvements on the output of 'show transition details'.

13395 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 20:24:10 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Adapted show_branching_ratios() to be used similar to show_transitions().
    The user may now print the transitions for the entire dataset, in addition
    to those for one level, and limit either their number on output, or limit
    the values shown.  Sorting any of the presented columns works in all use
    cases.

13394 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 18:08:12 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Now printing theory level in the output of option 'ld' (show level details)
    in addition to merged one, if the latter comes from the experimental
    dataset.

13393 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 17:58:31 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Promoted inner function get_theory_index() to script function, and renamed
    it merged_index_to_theory_index().
  - Now printing theory transition in the output of option 'td' (show transition
    details) in addition to merged one.

13392 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 17:37:54 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Added menu option to view branching ratios out of a level.

13391 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 17:29:06 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Guard against empty lists in are_alt_subshell_lists_same() and
    are_alt_term_lists_same().

13390 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 20 16:04:48 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Show the experimental term energies along with the theoretical and merged
    ones.

13389 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 19 01:24:09 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Defined are_alt_econfig_same() to compare two lists of (alternate)
    electronic configurations.

adm/test/atoms/test_config.py
  - Added unit tests for are_alt_econfig_same().

13388 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 19 00:41:54 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - In fix_hex(), inner function to fmt_econfig():
    - Bugfix: Allow for ancestry terms.
    - Bugfix: Allow for missing electron number (1).
    - Bugfix: Allow for both a single hexadecimal digit and for 1 or more
      decimal digits at the end of the subshell string.
    - Now validating the orbital symbol in the given symbol, unless it is
      an ancestry term.

13387 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 23:45:07 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Fixed fix_hex(), inner function to fmt_econfig().  It had been temporarily
    disabled and returned the given subshell in lower case.  Now restored to
    process only the final character if it is preceded by another character,
    the orbital symbol (e.g., s, p, d, ...), and if the final character is in
    the range A-F.

13386 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 23:38:26 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Missed call to level_nist_fmt().  Now updated to spec_level_nist_fmt().

13385 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 23:21:35 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Updated function name parse_level() to parse_spec_level().
    - Updated calls to parse_level().

adm/util/adas/adas.py
  - Updated call to parse_level().

adm/test/atoms/test_config.py
  - Updated tests for parse_level().

13384 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 23:15:13 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Updated function names:
    - is_level() to is_spec_level().
    - validate_level() to validate_spec_level().

adm/test/atoms/test_config.py
  - Updated tests of is_level().

13383 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 23:02:43 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Updated function name level_nist_fmt() to spec_level_nist_fmt().
 
adm/test/atoms/test_config.py
  - Updated tests for level_nist_fmt().

13382 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 22:57:46 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Renamed function fmt_level() to fmt_spec_level().
    - Updated calls to function.

NistExtractor/NistExtractor.py
adm/util/adas/adas.py
  - Updated calls to fmt_level().

adm/test/atoms/test_config.py
  - Updated tests of fmt_level().

13381 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 22:49:40 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Renamed functions:
    - convert_level_to_real() to convert_spec_level_to_real(). 
    - convert_level_to_frac() to convert_spec_level_to_frac().
    - convert_level_to_plain() to convert_spec_level_to_plain().

adm/util/adas/adas.py
  - Updated call to convert_level_to_real().

adm/test/atoms/test_config.py
  - Updated test for convert_level_to_real().

13380 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 22:41:09 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Renamed function compare_levels() to compare_spec_levels().

adm/test/atoms/test_config.py
  - Update relevant function name to test_compare_spec_levels().

13379 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 00:14:35 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Minor user-facing string update.

13378 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 18 00:14:08 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Minor user-facing string update.

13377 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 23:48:39 2019 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Minor bugfixes: Import omitted packages; prepend class name (JoinedEnergies)
    by package name (nrg).

13376 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 21:44:44 2019 UTC
marios
Log:
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/util/io/nicks.py
  - Replaced nickname 'joined' with 'merged'.  Makes more sense, given that all
    the scripts are named "adm-merged-..."

13375 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 18:15:56 2019 UTC
marios
Log:
adm/adm-finalize.py
  - Added script to select a set of JSON files as the final dataset.  Stout
    files may be created from these at a later step.

adm/util/prun.py
  - Bugfix in run_command_interactive(): STDOUT was not communicated back to
    caller.  This is now achieved by setting the stdout keyword to PIPE.
  - Added shell keyword to set the homonymous keyword of the Popen() call to
    True.  If True, Popen() receives one string representing the command to
    run, instead of a list of arguments.  This is in compliance with the
    instructions online, which advise to do so if the a wildcard is used in the
    command, as in 'ls *.txt'.

13374 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 05:49:01 2019 UTC
marios
Log:
adm/adm-merge-coll.py
  - Ask user if s/he wants to join the datasets anew, if the JSON output of the
    script is already there.
  - Removed functionality for creating .tp output file, and metadata on
    statistics.  This is now done by adm-joined-stout.py.
  - Updated script docstring.

adm/adm-merge-tp.py
  - Ask user if s/he wants to join the datasets anew, if the JSON output of the
    script is already there.
  - Removed functionality for creating .tp output file, and metadata on
    statistics.  This is now done by adm-joined-stout.py.
  - Updated script docstring.

adm/adm-merge-nrg.py
adm/adm-joined-stout.py
  - Updated script docstring.

13373 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 02:26:16 2019 UTC
marios
Log:
adm/adm-joined-stout.py
  - Remove nicknames from command-line UI.
  - Refactored calls to generate the energy output files into function
    create_energy_output().
  - Added functions create_transitions_output() and create_collisions_output()
    to generate the relevant output files for transitions and collisions.

13372 Directory Listing
Modified 3 years, 1 month ago
Tue Dec 17 01:12:26 2019 UTC
marios
Log:
Renamed adm/adm-write-stout-nrg.py
     to adm/adm-joined-stout.py

13371 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 17:20:53 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Ask user if s/he wants to join the datasets anew, if the JSON output of the
    script is already there.

13370 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 16:22:55 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Removed functionality of sorting joined dataset, and of creating output
    Stout and metadata files.  All the script does now is tune the joined
    energy dataset -- i.e., what it says it does.

adm/adm-merge-nrg.py
  - Removed functionality of sorting joined dataset, and of creating output
    Stout and metadata files.  All the script does now is join the two energy
    datasets -- i.e., what it says it does.
  - The output file is now stored with the nicknamed 'joined' (not 'unsorted').

adm/util/io/nicks.py
  - Removed nickname 'unsorted'.
  - Added nickname 'joined'.

13369 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 16:10:23 2019 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Added script to sort energies into ascending order.

adm/util/stout/nrg.py
  - Moved function sort_energies() into script above as do_sort_energies().

13368 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 15:35:55 2019 UTC
marios
Log:
adm/adm-write-stout-nrg.py
  - Minor update to UI program description.

13367 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 15:31:29 2019 UTC
marios
Log:
Renamed adm/adm-sort-nrg.py
     to adm-write-stout-nrg.py

13366 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 15:29:01 2019 UTC
marios
Log:
adm/adm-sort-nrg.py
  - Fleshed out program by adding a main() function, and a user interface.

13365 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 15:26:43 2019 UTC
marios
Log:
adm/util/stout/__init__.py
  - Removed 'output' subpackage file from 'import *' calls.

13364 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 15:02:55 2019 UTC
marios
Log:
Moved adm/util/stout/output.py
   to adm/adm-sort-nrg.py
as an executatble.

13363 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 14:56:12 2019 UTC
marios
Log:
adm/adm-merge-coll.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
  - Minor comment updates.

13362 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 16 14:48:02 2019 UTC
marios
Log:
adm/adm-fine-tune.py
adm/adm-merge-tp.py
  - Modified to work with an optional keyword from the command line for
    transitions JSON files. 

adm/util/io/ui.py
  - Defined function parse_add_JSON_nick_trans() that can be used to get a
    nickname for transitions JSON files from the command line.

13361 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 22:46:16 2019 UTC
marios
Log:
adm/adm-fine-tune.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
  - Change all variable names for JSON nicknames to reflect the fact that they
    refer to energy files.

13360 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 20:01:08 2019 UTC
marios
Log:
adm/util/io/ui.py
  - Renamed function: parse_add_JSON_nick() -> parse_add_JSON_nick_energies().
    - Renamed parser interface parameter and attribute that holds the read-in
      value from 'nick' to 'enick'.

adm/adm-fine-tune.py
adm/adm-merge-coll.py
adm/adm-merge-nrg.py
adm/adm-merge-tp.py
adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
  - Updated to new function interface.

adm/adm-register-levels.py
adm/adm-register-nocfg.py
adm/adm-register-terms.py
  - Improved script docstring.

13359 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 19:54:57 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - In show_transitions(), extend multipole order filtering to transitions that
    involve a user-specified level.

13358 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 19:03:53 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Enable show_transitions() to:
    - List only transitions of one multipole order
    - Sort the column by original and updated TP, in addition to TP correction.
    - Apply user-specified cuts when reporting the matching transitions; these
      can be both in the value of the sorted quantity, or in the number of lines
      matching.

13357 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 07:12:52 2019 UTC
marios
Log:
adm/util/stout/output.py
  - Added module holding functions for creating output files.
    - Moved functions from adm/adm-merge-nrg.py:
      - save_metadata()
      - proc_updates()
      - create_Stout_nrg()
      - prepare_joined_output()
      with slightly modified names.

adm/util/stout/__init__.py
  - Added subpackage file for 'import *' calls.

adm/adm-fine-tune.py
adm/adm-merge-nrg.py
adm/util/stout/nrg.py
  - Moved function sort_energies() to nrg.py module.

adm/adm-fine-tune.py
  - Now creating output Stout file, and metadata JSON file.

13356 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 06:52:20 2019 UTC
marios
Log:
adm/util/io/ui.py
  - Bugfix: Recursive call in readline_float() was using readline_int().

13355 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 02:25:32 2019 UTC
marios
Log:
adm/adm-fine-tune.py
  - Added script for fine-tuning energy data.

adm/util/io/nicks.py
  - Added nickname for fine-tuned data, 'tuned'.

adm/util/stout/nrg.py
  - Defined JoinedEnergies.form_multiplets() method to classify levels into
    multiplets.

adm/util/stout/tp.py
  - Defined Transition.pprt() method to pretty-print object data.
    Also defined Transitions.pprt(), which uses the previous method.
  - Defined Transitions.replace() method to copy data without bailing out if
    the data already exist.

13354 Directory Listing
Modified 3 years, 1 month ago
Fri Dec 13 00:00:48 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - In join_energies(), read the theoretical and experimental energy datasets
    (in JSON) only if the joined energies JSON file does not exist.

13353 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 21:05:02 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Bugfix: Update search for and reading of JSON file to use the new unsorted
    nickname used as of r13348.

13352 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 20:58:57 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Refactored code for method JoinedEnergies.new_dataline() as method by
    the same name in Energy().
    - The new method accepts the level index as an optional argument, so that it
      does not print the stored index (which is the index in the original ADAS
      or NIST dataset) by default.
    - The JoinedEnergies() method now calls its Energy() namesake with the joined
      level index as an argument.

adm/util/stout/tp.py
  - Deleted do-nothing function new_dataline().
    - Moved check against 0.0 TP inside TransitionRecord.compose_line().
    - Now JoinedTransitions.new_dataline() directly calls the TransitionRecord
      method.

13351 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 20:19:40 2019 UTC
marios
Log:
adm/util/io/ui.py
  - In __get_user_input(), add a tab at the end of the prompt, if no whitespace
    present there.

13350 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 19:50:06 2019 UTC
marios
Log:
adm/adm-merge-tp.py
adm/util/stout/tp.py
  - Moved function photon_energy_update_factor() into module tp.py, and renamed
    it photon_energy_update_ratio().  No changes in functionality.

adm/test/stout/test_tp.py
  - Exercised new module function in unit tests.

13349 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 17:55:16 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - In Energies():
    - Refactor reading a dictionary into an object into method do_import().
    - Method import_dict() now checks the validity of the required and optional
      keywords and calls do_import() to do the actual work.
    - This refactoring was needed because Energies.import_dict() was not
      consistent with inheritance, contrary to assertions prior to previous
      testing.  The problem was that if no optional keywords were desired,
      those of the Energies class would be used - this was problematic for
      using the method with JoinedEnergies methods.

  - In JoinedEnergies():
    - Added storage for ground state subshells.  Also added as a mandatory
      keyword.
    - Defined method import_dict() that uses Energies.do_import() to populate
      a class object.  Used with read_json(), instead of a super() call to
      Energies.import_dict().

adm/util/stout/tp.py
  - Endow JoinedTransitions methods pathname(), save_json(), and read_json()
    with optional keywords for file nicknames.

13348 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 16:07:37 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Save the joined unsorted dataset in a JSON file without a suitable nickname
    (currently, 'energies_unsorted.json').  Not using a nickname gave the
    impression that this was the final product of energy registration.
  - Set ground state subshells for both the unsorted and sorted joined datasets.

adm/util/io/nicks.py
  - Added nickname for unsorted energies, 'unsorted'.

13347 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 07:26:53 2019 UTC
marios
Log:
adm/util/io/ui.py
  - Defined function readline_float().
  - Bugfix: In readline_int(), input of a string that had a '.' would raise an
    exception.  Now processing user input with float() and passing its output to
    int().

adm/test/io/test_ui.py
  - Added unit tests for readline_float().
  - Added unit tests for readline_int() that involve floats as strings, e.g.,
    '1.'. 

13346 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 07:13:22 2019 UTC
marios
Log:
adm/util/io/ui.py
  - Refactored printing of prompt and getting user input into function
    __get_user_input(). 

adm/test/io/test_ui.py
  - Update package imports to be from util.io.

13345 Directory Listing
Modified 3 years, 1 month ago
Thu Dec 12 01:53:48 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Defined function insert_missing_multiplets(), which enters all levels that
    belong to shifted multiplets into the joined dataset.  Replaces functions
    insert_shifted_multiplets() and insert_unregistered_multiplets().

  - Replaced existing function join_terms() (previous version commented out --
    see below), and greatly simplified it.

  - Bugfix: In shift_levels(), quitting without first matching any levels led
    to a crash.  Now function exits gracefully to next term.

  - Commented out obsolete functions:
    - insert_multiplets_into_registries()
    - register_all_multiplets()
    - prt_registration()
    - get_unregistered_multiplets()
    - insert_shifted_multiplets()
    - insert_unregistered_multiplets()
    - join_terms()

adm/util/register/levels.py
  - Minor formatting changes in output to log.

adm/util/io/ui.py
  - Allow for spaces on user-input in functions readline_int() and pick_option()

13344 Directory Listing
Modified 3 years, 1 month ago
Wed Dec 11 23:26:16 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Defined new function register_terms(), which drives the registration of
    terms between two datasets in two steps: First, terms are registered one by
    one, and then, any unregistered terms are shifted.  Compared to the previous
    methodology, there are two differences: the terms are ordered in terms of
    increasing energy; and there is no separate bookkeeping done, which limited
    the original version of the term registration functions.
    - Defined register_term_by_term() to carry out the basic term registration.
      This is essentially a refactoring of the operations done with the previous
      version, see __process_multiplets() below.
    - Defined shift_unregistered_terms().  This is essentially a rewrite of 
      shift_unregistered_multiplets() that does not require the bookkeeping
      data structures the latter relied on.
    - Modified __get_new_term_energy() to preserve the energy gap of the term to
      the nearest term, instead of preserving a fractional offset.
    - Defined functions __get_bracketing_terms_energies(), which is similar to
      the homonymous previous function, except that it does not rely on
      bookkeping data structures.

  - Refactored the bulk of register_unregistered_multiplets() into function
    __process_multiplets().  This includes the functionality of matching
    levels and matching (and shifting) terms.
  - Modified shift_interactive() to return a False value if not all levels of
    a multiplet were shifted (matched).
  - Modified shift_term() to check that the average energies of the updated
    theoretical and the experimental terms agree _only_ if all levels were
    shifted (matched).
  - Refactored code for selecting an experimental configuration and term into
    function __get_experm_config_term().
  - Refactored code for selecting an experimental configuration and term from
    a shifted theoretical into function __get_shifted_experm_config_term().
  - Refactored code that checks that two levels agree into function
    confirm_same_level().

  - Commented out obsolete functions:
    - register_terms() -- new function retains this name
    - shift_unregistered_multiplets() -- replaced by shift_unregistered_terms()
    - __sort_registered_energies() -- relied on bookkeeping dict
    - __get_bracketing_terms_energies() -- replaced with function of same name
    - process_registration()
    - register_multiplets()
    

adm/util/stout/nrg.py
  - In Energies():
    - Broke method prt_term_levels() into two methods, one that prints the
      term info for one set of levels (same method name), and one that calls
      this prints the info for all sets of levels (prt_term()) by calling the
      first recursively.
    - Defined method multiplet_matched() to tell if all levels in a multiplet
      have been matched against the other dataset.
    - Defined method multiplets_sorted() to obtain an energy-sorted list of the
      multiplets in the dataset.

13343 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 9 04:55:12 2019 UTC
marios
Log:
adm/util/register/terms.py
  - BUGFIX: In __sort_registered_energies(), the experimental dataset was
    queried with theoretical levels.

13342 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 9 04:21:42 2019 UTC
marios
Log:
adm/util/register/terms.py
  - In register_all_multiplets(), ignore unregistered multiplets.  These are
    identified as those that have been shifted in energy by some amount, which
    is set by matching to a multiplet in the experimental dataset.

13341 Directory Listing
Modified 3 years, 1 month ago
Mon Dec 9 03:32:00 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Removed creation of temporary JSON file from register_terms().
  - In __sort_registered_energies(), put debugging information in a True / False
    loop, instead of printing at every loop. 

13340 Directory Listing
Modified 3 years, 1 month ago
Sun Dec 8 04:55:49 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Defined a number of functions to shift unmatched terms.  This is intended to
    preserve as much as possible the energy differences between closely-spaced
    terms.  This, in turn, is intended to preserve the Einstein A values of
    transitions between closely-spaced levels.
    - Currently, the energy of a term is reset to be proportionally spaced from
      two bracketing (matched) terms in the final dataset, as in the original.
      The terms are selected to be the closest to that term that are not inverted
      in the final dataset.
    - New functions:
      - shift_unregistered_multiplets()
      - __get_new_term_energy()
      - __get_bracketing_terms_energies()
      - __sort_registered_energies()
      - Converted inner function shift_interactive() to a proper function.  Made
        the the list of experimental levels an optional argument.  Called from
        shift_unregistered_multiplets().
  - In register_terms() and join_terms(), now printing the registration only if
    it defined.  This is possible if the (e,J,p)-group matching step is not done
    before attempting to match terms.

adm/util/stout/nrg.py
  - Bugfix: Class Energies() now derives from object, not DeepCopy.
  - Added optional keyword to Energies.multiplet_average_energy() to control
    whether the average is taken over the original energies, or the updated ones
    after level matching and term shifting.

13339 Directory Listing
Modified 3 years, 2 months ago
Thu Dec 5 00:23:28 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Update docstring to function resolve_ttype().

13338 Directory Listing
Modified 3 years, 2 months ago
Thu Dec 5 00:00:29 2019 UTC
marios
Log:
adm/test/atoms/test_trans.py
  - Added keywords to inner function test_ttype() to exercise the selection
    rules for LS coupling.
  - Added keywords to inner function test_resolve_ttype() to exercise the
    selection rules for configuration interaction and LS coupling.
  - Explicitly disabled CI and LS rules in 17/18 unit tests for M1 transitions.
  - In unit tests for resolve_ttype():
    - Only the rigorous rules in is_M1() can reproduce the following transitions
      as M1 type:
      - H I: 1s - 2s
      - He I: z line
      - Mg I: a number of transitions (5/8)

adm/util/atoms/trans.py
  - Added keywords to toggle use of CI and LS selection rules to functions
    is_E1(), is_E2(), is_M1(), is_M2(), and also resolve_ttype() -- used by
    default.
    - Exercise of these rules is now conditional in all is_*() functions.
  - In is_M1():
    - Now exercising CI and LS rules by default, but may be disabled.
    - Bugfix: LS rules included cases where |DL| = 1 -- now removed.
  - resolve_ttype() now calls is_M1() with CI and LS selection rules disabled.
    This has been guided by unit testing.

13337 Directory Listing
Modified 3 years, 2 months ago
Tue Dec 3 04:50:03 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - Update Transition.order() to report the multipole order read from NIST, if
    present.  The custom order is used if no order was available in the input
    dataset.
  - Update Transition.order_index() to operate on the output of .order(), and to
    report an index of 1 (int), if .order() returns an empty string.

adm/test/stout/test_tp.py
  - Update unit tests, and add another to test the default order index of 1.

13336 Directory Listing
Modified 3 years, 2 months ago
Tue Dec 3 04:30:41 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Defined function insert_shifted_multiplets() to add registered theoretical
    terms to the joint dataset.  Called by join_terms().

13335 Directory Listing
Modified 3 years, 2 months ago
Tue Dec 3 03:51:43 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Defined new function, register_all_multiplets(), which maps the registration
    of terms that have either been matched level-by-level, or shifted as a unit.
    - Function used with join_terms(), in lieu of register_multiplets().

adm/util/stout/nrg.py
  - Defined new Energies.multiplet_shifted_with() method that reports the levels
    in the experimental dataset against which the theoretical term has been
    shifted.

13334 Directory Listing
Modified 3 years, 2 months ago
Mon Dec 2 22:43:32 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Refactored register_multiplets() into separate functions for testing that
    two multiplets are indeed identical (confirm_same_multiplet), for adding
    multiplets into data structures (insert_multiplets_into_registries), and
    for reporting the registration to log (prt_registration).  The latter is
    called after register_multiplets(), not by that function itself.

13333 Directory Listing
Modified 3 years, 2 months ago
Mon Dec 2 22:07:48 2019 UTC
marios
Log:
adm/util/register/levels.py
  - When copying groups into the joint dataset, make sure the title is shown
    only if there are any levels in the group to copy.

13332 Directory Listing
Modified 3 years, 2 months ago
Mon Dec 2 17:19:10 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Show unregistered multiplets only if they are indeed unregistered.

13331 Directory Listing
Modified 3 years, 2 months ago
Mon Dec 2 16:17:52 2019 UTC
marios
Log:
adm/util/register/terms.py
  - While processing unregistered terms, do not confirm the order of levels when
    they have been matched one-by-one -- the output of check_term_order() can be
    confusing.
  - Bugfix: In check_term_order(), the user may opt to dismiss a match.  Set the
    flag for matched terms with the output of that (inner) function.

13330 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 06:21:01 2019 UTC
marios
Log:
adm/docs/manual/examples.tex
  - Discussed TP accuracy flags on example .tp file structure, as well as
    table in comment section.
  - Improved language on the example on running adm-fetch-nist.py.

13329 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 06:05:43 2019 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Refactored writing of .tp file to make use of the TransitionRecord() class
    of tp.py.

adm/util/stout/tp.py
adm/test/stout/test_tp.py
  - Used variable for unidentified transition from trans.py instead of None
    values (or literal empty strings) for null multipole orders.

13328 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 04:30:41 2019 UTC
marios
Log:
adm/util/nist/tp.py
  - Removed redundant imports.

13327 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 04:26:59 2019 UTC
marios
Log:
Now using '/usr/bin/env python3' instead of non-existent '/usr/bin/python3':
  - adm-adas-to-stout.py
  - adm-create-pfile.py
  - adm-fetch-nist.py
  - adm-fix-fnames.py
  - adm-ingest-data.py
  - adm-merge-nrg.py
  - adm-merge-tp.py
  - adm-query-adas.py
  - adm-register-levels.py
  - adm-register-nocfg.py
  - adm-register-terms.py
  - adm-setup.py
  - create-elements-module.py
  - merge-with-stout.py
  - reorder-stout-levels.py
  - stout-data-summary.py
  - update-stout.py

Set executable property on:
  - adm-register-nocfg.py
  - adm-register-terms.py

13326 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 04:19:07 2019 UTC
marios
Log:
NistExtractor/NistExtractor.py
  - Extract the TP accuracy flag from the HTML table, and store it in the .tp
    file as a comment to each transition.
    - Also write a table of all the accuracy flags encountered in the dataset.
    - To handle this functionality:
      - In class RadTrans(), set aside storage for the TP accuracy flag.
      - In class AllRadTrans(), pass accuracy value to the underlying RadTrans()
        object.
  - Remove line references from output .tp file.  The NIST line wavelengths are
    not used in Stout.

adm/util/nist/tp.py
  - Bugfix: __sort_labels() was erasing the original list.  Now it operates on a
    local copy of the accuracy list.
  - Renamed print_table() to print_acc_table().
    - Now printing an empty comment line both before and after the accuracy
      table.

adm/test/nist/test_tp.py
  - Bugfix: Inner function test_print_table() was not being used.
  - Renamed test_print_table() to test_print_acc_table().

13325 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 27 03:18:35 2019 UTC
marios
Log:
adm/util/nist/tp.py
  - Added module to handle NIST tables of transitions.
    - Currently, it contains only functions relevant to the accuracy of the
      reported TP values.

adm/test/nist/test_tp.py
  - Exercised functions of new module in unit tests.

13324 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 21:47:57 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Temporarily disable fix_hex(), inner function of fmt_econfig().

13323 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 18:04:06 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Bugfix: shift_levels() was expected to return bool in
    register_unregistered_multiplets() but was returning None instead.
  - Simplify question to user whether to keep the changes made or not.

adm/util/stout/nrg.py
  - In Energies.register_level_print(), now also print Jtot.

13322 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 05:33:49 2019 UTC
marios
Log:
adm/adm-register-terms.py
  - Added script to register the terms of two energy datasets.

adm/adm-register-nocfg.py
  - Added script to register two energy datasets without configuration info.

13321 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 05:13:01 2019 UTC
marios
Log:
adm/adm-register-levels.py
  - Remove redundant imports.
  - No need for the number of electrons when reading from a JSON file.

13320 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 04:46:02 2019 UTC
marios
Log:
adm/adm-register-levels.py
  - Undid r13314.  Different scripts will be used for registration of levels,
    terms, and datasets without configuration information.
    - Removed all things related to modes.

adm/util/io/nicks.py
  - Refined nicknames for registered datasets to registered levels, terms, and
    data without configuration information.

13319 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 04:35:51 2019 UTC
marios
Log:
adm/util/register/nocfg.py
  - Rename functions:
    - register_levels_by_energy() to register_nocfg()
    - join_energies() to join_nocfg()

adm/adm-merge-nrg.py
  - Use new function name, join_nocfg().

13318 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 26 04:32:47 2019 UTC
marios
Log:
adm/util/register/terms.py
  - Bugfix: Account for no registered terms existing in the datasets.
    This could happen if registration of terms is done without it being
    preceded by registration of levels.

13317 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 25 18:23:53 2019 UTC
marios
Log:
adm/adm-ingest-data.py
  - Bugfix: The script printed the original energy level data, when it should
    have been printing the updated ones.
  - Improved log output for transition and collision updates.

adm/util/stout/nrg.py
  - Renamed Energies() method groups_remove_degenerate() to
    groups_remove_degenerate_terms().
    - Improved log output of method.
    - Levels are removed from a group only the level already exists therein.

adm/docs/manual/examples.tex
  - Improved description of the examples of the adm-ingest-data.py command.

13316 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 25 16:33:49 2019 UTC
marios
Log:
adm/docs/manual/intro.tex
  - Minor language improvements.

13315 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 25 15:47:59 2019 UTC
marios
Log:
adm/docs/manual/man.tex
adm/docs/manual/LocalBibliography.bib
  - Added bibliography file.

adm/docs/manual/examples.tex
  - Started new section on level joining.

adm/docs/manual/intro.tex
  - Added section on description of algorithm.

13314 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 25 06:32:53 2019 UTC
marios
Log:
adm/adm-register-levels.py
  - Add capability to register terms and levels without configuration info.
    - Defined modes for levels, terms, and energies, and function
      validate_mode() to check that a valid mode is passed.
    - Added command-line option to set the registration mode.
    - Moved term- and energy-based registration from script adm-merge-nrg.py.

adm/adm-merge-nrg.py
  - Replaced calls to registration functions for terms, and levels with no
    configuration data with calls to functions that fold such data into the
    joint energy dataset: join_terms() and join_energies().

adm/util/register/terms.py
  - Split operations that fold terms of the two datasets into the joint one
    as a separate function, join_terms().

adm/util/register/nocfg.py
  - Likewise, as function join_energies(), currently a stub.

13313 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 25 05:27:28 2019 UTC
marios
Log:
adm/util/register/levels.py
  - Remove joined_energies from interface of register_levels(), and its callee,
    process_group().

adm/adm-register-levels.py
  - Update to new interface of register_levels().

13311 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 22 21:25:28 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions.save_json() and .read_json() include optional keyword nickname
    to the calls to JSON() methods save() and read().

adm/adm-merge-coll.py
  - Fixed various bugs.

13310 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 22 19:23:19 2019 UTC
marios
Log:
adm/adm-merge-coll.py
  - Add comment to original commit in the docstring of the script.

13309 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 22 19:05:30 2019 UTC
marios
Log:
Make use of the new io.nicks module in:
  - adm/adm-ingest-data.py
  - adm/adm-merge-coll.py
  - adm/adm-merge-nrg.py
  - adm/adm-merge-tp.py
  - adm/adm-register-levels.py

13308 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 22 19:01:10 2019 UTC
marios
Log:
adm/util/io/nicks.py
  - Module parametrizes JSON file nicknames.

13307 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 21 21:08:11 2019 UTC
marios
Log:
adm/adm-merge-coll.py
  - Updated, based on logic of adm-merge-tp.py.  At the moment, only one dataset
    is copied to the joint collisions.

13306 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 21 20:34:56 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock():
    - Added class-wide tuple of optional keywords, used with JSON serialization.
    - Defined method sort() to sort the collisions in order to ascending indices
      and store the data in new private list.
    - Defined prt_sorted() to print sorted data into list.
    - Made lo_levels() and hi_levels() return sorted lists.
    - Renamed prt_in_order() to prt_input_order().
  - In Collisions():
    - Defined method sort() to sort the contents of each CollisionBlock().
    - Defined method prt_sorted() to print the sorted data for each block --
      calls CollisionBlock.prt_sorted() for each collision block in succession.
    - Renamed prt_in_order() to prt_input_order(), and made it call
      CollisionBlock.prt_input_order().

adm/test/stout/test_coll.py
  - Exercised methods sort() and prt_sorted() of CollisionBlock() and
    Collisions() in unit tests.

13305 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 21 18:18:17 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Bugfix: Wrong module for the function to read the .tp sections.

13304 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 21 18:16:24 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Bugfix: create_Stout_tp() was reading the .nrg files into sections,
    not the .tp files.

13303 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 23:59:18 2019 UTC
marios
Log:
adm/util/atoms/config.py
  - Bugfic: In fmt_econfig(), do not let inner function fix_hex() convert
    d to D -- this is perfectly valid subshell symbol.

adm/util/adas/eissner.py
  - Remove redundant unit tests.

13302 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:56:53 2019 UTC
marios
Log:
adm/adm-ingest-data.py
  - Updated call of Collisions.get_collision() to .find_collision().
    See r13280.

13301 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:53:38 2019 UTC
marios
Log:
adm/stout-data-summary.py
  - Updated script to current state of util package.
  - Added function parse_add_species() to handle species given in the command
    line.

13300 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:51:30 2019 UTC
marios
Log:
adm/util/stout/info.py
  - Bugfix: Required module types.py was not imported.

adm/test/stout/test_info.py
  - Bugfix: Module cloudy.py was not imported from current location util.cloudy.

13299 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:31:52 2019 UTC
marios
Log:
adm/util/cloudy/stout_refs.py
  - Updated to use the fs.JSON class for reading refs.json.

13298 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:22:46 2019 UTC
marios
Log:
adm/test/cloudy/test_stout_refs.py
  - Updated test module to the new location of the module to be tested.

13297 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:16:41 2019 UTC
marios
Log:
adm/test/cloudy/__init__.py
  - Added subpackage file for 'import *' calls.

13296 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:14:18 2019 UTC
marios
Log:
Updated package contents for 'import *' calls:
  - adm/test/stout/__init__.py
  - adm/util/cloudy/__init__.py
  - adm/util/stout/__init__.py

13295 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:11:50 2019 UTC
marios
Log:
Moved adm/test/stout/test_refs.py
   to adm/test/cloudy/test_stout_refs.py

13294 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:07:15 2019 UTC
marios
Log:
Renamed adm/util/cloudy/refs.py
     to adm/util/cloudy/stout_refs.py

13293 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:04:40 2019 UTC
marios
Log:
Moved adm/util/stout/refs.py
   to adm/util/cloudy/refs.py

13292 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 16:00:29 2019 UTC
marios
Log:
Updated module docstrings.
  - adm/util/stout/c2s.py
  - adm/util/stout/coll.py
  - adm/util/stout/dirtree.py
  - adm/util/stout/fmt.py
  - adm/util/stout/meta.py
  - adm/util/stout/nrg.py
  - adm/util/stout/refs.py
  - adm/util/stout/tp.py

13291 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 03:47:07 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Defined class-wide basename parameter, for use with JSON files.
    - Update .save_json() and .read_json() to use .export_dict() and
      .import_dict(), respectively, as well as methods of the JSON class.
  - In CollisionBlock():
    - Bugfix: Imported dict was stored with str level indices, instead of int.

adm/test/stout/test_coll.py
  - Exercised Collisions.save_json() and .read_json() in unit tests.

13290 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 02:46:12 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Defined class-wide tuple of required keywords for importing data from a
      dict.
    - Defined methods export_dict() and import_dict() to handle object
      serialization.

adm/test/stout/test_coll.py
  - Exercised Collisions.export_dict() and .import_dict() in unit tests.

13289 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 20 02:06:56 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise method Collisions.prt_in_order() as part of the comparison of
    Collisions() objects.

13288 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 22:06:42 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions.reset_db():
    - Do not include the nominal dataset name; instead, derive the name from
      the data.
    - Bugfix: Use the append() method to add to the list -- not extend().
 
adm/test/stout/test_coll.py
  - Exercised Collisions.reset_db() in unit tests.

13287 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 21:51:36 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Bugfix: In Collisions.copy(), attempt to write at unallocated end of list.

adm/test/stout/test_coll.py
  - Exercised Collisions.copy() in unit tests.

13286 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 19:40:41 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercised Collisions.insert_block() in unit tests.

13285 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 19:20:19 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Replicated infrastructure for finding blocks based on a temperature list.
      - Added private method __find_blocks_by_temps(), which looks for a given
        list of temperatures among the blocks, and reports all matching
        instances.
      - Added private method __get_iblock_by_temps(), which gets the index of a
        block that has the requested list of temperatures.
    - Renamed method insert_nonexisting_collision() to insert_collision().
    - In add_collision_record() changed the optional keyword from 'this_block'
      to 'block'.

adm/test/stout/test_coll.py
  - Exercised Collisions.insert_collision() in unit_tests.

13284 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 17:13:57 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Modified replace() to not require the collider and levels of the collision
      it is going to replace, but to extract that information from the object
      itself.
    - Ingested the calls to __prep_block_indices() and __find_blocks() in
      __get_iblock().
    - In find_collision(), have_collision(), and get_collision_temps() changed
      the optional keyword from 'these_blocks' to 'blocks'.

adm/test/stout/test_coll.py
  - Exercised Collisions.replace() in unit tests.
    - Expanded datasets by including a field ('replace_datalines') in their
      dictionaries with the collisions to be used with replace().

adm/merge-with-stout.py
  - Update to new Collisions.replace() interface. 

13283 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 15:54:26 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercised Collisions.get_collision_temps() in unit tests.

13282 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 01:08:45 2019 UTC
marios
Log:
adm/merge-with-stout.py
  - Changed call for method get_temps_for_collision() to get_collision_temps().

13281 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 01:04:07 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Renamed method get_temps_for_collision() to get_collision_temps().
    - Defined method __get_iblock() to resolve the block index where the
      collision was found.  Used with methods find_collision() and
      get_collision_temps().

13280 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 00:44:26 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Removed method Collisions.get_collision() -- method find_collision() does
    the same job.  Moved warning from get_collision() to find_collision() for
    the case that the collision is found.

13279 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 19 00:30:16 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Now storing Collisions() datasets into objects that other Collisions()
    methods can invoke.
  - Exercised Collisions.find_collision() in unit tests.

13278 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 23:57:41 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock.insert_collision(), add check that the number of collision
    strength data values is equal to the number of temperatures in the block.

adm/test/stout/test_coll.py
  - Update all CollisionBlock() unit tests to setup() the block prior to testing
    any methods.

13277 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 23:22:08 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collisions():
    - Refactored code that checks the block index into function
      __validate_block_index().
    - Bugfix: __prep_block_indices() always returned empty list.

adm/test/stout/test_coll.py
  - Defined inner function __create_dataset_Collisions() to handle the creation
    of Collisions() objects.
  - Exercised Collisions.add_collision_record() and .have_collision() in unit
    tests.

13276 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 22:06:17 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercised Collisions.add_block() in unit tests.

13275 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 20:14:43 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Removed useless call to CollisionRecord.extract_temp() from
    Collisions.add_block().

adm/test/stout/test_coll.py
  - Exercised Collisions.init() in unit test.

13274 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 18:00:08 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock():
    - Defined class-wide tuple of required keywords for manipulating exports to
      and imports from dictionaries.
    - In export_dict(), use private attribute names as dictionary keys; i.e., do
      not drop the leading '_' from attribute names.
    - Defined import_dict() to ingest a dictionary into an object.

adm/test/stout/test_coll.py
  - Exercised CollisionBlock.export_dict() and .import_dict() in unit tests.

13273 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 17:19:51 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock().copy():
    - Use deep-copy for the record order.
    - Do not merely copy the collision objects in the _data dict; instead,
      define each entry as a Collision() object, and use the copy() method
      of the object to populate the _data dict.

adm/test/stout/test_coll.py
  - Exercise CollisionBlock.copy() in unit tests.

13272 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 16:27:18 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock(), renamed reset_DB() to reset_db().
    - Method no longer uses the block database entry, but instead builds up the
      composite name from the constituent collision records.

adm/test/stout/test_coll.py
  - Exercised CollisionBlock.reset_db() in unit methods().

13271 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 15:58:11 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collision():
    - Add class-wide tuple of optional keywords, currently holding only the
      '_replaced' attribute.
    - Add methods set_replaced() and replaced().
    - Update copy() and import_dict() to operate on tuple of optional keywords.
  - In CollisionBlock.replace(), set replaced flag on the copied collision.

adm/test/stout/test_coll.py
  - Exercise Collision.replaced() in unit tests.
  - Add unit test that the collision has been flagged as replaced in the tests
    for CollisionBlock.replaced().

13270 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 15:24:30 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In CollisionBlock.replace():
    - Remove the collider and levels from the argument list; instead use the
      information of the collision object to identify the collision to replace.
    - Carry out the replacement if the collision is already present in the
      dataset.  Issue a warning if replacement of a non-existent collision was
      intended.

adm/test/stout/test_coll.py
  - Exercise CollisionBlock.replace() in unit tests.

13269 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 14:20:59 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercised CollisionBlock.hi_levels() in unit tests.

13268 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 13:53:30 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise CollisionBlock.lo_levels() in unit tests.

13267 Directory Listing
Modified 3 years, 2 months ago
Mon Nov 18 13:46:12 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Refactor creation of CollisionBlock() dataset.  Use with unit test drivers.

13266 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 15 16:56:17 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Bugfix: CollisionBlock.colliders() did not return a list(), but a
    dict_keys() object.  Now it returns a sorted list.

adm/test/stout/test_coll.py
  - Exercise CollisionBlock.colliders() in unit tests.

13265 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 15 16:40:13 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Extend tests for CollisionBlock.get_collision() to include collisions that
    do not exist in the dataset.

13264 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 14 22:17:02 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise CollisionBlock.get_collision() in unit tests.

13263 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 14 22:06:18 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Modify tests for Collision.insert_collision() and .add_collision_record()
    to work with lists of data lines.
  - Add unit tests for these methods each with two records in a dataset.

13262 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 14 20:46:22 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In classes CollisionBlock() and Collisions(), rename methods add_collision()
    to add_collision_record().

adm/test/stout/test_coll.py
  - Exercise Collisions.add_collision_record() in unit tests.

13261 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 14 20:39:22 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise CollisionBlock.insert_collision() in unit tests.

13260 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 23:12:50 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Classes Collision() and CollisionBlock() now derive from object, not
    misc.DeepCopy.

adm/test/stout/test_coll.py
  - Exercised CollisionBlock.setup() in unit tests.

13259 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 23:01:20 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercised CollisionRecord.extract_temp() in unit tests.

13258 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 22:26:31 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise Collision.reset_lo_level() and .reset_hi_level() in unit tests.

13257 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 19:29:41 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collision():
    - In export_dict() used __dict__, instead of explicitly listing each field.
    - Defined import_dict() as the reverse process of export_dict(), whereby a
      dictionary is used to populate an object.

adm/test/stout/test_coll.py
  - Exercised Collision.export_dict() and .import_dict() in unit tests.
  - Refactored code for comparing two objects into (inner) function
    __compare_Collision_objects().

13256 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 19:18:02 2019 UTC
marios
Log:
adm/test/stout/test_tp.py
  - In function test_Transition_copy(), now using __compare_Transition_objects()
    to carry out the comparison of the objects.

13255 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 18:57:48 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collision(), define required keywords as a class-wide tuple, and use it
    with the copy() method.

13254 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 18:42:56 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Exercise Collision.copy() in unit tests.

13253 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 18:31:09 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - In Collision():
    - Bugfix: Method cdata() was returning the high level of the transition.
    - Remove methods init_data(), and update_dataline().

adm/test/stout/test_coll.py
  - Exercise Collision.init_dataline() in unit tests.

13252 Directory Listing
Modified 3 years, 2 months ago
Wed Nov 13 18:04:00 2019 UTC
marios
Log:
adm/test/stout/test_tp.py
  - Corrections to unit test functions' comments.

13251 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 12 18:24:54 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Force CollisionRecord.compose_dataline() to operate on float collision
    strengths.

adm/test/stout/test_coll.py
  - Update unit tests for CollisionRecord() methods.
    - Exercise CollisionRecord.compose_dataline() unit tests with float
      arguments, not string.

13250 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 12 17:48:03 2019 UTC
marios
Log:
adm/util/stout/coll.py
  - Defined functions is_ctype() and is_collider(), which now carry out the
    tests that were originally embedded in validate_ctype() and
    validate_collider().

adm/test/stout/test_coll.py
  - Exercise new functions in unit tests.

13249 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 8 20:49:58 2019 UTC
marios
Log:
adm/test/stout/test_coll.py
  - Update to function name parse_coll() from parse_collisions_file().
  - Remove loading of energies file from test_parse_coll() - no longer needed
    for reading in collisional data.

13248 Directory Listing
Modified 3 years, 2 months ago
Fri Nov 8 04:06:17 2019 UTC
marios
Log:
adm/adm-ingest-data.py
  - In set_transition_types():
    - Bugfix: Name conflict between atoms.trans module and function argument.
    - Bugfix: Called trans.resolve_ttype() with configuration, instead of list
      of shells.

adm/util/stout/tp.py
  - bugfix: Removed print statement of the object __dict__ from
    Transitions.export_dict().

adm/util/stout/coll.py
  - Removed energies from argument list of Collision.init_dataline().
  - Removed energies from argument list of CollisionBlock.add_collision().
  - In Collisions():
    - Removed energies from argument list of add_collision() and
      insert_nonexisting_collision().
  - Removed function parse_collisions_file().
  - Removed energies from argument list of parse_coll().

13247 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 7 23:22:40 2019 UTC
marios
Log:
adm/adm-ingest-data.py
  - Added support for storing the transition multipole order calculated by the
    software, when missing from the original transition data.

adm/util/io/log.py
  - Added function note(), which emits a note in the log.

13246 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 7 23:09:50 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Guard against the possibility that get_transition() returns None.

13245 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 7 23:03:22 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Replaced call to obsolete JoinedTransitions method TP_correction() with call
    to get_transition() to obtain a Transition() object, and use of its native
    TP_correction() method.

13244 Directory Listing
Modified 3 years, 2 months ago
Thu Nov 7 22:41:52 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - Bugfix in Transitions.warn_missing_transition(): The code was attempting to
    use the database name of an non-existing transition for the output message.
    Now using the database name for the entire dataset.
  - In JoinedTransitions():
    - Eliminated method TP_correction().
    - Added if-tests where needed against the possibility that tget_transition()
      returns None.
    - Commented out methods get_data() and get_tran_to_level(), likely obsolete.
    - BUGFIX: In export_dict(), function was not returning the dict prepared by
      the parent method with super().

adm/test/stout/test_tp.py
  - Exercised JoinedTransitions() methods in unit tests.

13243 Directory Listing
Modified 3 years, 2 months ago
Tue Nov 5 23:35:29 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - In class Transitions():
    - Eliminated method is_valid_transition().
    - Modified .ntrans() to return 0 if the _data attribute does not yet exist.
    - Commented out all methods that provide access to Transition() methods.
  - In class JoinedTransitions():
    - Added method export_dict(), which uses an explicit call to the homonymous
      method of the parent class, Transitions.

adm/test/stout/test_tp.py
  - Now exercise Transitions() methods in unit tests.  These are:
    - DB()
    - add_transition() 
    - have_transition() 
    - get_transition() 
    - copy() 
    - all_lo_levels() 
    - all_hi_levels() 
    - lo_levels() 
    - hi_levels() 
    - export_dict() & import_dict()
    - save_json() & read_json()

13242 Directory Listing
Modified 3 years, 3 months ago
Sun Nov 3 14:35:23 2019 UTC
marios
Log:
adm/test/stout/test_tp.py
  - Added unit tests for do_printed_TP_differ().

13241 Directory Listing
Modified 3 years, 3 months ago
Sun Nov 3 13:51:55 2019 UTC
marios
Log:
adm/test/stout/test_tp.py
  - Added unit tests for divide_TPs() and flip_levels().

13240 Directory Listing
Modified 3 years, 3 months ago
Sat Nov 2 22:55:56 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - In is_TP_valid() use types.py function is_float_pos(), instead of directly
    checking for positive and zero values.  That is, zero values are NOT
    supported anymore.
  - In validate_TP(), do not validate that a float has been given to the
    function.

adm/test/stout/test_tp.py
  - Exercise function is_TP_valid() in unit tests.
  - Drop tests of the extract_data() and compose_line() methods of the
    TransitionRecord() class.
  - Permit log.py functions print to screen.

13239 Directory Listing
Modified 3 years, 3 months ago
Fri Nov 1 15:55:59 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - In method TransitionRecord.extract_data() changed the default multipole
    order from None to empty string.
    - Now validate the order that was read in from the dataline with function
      in atom.trans.py, instead of merely testing that it is a string.
  - In class Transition():
    - Added keyword '_custom_order' to list of optional data fields.
    - Eliminated from the interface of method init_dataline() the Energies()
      dataset.  This was meant to be used with testing only.
      - The method no longer returns a boolean to announce the success of data
        ingestion.
    - Eliminated method init_data().
    - In method is_set() now require that the TP value type is set.
    - In method order() now return the custom order, if set, or the read-in
      order, if set, or an empty string if neither is set.
    - Defined method set_custom_order() to change the multipole order of the
      transition.  The data are saved in '_custom_order', so the '_order' field
      is not overwritten.
    - In method order_index(), first try to report the index of the custom order
      and, if it does not exist, the index of the read-in order.  This is now
      done with the trans.ttype_order() function, a refactored version of the
      code originally in order_index().
  - Updated interface of method Transitions.add_transition(), and function
    parse_tp() to no longer require an Energies() dataset, reflecting the change
    in Transition.init_dataline().

adm/util/stout/fmt.py
  - In get_fields_from_dataline(), change default comment value from None to
    empty string.

adm/test/stout/test_tp.py
  - Exercise Transition() methods in unit tests.

13238 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 29 23:01:17 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined function strip_ttype() to remove all whitespace from a type.
    Now used in compose_ttype().
  - Defined function parse_ttypes() to break apart composite types into
    their constituent types.  Handles non-composite types, as well.
  - Updated is_ttype() to operate on the output of parse_ttypes().
    Also permitted types E3 and M3.
  - Defined function ttype_order() to extract the multipole order from a type.
 
adm/test/atoms/test_trans.py
  - Exercise new functions in unit tests.
  - Add tests for support of E3 and M3.

13237 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 29 18:37:34 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined transition types as module parameters t_E1, etc, including '' for
    unidentified transitions.
    - Defined functions is_ttype() and validate_ttype() to check and guarantee
      that a transition type is supported.  Supports composite types.
    - Defined function compose_ttype() to join two types using the sentinel '+',
      defined as a module parameter. 
  - Renamed function resolve_transition_type() to resolve_ttype(), and added
    code for it.  Transitions E1 to M2 are supported, as well as composite types
    (e.g., E2+M1; except for E1+M2), and blank strings for unidentified types.

adm/test/atoms/test_trans.py
  - Exercised new functions in unit tests.
    - Exercised previous tests for is_E1() etc, as tests for resolve_ttype().
      (Discovered conflicts.) 

13236 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 29 15:59:41 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Bugfix in is_M2(): Apply LS-coupling rules only when both terms are in LS
    coupling.

adm/test/atoms/test_trans.py
  - Add unit tests for all functions testing transition types (is_E1(), etc).

13235 Directory Listing
Modified 3 years, 3 months ago
Mon Oct 28 21:52:30 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined function is_M2() to tell if a transition is M2 type.

adm/test/atoms/test_trans.py
  - Added unit tests to exercise new function.

13234 Directory Listing
Modified 3 years, 3 months ago
Mon Oct 28 21:34:19 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Refactored functions obey_dJ_rules() and obey_dLS_rules() into one function,
    obey_dLSJ_rules(), which operates on floats (dropped support for int).
    - Old functions removed.
  - Modified function obey_LS_rules() to work with the spin, not the spin
    multiplicity of a term.

adm/test/atoms/test_trans.py
  - Unified unit tests for obey_dJ_rules() and obey_dLS_rules() into tests for
    obey_dLSJ_rules().

13233 Directory Listing
Modified 3 years, 3 months ago
Mon Oct 28 20:50:50 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Refactored code for rigorous rules into function obey_rigorous_rules(),
    and code for LS rules into function obey_LS_rules().
  - Now using new functions, along with obey_CI_rules() in functions is_E1() etc
    - Removed obsolete function obey_rules().

13232 Directory Listing
Modified 3 years, 3 months ago
Mon Oct 28 19:39:27 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined function is_M1() to tell if a transition is of M1 type.  Only the
    rigorous rules are exercised.
  - In obey_rules(), Bugfix: Do not require keywords for LS-coupling rules.
  - Add argument to the interfaces of is_E1() and is_E2() to indicate that
    configuration interaction rules should be exercised.

adm/test/atoms/test_trans.py
  - Exercise new function is_M1() in unit tests.  These include various NIST
    transitions, including certain Fe V M1+E2 transitions; also see below.
  - Add optional keyword to inner function test_ttype() to tell if the
    configuation interaction rules should be exercised.
  - Add unit test for is_E2() exercising Fe V M1+E2 transition.

13230 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 24 15:27:15 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Bugfix: Imported missing modules io.log and io.err. 
  - In obey_rules() test presence of keywords with 'is None'.  When deciding
    whether to call obey_CI_rules() test only the number of jumping electrons,
    as the change in principal quantum number may be None (for any).
  - Defined function is_E2() to tell if a given transition is consistent with
    being of E2 type.

adm/test/atoms/test_trans.py
  - Refactor inner function test_is_E1() to test_ttype() to also accept the
    trans.py function name to test.  All test_is_E1() calls are now replaced
    with this.
  - Added a few more tests for E1 transitions, targetting violations of specific
    rules.
  - Exercised new function is_E2() in unit tests.

13229 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 24 04:18:08 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined function obey_rules() to apply all 6 rules in Drake's Table 10.4.
    These may used for the various transition types by supplying suitable sets
    of rules, as enapsulated in keyword arguments to function.
  - Defined function is_E1() to check if a transition is electric dipole.

adm/util/atoms/orbitals.py
  - Parametrize parity values.  Refactor functions to use new parameters.

adm/test/atoms/test_trans.py
  - Exercise function is_E1() in unit tests. 

13228 Directory Listing
Modified 3 years, 3 months ago
Wed Oct 23 22:56:59 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Refactored code that walks through a list of forbidden transitions to tell
    if a given transition is there in funtion is_forbidden().  It works with
    both int and float input.
    - Updated obey_dJ_rules() to call is_forbidden().
  - Defined function obey_dLS_rules() as a parallel to obey_dJ_rules() to check
    if changes in Lorb or S are consistent with the given transition rules.
    Unlike obey_dJ_rules(), it operates on int input.  Calls is_forbidden().

adm/test/atoms/test_trans.py
  - Exercise is_forbidden() and obey_dLS_rules() in unit tests.

13227 Directory Listing
Modified 3 years, 3 months ago
Wed Oct 23 21:17:38 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined parse_transition_jump() to access the transition properties: number
    of jumping electrons, change in principal quantum number, and orbital
    angular momentum.
    - Depends on reduce_subshells(), see below.
  - Defined function obey_CI_rules() to validate if rules that arise from
    negligible configuration interaction are observed by a transition.

adm/util/atoms/orbitals.py
  - Defined function reduce_subshells() to report the subshells present in a
    configuration that are not present in the reference configuration.

adm/test/atoms/test_trans.py
adm/test/atoms/test_orbitals.py
  - Exercise new functions in unit tests.

13226 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 22 12:50:18 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Defined function obey_parity_rule() to tell if the transition parity rule is
    met.

adm/test/atoms/test_trans.py
  - Exercise unit tests for obey_parity_rule().

13225 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 22 12:24:06 2019 UTC
marios
Log:
adm/util/atoms/trans.py
  - Added file to treat the types of radiative transitions.
  - Defined function obey_dJ_rules() to check if a transition is consistent with
    the given selection rules (for both allowed transitions, and forbidden).

adm/test/atoms/test_trans.py
  - Exercise function obey_dJ_rules() with the order 1 (E1/M1) and 2 (E2/M2)
    transitions.

13224 Directory Listing
Modified 3 years, 3 months ago
Tue Oct 22 03:10:41 2019 UTC
marios
Log:
adm/util/atoms/orbitals.py
  - Accommodate certain ADAS files which use hexadecimal digits for shell
    occupation numbers higher than 9.  This was first encountered in connection
    to Tungsten (W+0).  Modified __parse_subshell().

adm/util/atoms/config.py
  - Updated fmt_econfig() to properly handle hexadecimal shell occupation
    numbers.  Defined inner function fix_hex(), which capitalizes the hex
    digit.
    - Removed empty strings from list of subshells to process.
 
adm/util/misc.py
  - Defined function is_hex() to tell if the number is hexadecimal (requires
    presence of characters in the range A-F).

adm/test/atoms/test_orbitals.py
adm/test/atoms/test_config.py
adm/test/test_misc.py
  - Exercise new capabilities, and their cascade in calls from other functions.

13223 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:42:19 2019 UTC
marios
Log:
Updated imports of the cloudy subpackage
  - test_cloudy.py
  - test_lines.py

13222 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:40:22 2019 UTC
marios
Log:
adm/test/cloudy
  - Added directory to hold unit tests of the cloudy subpackage.


Moved modules:
  - adm/test/test_cloudy.py to adm/test/cloudy/test_cloudy.py
  - adm/test/test_lines.py to adm/test/cloudy/test_lines.py

13221 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:37:25 2019 UTC
marios
Log:
Updated cloudy subpackage imports:
  - adm/adm-adas-to-stout.py
  - adm/adm-fetch-nist.py
  - adm/adm-fix-fnames.py
  - adm/adm-query-adas.py
  - adm/adm-register-levels.py
  - adm/reorder-stout-levels.py
  - adm/stout-data-summary.py
  - adm/util/chianti.py
  - adm/util/stout/dirtree.py
  - adm/util/stout/refs.py

13220 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:35:26 2019 UTC
marios
Log:
adm/util/cloudy/cloudy.py
adm/util/cloudy/icloudy.pyx
adm/util/cloudy/lines.py
  - Update relative imports.

13219 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:23:22 2019 UTC
marios
Log:
adm/util/cloudy/__init__.py
  - Provide modules for 'import *'.

adm/util/__init__.py
  - Updated module list -- cloudy and lines removed.

13218 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:19:10 2019 UTC
marios
Log:
Moved modules:
  - adm/util/cloudy.py to adm/util/cloudy/cloudy.py
  - adm/util/icloudy.pyx to adm/util/cloudy/icloudy.pyx

13217 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:14:15 2019 UTC
marios
Log:
adm/util/cloudy
  - Added directory cloudy to hold all Cloudy-related modules.

Moved modules:
  - adm/util/lines.py to adm/util/cloudy/lines.py
  - adm/util/setup_icloudy.py to adm/util/cloudy/setup_icloudy.py

13216 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 02:07:19 2019 UTC
marios
Log:
Update adas subpackage imports:
  - adf042stout.py
  - adm/test/adas/test_adas.py
  - adm/test/adas/test_eissner.py
  - adm/util/stout/nrg.py

13215 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:58:18 2019 UTC
marios
Log:
adm/test/__init__.py updated
13214 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:57:19 2019 UTC
marios
Log:
adm/test/adas
  - Added directory to hold unit tests of the adas/ subpackage.

Moved modules:
  - adm/test/test_adas.py to adm/test/adas/test_adas.py
  - adm/test/test_eissner.py to adm/test/adas/test_eissner.py

13213 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:52:47 2019 UTC
marios
Log:
adm/util/adas/adas.py
adm/util/adas/eissner.py
  - Updated relative imports.

adm/util/adas/__init__.py
  - Provide modules for 'import *'.

adm/util/__init__.py
  - Updated module list -- adas and eissner removed.

13212 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:47:45 2019 UTC
marios
Log:
adm/util/adas
  - Added directory to hold ADAS-related modules.

Moved modules:
  - adm/util/adas.py to adm/util/adas/adas.py
  - adm/util/eissner.py to adm/util/adas/eissner.py

13211 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:44:06 2019 UTC
marios
Log:
Remove unused json module imports:
  - adm/adm-merge-tp.py
  - adm/adm-register-levels.py
  - adm/util/stout/meta.py
  - adm/util/stout/nrg.py
  - adm/util/stout/tp.py

13210 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:36:46 2019 UTC
marios
Log:
Update imports of the io subpackage:
  - NistExtractor/NistExtractor.py
  - adf042stout.py
  - adm/adm-adas-to-stout.py
  - adm/adm-create-pfile.py
  - adm/adm-fetch-nist.py
  - adm/adm-fix-fnames.py
  - adm/adm-ingest-data.py
  - adm/adm-merge-nrg.py
  - adm/adm-merge-tp.py
  - adm/adm-query-adas.py
  - adm/adm-register-levels.py
  - adm/adm-setup.py
  - adm/create-elements-module.py
  - adm/merge-with-stout.py
  - adm/reorder-stout-levels.py
  - adm/stout-data-summary.py
  - adm/test/atoms/test_config.py
  - adm/test/atoms/test_orbitals.py
  - adm/test/nist/test_fmt.py
  - adm/test/nist/test_phtml.py
  - adm/test/nist/test_web.py
  - adm/test/ptable/test_elements.py
  - adm/test/ptable/test_ions.py
  - adm/test/ptable/test_spectra.py
  - adm/test/stout/test_c2s.py
  - adm/test/stout/test_coll.py
  - adm/test/stout/test_dirtree.py
  - adm/test/stout/test_fmt.py
  - adm/test/stout/test_info.py
  - adm/test/stout/test_meta.py
  - adm/test/stout/test_nrg.py
  - adm/test/stout/test_refs.py
  - adm/test/stout/test_tp.py
  - adm/test/test_adas.py
  - adm/test/test_chianti.py
  - adm/test/test_chtypes.py
  - adm/test/test_cloudy.py
  - adm/test/test_eissner.py
  - adm/test/test_fs.py
  - adm/test/test_lines.py
  - adm/test/test_match.py
  - adm/test/test_misc.py
  - adm/test/test_types.py
  - adm/util/adas.py
  - adm/util/atoms/config.py
  - adm/util/atoms/orbitals.py
  - adm/util/chianti.py
  - adm/util/chtypes.py
  - adm/util/cloudy.py
  - adm/util/eissner.py
  - adm/util/fs.py
  - adm/util/io/ui.py
  - adm/util/lines.py
  - adm/util/misc.py
  - adm/util/nist/err.py
  - adm/util/nist/fmt.py
  - adm/util/nist/refs.py
  - adm/util/prun.py
  - adm/util/ptable/elements.py
  - adm/util/ptable/ions.py
  - adm/util/ptable/spectra.py
  - adm/util/register/levels.py
  - adm/util/register/nocfg.py
  - adm/util/register/terms.py
  - adm/util/stout/c2s.py
  - adm/util/stout/coll.py
  - adm/util/stout/dirtree.py
  - adm/util/stout/fmt.py
  - adm/util/stout/info.py
  - adm/util/stout/meta.py
  - adm/util/stout/nrg.py
  - adm/util/stout/refs.py
  - adm/util/stout/tp.py
  - fetch-NIST-IP.py

13209 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 01:24:35 2019 UTC
marios
Log:
adm/test/io
  - Added directory to host unit tests of the io subpackage.

Moved modules:
  - adm/test/test_dirs.py to adm/test/io/test_dirs.py
  - adm/test/test_log.py to adm/test/io/test_log.py
  - adm/test/test_pfile.py to adm/test/io/test_pfile.py
  - adm/test/test_ui.py to adm/test/io/test_ui.py

13208 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:36:23 2019 UTC
marios
Log:
adm/util/io/__init__.py
  - Provide modules for 'import *'.

adm/util/__init__.py
  - Updated module list -- dirs, err, log, pfile, and ui removed.

13207 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:32:33 2019 UTC
marios
Log:
adm/util/io/dirs.py
adm/util/io/log.py
adm/util/io/pfile.py
adm/util/io/ui.py
  - Update relative imports.

13206 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:29:23 2019 UTC
marios
Log:
adm/util/io
  - Added directory to hold UI-related modules.

Moved modules:
  - adm/util/err.py to adm/util/io/err.py
  - adm/util/ui.py to adm/util/io/ui.py
  - adm/util/log.py to adm/util/io/log.py
  - adm/util/dirs.py to adm/util/io/dirs.py
  - adm/util/pfile.py to adm/util/io/pfile.py

13205 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:24:08 2019 UTC
marios
Log:
adm/test/atoms/test_config.py
adm/test/atoms/test_orbitals.py
  - Updated imports of config.py and orbitals.py to point to the atoms subpackage.

13204 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:18:25 2019 UTC
marios
Log:
adm/test/atoms
  - Added directory to host unit tests of the atoms subpackage.

Moved modules:
  - adm/test/test_orbitals.py to adm/test/atoms/test_orbitals.py
  - adm/test/test_config.py to adm/test/atoms/test_config.py

13203 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:14:57 2019 UTC
marios
Log:
NistExtractor/NistExtractor.py
adf042stout.py
adm/adm-ingest-data.py
adm/adm-register-levels.py
adm/test/stout/test_nrg.py
adm/util/adas.py
adm/util/eissner.py
adm/util/register/levels.py
adm/util/register/terms.py
adm/util/stout/nrg.py
  - Update imports of config.py and orbitals.py to the right submodule.

13202 Directory Listing
Modified 3 years, 3 months ago
Sun Oct 20 00:14:30 2019 UTC
marios
Log:
adm/util/register/terms.py: Remove debug statements from inner function check_term_order()
13201 Directory Listing
Modified 3 years, 3 months ago
Sat Oct 19 23:58:04 2019 UTC
marios
Log:
adm/util/atoms/config.py
adm/util/atoms/orbitals.py
  - Updated relative imports.

adm/util/atoms/__init__.py
  - Provide modules for 'import *'.

adm/util/__init__.py
  - Updated module list -- config and orbitals removed.

13200 Directory Listing
Modified 3 years, 3 months ago
Sat Oct 19 23:51:43 2019 UTC
marios
Log:
adm/util/atoms
  - Created new directory to hold modules relevant to atomic levels and
    transitions.

Moved modules
  - adm/util/config.py to adm/util/atoms/config.py
  - adm/util/orbitals.py to adm/util/atoms/orbitals.py

13198 Directory Listing
Modified 3 years, 3 months ago
Sat Oct 19 01:55:34 2019 UTC
marios
Log:
adm/util/config.py
  - Define function level_nist_fmt() to convert a level to NIST notation,
    namely to use an asterisk for odd parity, and place J within angle brackets
    ('1P<1>' -> '1P*<1>').
  - Define function shells_nist_fmt() to convert subshells to NIST format,
    namely, to eliminate unity occupation numbers (e.g., '1s1' -> '1s').
  - Refactor fix_econfig() to use orb.subshells().
  - Modify fmt_config_output() to use fix_econfig() for the configuration, and
    level_nist_fmt() for the level.

adm/util/orbitals.py
  - Define functions is_even_parity() and is_odd_parity(), and refactor function
    is_parity() to use them.
  - In function sushells, strip leading and trailing spaces from configuration
    before processing.

adm/test/test_config.py
  - Add unit tests to exercise level_nist_fmt(), shells_nist_fmt().

adm/test/test_orbitals.py
  - Add unit tests to exercise is_odd_parity(), is_even_parity(), is_parity().

13197 Directory Listing
Modified 3 years, 3 months ago
Fri Oct 18 03:16:43 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Bugfix: Use the original energies of the theoretical dataset when computing
    the photon energy ratio for the Einstein A correction.  Previously the
    energy was used, which is updated for shifted terms.
  - Bugfix: Make sure that the lower index is indeed lower than the upper index.
  - Use sorted energy JSON file.

adm/util/stout/nrg.py
  - Define method original_energy() in classes Energy() and Energies() to access
    the original level energy.

13196 Directory Listing
Modified 3 years, 3 months ago
Fri Oct 18 02:28:01 2019 UTC
marios
Log:
adm/adm-merge-nrg.py
  - Sort levels by energy and use sorted list to create output Stout file.
  - Save JSON of sorted levels with the nickname 'sorted'.

adm/util/stout/meta.py
  - Change format of EnergyStat.report_stat() to report relative difference with
    as a percentage.

13195 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 22:16:27 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Report maximum correction to log.

13194 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 22:12:01 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Bugfix: Inner function get_theory_index() in update_theory_tran() yielded
    the wrong theoretical index for levels that had not been registered.  Now
    simplified to return the index if the level is theoretical, or the matching
    index if the level is experimental, or None.
    - None indices now exit the function immediately with an empty Transition()
      object.
  - Report to log which transitions we're using.

13193 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 20:38:14 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Save total number of transitions in metadata JSON file.

adm/util/stout/tp.py
  - In class Transitions(), add method ntrans() to tell the total number of
    transitions in the dataset.

adm/util/stout/meta.py
  - In class TPupdate():
    - Add variable to store total number of transitions in a dataset.
      Adjust all methods to accommodate new variable.
    - Added method ntrans() to access new variable.
    - Update names of all getter methods by removing the 'get_' prefix.

adm/test/stout/test_meta.py
  - Adapt to the new interface of TPupdate.set_data().
  - Exercise all getter methods.

13192 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 20:34:39 2019 UTC
fguzman
Log:
created printout of bfn values
13191 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 19:44:08 2019 UTC
marios
Log:
adm/util/stout/nrg.py
  - Add optional keywords when asserting the keys of a dict input to the
    Energy.import_dict() method.

  - In class Multiplet():
    - Define object mandatory keywords for method import_dict() as class
      variable. 

  - In class Energies():
    - Define JSON basename, as well as object mandatory and optional keywords
      for method import_dict() as class variables.
    - Refactor save_json() code for casting an object into a dict into method
      export_dict().
    - Refactor read_json() code for populating an object from a dict into method
      import_dict().  The method is designed to be used with child classes.
    - Update methods pathname(), save_json(), and read_json() to use the
      methods of the JSON class.  The data I/O to/from the object is done with
      the export_dict() and import_dict() methods.

  - In class JoinedEnergies():
    - Define JSON basename, and object mandatory keywords for method
      import_dict() as class variables.
    - Update methods pathname(), save_json(), and read_json() to use the
      methods of the JSON class.  The data I/O to/from the object is done with
      the export_dict() and import_dict() methods of the parent class.

adm/util/misc.py
  - In require_dict_keywords(): Bugfix: Wrong variable was used with error
    messages. 

13190 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 17:36:04 2019 UTC
marios
Log:
adm/util/stout/tp.py
  - Update to TP_correction() value of 1, when no correction is to be applied:
    - Bugfix in JoinedTransitions.count_updates(): With previous implementation
      ALL transitions were counted.
    - Bugfix in JoinedTransitions.ntrans_db(): With previous implementation NO
      experimental transitions were counted.

13189 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 17:26:21 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Save in the metadata file the total number of updated transitions.
adm/util/stout/meta.py
  - In class TPupdate():
    - Store the total number of updated transitions.  Modify all methods and
      class data to accommodate that.
    - Define method get_nupdated_in_print() to access new variable.

13188 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 17:16:03 2019 UTC
marios
Log:
adm/util/config.py
adm/util/stout/info.py
adm/util/stout/meta.py
  - Define class variables for encapsulating required keywords in dictionaries
    for use with import_dict() methods.
adm/util/misc.py
  - Minor docstring correction.

13187 Directory Listing
Modified 3 years, 3 months ago
Thu Oct 17 16:53:06 2019 UTC
marios
Log:
adm/adm-merge-tp.py
  - Modified the logic of putting together the merged transition dataset.
    Instead of stitching the final dataset from the transitions of the input
    datasets, the script now goes over all possible transitions between the
    joined energy levels, and searches for matching experimental transitions.
    If not present, the theoretical transition is used, if also present.  Its
    Einstein A may be updated to be consistent with its (possibly updated)
    level energies.
    In making this change, the following operations were done:
    - Updated script docstring.
    - Updated CL interface.
    - Removed functions:
      - form_all_paths()
      - print_tran_configs()
      - get_missing_transitions()
      - replace_transitions_ADAS_with_NIST()
      - get_appended_transitions()
      - append_TP_file_comments()
      - update_ADAS_TP()
    - Defined functions:
      - find_native_tran()
      - update_theory_tran()
      - do_join()
      - join_transitions() renamed from update_tp()

adm/util/stout/tp.py
  - Remove dependence on module dbdir.py.

  - In class TransitionRecord(), parametrize TP format and use it with method
    compose_line(), as well as with module function do_printed_TP_differ().

  - In class Transition():
    - Define object mandatory and optional keywords for method import_dict()
      as class variables.
    - Define methods copy() to populate an object from another, and is_set()
      to make sure that an object is not empty.
    - Default value of method order_index() is 1.0 (was None).
    - Define method set_TP_correction() to compute the correction factor for an
      updated transition, and method TP_correction() to access that value.  The
      value is stored in the attribute '_TP_factor', which otherwise does not
      exist.

  - In function new_dataline(), print database name if comment is absent.

  - In class Transitions():
    - Class now inherits from object() class, not misc.DeepCopy().
    - Define JSON basename, and required keywords for import method as class
      variables.
    - Method order_index() now returns None, if the transition does not exist.
    - Removed method hasattr().
    - Defined methods export_dict() and import_dict() to use with JSON I/O.
      import_dict() is designed to be used from derived classes: it accepts the
      required keywords of the dictionary as an optional argument; if absent, it
      operates on the class required keywords.
    - Updated methods pathname(), save_json(), and read_json() to use the
      methods of the JSON class.  The data I/O to/from the object is done with
      the export_dict() and import_dict() methods.

  - In class JoinedTransitions():
    - Define JSON basename, and required keywords for import method as class
      variables.
    - Removed object metadata variables:
      - _missing
      - _extra
      - _nmissing
      - _nextra
      - _nreplaced
      - _nupdated
      - _nupdated_in_output_file
      which are no longer needed, given the change in logic in the script that
      merges the TP lists.  Also removed associated methods:
      - replace()
      - get_nreplaced()
      - add_missing_tran()
      - get_nmissing()
      - add_NIST_extra_tran()
      - get_nextra()
      - is_replaced_with_NIST()
      - is_missing()
      - is_extra()
      - is_NIST()
      - set_TP_correction(), now absorbed in the Transition() class 
      - get_nupdated()
      - get_nupdated_in_output()
      - copy_metadata()
    - Simplified method set_DB() to compile the DB name from its stored data.
    - Defined method count_updates() to compute on the fly the number of updated
      transitions.
    - Defined method ntrans_db() to compute the number of unmodified transitions
      from a given database.
    - Defined method import_dict() to aid with input from JSON.  The parent's
      export_dict() is used for export to J