FreeFem++をVagrant up!!
4回目になります。砂子です。
なかなか興味が長続きしない今日この頃です。気が付くといま手を出しているもの以外に目移りする日々です。何かを極めたいという願望もあるのですが、多くのことをやってみたいとも考えてしまいます。
そうだ、CAEをやろう
仕事でCAEに触れる機会が多い。自分でも使ってみようと思い立ち、書店で目に付いた本を購入。

有限要素法で学ぶ現象と数理 ―FreeFem++数理思考プログラミング― (シリーズ応用数理 4)
- 作者: 大塚厚二,高石武史,日本応用数理学会
- 出版社/メーカー: 共立出版
- 発売日: 2014/02/08
- メディア: 単行本
- この商品を含むブログ (2件) を見る
インストールしよう、と思った
真面目に最初から読んでいったら、いつ終わるか分からんのでまずインストールしてサンプルでも実行しよう。 http://www.freefem.org/ff++/windows.php
なんかWindows版のページにMINGWとかCYGWINの単語が見えるな。このケースはインストールに成功しても碌なことがないような。
プリコンパイルされたものもあるがなんか不安。どうしたものか?いっそのことLinuxにインストールするか? けど、家にあるArchLinuxがインストールされたマシンは貧弱だし、構成変更したくない。
VagrantでLinuxを用意する
考えた末、Windowsの仮想環境で済ますことにした。Vagrantを使えばインストール手順も残るし。VagrantとVirtualBoxはインストール済みとする。
ボックス用意
まず、http://www.vagrantbox.es/でCentOS7のボックスを用意する。FreeFem++のインストールの説明はUbuntuだったが、ある程度使ったことのあるRedHat系を選択した。 コマンドプロンプトの作業フォルダでコマンド入力する。これは結構時間がかかる。
vagrant box add CentOS7_64 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
vagrant init CentOS7_64
起動
起動の前にフォルダ内にできているVagrantfileを編集する。この作業でGUIで作業可能になるようです。やらない場合は別途SSHクライアントが必要。
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true # ここのコメントアウトを解除
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
end
そして、
vagrant up
これ以降の操作は立ち上がったLinux側で行う。 rootでログインします。デフォルトのパスワードはvagrant。
言語環境
言語は日本語で、キーボード配列は英語に設定。
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap us
GUIにする
Gnome Desktop が起動するように設定。
yum -y groupinstall "GNOME Desktop"
systemctl set-default graphical.target
コンパイルの用意
yum -y groupinstall "Development tools"
必要なライブラリを追加。
yum -y install freeglut-devel
yum -y install blas-devel lapack-devel gsl-devel
freefemを取得
ソースコード取得。
wget http://www.freefem.org/ff++/ftp/freefem++-3.45.tar.gz
コンパイルとインストール
取得したファイルを展開、フォルダの中に移動してコンパイル。 さらに、インストール。
tar xf freefem++-3.45.tar.gz
cd freefem++
./configure
make
make install
再起動して確認
再起動して確認する。
reboot
ライセンス認証の画面が表示されるのでチェックを入れて進み、vagrantユーザーでログイン。パスワードはvagrantになる。
書籍のp.28ページのリングに貼る石鹸膜問題をやってみる。geditでコードを入力してホームにring.edpで保存。
端末を開いて保存したファイルがあるフォルダでFreeFem++を実行する。
FreeFem++ ring.edp
p.33にある図2.3がでれば成功。
終了する
終了する際はWindows側のコマンドプロンプトでサスペンドする。
vagrant suspend
再開するときはまたvagrant upで起動する。この仮想環境がいらなくなったときはvagrant destroy を実行する。
まとめ
駆け足で少し雑になったが、なんとかvagrantを使用してFreeFem++が仮想環境で動作する状態に持って行けた。
FreeFem++以外にも流体解析のOpenFOAM等もインストールしてみようと考えている。どれも難しい分野ですが、やはり少しでも動くと面白いですね。ではこれにて。