Domain decompositions
Post date: 2017/12/23 13:44:21
HPDDM (high-performance unified framework for domain decomposition methods)
freefem++-3.57
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
PATHの設定など,少し準備をすればOK.詳しくはこちら (ubuntu on Windows 対応編) を参照.
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)