Chapter 3. Base packages

Table of Contents

Packages
Expression templates
The classes in the base packages are independent of the physical problems and of the algorithms and can be used for any numerical simulations.

Packages

The typical class declaration of the classes in the base category is

  template <class T, unsigned D> 
  class A {
  ....
  };

where T denotes the data type (double/float/int) and D the physical dimension. The default T=double and D=3 for the libraries and applications. Many classes use partial specializations with D=3 for performance.

  • PETE: Portable Expression Template Engine developed by LANL Advanced Computing Lab (included for convenience).

  • OhmmsPETE: container classes and expression-template-capable operators generated by PETE library.

  • OhmmsData: base classes to interface ohmms objects with text parsers.

  • Utilities: utility classes and free functions, ascii parsers, generic physical concepts like species.

  • Message: classes to handle parallelism.

  • OOMPI: C++ class library for MPI parallel library (included for convenience).

  • EigSolver: interfaces to numerical libraries, lapack, essl and arpack for eigen problems.

  • Lattice: layout classes to handle supercells and spatial domains.

  • ParticleBase: container for a particle set consisting of many particles.