Linux構築メモ(OpenFOAM, Fortran)
久しぶりにLinux(ubuntu)を低スペックのサブPCに入れましたので、そのメモです。 Fortranのプログラム書いたり、openFOAMをいじる用にしようかなと思ってます。 あとLinuxでしかできないことが出てきたら使いたいなと。
OSはUbuntu 22.04 LTSです。
Redhat系はあまりいい思い出がなく、苦手なので。
手持ちのWindowsマシンにイメージをダウンロードしてRufusでUSBに書き込みます。
Ubuntu
Ubuntuの日本語環境 | Ubuntu Japanese Team
Rufus
「Rufus」ブート可能なISOイメージファイルをもとにブータブルUSBメモリを簡単に作成 - 窓の杜
Desktop版を入れますが基本的にはメインPCからのSSH接続で使う予定です。
とりあえずの初期設定
パッケージの更新
$ sudo apt update $ sudo apt upgrade
$ sudo apt intall vim
sshのサービスを開く
$ sudo apt install openssh-client
インストールすれば自動でSSHが動く。確認は以下。
$ sudo systemctl status ssh
ホストネームは以下で確認できる
$ hostname
ポートはデフォルトで22番が空きます。
ここでメインのWindowsのマシンからSSHログインできます。
Win側のマシンからはtera termでSSHを使いますがどうやらWin10に標準のクライアントもあるみたいですので、好きなものを使ってください。
外部に公開する場合は特にですが、各自でセキュリティ対策は実施しておいてください。
openFOAMとFortran処理系を入れる
openFOAM
英語になりますが、入れ方は以下に書いてあります。
Download v10 | Ubuntu | OpenFOAM
$ sudo sh -c "wget -O - https://dl.openfoam.org/gpg.key > /etc/apt/trusted.gpg.d/openfoam.asc" $ sudo add-apt-repository http://dl.openfoam.org/ubuntu $ sudo apt update $ sudo apt install openfoam10
環境変数の設定は.bashrcの中に以下を書き込みます。
source /opt/openfoam10/etc/bashrc
これで再度ターミナルを立ち上げると、openFOAMの環境変数が読み込まれます。
テストケースを回してみます。
今回はpitzDailyというステップ流れの二次元流れの計算を試してみます。
適当なフォルダにチュートリアルをコピーします。
$ mkdir ~/foo $ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ~/foo/
ディレクトリの中のAllrunを叩けば計算が開始されます。
$ cd ~/foo/pitzDaily
$ ./Allrun
計算結果をParaviewで読みこめる形に変更します。
$ foamToVTK
VTKというディレクトリが生成されますのでこの中の拡張子vtkのファイルをwin機に持ってきます。
私の環境では計算の最終結果は287ステップでしたのでpitzDaily_287.vtkをWinSCPで転送しました。
これをParaviewに読ませて速度を表示させると以下の図のようになります。
Fortran処理系
Fortranもいろいろありますが、まずは簡単に入るgfortranで十分でしょう。*2
$ sudo apt update $ sudo apt install gfortran
と思ったら、もう標準で入ってましたね。
こちらもテストケースをやってみましょう。
program main implicit none write(*,*) "Hello, World!" end program main
コンパイルして実行します。
$ gfortran -o hoge test.f90 $ ./hoge
ちゃんと動きましたので今回はここまで。
*1:Vimはおすすめしません、ubuntu標準のnanoで十分かと思います。
*2:ほかに知りたい方はhttps://fortran-lang.org/en/compilers/