Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Backofen, Rainer
amdis
Commits
aee5a801
Commit
aee5a801
authored
Mar 18, 2011
by
Thomas Witkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Zoltan is now optional.
parent
479286fc
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
243 additions
and
74 deletions
+243
-74
AMDiS/Makefile.in
AMDiS/Makefile.in
+3
-2
AMDiS/configure
AMDiS/configure
+57
-44
AMDiS/configure.ac
AMDiS/configure.ac
+4
-1
AMDiS/libtool
AMDiS/libtool
+3
-3
AMDiS/src/Makefile.am
AMDiS/src/Makefile.am
+7
-2
AMDiS/src/Makefile.in
AMDiS/src/Makefile.in
+22
-20
AMDiS/src/parallel/MeshDistributor.cc
AMDiS/src/parallel/MeshDistributor.cc
+8
-2
AMDiS/src/parallel/PetscSolverSchur.cc
AMDiS/src/parallel/PetscSolverSchur.cc
+84
-0
AMDiS/src/parallel/PetscSolverSchur.h
AMDiS/src/parallel/PetscSolverSchur.h
+51
-0
AMDiS/src/parallel/ZoltanPartitioner.h
AMDiS/src/parallel/ZoltanPartitioner.h
+4
-0
No files found.
AMDiS/Makefile.in
View file @
aee5a801
...
...
@@ -111,8 +111,6 @@ ENABLE_MKL_FALSE = @ENABLE_MKL_FALSE@
ENABLE_MKL_TRUE
=
@ENABLE_MKL_TRUE@
ENABLE_UMFPACK_FALSE
=
@ENABLE_UMFPACK_FALSE@
ENABLE_UMFPACK_TRUE
=
@ENABLE_UMFPACK_TRUE@
ENABLE_ZOLTAN_FALSE
=
@ENABLE_ZOLTAN_FALSE@
ENABLE_ZOLTAN_TRUE
=
@ENABLE_ZOLTAN_TRUE@
EXEEXT
=
@EXEEXT@
F77
=
@F77@
FFLAGS
=
@FFLAGS@
...
...
@@ -149,7 +147,10 @@ USE_PARALLEL_AMDIS_FALSE = @USE_PARALLEL_AMDIS_FALSE@
USE_PARALLEL_AMDIS_TRUE
=
@USE_PARALLEL_AMDIS_TRUE@
USE_PARALLEL_DOMAIN_AMDIS_FALSE
=
@USE_PARALLEL_DOMAIN_AMDIS_FALSE@
USE_PARALLEL_DOMAIN_AMDIS_TRUE
=
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
USE_ZOLTAN_FALSE
=
@USE_ZOLTAN_FALSE@
USE_ZOLTAN_TRUE
=
@USE_ZOLTAN_TRUE@
VERSION
=
@VERSION@
ZOLTAN_DIR
=
@ZOLTAN_DIR@
ac_ct_AR
=
@ac_ct_AR@
ac_ct_CC
=
@ac_ct_CC@
ac_ct_CXX
=
@ac_ct_CXX@
...
...
AMDiS/configure
View file @
aee5a801
...
...
@@ -462,7 +462,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT AMDIS_DEBUG_TRUE AMDIS_DEBUG_FALSE CXX CC AMDIS_INTEL_TRUE AMDIS_INTEL_FALSE AMDIS_OPENMP_TRUE AMDIS_OPENMP_FALSE OPENMP_FLAG MPI_DIR PETSC_DIR USE_PARALLEL_AMDIS_TRUE USE_PARALLEL_AMDIS_FALSE USE_PARALLEL_DOMAIN_AMDIS_TRUE USE_PARALLEL_DOMAIN_AMDIS_FALSE
ENABLE_ZOLTAN_TRUE ENABLE_ZOLTAN_FALSE
ENABLE_UMFPACK_TRUE ENABLE_UMFPACK_FALSE ENABLE_MKL_TRUE ENABLE_MKL_FALSE DUNE_DIR ENABLE_DUNE_TRUE ENABLE_DUNE_FALSE ENABLE_BOOST_TRUE ENABLE_BOOST_FALSE CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT AMDIS_DEBUG_TRUE AMDIS_DEBUG_FALSE CXX CC AMDIS_INTEL_TRUE AMDIS_INTEL_FALSE AMDIS_OPENMP_TRUE AMDIS_OPENMP_FALSE OPENMP_FLAG MPI_DIR
ZOLTAN_DIR USE_ZOLTAN_TRUE USE_ZOLTAN_FALSE
PETSC_DIR USE_PARALLEL_AMDIS_TRUE USE_PARALLEL_AMDIS_FALSE USE_PARALLEL_DOMAIN_AMDIS_TRUE USE_PARALLEL_DOMAIN_AMDIS_FALSE ENABLE_UMFPACK_TRUE ENABLE_UMFPACK_FALSE ENABLE_MKL_TRUE ENABLE_MKL_FALSE DUNE_DIR ENABLE_DUNE_TRUE ENABLE_DUNE_FALSE ENABLE_BOOST_TRUE ENABLE_BOOST_FALSE CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
...
...
@@ -1047,6 +1047,7 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-mpi=MPI_DIR
--with-zoltan=ZOLTAN_DIR
--with-petsc=PETSC_DIR
--with-dune=DUNE_DIR
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
...
...
@@ -2101,6 +2102,27 @@ if test $marmot != false ; then
fi
# Check whether --with-zoltan or --without-zoltan was given.
if test "${with_zoltan+set}" = set; then
withval="$with_zoltan"
zoltandir=$withval
else
petscdir=no
fi;
ZOLTAN_DIR=$zoltandir
if test $zoltandir != no; then
USE_ZOLTAN_TRUE=
USE_ZOLTAN_FALSE='#'
else
USE_ZOLTAN_TRUE='#'
USE_ZOLTAN_FALSE=
fi
# Check whether --with-petsc or --without-petsc was given.
if test "${with_petsc+set}" = set; then
withval="$with_petsc"
...
...
@@ -2159,16 +2181,6 @@ else
fi
if test $paralleldomain = true; then
ENABLE_ZOLTAN_TRUE=
ENABLE_ZOLTAN_FALSE='#'
else
ENABLE_ZOLTAN_TRUE='#'
ENABLE_ZOLTAN_FALSE=
fi
# Check whether --enable-umfpack or --disable-umfpack was given.
if test "${enable_umfpack+set}" = set; then
enableval="$enable_umfpack"
...
...
@@ -4451,7 +4463,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 44
54
"configure"' > conftest.$ac_ext
echo '#line 44
66
"configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
...
...
@@ -5586,7 +5598,7 @@ fi
# Provide some information about the compiler.
echo "$as_me:5
589
:" \
echo "$as_me:5
601
:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
...
...
@@ -6649,11 +6661,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:66
52
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:66
64
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:66
5
6: \$? = $ac_status" >&5
echo "$as_me:666
8
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -6917,11 +6929,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:692
0
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:69
3
2: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:69
24
: \$? = $ac_status" >&5
echo "$as_me:69
36
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -7021,11 +7033,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:70
24
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:70
36
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:70
28
: \$? = $ac_status" >&5
echo "$as_me:70
40
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
...
...
@@ -9366,7 +9378,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 93
69
"configure"
#line 93
81
"configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
...
...
@@ -9466,7 +9478,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 94
69
"configure"
#line 94
81
"configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
...
...
@@ -11806,11 +11818,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:118
09
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:118
21
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:118
13
: \$? = $ac_status" >&5
echo "$as_me:118
25
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -11910,11 +11922,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:119
13
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:119
25
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:119
17
: \$? = $ac_status" >&5
echo "$as_me:119
29
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
...
...
@@ -13480,11 +13492,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:134
83
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:134
95
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:134
87
: \$? = $ac_status" >&5
echo "$as_me:134
99
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -13584,11 +13596,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:135
87
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:135
99
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:13
591
: \$? = $ac_status" >&5
echo "$as_me:13
603
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
...
...
@@ -15787,11 +15799,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15
790
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:15
802
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:15
794
: \$? = $ac_status" >&5
echo "$as_me:15
806
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -16055,11 +16067,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:160
58
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:160
70
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:160
62
: \$? = $ac_status" >&5
echo "$as_me:160
74
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
...
...
@@ -16159,11 +16171,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:161
62
: $lt_compile\"" >&5)
(eval echo "\"\$as_me:161
74
: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:161
66
: \$? = $ac_status" >&5
echo "$as_me:161
78
: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
...
...
@@ -18978,6 +18990,13 @@ echo "$as_me: error: conditional \"AMDIS_OPENMP\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${USE_ZOLTAN_TRUE}" && test -z "${USE_ZOLTAN_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USE_ZOLTAN\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
echo "$as_me: error: conditional \"USE_ZOLTAN\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${USE_PARALLEL_AMDIS_TRUE}" && test -z "${USE_PARALLEL_AMDIS_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USE_PARALLEL_AMDIS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
...
...
@@ -18992,13 +19011,6 @@ echo "$as_me: error: conditional \"USE_PARALLEL_DOMAIN_AMDIS\" was never defined
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ENABLE_ZOLTAN_TRUE}" && test -z "${ENABLE_ZOLTAN_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"ENABLE_ZOLTAN\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
echo "$as_me: error: conditional \"ENABLE_ZOLTAN\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${ENABLE_UMFPACK_TRUE}" && test -z "${ENABLE_UMFPACK_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"ENABLE_UMFPACK\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
...
...
@@ -19610,13 +19622,14 @@ s,@AMDIS_OPENMP_TRUE@,$AMDIS_OPENMP_TRUE,;t t
s,@AMDIS_OPENMP_FALSE@,$AMDIS_OPENMP_FALSE,;t t
s,@OPENMP_FLAG@,$OPENMP_FLAG,;t t
s,@MPI_DIR@,$MPI_DIR,;t t
s,@ZOLTAN_DIR@,$ZOLTAN_DIR,;t t
s,@USE_ZOLTAN_TRUE@,$USE_ZOLTAN_TRUE,;t t
s,@USE_ZOLTAN_FALSE@,$USE_ZOLTAN_FALSE,;t t
s,@PETSC_DIR@,$PETSC_DIR,;t t
s,@USE_PARALLEL_AMDIS_TRUE@,$USE_PARALLEL_AMDIS_TRUE,;t t
s,@USE_PARALLEL_AMDIS_FALSE@,$USE_PARALLEL_AMDIS_FALSE,;t t
s,@USE_PARALLEL_DOMAIN_AMDIS_TRUE@,$USE_PARALLEL_DOMAIN_AMDIS_TRUE,;t t
s,@USE_PARALLEL_DOMAIN_AMDIS_FALSE@,$USE_PARALLEL_DOMAIN_AMDIS_FALSE,;t t
s,@ENABLE_ZOLTAN_TRUE@,$ENABLE_ZOLTAN_TRUE,;t t
s,@ENABLE_ZOLTAN_FALSE@,$ENABLE_ZOLTAN_FALSE,;t t
s,@ENABLE_UMFPACK_TRUE@,$ENABLE_UMFPACK_TRUE,;t t
s,@ENABLE_UMFPACK_FALSE@,$ENABLE_UMFPACK_FALSE,;t t
s,@ENABLE_MKL_TRUE@,$ENABLE_MKL_TRUE,;t t
...
...
AMDiS/configure.ac
View file @
aee5a801
...
...
@@ -66,6 +66,10 @@ if test $marmot != false ; then
AC_SUBST(CC, marmotcc)
fi
AC_ARG_WITH(zoltan, [ --with-zoltan=ZOLTAN_DIR], zoltandir=$withval, petscdir=no)
AC_SUBST(ZOLTAN_DIR, $zoltandir)
AM_CONDITIONAL(USE_ZOLTAN, test $zoltandir != no)
AC_ARG_WITH(petsc, [ --with-petsc=PETSC_DIR], petscdir=$withval, petscdir=no)
AC_SUBST(PETSC_DIR, $petscdir)
...
...
@@ -86,7 +90,6 @@ AC_ARG_ENABLE(parallel-domain,
*) AC_MSG_ERROR(bad value${enableval} for --enable-parallel-domain) ;;
esac],[paralleldomain=false])
AM_CONDITIONAL(USE_PARALLEL_DOMAIN_AMDIS, test $paralleldomain = true)
AM_CONDITIONAL(ENABLE_ZOLTAN, test $paralleldomain = true)
AC_ARG_ENABLE(umfpack,
[ --enable-umfpack Compile with the UMFPACK direct solver library],
...
...
AMDiS/libtool
View file @
aee5a801
...
...
@@ -44,7 +44,7 @@ available_tags=" CXX F77"
# ### BEGIN LIBTOOL CONFIG
# Libtool was configured on host deimos10
3
:
# Libtool was configured on host deimos10
1
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -6760,7 +6760,7 @@ build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
# End:
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# Libtool was configured on host deimos10
3
:
# Libtool was configured on host deimos10
1
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
@@ -7065,7 +7065,7 @@ include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: F77
# Libtool was configured on host deimos10
3
:
# Libtool was configured on host deimos10
1
:
# Shell to use when invoking shell scripts.
SHELL
=
"/bin/sh"
...
...
AMDiS/src/Makefile.am
View file @
aee5a801
...
...
@@ -22,14 +22,19 @@ if USE_PARALLEL_DOMAIN_AMDIS
parallel/ParMetisPartitioner.cc
\
parallel/PetscSolver.cc
\
parallel/PetscSolverSchur.cc
\
parallel/StdMpi.cc
\
parallel/ZoltanPartitioner.cc
parallel/StdMpi.cc
libamdis_la_CXXFLAGS
+=
-DHAVE_PARALLEL_DOMAIN_AMDIS
=
1
AMDIS_INCLUDES
+=
-I
$(PARMETIS_DIR)
AMDIS_INCLUDES
+=
-I
$(PETSC_DIR)
/include
-I
$(PETSC_DIR)
/
$(PETSC_ARCH)
/include
AMDIS_INCLUDES
+=
-I
$(LIB_DIR)
/zoltan_build/include
endif
if
USE_ZOLTAN
libamdis_la_CXXFLAGS
+=
-DHAVE_ZOLTAN
PARALLEL_AMDIS_SOURCES
+=
parallel/ZoltanPartitioner.cc
endif
if
ENABLE_UMFPACK
libamdis_la_CXXFLAGS
+=
-DHAVE_UMFPACK
=
1
-DMTL_HAS_UMFPACK
AMDIS_INCLUDES
+=
-I
$(LIB_DIR)
/UFconfig
\
...
...
AMDiS/src/Makefile.in
View file @
aee5a801
...
...
@@ -48,25 +48,26 @@ host_triplet = @host@
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ParMetisPartitioner.cc
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscSolver.cc
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/PetscSolverSchur.cc
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/StdMpi.cc
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/ZoltanPartitioner.cc
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ parallel/StdMpi.cc
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
am__append_2
=
-DHAVE_PARALLEL_DOMAIN_AMDIS
=
1
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
am__append_3
=
-I
$(PARMETIS_DIR)
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
-I
$(PETSC_DIR)
/include
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
-I
$(PETSC_DIR)
/
$(PETSC_ARCH)
/include
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
-I
$(LIB_DIR)
/zoltan_build/include
@ENABLE_UMFPACK_TRUE@
am__append_4
=
-DHAVE_UMFPACK
=
1
-DMTL_HAS_UMFPACK
@ENABLE_UMFPACK_TRUE@
am__append_5
=
-I
$(LIB_DIR)
/UFconfig
\
@USE_ZOLTAN_TRUE@
am__append_4
=
-DHAVE_ZOLTAN
@USE_ZOLTAN_TRUE@
am__append_5
=
parallel/ZoltanPartitioner.cc
@ENABLE_UMFPACK_TRUE@
am__append_6
=
-DHAVE_UMFPACK
=
1
-DMTL_HAS_UMFPACK
@ENABLE_UMFPACK_TRUE@
am__append_7
=
-I
$(LIB_DIR)
/UFconfig
\
@ENABLE_UMFPACK_TRUE@
-I
$(LIB_DIR)
/AMD/Include
\
@ENABLE_UMFPACK_TRUE@
-I
$(LIB_DIR)
/UMFPACK/Include
@ENABLE_MKL_TRUE@
am__append_
6
=
-DHAVE_MKL
=
1
-I
${MKL_INC}
@ENABLE_DUNE_TRUE@
am__append_
7
=
-DHAVE_DUNE
=
1
@ENABLE_DUNE_TRUE@
am__append_
8
=
-I
$(DUNE_DIR)
@ENABLE_BOOST_TRUE@
am__append_
9
=
-DHAVE_BOOST
=
1
@AMDIS_DEBUG_TRUE@
am__append_1
0
=
-g
-O0
-Wall
-DDEBUG
=
1
$(OPENMP_FLAG)
$(INCLUDES)
#-pedantic
@AMDIS_DEBUG_FALSE@
am__append_1
1
=
-O3
-Wall
-DDEBUG
=
0
-DNDEBUG
$(OPENMP_FLAG)
-ftemplate-depth-100
$(INCLUDES)
#-pedantic
@ENABLE_MKL_TRUE@
am__append_
8
=
-DHAVE_MKL
=
1
-I
${MKL_INC}
@ENABLE_DUNE_TRUE@
am__append_
9
=
-DHAVE_DUNE
=
1
@ENABLE_DUNE_TRUE@
am__append_
10
=
-I
$(DUNE_DIR)
@ENABLE_BOOST_TRUE@
am__append_
11
=
-DHAVE_BOOST
=
1
@AMDIS_DEBUG_TRUE@
am__append_1
2
=
-g
-O0
-Wall
-DDEBUG
=
1
$(OPENMP_FLAG)
$(INCLUDES)
#-pedantic
@AMDIS_DEBUG_FALSE@
am__append_1
3
=
-O3
-Wall
-DDEBUG
=
0
-DNDEBUG
$(OPENMP_FLAG)
-ftemplate-depth-100
$(INCLUDES)
#-pedantic
subdir
=
src
DIST_COMMON
=
$(nobase_include_HEADERS)
$(srcdir)
/Makefile.am
\
$(srcdir)
/Makefile.in AUTHORS NEWS
...
...
@@ -138,10 +139,10 @@ am__libamdis_la_SOURCES_DIST = parallel/ElementObjectData.cc \
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-ParMetisPartitioner.lo
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscSolver.lo
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-PetscSolverSchur.lo
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-StdMpi.lo
\
@USE_
PARALLEL_DOMAIN_AMDIS_TRUE@
libamdis_la-ZoltanPartitioner.lo
am__objects_
2
=
$(am__objects_1)
am_libamdis_la_OBJECTS
=
$(am__objects_
2
)
libamdis_la-AdaptBase.lo
\
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@ libamdis_la-StdMpi.lo
@USE_
ZOLTAN_TRUE@
am__objects_2
=
libamdis_la-ZoltanPartitioner.lo
am__objects_
3
=
$(am__objects_1)
$(am__objects_2)
am_libamdis_la_OBJECTS
=
$(am__objects_
3
)
libamdis_la-AdaptBase.lo
\
libamdis_la-AdaptInfo.lo libamdis_la-AdaptInstationary.lo
\
libamdis_la-AdaptStationary.lo libamdis_la-Assembler.lo
\
libamdis_la-BasisFunction.lo libamdis_la-Boundary.lo
\
...
...
@@ -291,8 +292,6 @@ ENABLE_MKL_FALSE = @ENABLE_MKL_FALSE@
ENABLE_MKL_TRUE
=
@ENABLE_MKL_TRUE@
ENABLE_UMFPACK_FALSE
=
@ENABLE_UMFPACK_FALSE@
ENABLE_UMFPACK_TRUE
=
@ENABLE_UMFPACK_TRUE@
ENABLE_ZOLTAN_FALSE
=
@ENABLE_ZOLTAN_FALSE@
ENABLE_ZOLTAN_TRUE
=
@ENABLE_ZOLTAN_TRUE@
EXEEXT
=
@EXEEXT@
F77
=
@F77@
FFLAGS
=
@FFLAGS@
...
...
@@ -329,7 +328,10 @@ USE_PARALLEL_AMDIS_FALSE = @USE_PARALLEL_AMDIS_FALSE@
USE_PARALLEL_AMDIS_TRUE
=
@USE_PARALLEL_AMDIS_TRUE@
USE_PARALLEL_DOMAIN_AMDIS_FALSE
=
@USE_PARALLEL_DOMAIN_AMDIS_FALSE@
USE_PARALLEL_DOMAIN_AMDIS_TRUE
=
@USE_PARALLEL_DOMAIN_AMDIS_TRUE@
USE_ZOLTAN_FALSE
=
@USE_ZOLTAN_FALSE@
USE_ZOLTAN_TRUE
=
@USE_ZOLTAN_TRUE@
VERSION
=
@VERSION@
ZOLTAN_DIR
=
@ZOLTAN_DIR@
ac_ct_AR
=
@ac_ct_AR@
ac_ct_CC
=
@ac_ct_CC@
ac_ct_CXX
=
@ac_ct_CXX@
...
...
@@ -377,11 +379,11 @@ lib_LTLIBRARIES = libamdis.la libcompositeFEM.la libreinit.la
LIB_DIR
=
../lib
PARALLEL_DIR
=
$(SOURCE_DIR)
PARMETIS_DIR
=
../lib/ParMetis-3.1
AMDIS_INCLUDES
=
$(am__append_3)
$(am__append_
5
)
$(am__append_
8
)
AMDIS_INCLUDES
=
$(am__append_3)
$(am__append_
7
)
$(am__append_
10
)
libamdis_la_CXXFLAGS
=
$(am__append_2)
$(am__append_4)
$(am__append_6)
\
$(am__append_
7
)
$(am__append_9)
$(am__append_1
0
)
\
$(am__append_1
1
)
PARALLEL_AMDIS_SOURCES
=
$(am__append_1)
$(am__append_
8
)
$(am__append_9)
$(am__append_1
1
)
\
$(am__append_1
2)
$(am__append_13
)
PARALLEL_AMDIS_SOURCES
=
$(am__append_1)
$(am__append_5)
PARALLEL_INCLUDES
=
TEMPLATE_INCLUDES
=
-I
../lib/mtl4
INCLUDES
=
$(AMDIS_INCLUDES)
$(PARALLEL_INCLUDES)
$(TEMPLATE_INCLUDES)
...
...
AMDiS/src/parallel/MeshDistributor.cc
View file @
aee5a801
...
...
@@ -17,7 +17,6 @@
#include <stdint.h>
#include <boost/lexical_cast.hpp>
#include <boost/filesystem.hpp>
#include <zoltan_cpp.h>
#include "parallel/MeshDistributor.h"
#include "parallel/MeshManipulation.h"
...
...
@@ -104,8 +103,13 @@ namespace AMDiS {
if
(
partStr
==
"parmetis"
)
partitioner
=
new
ParMetisPartitioner
(
&
mpiComm
);
if
(
partStr
==
"zoltan"
)
if
(
partStr
==
"zoltan"
)
{
#ifdef HAVE_ZOLTAN
partitioner
=
new
ZoltanPartitioner
(
&
mpiComm
);
#else
ERROR_EXIT
(
"AMDiS was compiled without Zoltan support. There you cannot make use of it!
\n
"
);
#endif
}
if
(
partStr
==
"simple"
)
partitioner
=
new
SimplePartitioner
(
&
mpiComm
);
...
...
@@ -128,10 +132,12 @@ namespace AMDiS {
TEST_EXIT
(
feSpace
)(
"No FE space has been defined for the mesh distributor!
\n
"
);
TEST_EXIT
(
mesh
)(
"No mesh has been defined for the mesh distributor!
\n
"
);
#ifdef HAVE_ZOLTAN
int
a
=
0
;
char
*
b
=
NULL
;
float
zoltanVersion
=
0.0
;
Zoltan_Initialize
(
a
,
&
b
,
&
zoltanVersion
);
#endif
elObjects
.
setFeSpace
(
feSpace
);
...
...
AMDiS/src/parallel/PetscSolverSchur.cc
0 → 100644
View file @
aee5a801
//
// Software License for AMDiS
//
// Copyright (c) 2010 Dresden University of Technology
// All rights reserved.
// Authors: Simon Vey, Thomas Witkowski et al.
//
// This file is part of AMDiS
//
// See also license.opensource.txt in the distribution.
#include <vector>
#include <set>
#include "parallel/PetscSolverSchur.h"
namespace
AMDiS
{
void
PetscSolverSchur
::
providePetscSolver
(
KSP
&
solver
,
PC
&
pc
)
{
FUNCNAME
(
"PetscSolver::providePetscSolver()"
);
typedef
map
<
int
,
DofContainer
>
RankToDofContainer
;
typedef
map
<
DegreeOfFreedom
,
bool
>
DofIndexToBool
;
std
::
set
<
DegreeOfFreedom
>
boundaryDofsSet
;
std
::
set
<
DegreeOfFreedom
>
boundaryLocalDofs
;
RankToDofContainer
&
sendDofs
=
meshDistributor
->
getSendDofs
();
for
(
RankToDofContainer
::
iterator
rankIt
=
sendDofs
.
begin
();
rankIt
!=
sendDofs
.
end
();
++
rankIt
)
for
(
DofContainer
::
iterator
dofIt
=
rankIt
->
second
.
begin
();
dofIt
!=
rankIt
->
second
.
end
();
++
dofIt
)
{
boundaryLocalDofs
.
insert
(
**
dofIt
);
for
(
int
i
=
0
;
i
<
nComponents
;
i
++
)
boundaryDofsSet
.
insert
(
meshDistributor
->
mapLocalToGlobal
(
**
dofIt
)
*
nComponents
+
i
);
}
vector
<
DegreeOfFreedom
>
boundaryDofs
(
boundaryDofsSet
.
begin
(),
boundaryDofsSet
.
end
());
std
::
set
<
DegreeOfFreedom
>
otherBoundaryLocalDofs
;
RankToDofContainer
&
recvDofs
=
meshDistributor
->
getRecvDofs
();
for
(
RankToDofContainer
::
iterator
rankIt
=
recvDofs
.
begin
();
rankIt
!=
recvDofs
.
end
();
++
rankIt
)
for
(
DofContainer
::
iterator
dofIt
=
rankIt
->
second
.
begin
();
dofIt
!=
rankIt
->
second
.
end
();
++
dofIt
)
otherBoundaryLocalDofs
.
insert
(
**
dofIt
);
std
::
set
<
DegreeOfFreedom
>
interiorDofsSet
;
DofIndexToBool
&
isRankDof
=
meshDistributor
->
getIsRankDof
();
for
(
DofIndexToBool
::
iterator
dofIt
=
isRankDof
.
begin
();
dofIt
!=
isRankDof
.
end
();
++
dofIt
)
if
(
dofIt
->
second
&&
boundaryLocalDofs
.
count
(
dofIt
->
first
)
==
0
&&
otherBoundaryLocalDofs
.
count
(
dofIt
->
first
)
==
0
)
for
(
int
i
=
0
;
i
<
nComponents
;
i
++
)
interiorDofsSet
.
insert
(
meshDistributor
->
mapLocalToGlobal
(
dofIt
->
first
)
*
nComponents
+
i
);
vector
<
DegreeOfFreedom
>
interiorDofs
(
interiorDofsSet
.
begin
(),
interiorDofsSet
.
end
());
IS
interiorIs
;
ISCreateGeneral
(
PETSC_COMM_WORLD
,
interiorDofs
.
size
(),
&
(
interiorDofs
[
0
]),
PETSC_COPY_VALUES
,
&
interiorIs
);
PCFieldSplitSetIS
(
pc
,
"interior"
,
interiorIs
);
IS
boundaryIs
;
ISCreateGeneral
(
PETSC_COMM_WORLD
,
boundaryDofs
.
size
(),
&
(
boundaryDofs
[
0
]),
PETSC_COPY_VALUES
,
&
boundaryIs
);
PCFieldSplitSetIS
(
pc
,
"boundary"
,
boundaryIs
);
KSPCreate
(
PETSC_COMM_WORLD
,
&
solver
);
KSPGetPC
(
solver
,
&
pc
);
PCSetType
(
pc
,
PCFIELDSPLIT
);
KSPSetOperators
(
solver
,
petscMatrix
,
petscMatrix
,
SAME_NONZERO_PATTERN
);
KSPSetTolerances
(
solver
,
0.0
,
1e-8
,
PETSC_DEFAULT
,
PETSC_DEFAULT
);
KSPSetFromOptions
(
solver
);
PCSetFromOptions
(
pc
);
}
}
AMDiS/src/parallel/PetscSolverSchur.h
0 → 100644
View file @
aee5a801
// ============================================================================
// == ==
// == AMDiS - Adaptive multidimensional simulations ==
// == ==
// == http://www.amdis-fem.org ==
// == ==
// ============================================================================
//
// Software License for AMDiS
//
// Copyright (c) 2010 Dresden University of Technology
// All rights reserved.
// Authors: Simon Vey, Thomas Witkowski et al.
//
// This file is part of AMDiS
//
// See also license.opensource.txt in the distribution.
/** \file PetscSolver.h */
#ifndef AMDIS_PETSC_SOLVER_SCHUR_H
#define AMDIS_PETSC_SOLVER_SCHUR_H
#include "AMDiS_fwd.h"
#include "PetscSolver.h"
namespace
AMDiS
{
class
PetscSolverSchur
:
public
PetscSolver
{
public:
PetscSolverSchur
(
std
::
string
nameStr
,
ProblemIterationInterface
*
problemIteration
=
NULL
)
:
PetscSolver
(
nameStr
,
problemIteration
)
{}
~
PetscSolverSchur
()
{}
private:
/// Creates the fieldsplit preconditioner to solve the Schur complement system.
void
providePetscSolver
(
KSP
&
solver
,
PC
&
pc
);
};
}
//namespace AMDiS
#endif
AMDiS/src/parallel/ZoltanPartitioner.h
View file @
aee5a801
...
...
@@ -23,6 +23,8 @@
#ifndef AMDIS_ZOLTAN_PARTITIONER_H
#define AMDIS_ZOLTAN_PARTITIONER_H
#ifdef HAVE_ZOLTAN
#include <zoltan_cpp.h>
#include <set>
#include "AMDiS_fwd.h"
...
...
@@ -163,4 +165,6 @@ namespace AMDiS {
}
#endif // HAVE_ZOLTAN
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.