Getting and Using the Tensor Contraction Engine
TCE logo

Translation to Czech, by Daniela Milton.

Version 1.0 of the Tensor Contraction Engine (TCE) is available, and we are looking for quantum chemists who are interested in making use of the TCE in their software development efforts and are willing to work with us to broaden the capabilities of the TCE and give us feedback on its use.

TCE v1.0 is the Python-based tool which we often refer to as the "prototype" TCE.  It has already been used to generate implementations of a broad range of many-body methods.  It provides reasonable performance in most cases (but may or may not be up to typical hand-coded implementations), and modest parallel scalability.  We are simultaneously working on an "optimizing" TCE, which is expected to provide much higher performance and scalability, even better than most hand-written code.  The optimizing TCE is not yet available.

TCE v1.0 is distributed as part of NWChem, and code generated by TCE is most easily interfaced with NWChem (for integrals, reference wavefunction, etc.).  There is nothing intrinsic to the TCE which ties it to NWChem, and it can be used independently -- we're just not in a position right now to easily distribute it separately.  We do not determine the schedule of NWChem releases, so you might find that the version in the distribution lags somewhat behind what you might hear TCE people talking about.  If there's something in particular you need that's newer, please don't hesitate to contact us.

TCE-generated code has also been interfaced with UTCHEM from the University of Tokyo, and there is nothing to prevent it from being interfaced to other quantum chemistry packages as well, but we haven't done it yet.  Eventually, we would like things to be much more general and much simpler; the broader experience we have going into this redesign, the better job we'll be able to do.

Documentation for TCE v1.0 is, er, modest at present.  The slides and the beginnings of a User's Manual, as presented at our workshop at the Sanibel Symposium in March 2004, are available below.

In summary, we're looking for patient, friendly users who do not expect the TCE to be a magic wand yet and are willing to work with us to make it better.

Getting NWChem

NWChem is free, but requires you to complete a license agreement.  Please see the Downloads section of the NWChem website.

The current release of NWChem is version 4.6. New releases that include updated TCE functionality will be announced on the TCE-announce mailing list.

Other Required Software

Code generated by the TCE currently expects to be able to find certain other libraries.  These libraries are also used extensively within NWChem and are included in the NWChem software distribution -- you should not need to download them separately.

Supported Platforms

NWChem runs on nearly all platforms of interest to quantum chemists.  TCE-generated code should also run on pretty much anything, however it has been tested primarily on Linux platforms so far.  The TCE itself should run anywhere Python will run, including Windows.

TCE/OCE Implemented Methods

Here is a list (certainly incomplete) of some of the methods that have already been implemented with the TCE.  Links point to OCE input files.

Keeping in Touch


From the March 2004 Sanibel Symposium workshop:


These references include discussions specifically relevant to the v1.0 TCE. For a comprehensive list of publications relating to the TCE, please return to our main page. Many of the papers there relate to optimizations being developed for the optimizing TCE.


This work has been supported by the following sponsors:
We also wish to express our gratitude to the organizers of the Sanibel Symposium, and in particular Prof. Rod Bartlett for providing the venue and otherwise facilitating our workshop.