406
Computer Physics Communications 64 (1991) 406—416 North-Holland
A program to generate configuration-state lists Charlotte Froese Fischer and Bin Liu Department of Computer Science, Box 6035 B, Vanderbilt University, Nashville, TN 37235, USA
Received 28 August 1990
The MCHF.~GENCLprogram generates coupled configuration states according to a number of rules. The latter includes single and double replacements from a reference set as well as specific replacements. All possible configuration states of an active set of orbitals may also be generated. The latter rule is particularly useful for few-electron systems.
PROGRAM SUMMARY Title of program: MCHF_GENCL Catalogue number: ABZV
configuration-state functions. In complex atoms, the configuration-state lists are best generated systematically according to rules. The present program embodies several rules which have been found useful in dealing with the problem of correlation.
Program obtainable from: CPC Program Library, Queen’s
University of Belfast, N. Ireland (see application form in this issue)
Method of solution
Sun UNIX
The notion of a complex [1] and single and double replacements are two important concepts that have evolved from the study of correlation in many-electron systems. By systematically generating all couplings of a set of electrons or by considering all possible replacements, this program generates configuration state lists in the “dist” format required by the MCHF atomic-structure package [2].
Programming language used: FORTRAN77
Restrictions on the complexity of the problem
Computer: VAX 11/780, SUN 3/160; Installation: Vanderbilt
University, Nashville, TN 37235, USA Operation system under which the program is executed: VMS,
A maximum of 5 (five) subshells (in addition to the common closed shells) is allowed in any given configuration state and no more than 15 electrons in each of the different sets that are created. These restriction may be removed by changing dimension statements and some format statements and, in the case of the active Set, the code will have to be extended.
Virtual memory: 50K words
No. of bits in a work: 32 Peripherals used: terminal, disk No. of lines in combined program and test deck: 2146
Typical running time
CPC Program Library subprograms used: none
The CPU time required on a SUN 3/160 with a floating-point board is 2.1 s and 0.9 s for Test Run 1 and 2, respectively.
Keywords: atomic structure, configuration interaction, config-
References
uration states, complex atoms, correlation, wave functions, bound states, LS coupling
[1] D. Layzer, Ann. Phys. 8, (1959) 271. [2] C. Froese Fischer, Comput. Phys. Commun. 64 (1991) 369, this issue.
Nature of physical problem
In configuration-interaction calculations as well as variational MCHF calculations, the wave function is expanded in terms of
0010-4655/91/$03.50 © 1991
—
Elsevier Science Publishers B.V. (North-Holland)
C.F Fischer, B. Liu / A program to generate configuration-state lists
407
LONG WRITE-UP 1. Introduction In the configuration model of a many-electron system, a non-relativistic wave function, ‘I’, for an atomic state, labeled c~LS,is expanded in terms of configuration-state functions, ~1~(-yLS),where y refers to the configuration and the coupling of the shells, and LS to the total angular momentum and total spin. The configuration-state functions are sums of products of spin-orbitals. In the Hartree—Fock model the label of the state usually determines the approximate wave function only when several couplings are possible is additional information needed as, for example, in a calculation for 2p53s3p 2S. The configuration usually neglects to provide information about the coupling of subshells, information generally needed in an MCHF calculation, unless a simple average-energy calculation suffices. When correlation effects are to be included, and/or spin—orbit interaction in the Breit—Pauli approximation, then the wave-function expansions get to be so lengthy that they are best generated by a computer program. The present program generates such lists, either from explicit specifications or from more general rules. Since the Breit—Pauli approximation is one which should be used as a correction to correlation, the rules have been developed largely with correlation in mind. In essence a Breit—Pauli calculation that includes correlation, in the LSJ scheme, is one that merges configuration lists for a set of final LS terms. —
2. Correlation concepts In a correlation study for a specific LS state, or even for a set of LSJ fine-structure levels, the large components of the wave function are known. These large and/or important configurations define a reference set. In the present application, all members of the reference set should • contain the same number of electrons, and • have the same parity. The first member of the reference set plays another role. When no LS term value is specified, this is interpreted to mean that a clist for a Breit—Pauli type of calculation is to be produced. The program will then produce all terms that have a J value in common with at least one of the allowed LS terms of the first member. In many instances, the reference set plays a role similar to that of a zero-order approximation to the wave function in perturbation theory, though there is no clear-cut criterion for this classification. Generally, the larger the reference set, the more accurate the final wave function will be. In Z-dependent perturbation theory, the set of configuration states of the same parity, the same set of principal quantum numbers, and the same final LS term (at least in non-relativistic theory) are degenerate and for finite nuclear charges are potentially important. This set is called the “complex” [1]. One of the GENCL rules generates all possible configuration states from a set of “active electrons”, which we refer to simply as the “active set”. If the set consists only of electrons with the same principal quantum numbers, the complex will be generated with the same number of electrons and parity as the reference set. However, it may be advantageous to include electrons with differing principal quantum numbers, for which calculations have shown that near degeneracies may exist. So the rule does not limit the active set, but rather is a generalization of the complex concept, extended to an arbitrary set of electrons. Because of the combinatorial nature of this rule, in practice it works well for only a few electrons (2—4). When correlation among a larger set of electrons is to be included, perturbation theory is a better guide. In perturbation theory, given a zero-order wave function, the first-order correction to the wave function would include configuration states that interact with one or more members of the zero-order set or, in the
408
C.F Fischer, B. Liu
/ A program to generate configuration-state lists
present terminology, the reference set. Such configuration states may not differ by more than two electrons from all members of the reference set. Usually replacements are to virtual orbitals, but in the present program, replacements of occupied orbitals to other occupied orbitals may also be included, and so the virtual set may include either occupied or unoccupied orbitals. The program contains a help facility that describes the input data and its format. It is meant to be useà in the interactive mode since, in many respects, it is replacing an editor for data preparation. At any stage, if an input error has been detected, an input of ‘b’ (for “back”) followed by a carriage return, allows the user to return to an earlier stage. The final file created is CFG.INP which is in clist format as required by the MCHF atomic-structure package [2]. This file contains a header as well as a list of closed shells. Though these are not needed by GENCL, the information is requested so that this file is ready for use by other programs. The formal description of the data for this program is included in ref. [2].
3. Program organization The overall organization of the program is depicted in fig. 1. The main program consists of several sections that control the configuration processing. Specifically, it: 1. controls the reading of the data defining the task to be performed; 2. summarizes the input data; 3. performs the three basic processing steps: (a) process the reference set; (b) generate configuration states using the active set; (c) perform the requested replacements which could consist of: • a specific list of replacements, • single replacements the set of all possible replacements of a single occupied orbital by an orbital from the virtual set, parity being preserved, • double replacements the set of all possible replacements of a pair of occupied orbitals by a pair of orbitals from the virtual set, parity being preserved. —
—
__
IDECOMPI
1-J
_____
INPUT
DEL [~SH
GENCL
f_i
[____I~T~IR]
(P~NT
CONFIG
I
COUPLD
REPI~]
_IS~C
LVAL Fig. 1. GENCL program organization.
j
HELP
C.F Fischer, B. Liu
/ A program to generate configuration-state lists
409
In performing these tasks, a number of routines are called that perform functions as described below. CONFIG
COUPLD DECOMP DEL HELP ICTOI INPUT LYAL PRINT REPLAC
STRSH SYMB VPAIR
Check if the configuration has the correct parity and is not a duplicate of the reference set; if so, write the configuration to an internal file for future coupling. This program is used to generate the configurations from the active set. Generate all possible couplings for the given configuration. Analyze a replacement string. Remove leading blanks from a string. Provide the new user with some initial help information. Convert a character string of digits to an integer. Read the various sets of data; check if empty or if ‘b’ was encountered indicating that the user wants to backup to an earlier stage. Convert a spectroscopic symbol to an integer 1 value (same as in library routine, but avoids need to link with the library). Print the various couplings of a configuration for which the final LS term matches the selected value(s). Check if the new configuration (obtained either from specific replacements or from the single replacement of an occupied orbital by a virtual orbital) has the correct parity and does not duplicate either a member of the reference set or a configuration obtained by processing the active set. Shift a character string left a specified number of positions. Given an integer 1 value, return the spectroscopic symbol as a capital letter. Perform the double replacements of occupied orbitals in designated shells with virtual orbitals.
4. Examples This program may be used in a number of ways. We will illustrate each and provide a full listing for a few under Test Run Output. 4.1. Couplings of a given configuration The simplest example of the use of the program is one where the program generates all possible couplings of a given set of configurations. For example, suppose the configuration states that are to be included are all the couplings of 3s23p2 and 3s3p23d that have a final term value of 3P, a situation that might occur in a non-relativistic calculation for Si I. In GENCL, these two configurations define the reference set. The program prompts for up to 15 configurations: this (as well as other lists) may be terminated early by a blank line. The input format consists of subshell labels with their occupation given in parenthesis. Thus, in our example, the configurations would be entered as 3s( 2)3p(2) and 3s(1 )3p(2)3d(1). When non-orthogonal orbitals are to be used the input could be 3s1 (2)3pl (2) and 3s2(1 )3p2(2)3d(1), respectively. One complication that needs to be remembered is the fact that configuration lists must be able to satisfy the AFTER relation [2] which defines a partial order of the electrons. This program orders the electrons in the order of first appearance in the list. Thus, in our example, there are three subshells and 3d must be after 13p which must be after 3s when other configurations like 3p23d2 are added. The present implementation does not support the use of the set indicator [2] for the active set, thereby requiring the set to be orthonormal.
410
CF. Fischer, B. Liu
/ A program
to generate configuration-state lists
The couplings with the requested final term are then generated and a file named CFG.INP is prepared in clist format [2].Again, the final term(s) may be a user specified list of LS values (terminated early with a blank). If the first LS value is a blank, this is interpreted to mean all LS term values with a J value in common with the first member of the reference set. 4.2. Configurations generated from an active set In other situations, GENCL will generate the configurations as well as their couplings. For example, in a BREIT calculation for 3s23p3 of the phosphorous sequence, all the allowed terms may interact through the Breit—Pauli interaction. These terms define a range of J values. On the other hand, within these LS terms of the reference configuration, all configurations in the same n 3 complex are potentially important contributors to correlation through the electro-static interaction. Thus, for the phosphorous sequence, the configurations in the complex of the same parity as the reference configuration, the same number of electrons, and with a J value that coincides with the J value of at least one of the terms allowed for the first member of the reference set, can be generated by providing 3s ( 2 ) 3p (3) as the only member of the reference set and providing the list 3s,3p,3d as the active set, and providing blanks for all other prompts. This case is shown as the first example in the Test Run Output. The program first generates all the couplings for the members of the reference set. The range of J values in this case is J ~ to J It then generates all five-electron configurations of odd parity containing 3s, 3p, and/or 3d electrons. The latter are then coupled and all of those retained with a final LS term with a J value in the range ~ to =
=
=
~.
~.
4.3. Specific replacements The GENCL program may also be used to generate configurations that are derived from the reference set through specific replacements. Both one- and two-electron replacements are allowed, referred to as single (5) and double (D) replacements, respectively. Some of these are shown in example 2 of the Test Run Output. The first replacement, in effect, requests the generation of all couplings for configurations obtained from the reference set by replacing a single 3s electron by a single 4s electron; in the second, a 3s and 3p pair is to be replaced by a 3d and 4f pair of electrons, etc. In each case, only couplings leading to a final 2D term are to be included in the configuration list. Also, the same configuration is never generated twice duplicates are always eliminated. Electron labels may include a set indicator when non-orthogonal orbitals are introduced. —
4.4. Replacements to a virtual set In a non-relativistic correlation calculation, the reference set should contain all the important configuration states with mixing coefficients greater than 0.1, say. (The smaller this value, the more accurate the final wave function.) The remaining configurations should interact with at least one member of the reference set and hence should not differ by more than two electrons. In other words, the remaining configurations are those that can be obtained by one-electron (5) replacements or two-electron (D) replacements of occupied orbitals by “virtual” orbitals. The latter define the “virtual set”. When dealing with closed-shell systems, the virtual set would not include any of the occupied orbitals, but with open-shell systems this may not be the case. For example, in 2p63p, the configuration 2p43p24p results from the replacement, 2p(2) 3p.4p, in GENCL notation. Such replacements will be considered if the 3p electron is part of the virtual set as well as the occupied set. This rule for generating configurations and their couplings is invoked by the response “sd” to the “Replacements?” prompt. This response will generate the “Virtual Set?” prompt, the reply to which =
C.F Fischer, B. Liu
/ A program
to generate configuration-state lists
411
should be a list of electrons in an order consistent with that already used in specifying the reference set and active set. Example 3 in the HELP facility illustrates this case. In some instances, it may be desirable to control the shells from which replacements are to be made. For example, suppose that in the sodium sequence, correlation within 2s2 is to be investigated first separately from correlation within 2p63p, and finally together. Then it is convenient to consider 2s2 also as part of the reference set and not part of a closed shell. The partial order of the electrons in this example, will be 2s, 2.p, 3p, 3s, 3d, 4s, 4p. If the 3s electron is to appear before the 3p, the reference configuration should be specified as 2s(2)2p(6)3s(O)3p(l). Of course, replacements should then be made from shell two to shell four.
5. Comments These examples show that long expansion lists may be generated from simple rules when the number of electrons outside the common, closed shells is five and more. Indeed, long expansions can be obtained even with four electrons. The CPU time required by this program is negligible in most cases, but one reason for keeping it as a separate program, rather than making it part of the MCHF or CI program, is that the user may quickly verify that the calculation is feasible. At the same time, for an MCHF calculation, it may be necessary to apply Brillouin’s theorem for stability [3,4].
Acknowledgements This research has been supported by the US Department of Energy, Office of Basic Energy Sciences.
References [1] D. Layzer, Ann. Phys. 8 (1959) 271. [2] C. Froese Fischer, Comput. Phys. Conunun. 64 (1991) 369, this issue. [3] C. Froese Fischer, Comput. Phys. Commun. 64 (1991) 431, this issue. [4] C. Froese Fischer, Phys. Rev. A 39 (1989) 963.
412
C.F Fischer, B. Liu
/ A program to generate configuration-state lists
TEST RUN OUTPUT >>gencl
=—~=——~>
Test Number I
You are under the program GENCL which GENerates a Configuration List Type H (Help) to obtain information about the input format Type if you already know
!{eader Phosphorous Closed Shells > is 2s 2p Reference Set >3s(2)3p(3) 2?
~
>
? 7
>
Active Set
7
>35, 3p, 3d
Replacements
?
Final Terms
?
>
>
I N P U T
***************
Header Closed shell Reference Set
: : :
Phosphorous is 2s 2p 3s(2)3p(3)
Active Set Replacements Final Terms
:
3s,3p,3d
0 A T A
GENERATE ALL COUPLINGS FOR EACH MEMBER
OF THE REFERENCE SET
Phosphorous Closed Shells
:
is
2s
Configuration Their couplings
:
3s( 2) iSO iSO iSO
2p 3p( 3) 2P1 203 4S3
2P0 200 4S0
C.F Fischer, B. Liu
/ A program to generate configuration-state
GENERATE ALL POSSIBLE CONFIGURATIONS FROM THE ACTIVE SET Phosphorou Closed Shells Active Set Configurations
: :
is 2s 2p 3s,3p,3d 3p 3s 3s 3p 3s 3p
(
5)
( 1) 3p ( 3) 3d ( 1) ( 2) 3p ( 1) 3d ( 2)
(
(
3) 3d
2)
( 1) 3p ( 1) 3d ( 1) 3d ( 4)
(
3)
LIST THE COUPLINGS FOR EACH CONFIGURATION GENERATED BY THE ACTIVE SET
Phosphorou Closed Shells Configuration Their couplings
:
is
2s
:
3p( 5) 2P1
2p
LIST THE COUPLINGS FOR EACH CONFIGURATION GENERATED BY THE ACTIVE SET Phosphorous Closed Shells
:
is
2s
Configuration Their couplings
: :
3s( 1) 2S1 2S1 2S1 2S1 2S1 2Si 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1 2S1
2p 3p( 3) 2P1 2P1 2P1 2P1 2Pi 2P1 2P1 2P1 2P1 2D3 2D3 2D3 2D3 203 2D3 203 203 203 2D3 2D3 203 203 4S3 4S3 4S3 4S3
3d( 1) 2D1 2D1 201 2D1 2D1 201 2Di 201 201 2D1 2D1 2D1 2D1 2D1 2Di 201 2D1 2D1 2D1 201 2D1 201 201 2D1 201 2D1
1PO 1PO 1PO 3PO 3P0 3PO 3PO 3PO 3PO 100 1DO IDO 1DO 3DO 3DO 300 300 3DO 300 3DO 300 3DO ISO 3S0 5SO SSO
2PO 200 2FO 2PO 2D0 2FO 4PO 4D0 4FO 2S0 2P0 2D0 2F0 2SO 2P0 200 2FO 4S0 4PO 4DO 4FO 4GO 2DO 4DO 4DO 600
lists
413
C.F Fischer, B. Liu
414
/ A program to generate configuration-state lists
LIST THE COUPLINGS FOR EACH CONFIGURATION GENERATED BY THE ACTIVE SET Phosphorou Closed Shells
:
is
2s
Configuration Their couplings
: :
3s( 2) iSO iSO 150 iSO iSO iSO iSO iSO iSO iSO 150 150 150 150 150 iSO
2p 3p( 1) 2P1 2P1 2P1 2Pi 2Pi 2P1 2P1 2P1 2Pi 2P1 2P1 2P1 2P1 2P1 2Pi 2P1
3d( 2) iSO 102 1D2 1D2 iG2 3P2 3P2 3P2 3P2 3P2 3P2 3F2 3F2 3F2 3F2 3F2
2PO 2PO 2PO 2PO 2PO 2PO 2PO 2P0 2P0 2PO 2PO 2PO 2PO 2P0 2P0 2PO
2P0 2PO 2DO 2FO 2FO 2SO 2P0 200 4S0 4PO 4DO 200 2FO 4D0 4F0 4G0
LIST THE COUPLINGS FOR EACH CONFIGURATION GENERATED BY THE ACTIVE SET
>>>>
>>>> For brevity, the couplings for the remaining configurations have been omitted. <<<<
<<<<
List of configurations and their couplings is in the file cfg.inp
>>gencl
========>
Test Number 2
You are under the program GENCL
which GENerates a Configuration List
Type H (Help) to obtain information about the input format
Type if you already know
Header Phosphorous Closed Shells > is 2s 2p Reference Set >3s(2)3p(3) 2?
7
>
7 7
>
Active Set
7
Replacements
7
>
>3s’4s
C.F Fischer, B. Liu
/ A program
to generate configuration-state lists
2? >3s.3p3d.4f 3? >3p(2)=3d(2) 4? >
Final Terms
?
>20 2? >
I N P U T Header
:
Closed shell Reference Set
: :
is 2s 2p 3s(2)3p(3)
Active Set Replacements
:
3s=4s
2
:
3s.3p=3d.4f
3
:
3p(2)=3d(2)
Final Terms
:
20
0 A T A
Phosphorous
GENERATE ALL COUPLINGS FOR EACH MEMBER
OF THE REFERENCE SET
Phosphorou Closed Shells
:
is
2s
Configuration
:
Their couplings
:
3s( 2) iSO
2p 3p( 3) 203
200
FOR EACH REPLACEMENT, GENERATE CONFIGURATIONS AND COUPLINGS Phosphorou Closed Shells
:
Reference set
:
3s(2)3p(3)
Replacement
:
3s4s
Configuration Their couplings
: :
is
2s
2p
3s( 1) 2S1 2S1
3p( 3) 203 203
4s( 1) 2S1 2S1
100 300
FOR EACH REPLACEMENT, GENERATE CONFIGURATIONS AND COUPLINGS Phosphorous Closed Shells
:
is
2s
Reference set
:
3s(2)3p(3)
Replacement
:
3s.3p=3d.4f
Configuration Their couplings
:
3s( 1)
2p
3p( 2)
3d( 1)
4f( i)
200 200
415
CF. Fischer, B. Liu / A program to generate configuration-state lists
416 2S1 2S1 2Si 2S1 2S1 2Si 2S1 2S1 2S1 2S1 2Si 2S1 2S1 2S1 2Si 2S1 2S1 2S1 2Si
iso
2Di 2D1 201 201 2D1 201 2D1 201 201 201 201 201 201 201 201 201 201 201 201
150 iD2 102 iD2 1D2 102 1D2 102 102 3P2 3P2 3P2 3P2 3P2 3P2 3P2 3P2 3P2
2Fi 2F1 2Fi 2F1 2F1 2Fi 2Fi 2F1 2Fi 2Fi 2F1 2Fi 2F1 2Fi 211 2F1 2Fi 2F1 2Fi
2S0 2S0 2D0 2D0 200 200 200 2D0 2D0 200 2P0 2P0 2P0 2P0 2P0 2P0 4P0 4P0 4P0
100 300 iPO iDO iFO iGO 3P0 300 3F0 3GO 1PO 100 1FO 3P0 300 3F0 3P0 300 3F0
2D0 200 2D0 200 200 2D0 200 200 200 200 200 200 200 200 200 200 200 200 2D0
FOR EACH REPLACEMENT, GENERATE CONFIGURATIONS AND COUPLINGS Phosphorou Closed Shells
:
is
2s
Reference set
:
3s(2)3p(3)
Replacement
:
3p(2)=3d(2)
Configuration Their couplings
: :
3s( 2) 150 150 iSO
2p
3p( 1) 2P1 2Pi 2Pi
3d( 2) 102 3P2 3F2
OK List of configurations and their couplings is in the file cfg.inp
2P0 2P0 2P0
200 200 200