ユーザ用ツール

サイト用ツール


サイドバー


最近の更新




タグ一覧

タグ#
1
1
1
1
1
1
1
1
1
1
openfoam:v8

OpenFOAM v8

Ubuntu 18.04

管理者権限を所有する場合(その1)

パッケージからインストールをする手順.

# sh -c "wget -O - https://dl.openfoam.org/gpg.key | apt-key add -"
# add-apt-repository http://dl.openfoam.org/ubuntu
# apt-get update
# apt-get -y install openfoam8

管理者権限を所有する場合(その2)

1. 必要なライブラリをインストール

  • OpenFOAMに必要なパッケージ
# apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev 
libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
  • ParaViewに必要なパッケージ
# apt-get install libqt5x11extras5-dev libxt-dev qt5-default qttools5-dev curl

2. OpenFOAMをダウンロード&ディレクトリ名変更

ディレクトリ名はインストーラのスクリプトで利用されるため,ディレクトリ名を変更したい場合,インストーラの中身を編集する必要がある.

$ mkdir -p $HOME/OpenFOAM
$ cd OpenFOAM
$ wget -O - http://dl.openfoam.org/source/8 | tar xvz
$ mv OpenFOAM-8-version-8 OpenFOAM-8
$ wget -O - http://dl.openfoam.org/third-party/8 | tar xvz
$ mv ThirdParty-8-version-8 ThirdParty-8

wgetがリンク切れの場合,以下からダウンロード.

3. インストールの設定

4. 環境変数等の設定読み込み

$ unset C_INCLUDE_PATH CPLUS_INCLUDE_PATH G_BROKEN_FILENAMES G_FILENAME_ENCODING
$ source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc

並列ビルドのため,WM_NCOMPPROCに並列プロセス数を設定可能である.WM_NCOMPPROCSが定義されていない場合,1プロセスでビルドされる.

$ export WM_NCOMPPROCS=8

5. Third partyライブラリのインストール

$ foam
$ cd ../ThirdParty-8
$ ./Allwmake
$ ./makeParaView
$ wmRefresh

6. OpenFOAMのインストール

$ foam
$ ./Allwmake

管理者権限を所有しない場合

必須ライブラリ

管理者権限を所有しない場合でも,gccなどの最低限のライブラリは必須. 最低限のライブラリは以下によりインストール.

# apt install build-essential

未記載

設定ファイルの編集

インストールディレクトリの変更

/path/to/install/OpenFOAM-<ver>/etc/bashrcの一部を以下のように編集

[ "$BASH" -o "$ZSH_NAME" ] && \
    export FOAM_INST_DIR=$(cd $(dirname ${BASH_SOURCE:-$0})/../.. && pwd -P) || \
        export FOAM_INST_DIR=/path/to/install 
# export FOAM_INST_DIR=$HOME/$WM_PROJECT                                                                                                                                                            
# export FOAM_INST_DIR=~$WM_PROJECT                                                                                                                                                                         
# export FOAM_INST_DIR=/opt/$WM_PROJECT                                                                                                                                                                     
# export FOAM_INST_DIR=/usr/local/$WM_PROJECT   

コンパイラの変更

Note: コンパイラを変更する場合,それに依存するライブラリのコンパイラも変更する必要がある

自分用のコンパイラとして,MyCompilerを設定する.ここでは,OpenFOAMのインストールディレクトリは/path/to/install/,versionは<ver>と記載する.

a. /path/to/install/OpenFOAM-<ver>/etc/bashrcの一部を以下のように編集

...
#export WM_COMPILER=Gcc
export WM_COMPILER=MyCompiler
...

b. /path/to/install/OpenFOAM-<ver>/etc/config.sh/compilerを以下のように編集

case "$WM_COMPILER" in
    MyCompiler)
    export WM_CC='gcc-10'
    export WM_CXX='g++-10'                                                
	;;
esac

c. MyCompiler用のwakeルールを作成

$ cp -r /path/to/install/OpenFOAM-<ver>/wmake/rules/linux64Gcc /path/to/install/OpenFOAM-<ver>/wmake/rules/linux64MyCompiler

c-1. /path/to/install/OpenFOAM-<ver>/wmake/rules/linux64MyCompiler/cを以下のように編集.

...
cc          = ${WM_CC} -m64
...

c-2. /path/to/install/OpenFOAM-<ver>/wmake/rules/linux64MyCompiler/c++を以下のように編集.

