今回もかなりマニアック。多分たいていの人は興味ない?
やりたい計算があったのだけど、openFOAMの正式版にはなくてfoam-extentにあることがわかりました。ということでUbuntu20.04にfoam-extentをインストールした過程を今後のためにメモしました。
将来、また同じようなことをやるかもしれないしのでメモを残しておきます。 間違いや無駄なことをやっているかもしれません。有識者の方のアドバイス、ご意見いただけたら幸いです。
実施日 2022/9 OpenFOAM20.04(USB16G)
1 foam-extendをインストールしようと思い立つ
以下のホームページに従って進めていく。基本的にはこの資料の手順で進めるのだが何度かつまづいてしまう。
ttps://gitlab.com/serfriz/foam-extend-4.0-ubuntu-20.04
その際にはこのHPが大いに参考になった。感謝、感謝。
https://openfoamquest.hatenablog.jp/entry/2020/10/03/230248
1-0 最初にインストールフォルダを作る
ホームページの指示では mkdir ~/Apps/FOAM-Extend だけで作れるようだったが
いきなり/Apps/FOME-Extend は作れなかったのでまずAppsをつくり、つぎにFOAM-Extendをつくった。
mkdir ~/Apps
mkdir ~/Apps/FOAM-Extend
cd ~/Apps/FOAM-Extend
git clone https://gitlab.com/serfriz/foam-extend-4.0-ubuntu-20.04.git foam-extend-4.0
1-1 step1
以下のコマンド(1つ)をターミナルで実行する。
echo "deb http://archive.ubuntu.com/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/xenial.list
→問題なし
1-2 step2
以下のコマンドを実行
sudo add-apt-repository ppa:rock-core/qt4
sudo apt-get update
実行→問題なし
1-3 step3
以下のコマンド(1行)を実行
sudo apt-get install git-core build-essential binutils-dev cmake flex \
zlib1g-dev qt4-dev-tools libqt4-dev libncurses5-dev \
libxt-dev rpm mercurial graphviz python python-dev gcc-5 g++-5
⇢ここでエラー多発!! 泣きたくなった。
エラーメッセージは以下のとおり
//---ここからエラーメッセージ---
sudo apt-get install git-core build-essential binutils-dev cmake flex \
> zlib1g-dev qt4-dev-tools libqt4-dev libncurses5-dev \
> libxt-dev rpm mercurial graphviz python python-dev gcc-5 g++-5
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
mercurial : 依存: mercurial-common (= 5.3.1-1ubuntu1) しかし、インストールされようとしていません
依存: python2 (< 2.8) しかし、インストールされようとしていません
依存: python2 (>= 2.7~) しかし、インストールされようとしていません
依存: python2:any (< 2.8)
依存: python2:any (>= 2.7~)
python : 先行依存: python-minimal (= 2.7.11-1) しかし、インストールされようとしていません
依存: libpython-stdlib (= 2.7.11-1) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
//---ここまでエラーメッセージ---
どうやら zlib1g-dev、 qt4-dev-tools、libqt4-dev の3つが見つからないみたいなので、この3つを外してインストールした。つまりlibncurses5-devのみをインストールするってこと。
sudo apt-get install git-core build-essential binutils-dev cmake flex \libncurses5-dev libxt-dev rpm mercurial graphviz gcc-5 g++-5
これは無事終了。はずした3つを個別にインストールする。。
① zlib1g-dev のインストール。
https://installati.one/ubuntu/20.04/zlib1g-dev/ を参考にして
以下のコマンド実行
sudo apt-get update
sudo apt-get -y install zlib1g-dev
でインストールした。これも無事終了。
② qt4-dev-tools のインストール
https://zoomadmin.com/HowToInstall/UbuntuPackage/qt4-dev-tools を参考に・・・
sudo apt-get update -y
sudo apt-get install -y qt4-dev-tools
でできるらしいけど、 1つ目のコマンドは could not get lock /var/lib/apt/lists/lock. it is held by process 1210(packagekitd) とか言われてロックできない・・・保留。
2つ目のコマンドは接続できません・・・・のエラーが沢山出てきた。・・・保留。
③ libqt4のインストール
https://ubuntuhandbook.org/index.php/2020/07/install-qt4-ubuntu-20-04/ を参考にして
sudo add-apt-repository ppa:rock-core/qt4
を実行。無事終了。
ここで再度step3 を実行したら・・・
sudo apt-get install git-core build-essential binutils-dev cmake flex \
zlib1g-dev qt4-dev-tools libqt4-dev libncurses5-dev \
libxt-dev rpm mercurial graphviz python python-dev gcc-5 g++-5
まだエラーが出る。エラーメッセージは・・・
sudo apt-get install git-core build-essential binutils-dev cmake flex \
> zlib1g-dev qt4-dev-tools libqt4-dev libncurses5-dev \
> libxt-dev rpm mercurial graphviz python python-dev gcc-5 g++-5
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
cmake はすでに最新バージョン (3.16.3-1ubuntu1) です。
flex はすでに最新バージョン (2.6.4-6.2) です。
libncurses5-dev はすでに最新バージョン (6.2-0ubuntu2) です。
libxt-dev はすでに最新バージョン (1:1.1.5-1) です。
graphviz はすでに最新バージョン (2.42.2-3build2) です。
mercurial はすでに最新バージョン (5.3.1-1ubuntu1) です。
rpm はすでに最新バージョン (4.14.2.1+dfsg1-1build2) です。
binutils-dev はすでに最新バージョン (2.34-6ubuntu1.3) です。
build-essential はすでに最新バージョン (12.8ubuntu1.1) です。
zlib1g-dev はすでに最新バージョン (1:1.2.11.dfsg-2ubuntu1.3) です。
g++-5 はすでに最新バージョン (5.3.1-14ubuntu2) です。
gcc-5 はすでに最新バージョン (5.3.1-14ubuntu2) です。
git-core はすでに最新バージョン (1:2.7.4-0ubuntu1) です。
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
python : 先行依存: python-minimal (= 2.7.11-1) しかし、インストールされようとしていません
依存: libpython-stdlib (= 2.7.11-1) しかし、インストールされようとしていません
python2 : 破壊: python (< 2.7.15-2)
E: エラー、pkgProblemResolver::Resolve は停止しました。おそらく変更禁止パッケージが原因です。
これは・・・pythonがないのと怒っているかな? なのでインストールする。
sudo apt-get update
sudo apt-get install python2
sudo apt-get install python-dev-is-python2
sudo apt-get install python3
sudo apt-get install python-dev-is-python3
やっとstep3が終わった。
1-4 step4
指示通り以下を実行
cd ~/Apps/FOAM-Extend/foam-extend-4.0
source etc/bashrc
echo "alias fe40='source \$HOME/Apps/FOAM-Extend/foam-extend-4.0/etc/bashrc'" >> $HOME/.bashrc
すると以下のエラーメッセージがでる。
cd ~/Apps/FOAM-Extend/foam-extend-4.0
openfoam@openfoam-CF-NX3EDWCS:~/Apps/FOAM-Extend/foam-extend-4.0$ source etc/bashrc
bash: /usr/bin/mpicc: そのようなファイルやディレクトリはありません
bash: /usr/bin/mpicc: そのようなファイルやディレクトリはありません
bash: /usr/bin/mpicc: そのようなファイルやディレクトリはありません
bash: /usr/bin/mpicc: そのようなファイルやディレクトリはありません
どうも mpicc を インストールする必要があるらしい・・・?
sudo apt install lam4-dev # version 7.1.4-6build2
sudo apt install openmpi-bin # version 4.0.3-0ubuntu1
これでOKかな。
step4の後の説明を見ると
This last line means that whenever you start a new terminal window or tab, you should run the alias command associated to the foam-extend 4.0 shell environment. In other words, whenever you start a new terminal, you should run: fe40
つまりTerminaからfe40を打つとfoam-extendが使えるようになるらしい。
ファイラーで ctrl+h コマンドをうって隠しファイルを見えるように設定を変更して
HOME/.bashrc を開くと最後の行が
alias fe40='source $HOME/Apps/FOAM-Extend/foam-extend-4.0/etc/bashrc'
となっているので最後に以下を追加した。これで端末(terminal)を開くとextendが使えるのかな?
fe40
ついでに並列計算用に以下の1行もも追加しておこう。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/mpi/gcc/openmpi/lib64/
HOME/.bashrcファイルの最後はこんな感じ
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
alias fe40='source $HOME/Apps/FOAM-Extend/foam-extend-4.0/etc/bashrc'
fe40
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/mpi/gcc/openmpi/lib64/
これで並列計算もできるのかな。
1-5 step5
ホームページの指示に従って以下のコマンドを実行。
sed -i -e 's=rpmbuild --define=rpmbuild --define "_build_id_links none" --define=' ThirdParty/tools/makeThirdPartyFunctionsForRPM
sed -i -e 's/gcc/\$(WM_CC)/' wmake/rules/linux64Gcc/c
sed -i -e 's/g++/\$(WM_CXX)/' wmake/rules/linux64Gcc/c++
特に何も起こらない。
1-6 step6
さてコンパイル。
./Allwmake.firstInstall > log.firstInstall 2>&1
かなり時間がかかる。10:15〜13:50 Let's note CF-NX3 (corei5)で3時間以上。古いPCだからかな。
2 試し計算
2-1 cvity計算
Terminalを新たに開いて cavityのチュートリアルを実行。icoFoamで計算できた!
ところが、paraFoamは呼べるがparaview がないと怒られた。
2-2 paraviewのインストール
sudo apt-install paraview
無事cavityFlowのチュートリアルが計算できてparafoamで結果がみえた!
毎回リーダをどれにするか選ばないといけないのだが、これは回避できないんだろうか?
とりあえずfoam-extendが使えるようになったのかな・・・。本格的な計算はまた今度。
0コメント