Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aaop_v1_0.gz(66 Kbytes)
Manuscript Title: A system to generate Fortran programs for calculating configuration traces of angular momentum coupled product operators.
Authors: B.D. Chang, J.P. Draayer, S.S.M. Wong
Program title: CONTRACTION-COMPILER
Catalogue identifier: AAOP_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 28(1982)41
Programming language: Fortran.
Computer: DEC VAX-11/780.
Operating system: VAX/VMS, TOPS-10, MVS/SE JES2.
RAM: 54K words
Word size: 32
Peripherals: disc.
Keywords: General purpose, Rotation group, Computer generated Program, Perturbation expansion, Spectroscopy statistical, Moment methods, Configuration trace, Operator average, Normal order, Wick's expansion, Correlation measure, Propagation, Unitary decomposition.
Classification: 4.1.

Subprograms used:
Cat Id Title Reference
ACZI_v1_0 CONTRACTION-BASIC-DIAGRAM CPC 18(1979)35
AAAM_v1_0 CONTRACTION-JT-RECOUPLING CPC 20(1980)191

Nature of problem:
Three steps are usually involved in setting up a problem for numerical solution, 1) deriving algebraic expressions, 2) programming the equations, and 3) debugging the codes. Often step 1 requires repeated applications of fundamental rules, such as commutation and angular momentum recoupling in spectroscopy studies. While an individual may be able to recognize short cuts to speed up a derivation, by sheer speed and accuracy a computer programmed to manipulate the basic rules can prove to be the more effective means for deriving the algebraic expressions. Examples are given by the work reported on in Comp. Phys. Commun. 18(1979)35 and 20(1980)191. Likewise, to simplify tedious and often time-consuming task of steps 2 and 3, a code can be written to "translate" or "compile" the output of step 1 into a machine ready program. We report here on a code, called "compiler" in what follows, which accepts as input standardized output from the CONTRACTION-JT- RECOUPLING program and produces, using additional information on the permutation symmetry of the operators from the CONTRACTION-BASIC- DIAGRAM program, a Fortran IV code for evaluating configuration traces of a product of angular momentum coupled operator. As output from the CONTRACTION-BASIC-DIAGRAM program and the CONTRACTION-JT-RECOUPLING program provide input to the compiler, these two programs must be run first for each distinct operator product. This input to the compiler determines the number of basic diagrams and, for each basic diagram, the associated permutation structure, the number of summation variables, the appropriate phases and statistical weight factors, and the angular momentum recoupling information. The operators themselves are assumed to be of standard form, such as hamiltonian or electromagnetic excitation operators; all defining matrix elements are considered to be input variables. The program sets up the trace evaluation code by translating this information into Fortran IV programs. It does this by mimicking the detailed logic an individual would use if assigned the same task. Certain specific procedures that are common to many cases, such as inputing the defining matrix elements, are written as library subprograms. The compiler logic is structured but not rigid; optimization is attended to so the output codes will execute efficiently.

Restrictions:
The program is designed to handle up to the most complicated problems anticipated in nuclear spectroscopy studies. The basic operators must be one of the following forms:
1) Arand Br, one-particle creation and annihilation operators,
2) Sigmars Upsilondeltars(ArXAs)delta and Sigmars Upsilondeltars(BrXBs) delta, pair creation and pair annihilation operators,
3) Sigmars Upsilondeltars(ArXBs)delta, one-body (e.g. electronmagnetic transition) operators, and
4) one-plus-two body interaction Hamiltonian as defined. The maximum number of basic operators allowed in the product operator is 16 with no more than 8 having unitary rank greater than zero and no more than two having (total) angular momentum rank greater than zero.