next up previous contents index
Next: Restricted Active Space CI Up: Alpha and Beta Strings Previous: Alpha and Beta Strings

   
Graphical Representation of Alpha and Beta Strings

Any CI program requires some method for assigning a numerical code to each determinant (or configuration). Determinant-based CI's also require an addressing scheme for each alpha and beta string. Such addressing can be facilitated by using graphical representations. This section discusses the construction of simple graphs representing alpha and beta strings, and how the numerical code or address of each string can be calculated from these graphs. Our approach will be based on the work of Duch, who has described [27] the graphical representation of CI spaces in considerable detail.   First, we consider the simple two-slope directed graphs (``digraphs'') ${\cal G}_2(n : n_{\alpha / \beta})$ which represent alpha or beta strings without consideration of point-group symmetry. Figure 1 presents such a digraph representing all strings with five electrons in seven orbitals (as might be appropriate for the alpha or beta strings of H2O in a minimal basis set, neglecting point-group symmetry). Each string is represented by a ``walk'' on the graph, from the head (at e = o = 0) to the tail (at $e =
n_{\alpha / \beta}$, o = n); the graph should always be traversed in this direction. Moving straight down from vertex (e, o) to vertex (e, o+1) indicates that orbital o + 1 is unoccupied in the current string, while moving down diagonally from vertex (e, o) to vertex (e+1, o+1) indicates that orbital o + 1is occupied. Each vertex on the graph is assigned a weight x(e, o), and each arc connecting two vertices is assigned an arc weight Y(e, o) for the arc leaving vertex (e, o). Since, in general, two different arcs can leave a given vertex, we write Y0(e, o)for the arc originating from vertex (e, o)which leaves orbital o+1 unoccupied, and Y1(e, o) for the arc which occupies orbital o+1.6 The index or address of a string or walk is obtained by adding weights for each arc contained in the walk, i.e.

 \begin{displaymath}
I_{\alpha}(L^{\alpha}) = X(L^{\alpha}) + \sum_{i=0}^n Y_{L_i} (e_i,i)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred6 I_(L^) = X(L^) + _i=0^n Y_L_i (e_i,i) )

where Li is the occupation (0 or 1) of the ith arc, and (ei, i) are the coordinates of the vertices crossed by $L^{\alpha}$. The term $X(L^{\alpha})$ gives the offset of a given graph, if more than one graph is employed. The index for a determinant is given by $I(L^{\alpha}, L^{\beta}) =
I_{\alpha}(L^{\alpha}) S_{\alpha}
+ I_{\beta}(L^{\beta})$, where $S_{\alpha}$ is the number of alpha strings.   This leads us to write the CI coefficients as a rectangular matrix $C(I_{\alpha}, I_{\beta})$. Restrictions on the CI space mean that only certain subblocks of the C matrix are allowed to be nonzero.

There are several different methods for assigning the arc weights by which we calculate the index of a string according to equation (6.6). Under the lexical ordering scheme,  the tail $(n_{\alpha}, n)$ of an alpha string graph is assigned a weight x=1. Other vertex weights are computed according to the recursive formula

\begin{displaymath}x(e, o) = x(e+1, o+1) + x(e, o+1)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred7x(e, o) = x(e+1, o+1) + x(e, o+1) )

Using lexical ordering, typically all arc weights Y0(e, o)are set equal to zero, and the arc weights Y1(e,o) are determined according to

\begin{displaymath}Y_1(e,o) = x(e+1, o+1) +
x(e+1, o) + \cdots +
x(e+1, e+1)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred8Y_1(e,o) = x(e+1, o+1) + x(e+1, o) + + x(e+1, e+1) )


  
Figure: Alpha string graph for $n_{\alpha } = 5, n = 7$. Vertex weights are determined according to lexical ordering, and arc weights are given so that the rightmost path has index zero. (a) All unoccupied arc weights Y0(e, o) are zero. (b) All occupied arc weights Y1(e, o) are zero.
\begin{figure}
\begin{center}\epsfig{file=Figures/strgraph5in7l.eps}
\end{center}\end{figure}

Figure 1a features vertex and arc weights computed in this manner. A result of the lexical ordering scheme is that paths with a fixed upper part and an arbitrary lower part have contiguous indices. The particular choice of Y values above is appropriate if the rightmost path is to have an index of zero. The same effects can be achieved using
tex2htmldeferredtex2htmldeferred6.tex2htmldeferred9Y1(e,o) = 0 (tex2html_deferredtex2html_deferred6.tex2html_deferred9Y_1(e,o) & = & 0 )
tex2htmldeferredtex2htmldeferred6.tex2htmldeferred10 Y0(e,o) = x(e+1, o+1) (tex2html_deferredtex2html_deferred6.tex2html_deferred10 Y_0(e,o) & = & x(e+1, o+1) )

