DEXCS for OpenFOAM(R) on VirtualBox その1

これまでDEXCS for OpenFOAM(R) を仮想マシンで使う場合には、自身は主にVMwarePlayerを利用してきており、ユーザーの皆さんにも推奨してきていました。しかしここ最近、勉強会などで持参のノートパソコンでデモする際に、あまりの操作性の悪さに、ノートパソコンではVMwarePlayerをやめて、VirtualBoxを利用することに変更しました。
とはいうものの、その移行というか、問題が解決されるまでの経緯は簡単ではかったので、ここに備忘録として取りまとめておくこととしました。

 

何が問題であったのか

自分のノートパソコン(OSはWin8.1)は、13インチのディスプレイながら、1920×1080という高解像度で、老眼には虫メガネでも併用しないことにはちと辛い。ベースOSのWin8.1は画面解像度を変更して使用することができるのだが、仮想マシンの解像度とベースOSの解像度が一致しない。

つまり、フル解像度(1920×1080)でたとえば以下のような画面構成になったとして、
2014-08-12_1117

普通にベース解像度を落とす(1280x720)と下のような表示になってしまいます。

2014-08-12_1115

ちなみに、ベース(パソコン本体)の解像度は以下の画面で、

2014-08-12_1842

仮想マシンは以下の画面で、解像度を設定しています。

2014-08-12_2223

 

上の例ではベース解像度を落としたので、仮想マシンの(解像度は変えていないので)画面のサイズが大きくなってくれることを期待するのに、変わってくれないのです。おまけに、特にParaViewのマウス操作が異常にやりにくくなってしまい、散々な目にあいました(勉強会の聴衆の皆さんにはご迷惑をおかけしましたm(_ _;)m)。

ここで「普通に」と書いたところがミソで、実は後になってわかった事で、デフォルトでない方法(本記事末尾に記しておきます)でやればちゃんと期待通りの画面にすることが出来たのですが、その時点では判らなかったので、以下の展開になったという次第です。

VirtuaBoxはスケールモードで使う

それなら試しにVirtuaBoxでやってみようかとなり、やってみたら、VirtualBoxには「スケールモード」というウィンドウの表示方法があって、これを使うとベース解像度を変更することなく、仮想マシンの画面を拡大したり縮小したりすることができたのです。

つまり、普通(デフォルト)の表示では以下のようになりますが、

2014-08-12_1841

「ビュー」のメニューで、「スケールモードに切り換える」を選択すると、仮想マシンの画面を拡大したり、

2014-08-12_1840

縮小したり、

2014-08-12_1847

が自在に出来るということです。

ちなみに、VMwarePlayerだと、画面のピクセルサイズそのものが変わってしまい、これはこれでデスクトップ作業では有効なのですが、プロジェクターを使ってプレゼンする場合とか、老眼には易しくない高解像ノートパソコンでの作業には、このスケールモードの方が有り難いですね。

という訳で、今後ノートパソコンで使う場合には、VirtualBoxを使っていこうと思ったのですが、たとえば、上のスケールモードにしてしまうと、VirtualBoxのメニューが見えなくなってしまうので、これ(メニュー)を使いたくなった時にどうやって戻すのか、その方法を探すのも簡単ではなかったという点。

また、DEXCS for OpenFOAM(R)はもともとVMwarePlayer上の仮想マシンで作成しているので、最初から VMwareToolsがインストール済。なのでVMwarePlayerで使う分には親和性が良いというか、画面のリサイズやベースマシンとの間のファイルコピーが、ユーザーは何もしないでも最初から使えるようになっていますが、VirtualBox上ではそうもいかないので、あれこれ設定が必要(注記1)であるという点、などなどを次稿「その2」で掲載予定です。

(注記1)VMwarePlayerのVMwareToolsに相当するツールとして、VirtualBox では Guest Additions がありますが、これを入れる必要があるということです。但し。DEXCS2013 では、ベースOSがLinux Mint であったことが原因か、何故か最初から入っていた様で、これまでそこを意識せずに済んでいました。ところが、現在開発中のDEXCS2014ではベースOSをubuntuに戻したところ、これが入っていないことがわかったので、少々苦労したという事です。 

