FrontISTRをubuntu-13.04へソースコードからインストールします。
必要となるソフトウェアは出来るだけ、バイナリパッケージから導入します。
ubuntuでバイナリパッケージが用意されている物は、それを利用します。
バイナリパッケージは、apt-get を使いインストールしてください。
% sudo apt-get install build-essential gfortran ruby doxygen swig libmumps-dev % sudo apt-get install libopenmpi-dev openmpi-bin blcr-dkms libboost-all-dev
バイナリパッケージでインストール出来なかったソフトは、ソースを各サイトからダウンロードしてから、ビルドする必要があります。
ダウンロードしたソフトのビルド方法を説明します。
ここでは、各ソフトウェアを $HOME/Software 以下に展開するとして説明します。
% cd $HOME/Software % tar xvf REVOCAP_Refiner-1.1.01.tgz % cd REVOCAP_Refiner-1.1.01 % vi MakefileConfig.in
MakefileConfig.in は、適宜編集して下さい。コンパイラに gfortran を使う場合、編集の必要はありません。
配布されている REVOCAP Refiner のソースファイルの中に、一部記述が足りない部分があります。そこで以下のように追記してからビルドをして下さい。
% vi RevocapIO/kmbHecmwIO_V3.cpp #include <cstdlib> % make
% cd $HOME/Software % tar xvf REVOCAP_Coupler-2.0.tgz % cd REVOCAP_Coupler-2.0 % export REFINER_HOME="$HOME/Software/REVOCAP_Refiner-1.1.01" % env \ REFINER_LIBS="-L$REFINER_HOME/lib/x86_64-linux -lRcapRefiner -lstdc++" \ REFINER_INCLUDES="-I$REFINER_HOME/Refiner" \ ./configure \ --prefix=$HOME/local \ --with-mpicc=mpicc \ --with-mpif90=mpif90 % make
% cd $HOME/Software % tar xvf metis-4.0.3.tar.gz % cd metis-4.0.3 % vi Makefile.in % make
FrontISTR をビルドする準備が出来ました。今度は、FrontISTR 本体をビルドしていきます。
% cd $HOME/Software % tar xvf FrontISTR_V42c.tar.gz % cd FrontISTR
ビルドの設定は Makefile.conf で行います。テンプレートが用意してありますので、これをコピーして編集すると良いでしょう。
% cp Makefile.conf.org Makefile.conf % vi Makefile.conf
これまで用意した環境では、Makefile.conf は以下のようになります。
################################################## # # # Setup Configulation File for FrontISTR # # # ################################################## # MPI MPIDIR = /usr MPIBINDIR = $(MPIDIR)/bin MPILIBDIR = $(MPIDIR)/lib MPIINCDIR = $(MPIDIR)/include MPILIBS = -lmpi -lmpi_cxx -lmpi_f90 # for install option only PREFIX = $(HOME)/FrontISTR BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib INCLUDEDIR = $(PREFIX)/include # Metis METISDIR = $(HOME)/Software/metis-4.0.3 METISLIBDIR = $(METISDIR) METISINCDIR = $(METISDIR)/Lib # ParMetis (ParMetisは現在利用されていません) PARMETISDIR = $(HOME)/ParMetis-3.1 PARMETISLIBDIR = $(PARMETISDIR) PARMETISINCDIR = $(PARMETISDIR)/ParMETISLib # Refiner REFINERDIR = $(HOME)/Software/REVOCAP_Refiner-1.1.01 REFINERINCDIR = $(REFINERDIR)/Refiner REFINERLIBDIR = $(REFINERDIR)/lib/x86_64-linux # Coupler REVOCAPDIR = $(HOME)/Software/REVOCAP_Coupler-2.0 REVOCAPINCDIR = $(REVOCAPDIR)/librcap REVOCAPLIBDIR = $(REVOCAPDIR)/librcap # MUMPS MUMPSDIR = /usr MUMPSINCDIR = $(MUMPSDIR)/include MUMPSLIBDIR = $(MUMPSDIR)/lib # C compiler settings CC = mpicc CFLAGS = LDFLAGS = -lm # コンパイルオプションはお好みで OPTFLAGS = -Ofast -msse -msse2 -march=native -mtune=native -mfpmath=sse -fbounds-check -Wuninitialized # C++ compiler settings CPP = mpic++ CPPFLAGS = CPPLDFLAGS = CPPOPTFLAGS = $(OPTFLAGS) # Fortran compiler settings F90 = mpif90 F90FLAGS = F90LDFLAGS = F90OPTFLAGS = $(OPTFLAGS) MAKE = make AR = ar ruv CP = cp -f RM = rm -f MKDIR = mkdir -p
Makefile.conf の編集が済んだら、以下のシェルスクリプトを実行します。
% ./setup.sh -g -p --with-tools --with-refiner --with-revocap --with-metis \ --with-mumps --with-paracon
すると、各ディレクトリに Makefile が生成されます。最後に
% make % make install
で FrontISTR をビルドします。
ビルドにはマシンによって20分から30分かかる事があります。無事ビルドされたら、$PATH環境変数にパスを通しておきましょう。$HOME/.profile等に記述しておくと便利です。
% vi $HOME/.profile export PATH=$HOME/FrontISTR/bin:$PATH
FrontISTR の配布物の中には、幾つかのサンプルが同梱されています。試しに実行してみましょう。
FrontISTR のコマンド名は fistr1 です。
% cd FrontISTR/tutorial/01_elastic_hinge % fistr1
これで計算が始まります。計算が終了し、正常終了すると
FrontISTR Completed!!と表示されます。
MPI版の場合、最初にメッシュを分割します。例題は領域を4分割し実行します。メッシュ分割ツールのコマンド名は hecmw_part1 です。
% cd FrontISTR/tutorial/02_elastic_hinge_parallel % hecmw_part1 Aug 01 13:48:33 Info: Reading mesh file... Aug 01 13:48:33 Info: Starting domain decomposition... Aug 01 13:48:34 Info: Creating local mesh for domain #0 ... Aug 01 13:48:34 Info: Creating local mesh for domain #1 ... Aug 01 13:48:34 Info: Creating local mesh for domain #2 ... Aug 01 13:48:34 Info: Creating local mesh for domain #3 ... Aug 01 13:48:34 Info: Domain decomposition done
メッシュが分割されたら、以下のようにして FrontISTR を実行します。
% mpirun -np 4 fistr1
これも、正常終了すると
FrontISTR Completed!!
と表示されます。
FrontISTRの配布物の中には、様々なドキュメントが同梱されています。
% cd $HOME/Software/FrontISTR % ls doc FrontISTR_install_manual.pdf FrontISTR_install_manual_en.pdf FrontISTR_tutorial_guide.pdf FrontISTR_tutorial_guide_en.pdf FrontISTR_user_manual_Ver34.pdf FrontISTR_user_manual_Ver34_en.pdf FrontISTR_user_manual_Ver42.pdf FrontISTR_user_manual_Ver42_en.pdf
この中の FrontISTR_tutorial_guide.pdf 辺りから読み進めると良いでしょう。必要に応じてFrontISTR_user_manual_Ver34.pdfも参考にして下さい。