OpenFOAM 1.7.x on Windows 64 bit2011年3月4日 | |
はじめにSymscape の OpenFOAM 1.7.x on Windows 64-bit with Native MPI をもとに Windows バイナリを作ってみた。並列計算には対応しない。 環境
MinGW-w64 のセットアップここ の "Toolchains targetting Win64" - "Automated Builds" から "mingw-w64-1.0-bin_x86_64-linux_20110214.tar.bz2" をダウンロードし、展開。 $ mkdir ~/mingw-w64 $ tar xvjf mingw-w64-1.0-bin_x86_64-linux_20110214.tar.bz2 -C ~/mingw-w64 ~/.bashrc にパスを追加。 export PATH=~/mingw-w64/bin:$PATH ~/.bashrc を読み込む。 $ . ~/.bashrc また、上のリンクの "External binary packages (Win64 hosted)" - "Binaries (64-bit)" から "zlib-1.2.5-bin-x64.zip" をダウンロードし、展開。 $ unzip zlib-1.2.5-bin-x64.zip ファイルを配置。 $ cp zlib/include/zconf.h ~/mingw-w64/x86_64-w64-mingw32/include $ cp zlib/include/zlib.h ~/mingw-w64/x86_64-w64-mingw32/include $ cp zlib/bin/zlib1.dll ~/mingw-w64/bin $ cp zlib/lib/libz.a ~/mingw-w64/x86_64-w64-mingw32/lib $ cp zlib/lib/libzdll.a ~/mingw-w64/x86_64-w64-mingw32/lib mingw-w64/lib/gcc/x86_64-w64-mingw32/4.5.3/include/float.h の最後に以下の行を追加。 #include_next <float.h> OpenFOAM のセットアップOpenFOAM の入手。 $ git clone git://github.com/OpenCFD/OpenFOAM-1.7.x.git 設置。 $ mv OpenFOAM-1.7.x ~/OpenFOAM/OpenFOAM-1.7.x-mingw checkout。 $ cd ~/OpenFOAM/OpenFOAM-1.7.x-mingw $ git checkout 14b79332ee4a1827656951db39fe81cc5ba52d78 パッチ を当てる。 $ gzip -d v5-mingw-openfoam-1-7-x.patch.gz $ mv v5-mingw-openfoam-1-7-x.patch ~/OpenFOAM/OpenFOAM-1.7.x-mingw $ cd ~/OpenFOAM/OpenFOAM-1.7.x-mingw $ patch -p0 < v5-mingw-openfoam-1-7-x.patch ~/OpenFOAM/OpenFOAM-1.7.x-mingw/etc/bashrc の WM_PROJECT_VERSION を修正。 export WM_PROJECT_VERSION=1.7.x-mingw また、その下に以下を追加。 export WM_OSTYPE=MSwindows export WM_COMPILER=mingw-w64 export WM_ARCH_OPTION=64 export WM_CC='x86_64-w64-mingw32-gcc' export WM_CXX='x86_64-w64-mingw32-g++' export compilerInstall=system export WM_MPLIB='NONE' ~/OpenFOAM/OpenFOAM-1.7.x-mingw/etc/bashrc を読み込む。 $ . ~/OpenFOAM/OpenFOAM-1.7.x-mingw/etc/bashrc OpenFOAM のコンパイル$FOAM_APP/utilities/mesh/manipulation/setSet/Allwmake を下記のように修正。 READLINE=0 #if [ "mingw32" != "$WM_COMPILER" -a -f /usr/include/readline/readline.h ] #then # echo "Found readline/readline.h -- enabling readline support." # READLINE=1 # export READLINELINK="-lreadline -lncurses" # break #fi export READLINE $FOAM_APP/utilities/parallelProcessing/Allwmake の実行権限がはずれているので、実行権限を与える。 $ cd $FOAM_APP/utilities/parallelProcessing $ chmod +x Allwmake コンパイル。 $ cd ~/OpenFOAM/OpenFOAM-1.7.x-mingw/wmake/src $ make $ cd ../.. $ ./Allwmake Windows 用パッケージを作成する。 $ mkdir -p ~/OpenFOAM-1.7.x-mingw-w64/bin $ cd ~/OpenFOAM/OpenFOAM-1.7.x-mingw $ cp -r etc ~/OpenFOAM-1.7.x-mingw-w64 $ cp applications/bin/linux64mingw-w64DPOpt/*.exe ~/OpenFOAM-1.7.x-mingw-w64/bin $ cp lib/linux64mingw-w64DPOpt/*.dll ~/OpenFOAM-1.7.x-mingw-w64/bin $ cp lib/linux64mingw-w64DPOpt/dummy/*.dll ~/OpenFOAM-1.7.x-mingw-w64/bin $ cp -r tutorials ~/OpenFOAM-1.7.x-mingw-w64 MinGW-w64 のライブラリもコピー。 $ cd ~/mingw-w64/bin $ cp zlib1.dll libgcc_s_sjlj-1.dll libstdc++-6.dll ~/OpenFOAM-1.7.x-mingw-w64/bin 圧縮。 $ cd $ zip -r OpenFOAM-1.7.x-mingw-w64.zip OpenFOAM-1.7.x-mingw-w64 Windows での OpenFOAM のセットアップ作成したパッケージを MSYS のホームディレクトリに設置。 環境変数を設定。 ~/.bashrc export WM_PROJECT_DIR=~/OpenFOAM-1.7.x-mingw-w64 export USERNAME="openfoam" export PATH=~/OpenFOAM-1.7.x-mingw-w64/bin:$PATH .bashrc を読み込む。 $ . ~/.bashrc 実行icoFoam のチュートリアルケース cavity を実行。 $ cp -r ~/OpenFOAM-1.7.x-mingw-w64/tutorials/incompressible/icoFoam/cavity . $ cd cavity $ blockMesh $ icoFoam 結果を ParaView で見るために cavity.foam を作成。 $ touch cavity.foam | |
| PENGUINITIS | |