task-based model built on the
<a href="http://threadingbuildingblocks.org/"
target="_top">Threading Building Blocks</a>. You can switch
- threading off by passing the <code>XXXXXX HOW EXACTLY DO I DO
- THIS??? XXXXX</code> argument to <code>cmake</code>.
+ threading off by passing the <code>-DDEAL_II_WITH_THREADS=OFF</code>
+ argument to <code>cmake</code>.
</p>
<li>
</p>
<dl>
+ <a name="blas"></a>
+ <dt>
+ <a href="http://www.netlib.org/blas/" target="_top">BLAS</a>,
+ <a href="http://www.netlib.org/lapack/" target="_top">LAPACK</a>
+ </dt>
+ <dd>
+ <p>
+ <a href="http://www.netlib.org/blas/" target="_top">BLAS</a>
+ (the <i>Basic Linear Algebra Subroutines</i>) and
+ <a href="http://www.netlib.org/lapack/" target="_top">LAPACK</a>
+ (<i>Linear Algebra Package</i>) are two packages that support
+ low-level linear algebra operations on vectors and dense
+ matrices. Both of these libraries should be found automatically
+ whenever available.
+ </p>
+ </dd>
+
+ <a name="functionparser"></a>
+ <dt><a href="http://warp.povusers.org/FunctionParser/">FunctionParser</a></dt>
+ <dd>
+ <p>
+ <a href="http://warp.povusers.org/FunctionParser/">FunctionParser</a>
+ is a library that allows to enter functions in text form and have them
+ interpreted at run time. This is particularly useful in input
+ parameter files. <code>cmake</code> will usually find the version of
+ this library that comes bundled with <acronym>deal.II</acronym>.
+ The function parser library has its own license; if you want to use
+ it with deal.II, please read it and make sure that you agree with it.
+ You can find it
+ <a href="http://warp.povusers.org/FunctionParser/">here</a>. We
+ include FunctionParser in the deal.II distributions courtesy of its author,
+ <a href="http://www.students.tut.fi/~warp/">Juha Nieminen</a>.
+ </p>
+ </dd>
+
+ <a name="HDF5"></a>
+ <dt><a href="http://www.hdfgroup.org/HDF5/">HDF5</a></dt>
+ <dd>
+ <p>
+ The <a href="http://www.hdfgroup.org/HDF5/">HDF5 library</a>
+ provides graphical output capabilities in HDF5/XDMF format. To use
+ it, use the <code>-DHDF5_DIR=/path/to/hdf5</code> argument. For a
+ detailed description of how to compile HDF5 and linking with
+ deal.II, see <a href="external-libs/hdf5.html" target="body">this
+ page</a>.
+ </p>
+ </dd>
+
+ <a name="metis"></a>
+ <dt><a href="http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
+ target="_top">METIS</a></dt>
+ <dd>
+ <p>
+ <a href="http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
+ target="_top">METIS</a> is a library that
+ provides various methods to partition
+ graphs. <acronym>deal.II</acronym> uses it in programs like the
+ step-17 tutorial to partition a mesh for parallel computing.
+ To enable it, pass <code>-DMETIS_DIR=/path/to/metis</code> to
+ the <code>cmake</code> command. <acronym>deal.II</acronym>
+ supports METIS 5 and later.
+ </p>
+
+ <p>
+ <b>Note:</b> A more modern way to support parallel computations is
+ shown in the step-40 tutorial program and is based on
+ the <code>p4est</code> library instead of METIS. See below on
+ installing <code>p4est</code>.
+ </p>
+ </dd>
+
+ <a name="p4est"></a>
+ <dt><a href="http://www.p4est.org/" target="_top">p4est</a></dt>
+ <dd>
+ <p>
+ <a href="http://www.p4est.org/" target="_top">p4est</a>
+ is a library that <acronym>deal.II</acronym> uses to
+ distribute very large meshes across multiple processors (think
+ meshes with a billion cells on 10,000 processors). Using and
+ installing p4est is discussed <a href="external-libs/p4est.html"
+ target="body">here</a>.
+ To use p4est, pass the argument <code>-DP4EST_DIR=/path/to/p4est</code>
+ to the <code>cmake</code> command.
+ </p>
+ </dd>
+
<a name="petsc"></a>
<dt><a href="http://www.mcs.anl.gov/petsc/"
target="_top">PETSc</a></dt>
<p>
To disable the Trilinos interfaces in cases where <code>cmake</code>
- automatically finds it, use <code>-DDEAL_II_WITH_PETSC=OFF</code>
+ automatically finds it, use <code>-DDEAL_II_WITH_TRILINOS=OFF</code>
More details about compatibility and
configuration can be found <a href="readme-petsc-trilinos.html"
target="body">here</a>.
</p>
</dd>
- </dl>
-
-OLD TEXT OLD TEXT OLD TEXT
- <dl>
- <dt>TECPLOT</dt>
- <dd>Autodetected if one of the variables <tt>$TECHOME</tt>,
- <tt>$TEC80HOME</tt> or <tt>$TEC90HOME</tt> points to a valid installation
- of the tecio library. If enabled, allows data output in TECPLOT format.
- </dd>
<a name="umfpack"></a>
- <dt>UMFPACK</dt>
- <dd>Enabled by <tt>--with-umfpack</tt>. If no argument is given,
- use the version of UMFPACK that comes bundled with <acronym>deal.II</acronym>. If you
- want a different version of UMFPACK, provide the path to that
- version as an argument. Enabling UMFPACK adds the
- class <tt>SparseDirectUMFPACK</tt> to the library. The default is to not
- use UMFPACK.
-
+ <dt><a href="http://www.cise.ufl.edu/research/sparse/umfpack/"
+ target="_top">UMFPACK</a></dt>
+ <dd>
<p>
- If you want to use an external installation of UMFPACK, but UMFPACK was
- installed as
- part of <code>/usr</code> or <code>/opt</code>, instead of local
- directories in a home directory for example, you can use configure
- switches <code>--with-umfpack-include, --with-umfpack-libs</code>.
+ <a href="http://www.cise.ufl.edu/research/sparse/umfpack/"
+ target="_top">UMFPACK</a> is a sparse direct solver that we often
+ use in prototype codes where the goal is to simply get a linear
+ system solved robustly. The default is to enable this interface,
+ either using a version installed on your system of using a version
+ that comes bundled with <acronym>deal.II</acronym>. It can be
+ enabled using the <code>-DDEAL_II_WITH_UMFPACK=OFF</code> argument.
</p>
<p>
- Note that UMFPACK has its own license; if
- you want to use it with deal.II, please read it and make sure that you
- agree with it. You can find the license of UMFPACK <a
- href="http://www.cise.ufl.edu/research/sparse/umfpack/">here</a>. We
+ UMFPACK has its own license. To use it with deal.II, please read it
+ and make sure that you agree with it. You can find the license of
+ UMFPACK <a href="http://www.cise.ufl.edu/research/sparse/umfpack/">here</a>. We
include UMFPACK in the deal.II distributions courtesy of its author,
<a href="http://www.cise.ufl.edu/~davis/">Timothy A. Davis</a>.
</dd>
- <a name="metis"></a>
- <dt>Metis</dt>
- <dd>
- <p>
- In order to generate partitionings of triangulations, we have
- functions that
- call <a href="http://glaros.dtc.umn.edu/gkhome/metis/metis/overview"
- target="_top">METIS</a> library. METIS is a library that
- provides various methods to partition graphs, which we use to
- define which cell belongs to which part of a
- triangulation. The main point in using METIS is to generate
- partitions so that the interfaces between cell blocks are as
- small as possible. This data can, in turn, be used to
- distribute degrees of freedom onto different processors when
- using PETSc and/or SLEPc in parallel mode.
- </p>
-
- <p>
- As with PETSc and SLEPc, the use of METIS is optional. If you
- wish to use it, you can do so by having a METIS installation
- around at the time of calling
- <code>./configure</code> by either setting
- the <code>METIS_DIR</code> environment variable denoting the
- path to the METIS library, or using the
- <code>--with-metis</code> flag.
- </p>
-
- <p>
- (<acronym>deal.II</acronym>) version 7.2 (and higher) support
- METIS 5.x.x only; earlier releases are no longer
- supported. <br>METIS is not needed when
- using <code>p4est</code> to parallelize programs, see below.
- </p>
- </dd>
+ </dl>
- <a name="p4est"></a>
- <dt>p4est</dt>
- <dd>
- <p>
- p4est is a library that <acronym>deal.II</acronym> uses to
- distribute very large meshes across multiple processors (think
- meshes with a billion cells on 10,000 processors). Using and
- installing p4est is discussed <a href="external-libs/p4est.html"
- target="body">here</a>.
- To configure <acronym>deal.II</acronym> with p4est, you will
- need to use the <code>--with-path=/path/to/path</code>
- switch to the <code>./configure</code> script.
- </p>
+OLD TEXT OLD TEXT OLD TEXT
+ <dl>
+ <dt>TECPLOT</dt>
+ <dd>Autodetected if one of the variables <tt>$TECHOME</tt>,
+ <tt>$TEC80HOME</tt> or <tt>$TEC90HOME</tt> points to a valid installation
+ of the tecio library. If enabled, allows data output in TECPLOT format.
</dd>
- <a name="blas"></a>
- <dt>BLAS, LAPACK</dt>
-
- <dd> <p>If <code>--with-blas=blasname</code> and/or
- <code>--with-lapack=lapackname</code> is given, provide wrappers
- around some of the BLAS and LAPACK functions, and link with the
- respective libraries. It will make sure that we link with the
- required FORTRAN libraries. If no argument is given to
- <code>--with-blas</code>, then a BLAS library
- <code>libblas.a</code> or <code>libblas.so</code> is searched for
- in the default locations of your system, and similarly for LAPACK.</p>
-
- <p>If your BLAS or LAPACK libraries are not in the standard search
- path of your linker, you have to tell the linker where to find them.
- The path is not given as an argument to
- <code>--with-blas</code>. Rather, you set the variable
- <code>LDFLAGS</code> accordingly or make sure that the path is in
- your <code>LD_LIBRARY_PATH</code> or similar. For details, please
- look up the documentation of your linker. An example configuration
- for Linux is:</p>
- <pre>
- ./configure --with-blas=myblas LDFLAGS=-L/my/lib/
- </pre>
- <p> This example will search for a library
- <code>libmyblas.a</code> or <code>libmyblas.so</code> in the
- directory <code>/my/lib</code> and elsewhere in the system library
- paths.</p>
-
- <p>Some versions of BLAS and LAPACK need additional libraries
- to be linked with. Such an example is the
- <a href="http://math-atlas.sourceforge.net/">automatically tuned
- linear algebra software (ATLAS)</a>. The BLAS version of this
- package also needs declarations from <code>libatlas.a</code>,
- so it must be included. Using the standard library names of
- atlas, the include for BLAS reads
- <pre>
- ./configure --with-blas='f77blas -latlas'
- </pre>
- assuming that the library files <code>libf77blas.a</code> and
- <code>libatlas.a</code> or the respective shared libraries
- <code>*.so</code> are in libraries included in
- <code>LD_LIBRARY_PATH</code>. LAPACK generated by ATLAS is
- included in a similar fashion.</p>
- </dd>
<a name="netcdf"></a>
<dt>NetCDF</dt>
<a href="external-libs/mumps.html" target="body">this page</a>.
</dd>
- <a name="functionparser"></a>
- <dt>FunctionParser</dt>
- <dd>
- There is a wrapper for the
- <a href="http://warp.povusers.org/FunctionParser/">FunctionParser</a>
- library, which has its own license; if you want to use it with deal.II,
- please read it and make sure that you agree with it.
- You can find the license of FunctionParser
- <a href="http://warp.povusers.org/FunctionParser/">here</a>. We
- include FunctionParser in the deal.II distributions courtesy of its author,
- <a href="http://www.students.tut.fi/~warp/">Juha Nieminen</a>.
- </dd>
-
<a name="ARPACK"></a>
<dt>ARPACK</dt>
<dd>
<a href="external-libs/arpack.html" target="body">this page</a>.
</dd>
- <a name="HDF5"></a>
- <dt>HDF5</dt>
- <dd>
- This adds HDF5/XDMF graphical output capabilities to deal.II. You need to
- install the <a href="http://www.hdfgroup.org/HDF5/">HDF5 library</a>
- separately. Configure with <code>--with-hdf5=</code> and point it to
- the h5pcc or h5cc script inside your hdf5 installation.
-
- For a detailed description of how to compile HDF5 and linking with
- deal.II, see <a href="external-libs/hdf5.html" target="body">this
- page</a>.
- </dd>
</dl>