解像度変更のまっとうなやり方

2014-08-12_2208

上の赤枠部分をクリックすると、以下の画面に変わります。

2014-08-12_2210

ここで、赤の矢印で示す部分のチェックマークです。私のノートパソコンのデフォルトは外されておりました。これが諸悪の根源!

DEXCS2013 for OpenFOAM(R) にOpenFOAM-2.3.0をインストールする方法

先日の富山の勉強会のオフタイムにて、表題の質問をいただいたので、ここにその方法を記しておきます。

 

ポイントはlibcgal-dev

DEXCSの場合、ベースOSはlinux-Mint13ですが、ubuntu-12.04の派生版なので、たとえばOpenFOAMのソースDownloadのページに記してある、System Requirements中の、Dependent packages required for Ubuntuの部分を事前にインストールしておく必要があるとなります。

ただ、これらはすでにDEXCS2013の中でインストール済のものがほとんどです。唯一、libgcal-dev が新規に必要になります。そこで、

$ sudo apt-get install libcgal-dev

なり、パッケージマネージャ

ワークスペース 1_130範囲を選択_129

を使って、libcgal-dev さえインストールできれば、あとはソースパックなり、gitレポジトリなりからソースを入手してコンパイル(Allwmake)すればインストール出来るはずです。

 

ネットワークインストールが出来ない場合

問題は、会社で使用している仮想マシンなどでインターネット接続できない場合です。ベースマシンそのものはWindowsマシンなりでインターネットに接続できても、Windows上に構築した仮想マシンからはインターネットに接続できないというセキュリティパッチが加えられていたり、またネイティブのLinuxマシンとして使用していても、ネットワークから切り離したマシンでしか使用できないというユーザーもお見えになるようです。

こういう場合、上に記した、apt-get が実行出来ないからです。そういう場合は必要なパッケージを、ベースマシンなり他のマシンで入手して、それをインストールしたいマシンへコピー(またはファイル共有)する方法でやりましょう。今回の、libgcal-devに限らず、これ以外のパッケージでも、基本的に同じやり方で出来ると思います。

devパッケージを入手するには

先にも記しましたが、DEXCSの場合、ベースOSはubuntu-12.04なので、Ubuntu パッケージ検索のページで探すのが一番楽チンのようです。中段あたりに、パッケージ名を記入(この場合、libcgal-dev)し、Distrubutionは、preciseとして、検索ボタンを押します。

範囲を選択_127

そうすると、以下のページhttp://packages.ubuntu.com/search?keywords=libcgal-dev&searchon=names&suite=precise&section=all

範囲を選択_126

から、http://packages.ubuntu.com/precise/libcgal-devにたどりつき、

範囲を選択_125

と出てくるので、アーキテクチャamd64をクリックすれば、ダウンロードサイトのリスト

http://packages.ubuntu.com/precise/amd64/libgcal-dev/download

が出てくるので、適当なサイトをクリックしてダウンロード。

ダウンロードしたパッケージファイル(libcgal-dev_3.9-1build1_amd64.deb)

範囲を選択_123 をDECXCをインストールした(仮想)マシンにコピーし、ダブルクリックしてインストールします。 そうすると、、、

範囲を選択_124

上のようなエラーが出て、

 libcgal8 (= 3.9-1build1)

が必要だとなります。しかし、これは先に述べたページの依存関係リスト

範囲を選択_128

にちゃんと掲載されていたものなので、次はそこからリンクをたどって入手可能となります。

そこで入手したパッケージをインストールしようとすると、今度は、

 libboost-dev

が必要になって、さらに

libboost1.46-dev
libboost-thread-dev
libboost-thread1.46-dev
libboost-date-time1.46-dev (= 1.46.1-7ubuntu3)
libboost-date-time1.46.1 (= 1.46.1-7ubuntu3)
libboost-serialization1.46-dev (= 1.46.1-7ubuntu3)
libboost-program-options-dev
libboost-program-options1.46-dev
libgmp10-dev
libgmpxx4ldbl (= 2:5.0.2+dfsg-2ubuntu1)
libmpfr-dev

 と、芋づる式に必要パッケージをダウンロード、インストールを繰り返すことになります。エラーが出なくなったら、最終的にlibcgal-devがインストールされるという仕組みです。

 

