%gunzip atsp2Kp.tar.gz %tar -xvf atsp2Kp.tar
The last command will create a directory atsp2K and four sub-directories, atsp2Kp/bin, atsp2Kp/lib, atsp2Kp/run and atsp2Kp/src.
Note: In order to use GNU programs on IBM/SP seaborg, such as gzip, gunzip the user may need to load the module gnu:
module load gnu
All make files require a number of global environmental variables, FFLAGS, FC, MALLOC, LDFLAGS, ATSP, lapack, blas, which need to be initialized prior to compilation. The following list shows each variable and its meaning.
setenv FC_MPI mpif90seaborg (IBM/SP):
setenv FC_MPI mpxlf
setenv FFLAGS -O3 -r8 -static -align dcommon -non_shared -convert big_endian
setenv FFLAGS -O3
setenv FFLAGS -O2
setenv FFLAGS -O5
setenv FFLAGS -O3 -dp -e0
equiv(DAXPY)=SAXPY equiv(DCOPY)=SCOPY equiv(DDOT)=SDOT equiv(DGEMV)=SGEMV equiv(DLAMCH)=SLAMCH equiv(DNRM2)=SNRM2 equiv(DSCAL)=SSCAL equiv(DSPEVX)=SSPEVX equiv(DSWAP)=SSWAP equiv(IDAMAX)=ISAMAX
Thus, for Cray T3E, the variable LDFLAGS is set to: "-Wl ../../...lib/d2s.cld".
setenv lapack "/usr/pgi/linux86/lib/liblapack.a" setenv blas "/usr/pgi/linux86/lib/libblas.a"
setenv lapack "/usr/common/usg/LAPACK/3.0a/lapack_SP.a"
setenv lapack "${ATSP}/lin/libnet.a"
The PGI F90 compiler, pgf90 is available on node hf5. The code can be compiled using the -byteswapio. This option allows to convert from/to big-endian to/from little endian representation for reading writing binary files (little endian is used mostly on atsp2K for Sun and SGI platforms).
setenv FC "pgf90" setenv FC_MPI "mpif90" setenv FFLAGS "-O2 -byteswapio" setenv MALLOC sun setenv MPI_FFLAGS # not used setenv CC "g++" setenv LDFLAGS # not used setenv ATSP ${HOME}/atsp2K setenv lapack "/usr/pgi/linux86/lib/liblapack.a" setenv blas "/usr/pgi/linux86/lib/libblas.a"
source /usr/common/usg/Modules/3.1.1/init/csh module load gnu KCC setenv FC "xlf" setenv FC_MPI "mpxlf" setenv FFLAGS "-O5 -qalign=4k " setenv MALLOC ibmSP setenv MPI_FFLAGS # not used setenv LDFLAGS # not used setenv CC KCC setenv CCFLAGS "-O3" setenv lapack "/usr/common/usg/LAPACK/3.0a/lapack_SP.a" setenv blas # not used setenv ATSP ${HOME}/atsp2K #setenv XLFRTEOPTS "buffering=disable_all"Note: All user modifications of the .cshrc file should be placed in a .cshrc.ext file instead of making direct changes to .cshrc.
After proper initialization, the user can cd to atsp2Kp/src and type "make". make supports two targets; the default is install, it compiles, links and installs the atsp2K package. make will recurse in libraries, applications and utilities and it will create executables which are located in atsp2Kp/bin. The second target, make clean can be used to recursively erase all .o files. Upon successful compilation the directiory will contain the following executables:
-rw------- 1 georgio mp52 504 Aug 30 01:05 Makefile -rwx------ 1 georgio mp52 737871 Aug 30 01:36 biotr -rwx------ 1 georgio mp52 1227799 Aug 30 01:17 bp_ang -rwx------ 1 georgio mp52 716050 Aug 30 07:40 bp_ang_mpi -rwx------ 1 georgio mp52 527610 Aug 30 01:13 bp_eiv -rwx------ 1 georgio mp52 472077 Aug 2 08:59 bp_eiv_mpi -rwx------ 1 georgio mp52 172955 Aug 30 01:17 bp_mat -rwx------ 1 georgio mp52 181151 Aug 30 01:43 bp_mat_mpi -rwx------ 1 georgio mp52 1618518 Aug 30 01:23 bpci -rwx------ 1 georgio mp52 1198774 Aug 30 03:02 breit_mpi -rwx------ 1 georgio mp52 27603 Aug 30 01:48 comp -rwx------ 1 georgio mp52 35020 Aug 30 01:48 condens -rwx------ 1 georgio mp52 100463 Aug 30 01:49 gencl -rwx------ 1 georgio mp52 289489 Aug 30 01:48 hf -rwx------ 1 georgio mp52 600635 Aug 30 01:24 hfs -rwx------ 1 georgio mp52 675510 Aug 30 01:26 iso -rwx------ 1 georgio mp52 26098 Aug 30 01:48 levels -rwx------ 1 georgio mp52 19693 Aug 30 01:48 lines -rwx------ 1 georgio mp52 240704 Aug 30 01:48 lsgen -rwx------ 1 georgio mp52 354333 Aug 30 01:48 lsgenf -rwx------ 1 georgio mp52 685741 Aug 30 01:28 lsreduce -rwx------ 1 georgio mp52 451418 Aug 2 16:20 mchf -rwx------ 1 georgio mp52 438366 Aug 1 13:32 mchf_mpi -rwx------ 1 georgio mp52 673763 Aug 30 01:32 nonh -rwx------ 1 georgio mp52 691936 Aug 30 01:47 nonh_mpi -rwx------ 1 georgio mp52 27172 Aug 30 01:48 plotw -rwx------ 1 georgio mp52 8818 Aug 30 01:48 printw -rwx------ 1 georgio mp52 9463 Aug 30 01:48 relabel -rwx------ 1 georgio mp52 437 Aug 30 01:05 sh_Repl -rwx------ 1 georgio mp52 625 Aug 30 01:05 sh_cat -rwx------ 1 georgio mp52 831 Aug 30 01:05 sh_format -rwx------ 1 georgio mp52 858 Aug 30 01:05 sh_unformat -rwx------ 1 georgio mp52 85700 Aug 30 01:49 tables -rwx------ 1 georgio mp52 550267 Aug 30 01:33 trans -rwx------ 1 georgio mp52 9459 Aug 30 01:49 w_format -rwx------ 1 georgio mp52 9873 Aug 30 01:49 w_unformat
The main scripts implements that sequence calling other scripts:
.sh_ALL E1/sh_hf # Hartree - Fock program for initial estimates E1 E1/sh_mchf_E1 # mchf method computing the wave functions of group E1 O1/sh_hf # Hartree - Fock program for initial estimates O1 O1/sh_mchf_O1 # mchf method computing the wave functions of group O1 LS/sh_LS_D # computing the LS transitions: Doublets LS/sh_LS_Q # computing LS Quartet transitions LSJ/sh_bp # Breit-Pauli calculations LSJ/sh_biotr # LSJ transition calculation LSJ/sh_for # forbidden transitions LSJ/sh_tables # program for tabulating energies, lifetimes, lines
The calculation starts with sh_mchf_E1 and sh_mchf_O1 which compute the corresponding wave functions for the initial and final states E1 and O1. In addition, to the wave functions, (saved in *.w files), the eigenvectors are computed and saved in *.l files. Then, sh_LS_D and sh_LS_Q which are located in the directory LS compute the LS transitions using the *.w and *.l files from the previous step. The next step is to compute the LSJ energies, eigenvectors (saved as *.j files) and transitions (saved as *.lsj files). This step includes the forbidden LSJ transitions. The scripts can be used interactively, they are a learning tool for a user not familiar with the specifics of the input expected by the program. The entire set of tests takes a few hours to complete on i686.
The results can be compared with previously computed data, which reside in the same directories using the same files but with a "_" appended as a prefix to the file name:
_N8-lev.dat _N8-lin.dat _N9-lev.dat _N9-lin.dat
ls -l E1/*.w O1/*.w (georgio@hf7)143% ls -l E1/*.w O1/*.w -rw-r--r-- 1 georgio users 3593 Aug 18 23:17 E1/E1.8_2.w -rw-r--r-- 1 georgio georgio 11211 Aug 18 23:17 E1/E1.8_3.w -rw-r--r-- 1 georgio georgio 12358 Aug 18 23:23 E1/E1.8_4.w -rw-r--r-- 1 georgio users 3545 Aug 18 23:17 E1/E1.9_2.w -rw-r--r-- 1 georgio georgio 10843 Aug 18 23:18 E1/E1.9_3.w -rw-r--r-- 1 georgio georgio 11870 Aug 18 23:34 E1/E1.9_4.w -rw-r--r-- 1 georgio georgio 3585 Aug 18 23:55 O1/O1.8_2.w -rw-r--r-- 1 georgio georgio 8301 Aug 18 23:55 O1/O1.8_3.w -rw-r--r-- 1 georgio georgio 11838 Aug 19 00:10 O1/O1.8_4.w -rw-r--r-- 1 georgio georgio 3537 Aug 18 23:55 O1/O1.9_2.w -rw-r--r-- 1 georgio georgio 8205 Aug 18 23:55 O1/O1.9_3.w -rw-r--r-- 1 georgio georgio 11686 Aug 19 00:27 O1/O1.9_4.wThe LS eigenvectors for each term are saved in a separate files and the following *.l files will be created after the mchf calculation is completed:
ls -l E1/*.l O1/*.l (georgio@hf7)144% ls -l E1/*.l O1/*.l -rw-r--r-- 1 georgio georgio 378 Aug 18 23:17 E1/2D1.8_3.l -rw-r--r-- 1 georgio georgio 12000 Aug 18 23:23 E1/2D1.8_4.l -rw-r--r-- 1 georgio georgio 378 Aug 18 23:18 E1/2D1.9_3.l -rw-r--r-- 1 georgio georgio 12000 Aug 18 23:34 E1/2D1.9_4.l -rw-r--r-- 1 georgio georgio 713 Aug 18 23:17 E1/2P1.8_3.l -rw-r--r-- 1 georgio georgio 20947 Aug 18 23:23 E1/2P1.8_4.l -rw-r--r-- 1 georgio georgio 713 Aug 18 23:18 E1/2P1.9_3.l -rw-r--r-- 1 georgio georgio 20947 Aug 18 23:34 E1/2P1.9_4.l -rw-r--r-- 1 georgio georgio 267 Aug 18 23:17 E1/2S1.8_3.l -rw-r--r-- 1 georgio georgio 4312 Aug 18 23:23 E1/2S1.8_4.l -rw-r--r-- 1 georgio georgio 267 Aug 18 23:18 E1/2S1.9_3.l -rw-r--r-- 1 georgio georgio 4312 Aug 18 23:34 E1/2S1.9_4.l -rw-r--r-- 1 georgio georgio 289 Aug 18 23:17 E1/4P1.8_3.l -rw-r--r-- 1 georgio georgio 7566 Aug 18 23:23 E1/4P1.8_4.l -rw-r--r-- 1 georgio georgio 289 Aug 18 23:18 E1/4P1.9_3.l -rw-r--r-- 1 georgio georgio 7566 Aug 18 23:34 E1/4P1.9_4.l -rw-r--r-- 1 georgio georgio 326 Aug 18 23:55 O1/2Do1.8_3.l -rw-r--r-- 1 georgio georgio 10042 Aug 19 00:10 O1/2Do1.8_4.l -rw-r--r-- 1 georgio georgio 326 Aug 18 23:55 O1/2Do1.9_3.l -rw-r--r-- 1 georgio georgio 10042 Aug 19 00:27 O1/2Do1.9_4.l -rw-r--r-- 1 georgio georgio 370 Aug 18 23:55 O1/2Po1.8_3.l -rw-r--r-- 1 georgio georgio 9864 Aug 19 00:10 O1/2Po1.8_4.l -rw-r--r-- 1 georgio georgio 370 Aug 18 23:55 O1/2Po1.9_3.l -rw-r--r-- 1 georgio georgio 9864 Aug 19 00:27 O1/2Po1.9_4.l -rw-r--r-- 1 georgio georgio 237 Aug 18 23:55 O1/4So1.8_3.l -rw-r--r-- 1 georgio georgio 2855 Aug 19 00:10 O1/4So1.8_4.l -rw-r--r-- 1 georgio georgio 237 Aug 18 23:55 O1/4So1.9_3.l -rw-r--r-- 1 georgio georgio 2855 Aug 19 00:27 O1/4So1.9_4.l
Z=8 -------------------------------------------------------------------------------- Z n EL EU SL(v) SL(V) gf(L) gf(V) Error -------------------------------------------------------------------------------- 2s(2).2p(3)2D3_2D 2s.2p(4)1D2_2D 8 4 -74.36936886 -73.73180871 3.916e+00 3.929e+00 1.664e+00 1.670e+00 0.003 2s(2).2p(3)2D3_2D 2s(2).2p(2)3P2_3P.3s_2P 8 4 -74.36936886 -73.62656680 2.296e+00 2.460e+00 1.137e+00 1.218e+00 0.067 2s(2).2p(3)2P1_2P 2s.2p(4)1D2_2D 8 4 -74.30709760 -73.73180871 5.514e-01 6.070e-01 2.114e-01 2.328e-01 0.092 2s(2).2p(3)2P1_2P 2s.2p(4)1S0_2S 8 4 -74.30709760 -73.59232421 1.435e+00 1.390e+00 6.839e-01 6.624e-01 0.031 2s(2).2p(3)2P1_2P 2s(2).2p(2)3P2_3P.3s_2P 8 4 -74.30709760 -73.62656680 4.413e-01 5.628e-01 2.002e-01 2.553e-01 0.216 -------------------------------------------------------------------------------- 5 LS transitions. -------------------------------------------------------------------------------- Z=9 -------------------------------------------------------------------------------- Z n EL EU SL(v) SL(V) gf(L) gf(V) Error -------------------------------------------------------------------------------- 2s(2).2p(3)2D3_2D 2s.2p(4)1D2_2D 9 4 -97.57488622 -96.77120502 2.842e+00 2.856e+00 1.523e+00 1.530e+00 0.005 2s(2).2p(3)2D3_2D 2s.2p(4)3P2_2P 9 4 -97.57488622 -96.50868555 3.469e+00 3.519e+00 2.466e+00 2.501e+00 0.014 2s(2).2p(3)2P1_2P 2s.2p(4)1D2_2D 9 4 -97.49544906 -96.77120502 4.893e-01 5.212e-01 2.363e-01 2.517e-01 0.061 2s(2).2p(3)2P1_2P 2s.2p(4)1S0_2S 9 4 -97.49544906 -96.59546337 9.783e-01 9.638e-01 5.869e-01 5.783e-01 0.015 2s(2).2p(3)2P1_2P 2s.2p(4)3P2_2P 9 4 -97.49544906 -96.50868555 8.834e-01 9.426e-01 5.811e-01 6.201e-01 0.063 -------------------------------------------------------------------------------- 5 LS transitions. --------------------------------------------------------------------------------
The LS convergence may considerably improve upon increasing n (provided that the computational model is accurate). A complete set of LS results which include n=4,5,6,7 can be found at: www.vuse.vanderbilt.edu/cff/mchf_collection
-rw-r--r-- 1 georgio georgio 11738 Aug 19 19:15 LSJ/E1.O1.8.lsj -rw-r--r-- 1 georgio georgio 11738 Aug 19 19:15 LSJ/E1.O1.9.lsj
-rw-r--r-- 1 georgio users 9407 Sep 25 00:01 F_E2_E1.E1.8.lsj -rw-r--r-- 1 georgio users 16733 Sep 25 00:01 F_E2_E1.E1.9.lsj -rw-r--r-- 1 georgio users 6743 Sep 25 00:02 F_E2_O1.O1.8.lsj -rw-r--r-- 1 georgio users 6743 Sep 25 00:02 F_E2_O1.O1.9.lsj -rw-r--r-- 1 georgio users 7409 Sep 25 00:03 F_M1_E1.E1.8.lsj -rw-r--r-- 1 georgio users 14735 Sep 25 00:03 F_M1_E1.E1.9.lsj -rw-r--r-- 1 georgio users 6077 Sep 25 00:05 F_M1_O1.O1.8.lsj -rw-r--r-- 1 georgio users 6077 Sep 25 00:05 F_M1_O1.O1.9.lsj -rw-r--r-- 1 georgio users 9407 Sep 25 00:08 F_M2_O1.E1.8.lsj -rw-r--r-- 1 georgio users 12404 Sep 25 00:09 F_M2_O1.E1.9.lsj
Finally, sh_tables tabulates the computed data in several files: Energy data and lifetimes are stored in *-lev.dat and the transition data, which is tabulated from the *.j and *.lsj is stored in *-lin.dat. The table below shows the excitation energies and the lifetimes after the last script sh_tables.
Z = 8 Energy levels and lifetimes for O II : N-like (7 electrons). Rydberg constant is = 109733.5522 -------------------------------------------------------------------------------- Configuration Term J Energy Total Levels Splitting Lifetimes (a.u.) cm^-1 cm^-1 s -------------------------------------------------------------------------------- 2s(2).2p(3) 4S 3/2 -74.54466851 2s(2).2p(3) 2D 5/2 -74.41892491 27596.58 1.0823E+04 3/2 -74.41882951 27617.52 20.94 2.9088E+03 2s(2).2p(3) 2P 3/2 -74.35654274 41287.42 2.2079E+00 1/2 -74.35652224 41291.92 4.50 2.8168E+00 2s.2p(4)3P2 4P 5/2 -73.99552981 120517.88 1.1329E-09 3/2 -73.99479693 120678.72 160.84 1.1278E-09 1/2 -73.99442941 120759.38 241.50 1.1253E-09 2s.2p(4)1D2 2D 5/2 -73.77952143 167924.61 4.1398E-10 3/2 -73.77948918 167931.69 7.08 4.1311E-10 2s.2p(4)1S0 2S 1/2 -73.64006121 198531.54 1.7691E-10 --------------------------------------------------------------------------------
The result are at n = 4
and they are less accurate compared to calculation using the same
computational model but considerably
larger expansions of the configuration lists n = 7
and
.
Z = 8 Energy levels and lifetimes for O II : N-like (7 electrons). Rydberg constant is = 109733.5522 -------------------------------------------------------------------------------- Configuration Term J Energy Total Levels Splitting Lifetimes (a.u.) cm^-1 cm^-1 s -------------------------------------------------------------------------------- 2s(2).2p(3)4S3 4S 3/2 -74.551394060 2s(2).2p(3)2D3 2D 5/2 -74.428265260 27022.72 1.3391e+05 3/2 -74.428175520 27042.42 19.69 6.9843e+03 2s(2).2p(3)2P1 2P 3/2 -74.366517290 40574.37 1.2375e+01 1/2 -74.366505540 40576.95 2.58 3.0891e+01 2s.2p(4)3P2 4P 5/2 -74.004265810 120076.7 1.1684e-09 3/2 -74.003535020 120237.0 160.38 1.1631e-09 1/2 -74.003168170 120317.5 240.90 1.1604e-09 2s.2p(4)1D2 2D 5/2 -73.792071530 166646.3 4.4290e-10 3/2 -73.792039970 166653.2 6.93 4.4192e-10 2s.2p(4)1S0 2S 1/2 -73.655737500 196567.2 1.8842e-10 --------------------------------------------------------------------------------
For Z = 9 the calculated energies at n=4 are:
Energy levels and lifetimes for N-like F (Z = 9). Rydberg constant is 109734.14635 -------------------------------------------------------------------------------- Configuration Term J Energy Total Levels Splitting Lifetimes (a.u.) (cm^-1) (cm^-1) (s) -------------------------------------------------------------------------------- 2s(2).2p(3) 4S 3/2 -97.81761021 2s(2).2p(3) 2D 5/2 -97.65839985 34941.63 2.7467E+03 3/2 -97.65824209 34976.25 34.62 4.7914E+02 2s(2).2p(3) 2P 3/2 -97.57872612 52427.48 7.6882E-01 1/2 -97.57870049 52433.11 5.63 1.3035E+00 2s.2p(4)3P2 4P 5/2 -97.12234620 152588.41 7.5663E-10 3/2 -97.12082933 152921.31 332.91 7.5126E-10 1/2 -97.12004810 153092.77 504.36 7.4851E-10 2s.2p(4)1D2 2D 5/2 -96.85121653 212092.77 2.7818E-10 3/2 -96.85114662 212108.11 15.34 2.7719E-10 2s.2p(4)1S0 2S 1/2 -96.67541751 250675.08 1.2962E-10 2s.2p(4)3P2 2P 3/2 -96.58900785 269639.26 5.4901E-11 1/2 -96.58727430 270019.72 380.46 5.4858E-11 --------------------------------------------------------------------------------
A comparison with accurately computed data (posted on the MCHF Web site), shows that at n=4, the results for Z=9 are slightly better than the same for Z = 8, which shows higher sensitivity of the lower atomic number to the computational model:
Z = 9 Energy levels and lifetimes for F III : N-like (7 electrons). Rydberg constant is = 109734.1464 -------------------------------------------------------------------------------- Configuration Term J Energy Total Levels Splitting Lifetimes (a.u.) cm^-1 cm^-1 s -------------------------------------------------------------------------------- 2s(2).2p(3)4S3 4S 3/2 -97.824624380 2s(2).2p(3)2D3 2D 5/2 -97.668142190 34342.88 2.4569e+04 3/2 -97.667992890 34375.65 32.77 1.0642e+03 2s(2).2p(3)2P1 2P 3/2 -97.589097640 51690.65 2.2677e+00 1/2 -97.589084120 51693.62 2.97 5.6544e+00 2s.2p(4)3P2 4P 5/2 -97.130993260 152230.0 7.7098e-10 3/2 -97.129480130 152562.1 332.08 7.6548e-10 1/2 -97.128700850 152733.1 503.11 7.6264e-10 2s.2p(4)1D2 2D 5/2 -96.862946820 211057.7 2.8708e-10 3/2 -96.862883060 211071.7 13.99 2.8603e-10 2s.2p(4)1S0 2S 1/2 -96.688982340 249237.4 1.3445e-10 2s.2p(4)3P2 2P 3/2 -96.603193650 268065.3 5.6987e-11 1/2 -96.601469960 268443.6 378.30 5.6929e-11 --------------------------------------------------------------------------------
The user can accomplish higher accuracy by performing extended runs which will include n=5,6,7. However, this would place considerable demands with respect to time and memory because of 5-fold increase of the number of configurations. (Configuration lists are included for up to n=7 and the original data shown in the second table is at n=7). It is appropriate to use the MPI version for n < 4, and scripts for extending this calculation up to n=7 are included.
E1/sh_mchf_E1_mpi_ibmSP # mchf in parallel on ibm/SP E1/sh_mchf_E1_mpi_linux #mchf in parallel on Linux O1/sh_mchf_O1_mpi_ibmSP # IBM/SP O1/sh_mchf_O1_mpi_linux # Linux: LSJ/sh_bp_mpi_ibmSP # IBM/SP: BP calculation in parallel LSJ/sh_bp_mpi_linux # Linux: BP calculation in parallel
MPI tests are provided for nonh_mpi, mchf_mpi, bp_ang_mpi, bp_mat_mpi, and bp_eiv_mpi. The test repeat the serial calculation previously described and includes n=5,6,7.
Because of different system requirements, there is a significant difference between seaborg and linux in using the MPI programs. Computing in parallel also shows significant difference compared to the serial versions. Thus, a separate set of scripts is provided for computing on seaborg and the Linux cluster.
Directory E1 and O1 provide sh_mchf_E1_mpi_linux and sh_mchf_O1_mpi_linux which may used to compute the first even and odd groups (E1, O1). The MPI calculations on the linux cluster are started by:
cd atsp2K/run/N_like/ ./sh_ALL_mpi_linux
After compiling the sources the user can test the installation with the script ll_bp which is in directory atsp2K/run/N_like. The script can be started interactively :
% ./ll_bpor, alternatively submitted to the batch processing system with:
% llsubmit ll_bp subfilter: default repo mp52 will be charged llsubmit: Processed command file through Submit Filter: "/usr/common/nsg/etc/subfilter". llsubmit: The job "s03513.nersc.gov.531" has been submitted.It is prfereable to use the batch system. Please note that the batch job is submitted with a "premium" priority and the job will run immediately on the next available nodes. This is only for testing purposes and "regular" priority should be used for mass production.