STEPS TO BE FOLLOWED IN MAKING A stgicf/adasexj run: N.R.B. Sep 07, 2004 D.C.G. This guide discusses a basic calculation of intermediate coupling collision strengths from LS-coupling K-matrices using the program stgicf (steps I-IV). It also discusses the subsequent generation of effective collision strengths using the program adasexj (step V). If you plan to use your own code for effective collision strengths then ignore step V. I. Make a full-exchange LS R-matrix run: 1. Be sure to include the mass-velocity and Darwin terms in your LS run (RELOP='MVD'). You will normally want to include partial waves with L up to about 12 or 14. This will later be supplemented by a no-exchange run with partial waves with much higher values of L and with top-up. 2. If you plan to use the program adasexj to calculate effective collision strengths as a function of temperature, you will need to think carefully about the maximum energy for your R-matrix run. In the default mode, adasexj will calculate effective collision strengths up to a maximum temperature that does not exceed half of the maximum energy in the R-matrix run. The higher the energy of the R-matrix calculation, the larger the number of basis orbitals required to represent the continuum (the variable MAXC in the stg1r input). So one must balance the need for effective collision strengths at higher temperatures against the size of the resulting calculation. In general, the highest energy for which accurate collision strengths can be calculated is about half the maximum eigen-energy of the continuum basis orbitals. However, for effective collision strengths, this condition can be relaxed somewhat e.g. three-quarters of the maximum eigen-energy. You should set the value of MAXE in your stg1r input to the highest energy (in Rydbergs) that you plan to use in your R-matrix run. 3. In your stg2r run, your CI expansion can be larger than your CC expansion. stgicf will later eliminate the CI-mixed extra terms from the TCC expansion and renormalize the term-coupling coefficients. It is important that these extra terms be small, less than 0.01 say. 4. Be sure to keep the files NX1.DAT and NX2.DAT for a later no-exchange R-matrix run. 5. In most cases, you will want to make two stgf runs. One will be be fed into stgicf to generate results on a fine energy mesh through the energy of the last threshold (ie., stgicf will be run with IMODE=-1, so that it will interpolate from the "coarse" stgf mesh onto a "fine" mesh); the second run (for energies above the last threshold) will be fed into stgicf for a non-interpolating IMODE=0 run on a coarse energy mesh. Be sure to save jbinls and kmtls.dat from your first stgf run before making your second stgf run. 6. In your stgf runs be sure to set IQDT=2 (to run in K-matrix MQDT mode) and IPRKM=4 (this writes the basic LS information and unphysical K-matrices to the files jbinls and kmtls.dat, respectively). II. Make a partial Breit-Paul run (RELOP='TCC') to generate the TCCDW.DAT file: 1. Set IDWOUT=2 for the stg1r, stg2r and stgjk runs. This will allow for a much larger basis set expansion than would otherwise be possible. 2. In the stg2r run, your CC expansion will include all terms that were included in the CI expansion for your LS run. 3. In the stgjk run, include only those levels that you wish to include in your final stgicf run. III. Make your stgicf runs to generate intermediate-coupling OMEGA files with full exchange: 1. Although stgicf can be run to generate collision strengths in pure jk coupling (ITCC=0) or full intermediate coupling (ITCC=1, which is the default), a full intermediate coupling run should always be made. The effects of intermediate coupling on the rates are large. 2. First make the run over the fine-energy mesh through the last threshold energy. For this run, set IMODE=-1. This recouples and interpolates from the lower energy stgf (coarse) energy mesh onto the finer energy mesh that you specify via MXE, E0, and EINCR in the stgicf namelist MESH1. There is no disk I/O other than reading the stgf data and writing the final file, OMEGA. (However, new users may wish to experiment with various coarse vs fine energy meshes. stgicf can also be run in two steps: IMODE=0 calculates the recoupled unphysical k-matrices on the stgf energy mesh and writes to files jbinic and kmtic.dat. Then IMODE=1 reads the data back-in and interpolates the k-matrix data onto the fine user-specified energy mesh.) Finally, you should rename the file OMEGA and save it. ***Note, interpolation cannot be used at energies where correlation resonances occur. The same fine energy mesh must be used in stgf and stgicf. This can be done via IMODE=-1 or IMODE=0. In the latter case set JMNTWO=0 to avoid writing a large and unnecessary kmtic.dat file. 3. Next make the stgicf run with IMODE=0 using the kmtls.dat file from the stgf run above the last threshold. 4. Now merge the collision strength data from the second run to the OMEGA file from the first run. If using an editor, be sure to modify the number of mesh points appearing as the second item in line number two in the OMEGA file. You can also do this automatically by using the program omgmrg.f. The OMEGA file from the first run should be copied to omgmrg1, the OMEGA file from the second run should be copied to omgmrg2, and the merged output will be generated in omgmrgt by the omgmrg.f program. (Unformatted files can also be handled viz omgmrg1u.) IV. Now make a single no-exchange (NX) run: 1. The input files needed for this run are: NX1.DAT, NX2.DAT, and dstg3 from the full-exchange run. In addition, a single dstgnx file is needed, in which you specify the range of L values for the no-exchange partial waves (from MINLT to MAXLT). The precise value of MINLT can be determined as follows (see also point 3. below) but smaller values cause no problems, just unnecessary calculations. MINLT should be equal to the maximum value of L from your exchange run plus one minus two times the maximum value of the spin. For example, if your LS exchange run included partial waves up to L=12 and included both doublet and quartet partial waves, then the value of MINLT should be: 12 + 1 - 2 x 1.5 = 10. Thus the L=10, L=11, and L=12 partial waves will appear in both the full-exchange and the no-exchange runs. (MINLT is also equal to JMNTWO/2 minus the maximum spin, see 4.) The value of MAXLT will depend on your maximum energy. It should be high enough that any additional topup can be provided by the series (non-dipole) and Burgess (dipole) topup included in stgicf. Values of MAXLT from 40 to 50 are usually required if one intends to use adasexj to calculate effective collision strengths. 2. Run the no-exchange codes stg1nx, stg2nx, and stg3nx. 3. Run stgf with a coarse energy mesh that covers the entire energy range used in your two full-exchange LS R-matrix runs - there should be no resonances in this high-L run. It should be run with IQDT=2 and IPRKM=4. Note, even for high L runs, it is necessary to include the long-range multipole potentials in the asymptotic region by setting PERT='YES'. 4. The kmtls.dat from the no-exchange run should now be used to make the final stgicf run with IMODE=0 only. In this run, INOEXCH must be set equal to one, and JMNTWO must be set equal to twice the minimum value of J required for the run. It is two greater than twice the maximum J value from the exchange run, which is printed in routicf. If MINLT was not set low enough for this value of JMNTWO, stgicf writes the required value to routicf and then stops. (JMNTWO can also be determined as follows: The maximum value of J for the JPI partial waves in the full-exchange run will be equal to the maximum value of L in your full-exchange LS run minus the maximum value of the spin. So if your full-exchange LS run included both doublet and quartet partial waves up to L=12, the maximum value of J (Jmax) used in your full-exchange stgicf run was Jmax = 12 - 1.5 = 10.5. Thus your minimum value of J for the no-exchange stgicf run should 11.5 and your value of JMNTWO should be 23.) While there are a number of options available for the top-up of your collision strengths, IT IS RECOMMENDED that you simply set LRGLAM to 999; this will cause the code to determine the values of J for which the dipole top-up should be applied to the dipole-allowed collision strengths and will use Coulomb-Bethe collision strengths for this purpose. Furthermore, the long-range non-dipole collision strengths will be topped-up using a combination of a geometric series in energy and the degenerate energy limiting series in J. The code will produce two output files containing collision strengths: OMEGA (collision strenths with top-up) and OMEGANOTOP (collision strengths without top-up). These files can be used later to make a final test on the top-up. 5. Some false "resonances" may appear in the OMEGA and OMEGANOTOP files because of numerical problems in the NX stgf run. (Recall, they should contain no resonances when all channels are open and that a coarse mesh was used below, but which could hit an odd resonance.) Normally, these points can be eliminated by using the program omadd.f. One simply copies the OMEGA file (and later the OMEGANOTOP file) into omadd1 (note: the file omadd2 is not used for such a run) and sets the single line input file for omadd as follows: &SADD YMULT=1.2 &END. A value of YMULT=1.2 will eliminate any false resonances for which the collision strengths change by more than a factor of 1.2 between successive energy points. The output file omaddt should then be sufficiently smooth and should be copied to a file that will serve as your final no-exchange OMEGA file with top-up. Use the same procedure to eliminate any false "resonances" in the OMEGANOTOP file and save it for further use. 6. Once the final OMEGA and OMEGANOTOP files from the no-exchange stgicf run have been generated, they should be added-to the full exchange file by again using the code omadd.f. The single line of input for these omadd runs should be: &SADD YMULT=1000. &END. The use of YMULT=1000. in this run will eliminate any unresolved resonances in the full exchange run that are larger than a thousand times the background, i.e. points at the extreme of the sampling, or catastrophic numerical failure (rare). A word of warning: if you haven't sufficiently resolved the resonances then YMULT=1000. will eliminate a large number of points - so use a finer mesh! Copy your full exchange OMEGA file to omadd1 and the no-exchange OMEGA file to omadd2 before running. The sum total will appear in the file omaddt. Copy it to another file and then repeat this procedure with your full exchange OMEGA file and your no-exchange OMEGANOTOP file. Save both files for one final processing using omadd.f. 7. As a final check on the top-up procedure, if this is new to you, you can process your OMEGA file one more time with omadd.f. In this case you should copy your final total collision strength file with top-up into OMEGA and your final total collision strength file without top-up into OMEGANOTOP. Then run omadd with the following one line input: &SADD ITOP=-1 TOPR1=2.0 TOPR2=1.3 &END. This will cause the program omadd to log those ratios, of the collision strengths with top-up to those without top-up, that exceed TOPR1 or TOPR2. TOPR1 refers to dipole transitions while TOPR2 refers to non-dipole. Any non-dipole transitions for which the ratio exceeds 1.3 should be treated with caution. It may be preferable to limit the top-up to 1.3 (for TOPR2). Collision strengths limited to TOPR1, TOPR2 are automatically written to omaddt. This omaddt can serve as your final OMEGA file instead. WARNING: be sure to set TOPR1 large (e.g. 999.) if you plan to use omaddt. Near-degenerate dipole transitions can give rise to large top-up factors, but they are quite accurate. V. Now make an adasexj run to generate the adf04 data file for input into ADAS (optional): 1. Your final OMEGA file with top-up should now be used as the input omega file for your adasexj run. However, first one must merge with (using the program omgmrg.f or an editor, as discussed in III.4) an infinite energy collision strength file containing both dipole and Born limits. This file (OMGINFIC) is produced by an AUTOSTRUCTURE run with BORN='INF'. Obviously, you should use the same target structure as in the R-matrix run (e.g. KUTSO=0). Use KCUT to specify the spectroscopic/close-coupling configurations. No collision strengths will be written for the remaining correlation configurations. If you include only part of a configuration in your CC expansion then you will need to use the program omorder.f so as to get the OMGINFIC file consistent with OMEGA. You will also need to use omorder.f if the calculated energies are in a different order from observed ones used in (stg3 of) the R-matrix run. AUTOSTRUCTURE (AS) also produces a detailed adasexj.in.form file, see 2. next. 2. A skeleton input file for adasexj will also automatically be generated by any one of the IMODE=0 stgicf runs and written with the file name: adasexj.in.form. Either can be edited to generate your final input file: adasexj.in. The energies appearing in the skeleton file adasexj.in.form are the theoretical ones generated by stgicf or AS. You may wish to edit these so that they will be the experimental energies. It is these energies that will be printed in the final adf04 file that adasexj produces; they will also be used to determine the energy differences for the radiative rates. If the theoretical energies and those input to adasexj are in the same order, the values of index(i) are not needed and should be left blank. However, if the theoretical energies appearing in the omega file are in a different order from the ones you use for input into adasexj, then these indices must be specified and the value of each index should give the level number for the energy order in which it appears in the omega file (or for that matter, the TCCDW.DAT file). 3. adasexj will automatically pick eight temperatures for the calculation of the effective collision strengths and then if mxtmp.eq.0 (default) will eliminate any that exceed half of the maximum energy in your omega file. However you may also pick up to 12 of your own temperatures by setting irdtmp to any non-zero value and then reading in numtmp temperatures in degrees Kelvin. However, again if mxtmp.eq.0, the code will eliminate any of your temperatures that exceed half of the maximum energy in your omega file. 4. The length of each line in the description should be less than or equal to 74 characters, and in the present code can be up to fifty lines.