Domain decompositions

Post date: 2017/12/23 13:44:21

HPDDM (high-performance unified framework for domain decomposition methods)

freefem++-3.57

  • GitHub

  • install (PETSc のインストールが必要)

    • ubuntu

      • $ sudo apt-get remove liblapack3 $ sudo apt-get install git cmake python libopenblas-dev # valgrind

        • "How to compile FreeFem++ under Linux." に記述されている方法

          • $ ./configure --enable-download .....

          • $ cd download/ff-petsc

          • $ make petsc-slepc SUDO=sudo (デフォルトでは /usr/local/ff-petsc へインストールしようとするので,sudo が必要)

          • or $ make petsc-slepc

            • ubuntu 16.04LTS : OK

$ make petsc-slepc SUDO=sudo

$ ls /usr/local/ff-petsc complex real

$ cd ../..

$ ./reconfigure

...

configure: freefem++ used download : yes

configure: -- Dynamic load facility: yes

configure: -- ARPACK (eigen value): yes

configure: -- UMFPACK (sparse solver) yes

configure: -- BLAS yes

configure: -- with MPI yes

configure: -- with PETSC no / PETSC complex no

configure: -- with hpddm yes (need MPI & c++11 : yes )

...

$ make

            • ubuntu on Windows

$ make petsc-slepc SUDO=sudo

... Makefile:108:

recipe for target 'petsc-3.8.0/tag-conf-real' failed

        • INNOVATION (version 3.55, 21 june 2017) に記述されている方法 : ubuntu on Windows

$ ./configure --enable-download

$ cd download/ff-petsc

$ make WHERE-all

$ cd ../..

$ ./reconfigure

$ make

...

Makefile:108: recipe for target 'petsc-3.8.0/tag-conf-real' failed

        • PETSc をパッケージダウンロード : ubuntu on Windows

$ apt-get install petsc-dev

$ ./configure --with-petsc=/usr/lib/petsc/lib/petsc/conf/variables --enable-download ...

          • mpiが違う?

    • CentOS7

      • コンパイルエラー

$ ./configure --enable-download

$ cd download/ff-petsc

$ make petsc-slepc SUDO=sudo

...

libtool: relink: mpicc -std=gnu99 -shared -fPIC -DPIC .libs/any-true.o .libs/api.o .libs/block.o .libs/choose-radix.o .libs/conf.o .libs/dtensor.o .libs/rearrange.o .libs/wisdom-api.o .libs/f03-wrap.o .libs/transpose-alltoall.o .libs/transpose-pairwise.o .libs/transpose-recurse.o .libs/transpose-problem.o .libs/transpose-solve.o .libs/dft-serial.o .libs/dft-rank-geq2.o .libs/dft-rank-geq2-transposed.o .libs/dft-rank1.o .libs/dft-rank1-bigvec.o .libs/dft-problem.o .libs/dft-solve.o .libs/rdft-serial.o .libs/rdft-rank-geq2.o .libs/rdft-rank-geq2-transposed.o .libs/rdft-rank1-bigvec.o .libs/rdft-problem.o .libs/rdft-solve.o .libs/rdft2-serial.o .libs/rdft2-rank-geq2.o .libs/rdft2-rank-geq2-transposed.o .libs/rdft2-problem.o .libs/rdft2-solve.o -Wl,-rpath -Wl,/usr/local/ff-petsc/real/lib -L/usr/local/ff-petsc/real/lib -lfftw3 -lm -Wl,-soname -Wl,libfftw3_mpi.so.3 -o .libs/libfftw3_mpi.so.3.3.2

gmake[3]: Leaving directory `/home/ttks/src/c/FreeFEM/freefem++-3.57/download/ff-petsc/petsc-3.8.0/ff-real/externalpackages/fftw-3.3.3/mpi'

gmake[2]: Leaving directory `/home/ttks/src/c/FreeFEM/freefem++-3.57/download/ff-petsc/petsc-3.8.0/ff-real/externalpackages/fftw-3.3.3/mpi'

gmake[1]: Leaving directory `/home/ttks/src/c/FreeFEM/freefem++-3.57/download/ff-petsc/petsc-3.8.0/ff-real/externalpackages/fftw-3.3.3/mpi'

libtool: install: warning: relinking `libfftw3_mpi.la' /home/ttks/src/c/FreeFEM/freefem++-3.57/download/ff-petsc/petsc-3.8.0/ff-real/externalpackages/fftw-3.3.3/

libtool: line 8971: mpicc: command not found

libtool: install: error: relink `libfftw3_mpi.la' with the above command before installing it

gmake[3]: *** [install-libLTLIBRARIES] Error 1

gmake[2]: *** [install-am] Error 2

gmake[1]: *** [install] Error 2

gmake: *** [install-recursive] Error 1 *******************************************************************************

make: *** [petsc-3.8.0/tag-conf-real] エラー 1

      • 原因:

        • mpicc が /usr/lib64/openmpi/bin/ にあるため(ubuntu は /usr/bin/) アクセスできない(途中でパスが上書きされている?)

      • 解決方法:

        • download/ff-petsc/Makefile に一行 (WITH_MPI_DIR=--with-mpi-dir='$(MPI_DIR)')書き込む

        • OpenBlas のインストール

$ ./configure --enable-download --with-mpi-inc=/usr/include/openmpi-x86_64 --with-mpi-libs="-L/usr/lib64/openmpi/lib" --with-mpi-dir=/usr/lib64/openmpi --with-blas=/usr/local/lib/libopenblas

$ cd download/ff-petsc

$ vi Makefile

... WITH_MPI_DIR=--with-mpi-dir='$(MPI_DIR)'

DIR_INSTALL_REAL:=$(prefix)/ff-petsc/real

...

$ make petsc-slepc SUDO=sudo

$ cd ../..

$ ./reconfigure

$ make

$ make install

  • examples++-hdppm

    • elasticity-3d*.edp : 3次元弾性体

      • elasticity-3d.edp

      • elasticity-3d-PETSc.edp

    • elasticity-2d*.edp : 2次元弾性体

      • elasticity-2d.edp

      • elasticity-2d-PETSc.edp

    • diffusion-3d*.edp : 3次元拡散方程式

      • diffusion-3d.edp

      • diffusion-3d-PETSc.edp

  • fakeInterface??

buildEdgePeriodic(Th, ThBorder, ThGlobal, fakeInterface, s, overlap, D, arrayIntersection, restrictionIntersection, Wh, P, comm, excluded, PkPart, defPart, initPart, labPeriodic, userPartitioning, bs)