OpenFOAM-2.3.0のバイナリインストール

なお、OpenFOAM本体に関しては、以上見てきたのと同じやり方で、バイナリ(Deb Package)のインストールも可能です。

Deb Package は、Ubuntu Deb Pack Installation のページを参考に、以下より直接ダウンロードします。

これらをインストールしたいDEXCSマシンへコピーして、インストールしようとすると、以下のパッケージが必要だとなるので、上に記したのと同じやり方で、ダウンロード&インストールすれば良い、となります。

csh
libcgal8
libptscotch-5.1
binutils-dev
binutils (= 2.22-6ubuntu1.1)

libcgal-devがまだ未インストールであれば、これもインストールする必要があります。

 

Helyx-OS version 2.0.0

Helyx-OSは昨年の11月に新しいヴァージョンがリリースされていましたが、ようやくそこそこに使ってみる事が出来たので、その評価記事といったところです。

 

インストールの問題

バイナリーインストールではうまく起動しないという不具合がありました。この問題については、オープンCAE勉強会@岐阜(第27回)において、FSさんからいち早く取り上げられ、その時にはバイナリーインストールを諦めてコンパイルする方法について教えてもらいました(説明資料は本記事をアップした時点でまだ未掲載)が、かなり面倒で手を出すまでには至っておりませんでした。

その後、公開元HP情報を時々チェックしていましたが、いつまで経っても更新がないまま、先日(1/18)の第35回オープンCAE勉強会@関東にて、開発元に近い人からの情報で対処方法を教えてもらうことが出来ました。

起動スクリプト(HELYX-OS.sh)中、

#!/bin/bash

LANG=”en_US.UTF-8″

THIS_FILE=`readlink -f $0`
THIS_FOLDER=`dirname $THIS_FILE`

export HELYX_LAUNCHER=$THIS_FILE
source $THIS_FOLDER/bin/launcher.conf

launchSuite $@

LANGの環境変数を追加指定する必要があった(赤字部分)という、たったそれだけの問題でした。

変化点

これも公開元HP情報を見ても、何が変わったのか判りません。画面全体のデザインがかなり洗練されてきた印象は確かにありますが、実質的な機能としては下のキャプチャ図に丸抜き数字で示した4点くらいでしょうか。


範囲を選択_582

 

(参考) version 1.0.2

範囲を選択_584

  1. ParaViewを起動できるようになった。
  2. Multiphase/VOF ( = interFoam )のソルバー設定が可能になった。
  3. メッシュ作成やソルバー実行時の出力画面が、全体の操作画面の中に収納されるようになった。
  4. 解析中のケースフォルダを対象として、端末画面やファアイルマネージャを起動できるようになった。

このうち、1., 4. あたりは、OpenFOAMをちょっとでも使い出すと、誰でもが思いつくニーズでしたね。これで、2. のあたりの対応ソルバーのラインアップが充実してくれば、汎用ツールと比肩できるもになっていきそうな感触はありますが、まだまだ道は永そうです。

DEXCS for OpenFOAMにも、Helyx−OSは搭載させてもらっておりますが、現時点では、TreeFoamから起動するメッシャのプラットフォームとして使い、ソルバーの為の様々な設定はTreeFoamを使う方法を推奨しており、この方針はまだしばらく続きそうです。

ただ誰でも簡単にすぐに使えるというDEXCSの狙いからすると、ソルバー設定機能部分が2.のように機能拡張することよりは、単機能でも良いので、もっと簡単になってくれることを期待しているのですがね。

いや、それよりもメッシャーとして使う部分において、この新しいヴァージョンでは却っておかしくなってしまった部分があるのが心配です。単なるバグで、いずれフィックスされることを期待しているんですが、いましばらくは、こういうものだと思って使っていくしかなさそうです。

課題1. Blenderで出力するSTLファイル対応の問題

Blenderから出力されるSTLファイルでは、

solid Exported from Blender
facet normal 0 0 0
outer loop
vertex 0.278489 0.358779 0.164229
vertex 0.289535 0.361037 0.167021
vertex 0.301157 0.362951 0.170137
endloop
endfacet

