From: maier Date: Fri, 28 Dec 2012 08:43:14 +0000 (+0000) Subject: Merge from Mainline X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90eeb8493c1a0c204c9c1b8036f3943425baf109;p=dealii-svn.git Merge from Mainline Conflicts: deal.II/Makefile deal.II/common/Make.global_options.in deal.II/doc/external-libs/mumps.html deal.II/include/deal.II/lac/block_indices.h git-svn-id: https://svn.dealii.org/branches/branch_cmake@27863 0785d39b-7218-0410-832d-ea1e28bc413d --- 90eeb8493c1a0c204c9c1b8036f3943425baf109 diff --cc deal.II/Makefile index 74e55a3af5,460bce3223..94aa101fa8 --- a/deal.II/Makefile +++ b/deal.II/Makefile @@@ -3,9 -156,27 +3,14 @@@ default style-h-files:= $(wildcard include/deal.II/*/*.h) style-cc-files:= $(wildcard source/*/*.cc) style-examples:= $(wildcard examples/*/*.cc) + indent: @echo "============ Indenting all files" - astyle --options=contrib/utilities/astyle.rc $(style-h-files) $(style-cc-files) $(style-examples) + @for f in $(style-h-files) $(style-cc-files) $(style-examples) ;\ + do\ + echo $$f ;\ + astyle --options=common/astyle.rc $$f ;\ + done -.PHONY: indent - - -.PHONY: all \ - online-doc doc printable-doc tex-doc contrib \ - clean clean-contrib clean-base clean-lac clean-dealII \ - clean-doc clean-examples clean-lib clean-tests clean-common-scripts \ - distclean \ - build-test build-test-do \ - TAGS TODO +.PHONY: indent + -# mark the following two as phony since they mark two actual files but -# we don't want to list the full dependencies here. let the sub-makefiles -# do that -.PHONY: common/scripts/make_dependencies \ - common/scripts/expand_instantiations diff --cc deal.II/doc/external-libs/mumps.html index af11f22bcb,6ea5ba841e..12e10ac45e --- a/deal.II/doc/external-libs/mumps.html +++ b/deal.II/doc/external-libs/mumps.html @@@ -16,36 -16,21 +16,36 @@@

Interfacing deal.II to MUMPS

-

This documentation describes the compilation process - of MUMPS and its dependencies starting with - BLACS and following - with SCALAPACK. The compilation - of MUMPS and its dependencies is not as - straightforward is we would like, however, it is not so - difficult that we can not talk about it. That said, we cannot +

+ MUMPS + should be readily packaged by most Linux distributions. + Don't forget to install a develpment version of the library. +

+ +

+ Below is a detailed instruction on how to compile and install + MUMPS and some of its dependencies by hand (for + the case you wish to do so). +

+ +

How to compile and install MUMPS by hand

+ +

+ In the following, we describe the compilation process of + MUMPS and its dependencies starting + with BLACS and following with + SCALAPACK. + + The compilation of MUMPS and its dependencies + is not as straightforward is we would like, however, it is not + so difficult that we can not talk about it. That said, we cannot discuss every possible choice of parameters, because this is too involved (and we would probably much rather be doing something - productive with the interface and - deal.II). Thus we give only a short - walk-through mentioning the most important parameters needed for - successful compliation and linking. + productive with the interface and deal.II). Thus + we give only a short walk-through mentioning the most important + parameters needed for successful compliation and linking.

- +

The compilation scheme involves repeating the same three steps for each piece of software we want installed: (i) Selecting an appropriate makefile; (ii) Modifying symbols in this makefile to @@@ -62,9 -47,9 +62,9 @@@ considered. Otherwise start right below with the installation of BLACS.

- + -

1. BLACS

+

1. BLACS

- +

The BLACS library provides basic linear algebra routines together with a communication model such that they can be used in parallel. The @@@ -140,18 -125,18 +140,18 @@@ the BLACS root directory and compile the library with the command make mpi.

- + -

2. SCALAPACK

+

2. SCALAPACK

- +

The SCALAPACK library provides high-performance linear algebra routines for distributed-memory message-passing MIMD computers. The library can be found on the official SCALAPACK webpage. We require the -- file scalapack.tgz version <= 1.8.0 only. ++ file scalapack.tgz version <= 1.8.0 only.

- +

After extracting the file and changing to the directory which was created, we find a file called SLmake.inc.example and rename it @@@ -218,9 -203,9 +218,9 @@@ the SCALAPACK library with the command make.

- + -

3. MUMPS

+

3. MUMPS

- +

Now we come to the main program for which we are doing all this. We want to install the parallel sparse direct solver MUMPS. @@@ -297,57 -282,38 +297,57 @@@

- + -

Now we are done with configuration and can +

+ Now we are done with configuration and can compile MUMPS with the command make.

- + -

4. Linking with deal.II

+

Linking with deal.II

+ +

+ Support for MUMPS will be enabled automatically + if a system wide installation of MUMPS + can be found. To use a self compiled version, specify +

  
 -    

To be able to use the interface of deal.II - for the MUMPS solver we then - configure deal.II with the following - additional options: + -DMUMPS_DIR=/path/to/mumps +

on the command line when invoking cmake. +

+ +

+ For SCALAPACK and BLACS a hint + - if necessary - may be given by

 -	
 -          --with-mumps=path/to/mumps
 -          --with-blacs=path/to/blacs
 -          --with-scalapack=path/to/scalapack
 -	
 +
 +    -DSCALAPACK_DIR=/path/to/scalapack
 +    -DBLACS_DIR=/path/to/blacs
        

- Note: Throughout this description of the compilation process - of MUMPS we have emphasised adding the - compiler flag -fPIC. This is a definite requirement - if we are compiling deal.II with shared - libraries (which is the default). If we had preferred to be - compiling deal.II without shared libraries, - that's ok too; in that case we would do exactly the same thing - as described above, but this time omitting - the -fPIC flag from the scheme. + You can override the autodetection by manually specifying +

 +    -DDEAL_II_WITH_MUMPS=OFF|ON
 +      
. +

- ++ +

+ Note: Throughout this description of the compilation process + of MUMPS we have emphasised adding the compiler + flag -fPIC. This is a definite requirement if we + are compiling deal.II with shared libraries + (which is the default). If we had preferred to be compiling + deal.II without shared libraries, that's ok too; + in that case we would do exactly the same thing as described above, + but this time omitting the -fPIC flag from the scheme.

+
+
+ The deal.II Group + $Date$ +
diff --cc deal.II/include/deal.II/lac/block_indices.h index 5a8264c52b,031b9fd5d7..19c836bb6c --- a/deal.II/include/deal.II/lac/block_indices.h +++ b/deal.II/include/deal.II/lac/block_indices.h @@@ -408,7 -407,8 +408,8 @@@ BlockIndices::global_to_local (const un while (i < start_indices[block]) --block; - return std::make_pair(block, i-start_indices[block]); + return std::pair(block, - i-start_indices[block]); ++ i-start_indices[block]); }