Skip to content
Snippets Groups Projects
Forked from agnumpde / dune-solvers
47 commits behind the upstream repository.
Oliver Sander's avatar
oliver.sander_at_tu-dresden.de authored
Computing Cholesky factorizations is expensive, and they absolutely
have to be reused if the same linear system is solved with several
different right hand sides.  The previous implementation of
CholmodSolver wouldn't allow this: The 'solve' method factorized
and solved together.

This patch makes the interface of the CholmodSolver class richer
to allow for factorization reuse.  It is now possible to set the
matrix, rhs and solution storage separately.  The matrix can be
factorized by calling a new 'factorize' method, and if 'solve'
is called afterwards, the matrix won't be factorized again.

On the other hand, when calling 'solve' by itself the 'solve'
method will do the factorization.  In other words, the patch
is fully backward-compatible.
bf6b2248
History
Preparing the Sources
=========================

Additional to the software mentioned in README you'll need the
following programs installed on your system:

  automake >= 1.9

  autoconf >= 2.62

  libtool

Getting started
---------------

If these preliminaries are met, you should run 

  dunecontrol all

which will find all installed dune modules as well as all dune modules 
(not installed) which sources reside in a subdirectory of the current 
directory. Note that if dune is not installed properly you will either
have to add the directory where the dunecontrol script resides (probably 
./dune-common/bin) to your path or specify the relative path of the script.

On your project and all uninstalled DUNE source modules found the script 
will then calls the GNU autoconf/automake to create a ./configure-script 
and the Makefiles. Afterwards that configure script will be called and the
modules will be build using make all

Most probably you'll have to provide additional information to dunecontrol 
(e. g. compilers, configure options) and/or make options. 

The most convenient way is to use options files in this case. The files
defining three variables:

AUTOGEN_FLAGS    flags passed to autogen
CONFIGURE_FLAGS  flags passed to configure
MAKE_FLAGS       flags passed to make

An example options file might look like this:

#use this options to autogen, configure and make if no other options are given
AUTOGEN_FLAGS="--ac=2.50 --ac=1.8" #Forces automake 2,50 and autoconf 1.8
CONFIGURE_FLAGS="CXX=g++-3.4 --prefix=/install/path" #force g++-3.4 as compiler
MAKE_FLAGS=install #Per default run make install instead of simply make

If you save this information into example.opts you can path the opts file to
dunecontrol via the --opts option, e. g.

  dunecontrol --opts=example.opts all

To get a full list of available configure flags just run

  dunecontrol configure --help

after running at least 
  dunecontrol autogen

More info
---------

See

     dunecontrol --help
   
for further options.


The full build-system is described in the dune-common/doc/buildsystem (SVN version) or under share/doc/dune-common/buildsystem if you installed DUNE!

$Id$