Skip to content
Neal Kruis edited this page May 29, 2014 · 9 revisions

This page is dedicated to help developers reach a consensus on external libraries that may be used for some specialized function in EnergyPlus.

Currently, we are considering the use of a linear algebra solving library (for use in the CalcScriptF routine of HeatBalanceIntRadExchange). We've obtained performance improvements in this area using an LU decomposition solver for linear systems (using the Atlas implementation of LAPACK).

There are a number of other areas where linear algebra solving libraries might be useful elsewhere in the code. Examples include:

  • Any areas of multi-dimensional heat transfer
  • Any solver (e.g., plant solver?) where multiple conservation equations are solved simultaneously

The radiative exchange calculation requires a dense matrix solver since the exchange from each surface depends on every other "visible" surface in the zone. Most other applications can probably utilize sparse matrix solvers since each equation has relatively few unknowns (e.g., only the neighboring cell temperatures for multi-dimensional heat transfer).

For each entry on the page, we should at least include the following:

  • General description -- what is the main purpose of the library
  • Portability / What platforms are supported and to what degree (does it require Unix emulation for Windows?)
  • Source code language(s)
  • License
  • Cost

Additional things that are nice to know:

  • Performance (relative to other packages?)
  • Direct/Iterative
  • Sparse/Dense Matrices?
  • Size
  • Maturity
  • Support

Atlas

  • Description: From their FAQ: > ATLAS stands for Automatically Tuned Linear Algebra Software. ATLAS is both a research project and a software package. This FAQ describes the software package. ATLAS's purpose is to provide portably optimal linear algebra software. The current version provides a complete BLAS API (for both C and Fortran77), and a very small subset of the LAPACK API. For all supported operations, ATLAS achieves performance on par with machine-specific tuned libraries.
  • Supported platforms: Linux / Mac / Windows (with Cygwin, apparently)
  • Language(s): F77, C
  • License: modified BSD (no advertising clause)
  • Cost: free
  • Performance: Not sure how it compares, but the routines are hardware tuned (from tuned binaries to an install time tuning feature)
  • Sparse/Dense: Dense
  • Direct/Iterative: Direct
  • Size: 4.7 MB (tarball)
  • Maturity: Since 1997? Based on venerable BLAS ('79) and LAPACK ('92)
  • Support: Active SourceForge (4/14) with issue tracker, errata

Lis

References & Further Reading

Clone this wiki locally