solid名で、上の赤字部分のように、 Exported from Blender という付帯情報が勝手に付けられてしまいます。問題はその付帯情報の中にスペースがあるという点です。

以前のヴァージョンでは、こういう名前があった場合に、スペース部分を_(アンダースコア)で置き換えた形(Exported_from_Blender)にしたSTLファイルをpolyMesh/triSurfaces フォルダ下に収納し、snappyHexMeshDict 中でも、同じように記述されていたのに対し、新しいヴァージョンではその処理がされておらず、solid名にスペースがあると結果的にレイヤーを追加することが出来なくなってしまうということです。

課題2. snappyHexMeshDict のパラメタ変更の問題

 メッシュ作成をやり直そうとすると、何故かsnappyHexMeshDict 中、refinementSurfaces ブロックのlevelパラメタが認識されなくなってしまいます。画面上で指定は出来るのですが、Dictファイルに反映されません。

snappyHexMeshDictを手修正して保存しておいても、画面上のメッシュ作成(create)ボタンを押してメッシュ作成しようとした途端、その時点でsnappyHexMeshDictが書き換わってしまいます。なのでパラメタ変更したかったら、後はコマンド実行するしかないという事です。

ということでこれはかなり致命的に辛い。もっとも、自分の環境に問題がある可能性もありますが。

DesignSpark Mechanical でMixingElbowを作ってみた

01

1ヶ月ほど前に、

  • オープンソースということではないが、市販ツールの評価版によくある、機能制限や使用期限付きということでもない。

というツール(無償の3次元CAD)記事が気になっていたのですが、ようやくこれを検証することが出来ました。

 参考サイト

 

 

結論から言うと、

これはOpenFOAM用途には、かなり使えます。

Windows版しかないという点が、唯一残念ですが。

  • 今回の記事を作成するのに、ほぼまる一日ツールを使い倒しましたが、一度もフリーズしたりすることはありませんでした。
  • アンドゥも結構効いて、間違えたところをやり直して救われることが多々ありました。
  • スケッチ画を描く操作が非常に直感的で簡単です。これを使えるようになってしまうと、FreeCADには戻れません。

 

なんとか使い方もわかって、使えそうな感触も得たので、ここに毎度おなじみのMixingElbowを題材に、使用方法など備忘録としてとりまとめておくこととしました。

なお、FreeCADでmixingElbowを作成する方法をまとめた記事中の寸法図

mixing_elbow

をそのまま参考に作成しています。しかし上記記事での作成方法は基本図形(円柱)をベースに変形押し出しで作成していますが、ここではパイプの中心線を先に作成し、これに沿って、パイプ断面を押し出す方法にて作成しています(FreeCADでも、この方法が出来ないことはありませんが、過去記事にも記したようにかなり面倒な作業になります)。

 

 

起動画面

02

デフォルトはスケッチ描画⇒Plan view

03 04

図面通りにキッチリ描くには、PlaneViewです。

メインパイプの中心線を描く

直線ツール

05

06 07

メインパイプの直管部分の中心線を想定して、とりあえず適当に2本の直線を直角配置する

接線ツール

10

11 12

接線ツールを使って、2つの直線の端点をつなぎます。寸法は成り行きになっています。

寸法を整える(Selectツール)

select

 13 14 15

作成した部品(直線と円弧)の寸法は、Selectツールを使って簡単に変更できます。(ここがFreeCADとの大きな違い!)

サブパイプの中心線は補助線を使って作成

寸法図を参考に、円を作成(メインパイプの外形線)

16

 

17

曲がり部の中央点を特定すべく、右下45度方向に半径線を引く

18

曲がり部中央点を起点にサブパイプの中心線を作成

19 20

円と半径線の交点は自動認識されるので、交点あたりをクリックして交点が基準となる中心線を作成することが出来、必要な長さ(10mm)だけ伸長することで、サブパイプの起点を作ることができたということです。

不要になった補助線は削除

21 22

パイプ中心線の作成完了

23

