機械エンジニアを夢見る現場作業員の雑記帳

夢破れた機械設計屋(CFD屋見習い修了、元現場作業員)がただ書き散らすだけ

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

Vimを入れる(好きなエディタを入れましょう*1

$ 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に読ませて速度を表示させると以下の図のようになります。

pitzDailyの結果

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/