Skip to content

ogbash/doug

Repository files navigation

General info
============
TODO Add here description, links.

Dependencies
============

 * Fortran compiler

One of
  - intel fortran
  - gfortran
  - g95

 * MPI implementation

MPI fortran libraries must be compiled with the same fortran compiler
as DOUG, otherwise you may be in trouble, because fortrans differ in
calling and naming conventions. The same rule holds for mpif77, ie it
must be wrapper around fortran compiler to be used with
DOUG. (although you can compile DOUG without mpif77, but mpif77
wrapper simplifies configuration process)

One of
  - LAM/MPI
  - OpenMPI
  - MPICH (not tested)

 * Metis 4.0

http://glaros.dtc.umn.edu/gkhome/metis/metis/overview

 * BLAS implementation (optional, but desired)

This is optional, because only needed for UMFPACK, but UMFPACK may be
compiled without BLAS (not recomended).

One of
  - GotoBLAS
  - Atlas
  - vendor specific

 * UFconfig, AMD, UMFPACK

Define BLAS implementation to use in UFconfig.mk, it is _not_ possible
to provide different implementation when compiling DOUG.

All 3 libraries should be extracted into the same directory, later
reffered as UMFPACK root directory.

 * plplot (optional)

Installing
==========
Commands are:
./autogen.sh (only if fresh SVN checkout or some maintainer files are changed)
./configure
make
make install

See INSTALL for general instructions and next section for details.

Configuring
===========

 * ./autogen.sh

When fresh checkout from SVN run ./autogen.sh in project
directory. This creates configure script and some other files.

 * ./configure

The exact command depends on location of libraries.

First thing to remember - if ./configure fails and you have no clue
why, then look config.log for more information, skip directly to the
_end_ of file, because error details are almost at the end.

If UFconfig, AMD and UMFPACK were extracted to the same directory
(UMFPACK root directory), it may be specified with
--with-umfpack=<umfrootdir>. This adds include and library paths to
CPPFLAGS, FCFLAGS and LDFLAGS variables.

Another typical flag to configure is --with-mpi=<mpirootdir>, which picks
mpif77 from that bin directory and adds include and library paths to
CPPFLAGS, FCFLAGS and LDFLAGS variables.

If you have metis or other libraries are in non standard locations use
CPPFALGS, FCFLAGS and LDFLAGS on ./configure command line, like
./configure LDFLAGS="-L/home/my/metis-4.0 -L/usr/local/lib64"

Sometimes compiling fails with dynamic libraries. You can use
--disable-shared to fix that.

You can run configure from other directory like
../doug_trunk/configure, in which case all compiled and linked files
will be placed to CWD.

For more flags use ./configure --help

Examples:
./configure --with-umfpack=/usr/local/src
./configure --with-mpi=/home/olegus/local LDFLAGS="-L/home/olegus/doug/metis-4.0" --with-umfpack=/home/olegus/doug/umfroot --disable-shared

 * make

Executables will be placed in src/main directory.

Libtool usually places _actual_ object, library and binary files to
.libs subdirectory of every directory, do not be confused with that.

Developing
==========

When adding or removing files appropriate Makefile.am should be updated. Make automatically runs automake in this case, so there is no need to run any other scripts.

Sometimes, eg when Makefile's are not yet generated, it is neccesary to rerun ./autogen.sh and then ./configure.

Dependency information is generated by scripts/amdeps.py python script. This information is stored to Make.deps file. Regeneration of this file is not handled properly (at the time of writing), so if you have problems with dependencies try to delete src/Make.deps and rerun make.

About

Domain Decomposition on Unstructured Grids

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Packages

No packages published