パイプ断面は、新たにSketch画面を作り、その上で作成することになるが、Select New Sketch Plane ボタンを使うと、中心線の端面にて、簡単にSketch画面を作成することが出来る。(これもFreeCADと大きく違う!)

サブパイプ断面作成用のSketch画面で断面円を作成

24 2526

押し出しツールでサブパイプを作成

27

28 29

メインパイプの断面作成用のSketch画面で断面円を作成

30 31 32

メインパイプの押し出しはパス指定の押し出しで

33

 

Pullツールで面を選択したあとに、Swepボタン(上図の赤枠部分)をクリック

 

34 35 36

Sweepパスの選択はCtrlキーを押しながら中心線パーツを複数選択。

押し出す作業は、少しコツが必要かも。

ソリッドモデル完成、不要オブジェクトの削除

37

 

境界面の分割(Detach All)

38境界面の名前付け

39複数の境界面をまとめる(Combine)

40名前付け完了

41

 

ファイル⇒名前を付けて保存

42

デフォルトは.rsdoc

43

STL形式はオプションも豊富

44

 

Override Units にチェックマークを入れて、単位をMeters にしておけば,

ミリメートル(描画時のスケール単位)からメートルへスケール変換して出力してくれる。

Optionsはデフォルトのままでは駄目で、以下のように変更する。

 

45

 

OpenFOAMユーザーにとって重要なことは、ここでASCII形式を選ぶことと、FileをPar body(パーツ毎に)作成するように指定すること。

本例の場合、パーツが4つ(in1,out,side,in2)あるので、MixingElbow.stl,MixingElbow(2).stl,MixingElbow(3).stl,MixingElbow(4).stl という4つのファイルが出力されることになる。これをLinux環境に持ってきて、たとえば、

$ cat *.stl > mixingElbow.stl

と打ち込んでやれば、1つのファイル(mixingElbow.stl)になってParaViewやOpenFOAMでそのまま取り扱うことができるようになる。

 

ParaViewでの可視化例

46なお、STLの出力オプションでメッシュの分解能も指定できる。下の図は、Facet maximum edge length: 1mm にチェックマークを入れて作成したもの。

47

 

DEXCS2013 for OpenFOAM(R) リリースノート

DEXCS for OpenFOAM(R) は、OpenFOAMと、これをより簡単・高度に活用できるようにする為の様々なツールをすべてインストール済のオール・イン・ワンパッケージで、誰でも簡単・即使えるようにしたマシンイメージ(isoファイル)です。

範囲を選択_999(280)

DEXCS2013では、

  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • 初心者向けのランチャーは、ほぼ機能開発が完了したとして、国際化対応に向けての英語版(翻訳は未熟ですが・・・)での動作も可能にした
  • DEXCS2011から搭載するようになった中級者向けツールの機能強化を図りました。

なお、DEXCS2012までは、32/64bit版がありましたが、DEXCS2013からは、64bit版のみです。

インストールと利用法

範囲を選択_161

詳しくはこちら資料はDEXCS2012のものですが、DEXCS2013でも画面イメージが異なるのみで同じです)2013/10/22更新

  • マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)
  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
    • VirtualBoxにインストールする方法は、こちらに詳しく記されています
  • 基本的に、DEXCS2011でやった方法と同じですが、同じやり方が通用しない部分が一部あるので、DEXCS2011の利用経験者はご注意のほど。

同梱プログラム

範囲を選択_999(281)

OSはLinux Mint13

といっても、ベースはUbuntu-12.04なので、アプリケーションのインストール方法などは、ubuntuのそれと全く同じです。違うのはデスクトップのGUI環境だけです。
標準のターミナル、ファイルマネージャ、テキストエディタがubuntuとは異なりますが、DEXCSランチャーやTreeFoamは、ubuntuの標準ツールを使用することを前提に作られているので、ubuntu互換ツールとして起動できるようにしてあります。

その他のドキュメントについて

    • DEXCSランチャーのヘルプメニューを参照下さい。
    • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
    • 「ランチャーの使い方」-「形状作成」にて、Swiftツールの使い方を概略説明しています。
    • 「ランチャーの使い方」-「メッシュ」「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
    • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
    • TreeFoamの実践的な使用方法