as illustrated in Figure 1b. Any walk has the same index in Figures 1a and 1b. For instance, the walk $a_{2\alpha}^{\dagger} a_{3\alpha}^{\dagger} a_{4\alpha}^{\dagger} a_{5\alpha}^{\dagger} a_{7\alpha}^{\dagger}$ has an index of 5+4+3+2+2=16 (equation 6.6) from Figure 1a, and an index of 15+1=16 from Figure 1b.

In the so-called ``reverse-lexical'' ordering scheme,   all upper paths for a fixed lower path have contiguous indices. Vertex weights are now determined as

\begin{displaymath}{\bar x}(e, o) = {\bar x}(e, o-1) +
{\bar x}(e-1, o-1)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred11x(e, o) = x(e, o-1) + x(e-1, o-1) )

where the overbar indicates reversed-lexical ordering. Figure 2a depicts a reversed-lexical graph with all non-occupied orbital arcs set to zero. The occupied orbital arcs are computed as

\begin{displaymath}{\bar Y}_1 (e, o) = {\bar x} (e, o)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred12Y_1 (e, o) = x (e, o) )

Figure 2b is the same except that now all occupied arcs have weights of zero. The non-occupied arc weights are

\begin{displaymath}{\bar Y}_0 (e, o) = {\bar x} (e, o) +
{\bar x} (e + 1, o + 1) + \cdots +
{\bar x} (N - 1, o + N - e - 1)
\end{displaymath} (tex2html_deferredtex2html_deferred6.tex2html_deferred13Y_0 (e, o) = x (e, o) + x (e + 1, o + 1) + + x (N - 1, o + N - e - 1) )


  
Figure: Alpha string graph for $n_{\alpha } = 5, n = 7$. Vertex weights are determined according to reverse-lexical ordering, and arc weights are given so that the rightmost path has index zero. (a) All unoccupied arc weights Y0(e, o) are zero. (b) Occupied arc weights Y1(e, o) are set to zero.
\begin{figure}
\begin{center}\epsfig{file=Figures/strgraph5in7rl.eps}
\end{center}\end{figure}

Note that string indices for reverse-lexical ordering are not necessarily the same as indices for lexical ordering. For the string $a_{2\alpha}^{\dagger} a_{3\alpha}^{\dagger} a_{4\alpha}^{\dagger} a_{5\alpha}^{\dagger} a_{7\alpha}^{\dagger}$ considered previously, the index is calculated as 1+1+1+1+6=10 from Figure 2a, or as 5+5=10 from Figure 2b.

The arc weights given in Figures 1 and 2 cause the rightmost path to have an index I(Rm) = 0. If we change the arc weights so that the leftmost path has index I(Lm) = 0, we obtain four more addressing schemes. The two simplest schemes for I(Lm)=0 are

tex2htmldeferredtex2htmldeferred6.tex2htmldeferred14Y0(e, o) = 0 Y1(e, o) = x(e, o + 1)   (tex2html_deferredtex2html_deferred6.tex2html_deferred14Y_0(e, o) = 0 & Y_1(e, o) = x(e, o + 1) )
$\displaystyle {tex2html_deferred}{{tex2html_deferred}6.{tex2html_deferred}15}
{\bar Y}_1(e, o) = 0$ $\textstyle {\bar Y}_0(e, o) = {\bar x}(e - 1, o)$   (tex2html_deferredtex2html_deferred6.tex2html_deferred15 Y_1(e, o) = 0 & Y_0(e, o) = x(e - 1, o) )

where the overbars indicate that reversed-lexical vertex weights have been used. Alpha strings for 5 electrons in 7 orbitals employing these addressing schemes are depicted in Figure 3.


  
Figure: Alpha string graph for $n_{\alpha } = 5, n = 7$, with arc weights determined so that the leftmost path has index zero. (a) Vertex weights for lexical ordering, and arc weights according to Y0(e, o) = 0, Y1(e, o) = x(e, o + 1). (b) Vertex weights according to reverse-lexical ordering, and arc weights according to ${\bar Y}_1(e, o) = 0$, ${\bar Y}_0(e, o) = {\bar x}(e - 1, o)$.
\begin{figure}
\begin{center}\epsfig{file=Figures/strgraph5in7LM.eps}
\end{center}\end{figure}

If we add another coordinate $\Gamma$ to each vertex, we can extend these simple digraphs to include point-group symmetry.  


next up previous contents index
Next: Restricted Active Space CI Up: Alpha and Beta Strings Previous: Alpha and Beta Strings
C. David Sherrill
2000-04-18