LoginSignup
1
1

More than 1 year has passed since last update.

ChromebookでOpenFOAMを動かしたい

Last updated at Posted at 2021-11-10

「ChromebookでシミュレーションソフトのOpenFOAMを使いたいので教えてほしい!」という依頼を受けたため、自分でいろいろ試しつつ手ほどきした記録です。
教えた相手があまりコンピュータに慣れていないということだったので、エンジニアらしくない(?)表現もありますが、ご了承ください。(そもそも自分が本質理解をしていない...)

この記事では「とりあえず動く」ことを目標にしていきたいと思います。

条件

機器

Chromebook3100 2-in-1

皆さんお察しの通り、教育用Chromebookです。

Linux

$ uname -a
Linux penguin 5.4.131-16049-gc688e114d34e #1 SMP PREEMPT Thu Sep 9 20:21:35 PDT 2021 x86_64 GNU/Linux
$ cat /etc/debian_version
10.10

OpenFOAM

OpenFOAMは現在「openfoam.com」と「openfoam.org」から入手できます。2つは若干バージョン表記が異なり、

openfoam.com openfoam.org
OpenFOAM-v〇〇〇〇 OpenFOAM〇

(〇内は任意の数字)

というような表記になっています。

今回使用したのは「OpenFOAM-v2106」、つまり「.com」の方から入手したものになります。「.com」の方が使える機能が多いのだとか。

準備

Linux環境

Chromebookの[設定]アプリを開いて「Linux開発環境」という項目で「オンにする」を選択し、指示に従って進めます。
セットアップが完了してターミナル(黒いやつ)が表示されたら、

bash
sudo apt-get update
sudo apt-get upgrade

と実行します。

もしupdateの際にRepository 'http://deb.debian.org/debian buster InRelease' changed its 'Version' value from 'ooo' to 'xxx'などというエラーが出たら、

bash
sudo apt-get update --allow-release-change

と実行してからもう一度試すと上手くいくようです。

方法1 〜ソースからビルド〜

結果:私の環境では失敗

こちらの記事を参考に準備を進めようとしました。

とても分かりやすく書かれていたので「楽勝やんか!」と思っていたのですが、この方法だとソースを持ってきてコンパイルをする(PCが行う処理が多くなってしまう)ので、今回使用したPCでは./Allwmakeを実行した所で

g++: fatal error: killed signal terminated program cc1plus

となってしまい、無理矢理進めて使おうとしても多くの機能が使えない状態でした。

メモリが十分あるのであればこの方法でまず問題なさそうですね。上記のサイトがとても分かりやすいのでぜひ参考にしてください。

方法2 〜Dockerを使う〜

結果:私の環境では成功、依頼主の環境では失敗(後述)

Docker

今セットアップしたLinuxの上に、「Docker」というモノを入れていきます。

しっかり順を追ってセットアップしても良いのですが、

bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

私の様な面倒くさがりのためにたった二行でインストールできる方法を用意してくれています。
あまり推奨されていないようですが、まあ今回は個人利用だったので...(ボソッ)

しっかりインストールする場合は

bash
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install docker-ce docker-ce-cli containerd.io

このようになるようです。詳しくは公式ドキュメント↓を参照してください。

OpenFOAM

いよいよ本丸、OpenFOAMを準備していきます。

bash
sudo wget https://develop.openfoam.com/packaging/containers/-/raw/main/openfoam-docker -O /usr/local/bin/openfoam-docker
sudo chmod +x /usr/local/bin/openfoam-docker

https://develop.openfoam.com〜からダウンロードしてきて、実行権限を与えるだけです。

ここで動かしてみましょう。

bash
sudo systemctl start docker
sudo openfoam-docker -default

image.png
このようになれば成功です!
実際に演算をしてみましょう。

bash
cp -r $FOAM_TUTORIALS/multiphase/compressibleMultiphaseInterFoam/lam![Screenshot 2021-10-10 03.05.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1691660/855dac9f-2e83-5805-d162-047b63e6304f.png)
inar/damBreak4phase ./ 
cd damBreak4phase
./Allrun

と実行し、

Restore 0/ from 0.orig/
Running blockMesh on /root/damBreak4phase
Running setFields on /root/damBreak4phase
Running compressibleMultiphaseInterFoam on /root/damBreak4phase

と順に出力され、再び入力ができるようになったら(きっと)しっかり機能していると思います🎉🐧

しかし!

方法2の冒頭でも申し上げたとおり、この方法では失敗することもあります。
それは、アーキテクチャが「arm」系の端末を使用している場合です。
アーキテクチャは、

bash
uname -m

と実行すると確認できます。
このコマンドの実行結果が「x86_64」等であれば大丈夫なのですが、「arm」系だとDockerImageが対応していないため、この方法では厳しそうです...

最後に

arm系アーキテクチャで、かつメモリが十分でない場合には使えない、という結果になってしまいました...。
良い方法があればご教授願いたいです。

1/9 追記

こんな記事を見つけました。

この記事の通りに設定したらarm系アーキテクチャ上でもamd系にしか対応していないOpenFOAMのDockerImageも動くのでは?! と思い、早速持っているラズパイで試してみたら、問題なく動きました。
実際にChromebookで動作確認をしたわけではないので確信は持てませんが、QEMU×binfmt_misc
は希望の光と成り得るのではないでしょうか。

ただDockerってストレージ難民には苦しいんですよね。自分のChromebookのストレージは全体で32GB、そのうちLinuxコンテナで使えるのは約13GBしかないので(絶望的)。 こまめにお掃除します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1