読者です 読者をやめる 読者になる 読者になる

iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

FreeFem++をVagrant up!!

4回目になります。砂子です。

なかなか興味が長続きしない今日この頃です。気が付くといま手を出しているもの以外に目移りする日々です。何かを極めたいという願望もあるのですが、多くのことをやってみたいとも考えてしまいます。

そうだ、CAEをやろう

仕事でCAEに触れる機会が多い。自分でも使ってみようと思い立ち、書店で目に付いた本を購入。

有限要素法で学ぶ現象と数理 ―FreeFem++数理思考プログラミング― (シリーズ応用数理 4)

有限要素法で学ぶ現象と数理 ―FreeFem++数理思考プログラミング― (シリーズ応用数理 4)

インストールしよう、と思った

真面目に最初から読んでいったら、いつ終わるか分からんのでまずインストールしてサンプルでも実行しよう。 http://www.freefem.org/ff++/windows.php

なんかWindows版のページにMINGWとかCYGWINの単語が見えるな。このケースはインストールに成功しても碌なことがないような。

  • WindowsUnixのパス形式が異なりエラー
  • 日本語の扱いが難しい
  • 依存しているコマンドやライブラリがWindowsだと導入困難(あるいは不可能)
  • Etc...

プリコンパイルされたものもあるがなんか不安。どうしたものか?いっそのことLinuxにインストールするか? けど、家にあるArchLinuxがインストールされたマシンは貧弱だし、構成変更したくない。

VagrantLinuxを用意する

考えた末、Windowsの仮想環境で済ますことにした。Vagrantを使えばインストール手順も残るし。VagrantVirtualBoxはインストール済みとする。

ボックス用意

まず、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

コンパイルの用意

gccとかソースコードをビルドできる環境をインストール。

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で保存。

f:id:ipx-writer:20160328201930p:plain

端末を開いて保存したファイルがあるフォルダでFreeFem++を実行する。

FreeFem++ ring.edp

p.33にある図2.3がでれば成功。

f:id:ipx-writer:20160328201933p:plain

終了する

終了する際はWindows側のコマンドプロンプトサスペンドする。

vagrant suspend 

再開するときはまたvagrant upで起動する。この仮想環境がいらなくなったときはvagrant destroy を実行する。

まとめ

駆け足で少し雑になったが、なんとかvagrantを使用してFreeFem++が仮想環境で動作する状態に持って行けた。

FreeFem++以外にも流体解析のOpenFOAM等もインストールしてみようと考えている。どれも難しい分野ですが、やはり少しでも動くと面白いですね。ではこれにて。

参考

Linux のロケール設定を日本にするレシピ - Qiita

CentOS 7 ランレベルの変更方法 | server-memo.net