NEW:

TAO - Toolkit for Advanced Optimization

The TAO project focuses on the development of software for large-scale optimization problems. TAO uses an object-oriented design to create a flexible toolkit with strong emphasis on the reuse of external tools where appropriate. Our design enables bi-directional connection to lower level linear algebra support (for example, parallel sparse matrix data structures) as well as higher level application frameworks.

The Toolkit for Advanced Optimization (TAO) is aimed at the solution of large-scale optimization problems on high-performance architectures. Our main goals are portability, performance, scalable parallelism, and an interface independent of the architecture.

http://www-unix.mcs.anl.gov/tao/

How to install: http://people.csail.mit.edu/jrennie/tao/install.html

Libraries and Compilers

  • Linear Algebra
    • MTL, the Matrix Template Library. Dense and sparse matrices and vectors; banded, symmetric, triangular matrices; basic algorithms. C++.
    • uBLAS, BLAS in C++ with expression templates.
    • tvmet, a C++ library for "tiny" vectors and matrices with expression templates.
    • GMM++, generic C++ template library for sparse, dense and skyline matrices, with solvers from ITL.
    • MET, a C++ matrix library with expression templates, which eliminates the overhead of overloaded operators.
    • SL++, the Scientific Library project. Will provide matrices, random numbers, complex, quaternions, plotting, and FFTs. C++.

    Seldon, C++ library for linear algebra with BLAS interface. Many matrix types (sparse, symmetric, hermitian, etc.) are supported.

    ALP, linear and polynomial algebra. Vectors, matrices, polynomials.

    • SVMT: E. Robert Tisdale's proposal for a standard C++ Scalar, Vector, Matrix and Tensor Class Library (with implementation). Note: this is a proposal, not an official standard.
    • GNUSSL [ftp only], the GNU Scientific Software Library. Linear algebra and arrays. C++.
    • CPPLapack, C++ wrapper for BLAS and LAPACK.
    • Lapack++, C++ wrapper for BLAS and LAPACK.
    • IML++ A C++ template library for numerical iterative methods.
    • MV++ Numerical Matrix/Vector Classes in C++
    • SparseLib++ A library for sparse matrix computations, including the Sparse BLAS (Basic Linear Algebra Subprograms). C++.
    • ISIS++, an object-oriented framework for solving sparse linear systems of equations. C++.
    • ARPACK++, a C++ template library for solving large-scale standard and generalized eigenvalue problems.
    • The Template Numerical Toolkit (TNT) for linear algebra is a successor to the Lapack++, Sparselib++, IML++, and MV++ packages. Its goal is to integrate these ideas into a generic algorithmic library, supporting generic user-defined data types, and increasing its functionality. C++.
    • LinAlg, basic linear algebra and optimization classes. C++.
    • CAM C++ Class Library (Matrix, vector, and graphics classes)
    • Newmat, a C++ matrix library (docs, download)
    • CLHEP includes matrix classes, random number generators for the High Energy Physics (HEP) community. C++.
    • BPKIT, Block Preconditioning Toolkit for iterative solution of linear systems. Callable from C++, C, or FORTRAN.
  • Arrays and Images
    • POOMA II framework for scientific computing on sequential and parallel computers. Provides parallel arrays; fields, meshes, particles to come in version 2.1 (June 1999). C++.
    • The Blitz++ class library: Array and Vector classes which rival Fortran's performance. C++.
    • The AIPS++ Array and Image Classes (Astronomical Information Processing System). C++.
    • Daixtrose, a general-purpose expression template engine.
    • PETE, an expression templates library -- add expression templates to your own array class.
    • SCTL (BlueSail), C++, arrays, matrics, vectors, sparse, rotations.
    • VIGRA, generic computer vision/image processing library.
    • CPPIMA A C++ image processing library
    • LIMP, Large Image Manipulation Program
    • Image Restoration and Inpainting, C++ library for image restoration.
    • valarray [ftp only], approximation of the valarray class described in Ch. 26 of the ANSI/ISO C++ Standard. Uses expression templates for efficient evaluation.
    • Image Understanding Environment (IUE), a DARPA project. C++.
    • WAILI, a wavelet transform library in C++.
  • Neural Networks, genetic algorithms, machine learning, data mining
  • High-Energy Physics and Quantum Chemistry
  • Multiprecision, arbitrary precision data types
    • NTL, arbitrary length integers, vectors/matrices/polynomials over integers and over finite fields.
    • EXTNUM, version of double which has the same number of mantissa bits as IEEE 754, but extends the exponent to have range from 10^-646456993 to 10^646456992.
    • CLN, an extensive number library. Arbitrary precision integer, float, rational, polynomials, complex, modular integers, transcendental functions, assembly language kernels for some CPUs.
    • MUNTL, Multiprecision unsigned number template library (C++).
    • MPFUN++, a multiple precision floating point computation package in C++.
    • LiDIA, A library for computational number theory. Provides a collection of highly optimized implementations of various multiprecision data types and time-intensive algorithms.
    • Apfloat, a C++ High Performance Arbitrary Precision Arithmetic Package
    • hfloat, An arbitrary precision package, optimized for very large (> 1000) (decimal) digit numbers.
    • fPoint, a C++ class which helps convert floating-point arithmetic to fixed-point arithmetic by recommending range and precision requirements.
    • doubledouble, a quad-precision (approximately 30 decimal place) floating point arithmetic class.
  • Differential Equations
    • Rheoolef, finite element environment in C++.
    • EXPDE, a C++ library for solving partial differential equations on semi-unstructured grids. Parallel.
    • PZ, a C++ library for finite elements. 1-3 dimensions with hp-adaptivity, continuous or discontinuous, variety of matrix formats.
    • MBDyn, multibody dynamics analysis in C++. Built-in parallelization via MPI/Metis.
    • P2MESH, 2D finite volume/finite elements, C++ library designed for fast prototyping of high-performance PDE solvers.
    • Femlisp, a Common Lisp framework for Finite Element Methods.
    • GETFEM++, a C++ finite element library, generic, arbitrary dimensions.
    • MOUSE, a C++ library for finite volume computations on unstructured grids.
    • DEAL, a C++ library for adaptive finite elements and error estimation. Supports SMPs.
    • ODE++, a class library for ordinary differential equations. Explicit and linear-implicit ODE systems, IVP and BVP parameters, various solvers (Runge-Kutta, multistep, BDF). [English] [Deutsch]
    • PETSc, object-oriented software for partial differential equations (programmed in C)
    • Diffpack, partial differential equations in C++. ($)
    • TIDE: Classes for Ordinary Differential Equations. Provides vectors and matrices, extrapolation integrator for ODEs, sparse matrix classes, eigenvalues, shooting for two point BVPs, nonlinear solver, continuation
    • BoxLib/CCSE Applications Suite (docs), a class library supporting adaptive mesh refinement (AMR) schemes for computational fluid dynamics.
    • OVERTURE, a C++ class library for solving PDEs in complicated domains. Includes adaptive mesh refinement and overlapping grids.
    • FEMLIB (ftp, www) A Finite Element package [ftp only] by Michael Tiller (BROKEN LINK, no longer supported)
  • Automatic differentiation and interval arithmetic
    • Gaol, C++ library for interval arithmetic. Includes methods for interval constraint solvers.
    • FADBAD-TADIFF, a C++ package for automatic differentiation using any arithmetic (double or interval) by operator overloading.
    • PROFIL/BIAS [English] [Deutsch], a C++ interval arithmetic class library.
  • Visualization
  • Graph Theory/Combinatorics
    • Boost Graph Library, a general purpose, generic C++ library for graph data structures and graph algorithms.
    • GTL, the Graph Template Library (C++).
    • LEDA, a C++ library for graph theory and combinatorial computing.
  • Language interoperability/scripting
    • CPPF77 (cppf77.zip), a utility for interfacing C++ and Fortran 77 programs.
    • Paul Dubois's code for interfacing Python and C++
    • SWIG, generates Perl, Python, Tcl, Java, Eiffel and Guile wrappers for C++ libraries.
    • SILOON (Scripting Interface Languages for Object-Oriented Numerics), toolkits and run-time support for building scripting interfaces to existing numerical codes in C, C++, and Fortran. Generates script bindings for Perl, Tcl, and Python.
    • Matwrap, a tool which generates C++ wrapper code for matrix-oriented scripting languages such as Matlab 5, Octave, and tela.
  • Transforms
    • FFTPACK++, a C++ wrapper for FFTPACK complex routines using LAPACK++ Matrix and Vector classes.
    • The FXT library of transforms. FFTs, Hartley, Number theoretic, Walsh, others coded in C++.
  • Optimization
    • COOOL, an object-oriented optimization library
    • OptSolve++, a C++ optimization library from Tech-X. (commercial)
    • StarFLIP, optimization library for combinatorial problems with fuzzy constraints (C++)
    • LM (Levenberg-Marquardt) implementation in Java for nonlinear least squares problems.
  • Miscellaneous
  • Tools
    • TAU (Tuning and Analysis Utilities), explicit instrumentation of C++ libraries for profiling and tracing. For both serial and parallel codes.


    Compilers
    • Compilers
      • KAI C++, an optimizing compiler from Kuck & Associates (now a division of Intel). Unfortunately, this product has been discontinued.
      • The free GCC (Gnu Compiler Collection) has a good C++ compiler which can be used under unix or windows (with CygWin).
      • Intel's C++ compiler.
      • The Portland Group C++ compiler
      • The MPC++, a massively parallel, message passing, meta-level processing C++.
      • Titanium (free), a dialect of Java for large-scale scientific computing.


      Commercial software
      • Diffpack, a development framework for multi-physics simulations (C++).
      • VectorSpace provides vs.lib (integrable/differentiable objects in C++) and fe.lib (an object-oriented finite element library).
      • NMath provides vector, matrix, complex numbers and math functions for the .NET platform (e.g. C#)
      • macstl, std::valarray implementation using SIMD opcodes (Altivec on PowerPC, SSE/SSE2 on Intel)
      • ExacMath library (quad and double-quad precision floating point math), from Floating Point Software.
      • Math.h++ and LAPACK.h++ from Rogue Wave Software, Inc (LAPACK.h++ is not the same package as Roldan Pozo's LAPACK++ listed above)
      • MtxVec, linear algebra/numerical library for Delphi and C++ Builder.
      • Extreme Optimization Library, numerical library for .NET
      • MAT (Matlab compatible C++ Matrix Class Library)
      • C-XSC: A C++ Class Library for Extended Scientific Computing (A C++ interval methods class library)
      • Siscat, C++ software for scattered data approximation
      • JNL, A numerical language/library proposal for Java from Visual Numerics.
      • LIA,GIA,ICE libraries for interval methods in C++ from Delisoft Ltd. Includes interval arithmetic, global optimization, and solving nonlinear equations.
      • AMRES, a C++ library for financial analysis.
      Diffpack, a development framework for multi-physics simulations (C++).
    • VectorSpace provides vs.lib (integrable/differentiable objects in C++) and fe.lib (an object-oriented finite element library).
    • NMath provides vector, matrix, complex numbers and math functions for the .NET platform (e.g. C#)
    • macstl, std::valarray implementation using SIMD opcodes (Altivec on PowerPC, SSE/SSE2 on Intel)
    • ExacMath library (quad and double-quad precision floating point math), from Floating Point Software.
    • Math.h++ and LAPACK.h++ from Rogue Wave Software, Inc (LAPACK.h++ is not the same package as Roldan Pozo's LAPACK++ listed above)
    • MtxVec, linear algebra/numerical library for Delphi and C++ Builder.
    • Extreme Optimization Library, numerical library for .NET
    • MAT (Matlab compatible C++ Matrix Class Library)
    • C-XSC: A C++ Class Library for Extended Scientific Computing (A C++ interval methods class library)
    • Siscat, C++ software for scattered data approximation
    • JNL, A numerical language/library proposal for Java from Visual Numerics.
    • LIA,GIA,ICE libraries for interval methods in C++ from Delisoft Ltd. Includes interval arithmetic, global optimization, and solving nonlinear equations.
    • AMRES, a C++ library for financial analysis.
    KAI C++, an optimizing compiler from Kuck & Associates (now a division of Intel). Unfortunately, this product has been discontinued.
  • The free GCC (Gnu Compiler Collection) has a good C++ compiler which can be used under unix or windows (with CygWin).
  • Intel's C++ compiler.
  • The Portland Group C++ compiler
  • The MPC++, a massively parallel, message passing, meta-level processing C++.
  • Titanium (free), a dialect of Java for large-scale scientific computing.

    Commercial software
    • Diffpack, a development framework for multi-physics simulations (C++).
    • VectorSpace provides vs.lib (integrable/differentiable objects in C++) and fe.lib (an object-oriented finite element library).
    • NMath provides vector, matrix, complex numbers and math functions for the .NET platform (e.g. C#)
    • macstl, std::valarray implementation using SIMD opcodes (Altivec on PowerPC, SSE/SSE2 on Intel)
    • ExacMath library (quad and double-quad precision floating point math), from Floating Point Software.
    • Math.h++ and LAPACK.h++ from Rogue Wave Software, Inc (LAPACK.h++ is not the same package as Roldan Pozo's LAPACK++ listed above)
    • MtxVec, linear algebra/numerical library for Delphi and C++ Builder.
    • Extreme Optimization Library, numerical library for .NET
    • MAT (Matlab compatible C++ Matrix Class Library)
    • C-XSC: A C++ Class Library for Extended Scientific Computing (A C++ interval methods class library)
    • Siscat, C++ software for scattered data approximation
    • JNL, A numerical language/library proposal for Java from Visual Numerics.
    • LIA,GIA,ICE libraries for interval methods in C++ from Delisoft Ltd. Includes interval arithmetic, global optimization, and solving nonlinear equations.
    • AMRES, a C++ library for financial analysis.
    Diffpack, a development framework for multi-physics simulations (C++).
  • VectorSpace provides vs.lib (integrable/differentiable objects in C++) and fe.lib (an object-oriented finite element library).
  • NMath provides vector, matrix, complex numbers and math functions for the .NET platform (e.g. C#)
  • macstl, std::valarray implementation using SIMD opcodes (Altivec on PowerPC, SSE/SSE2 on Intel)
  • ExacMath library (quad and double-quad precision floating point math), from Floating Point Software.
  • Math.h++ and LAPACK.h++ from Rogue Wave Software, Inc (LAPACK.h++ is not the same package as Roldan Pozo's LAPACK++ listed above)
  • MtxVec, linear algebra/numerical library for Delphi and C++ Builder.
  • Extreme Optimization Library, numerical library for .NET
  • MAT (Matlab compatible C++ Matrix Class Library)
  • C-XSC: A C++ Class Library for Extended Scientific Computing (A C++ interval methods class library)
  • Siscat, C++ software for scattered data approximation
  • JNL, A numerical language/library proposal for Java from Visual Numerics.
  • LIA,GIA,ICE libraries for interval methods in C++ from Delisoft Ltd. Includes interval arithmetic, global optimization, and solving nonlinear equations.
  • AMRES, a C++ library for financial analysis.
Fonte: http://neogeneration.spaces.live.com/Blog/cns!6259A40FEE59131!160.entry

Literatura Recomendada:


Click book picture to enlarge cover.

Finite elements for analysis and design
Akin, J.E. [2000],
Finite elements for analysis and design, 4th Printing,
Academic Press.
Finite Element Procedures Bathe, K.-J. [1996],
Finite Element Procedures,
Prentice Hall.
Nonlinear Finite Elements for Continua and Structures Belytschko, T., Wam, K. L., Moran, B., Liu, W. K. [2000],
Nonlinear Finite Elements for Continua and Structures,
John Wiley & Sons.
Finite Elements: Theory, Fast Solvers and Applications in Solid Mechanics Braess, D. [1997],
Finite Elements: Theory, Fast Solvers and Applications
in Solid Mechanics,

Cambridge University Press.
Continuum Mechanics Chadwick, P. [1976],
Continuum Mechanics,
Dover Publications.
Concepts and Applications of Finite Element Analysis Cook, R.D., Malkus, D.S., Plesha, M.E. [1989],
Concepts and Applications of Finite Element Analysis, 3rd Printing,
John Wiley & Sons.
Matrix Computations Golub, G.H. & van Loan, C.F. [1996],
Matrix Computations, 3rd Edition,
Jons Hopkins University Press.
An Introduction to Continuum Mechanics Gurtin, M.E. [1981],
An Introduction to Continuum Mechanics,
Academic Press.
Continuum Mechanics and Theory of Materials Haupt, P. [2000],
Continuum Mechanics and Theory of Materials,
Springer Verlag.
Nonlinear Solid Mechanics Holzapfel, G.A. [2000],
Nonlinear Solid Mechanics,
John Wiley & Sons.
The Finite Element Method: Linear Static and Dynamic Finite Element Analysis Hughes, T. [2000],
The Finite Element Method: Linear Static and Dynamic Finite
Element Analysis
,
Dover Publications.
C Programming Language Kernighan [1988],
The C Programming Language, 2nd Edition
Prentice Hall.
Numerical Analysis: Mathematics of Scientific Computing Kincaid, Cheney [1996],
Numerical Analysis: Mathematics of Scientific Computing,
3rd Edition
Brooks Cole.
Continuum Theory of Plasticity Khan, A.S. & Huang, S. [1994],
Continuum Theory of Plasticity,
John Wiley & Sons.
Computational partial differential equations Langtangen, H. P. [1999],
Computational partial differential equations,
Springer Verlag.
Mechanics of solid materials Lemaitre, J. & Chaboche, J.-L. [2000],
Mechanics of solid materials, 3rd Printing
Cambridge University Press.
Mathematical foundations of Elasticity Marsden, E. & Hughes T. [1994],
Mathematical foundations of Elasticity,
Dover Publications.
Continuum Mechanics for Engineers Mase, G. E. & Mase G. T. [1999],
Continuum Mechanics for Engineers, 2nd Edition
CRC Press.
The Thermomechanics of Plasticity and Fracture Maugin, G. A. [1992],
The Thermomechanics of Plasticity and Fracture,
Cambridge University Press.
Finite Element Analysis Moaveni [1998],
Finite Element Analysis,
Springer Verlag.
Numerical optimization Nocedal, J. & Wright, S. J. [1999],
Numerical optimization,
Springer Verlag.
Non-linear elastic deformations Ogden, R. W. [1984],
Non-linear elastic deformations,
Dover Publications.
Finite Difference Methods in Heat Transfer Özisik, M. N. [1994],
Finite Difference Methods in Heat Transfer,
CRC Press.
Numerical Recipies C Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P. [1992],
Numerical Recipies C, Second Edition, 2nd Edition
Cambridge University Press.
Numerical Mathematics Quarteroni, A., Sacco, R., Saleri, F. [2000],
Numerical Mathematics,
Springer Verlag.
Modern Physical Metallurgy & Materials Engineering Smallman [1999],
Modern Physical Metallurgy & Materials Engineering, 6th Edition
Butterworth Heinemann.
Partial Differential Equations Selvadurai, A.P.S. [2000],
Partial Differential Equations Vol 1 & 2,
Springer Verlag.
Dynamics of Multibody Systems Shabana, A. [1998],
Dynamics of Multibody Systems, 2nd Edition
Cambridge University Press.
Energy and finite element methods in structural mechanics Shames, I.H., Dym, C.L. [1991],
Energy and finite element methods in structural mechanics,
Taylor & Francis.
Computational Inelasticity Simo, J.C. & Hughes, T.J.R. [2000],
Computational Inelasticity, 2nd Printing
Springer Verlag.
Finite Element Analysis Szabo, B. & Babuska, I. [1991],
Finite Element Analysis,
John Wiley & Sons.
Theory of plates and shells Timoshenko, S.P., Woinowsky-Krieger, S. [1959],
Theory of plates and shells, 2nd Edition
McGraw-Hill Book Company.
C++ and object-oriented numeric computing Yang, D. [2001],
C++ and object-oriented numeric computing,
Springer Verlag.
Finite Element Method Zienkiewicz, O.C. \& Taylor, R.L. [2000],
Finite Element Method: Volumes 1, 2 & 3., 5th Edition
Butterworth Heinemann.