...
CC          = ${WM_CXX} -std=c++11 -m64
...

MPIライブラリの変更

デフォルトでは“etc/bashrc”には“WM_MPLIB=SYSTEMOPENMPI”が設定されており,システムのmpicc, mpic++を使用する. 任意のパスに置かれたMPIライブラリを使用する方法を記載する.

b. /path/to/install/OpenFOAM-<ver>/etc/bashrcの一部を以下のように編集

...
# export WM_MPLIB=SYSTEMOPENMPI                                                                                                                                                                             
export WM_MPLIB=MPI
...

b. /path/to/install/OpenFOAM-<ver>/etc/config.sh/mpiの一部を以下のように編集

...
MPI)
    export FOAM_MPI=mpi
    export MPI_ARCH_PATH=/opt/mpi
    export MPI_ARCH_FLAGS="-DOMPI_SKIP_MPICXX"
    export MPI_ARCH_INC="-isystem $MPI_ARCH_PATH/include"
    export MPI_ARCH_LIBS="-L$MPI_ARCH_PATH/lib -lmpi"
    _foamAddPath    $MPI_ARCH_PATH/bin
    _foamAddLib     $MPI_ARCH_PATH/lib
    ;;
...

c. /path/to/install/OpenFOAM-<ver>/OpenFOAM-8/wmake/rules/General/mplibMPIを以下のように編集.

PFLAGS     = ${MPI_ARCH_FLAGS}
PINC       = ${MPI_ARCH_INC}
PLIBS      = ${MPI_ARCH_LIBS}

SCOTCHライブラリの変更

/path/to/install/OpenFOAM-<ver>/etc/config.sh/scotchを編集.(scotch version 6.1.0の場合)

export SCOTCH_VERSION=scotch_6.1.0                                                                                                                                                                        
export SCOTCH_ARCH_PATH=/opt/scotch/v6.1.0 

zlib

a. /path/to/install/OpenFOAM-<ver>/src/OpenFOAM/Make/optionsを次のように変更.

EXE_INC = \
    -I$(OBJECTS_DIR) \
    -I/opt/zlib/1.2.11/include

LIB_LIBS = \
    $(FOAM_LIBBIN)/libOSspecific.o \
    -L$(FOAM_LIBBIN)/dummy -lPstream \
    -L/opt/zlib/1.2.11/lib/ -lz

b. lnIncludeにシンボリックリンクを作成.

-lOpenFOAMを参照する場合,zlibのヘッダのインクルードが必要である. 依存関係のインクルードを簡便化するためにlnIncludeが用意されており,そこにシンボリックリンクを作成することでインクルードの問題が解消される.

$ ln -s /opt/zlib/1.2.11/include/zlib.h  zlib.h   
$ ln -s /opt/zlib/1.2.11/include/zconf.h zconf.h

これはスクリプト内に記述すべき.wmake OpenFOAMのあとかな

flexの変更

a. /path/to/install/OpenFOAM-<ver>/wmake/src/Makefileを編集.

...
        $E /opt/flex/2.6.4/bin/flex wmkdep.l; \
...

b. /path/to/install/OpenFOAM-<ver>/wmake/rules/General/flexを編集.

SUFFIXES += .l

ltoo = $E $(call QUIET_MESSAGE,flex,$(<F)) \
    $(WM_SCHEDULER) /opt/flex/2.6.4/bin/flex -o $(@D)/$(<F).c $< $(AND) \
    $(cc) $(cFLAGS) -c  $(@D)/$(<F).c -o $@

c. /path/to/install/OpenFOAM-<ver>/wmake/rules/General/flex++を編集.

SUFFIXES += .L

Ltoo = $E $(call QUIET_MESSAGE,flex++,$(<F)) \
    $(WM_SCHEDULER) /opt/flex/2.6.4/bin/flex -+ -o$(@D)/$(<F).C -f $< $(AND) \
    $(CC) $(c++FLAGS) $(c++LESSWARN) -I/opt/flex/2.6.4/include -c $(@D)/$(<F).C -o $@

d. /path/to/install/OpenFOAM-<ver>/applications/utilities/thermophysical/chemkinToFoam/Make/optionsを編集

EXE_INC = \
    -IchemkinReader \
    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
    -I/opt/flex/2.6.4/include 
    -
EXE_LIBS = \
    -lchemistryModel
openfoam/v8.txt · 最終更新: 2021/01/12 09:09 by michiya