FOCUS by DEXCS その2

その1の記事を書いてから2年近く経ってしまいましたが、ようやくDEXCSらしい使い方が出来るようになりました。


%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_388

  1. マウント用の空フォルダ(focusServer)を選択(空フォルダであれば名前は何でも良い)
  2. 右クリック⇒ポップアップメニューの「sshfsサーバマウント」を選択
  3. マウントが完了すると、空フォルダに▼マークがつくのでこれをクリック⇒FOCUS上のファイル構造がツリー展開される(赤枠部分)
  4. 解析したいフォルダ(work/test)を選択し、解析ケースに設定。
  5. ポップアップメニューの「loginシェル起動」を選択すると、以下のターミナルが現れる。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_370

所定のフォルダ(work/test)で所定(上の場合は2.4.x)のOpenFOAMコマンドを直ちに実行できるようになります。

バッチで実行中のジョブに対して、plotWatcherを起動して、下図のように計算の収束状況を確認する事もできます。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_371

 

とはいうもの、FOCUSへの接続は、個別のカスタマイズが必要であり、その部分はユーザーが自身で設定していただくしかありません。また、ここを間違えると、やり直しもうまくいかないなどあったりするので、以下備忘録です。

 



 

必要な環境

準備するもの

  • 鍵交換方式を用いたSSH接続用の秘密鍵

設定(ローカルマシン)

  • ホームディレクトリ直下の.TreeFoamUser/data/sshfs_data の朱字部分を編集(TreeFoamを一度でも実行すればこのファイルが存在するはず)

    #
    # sshfsによるサーバマウント
    # ———————–
    # FOCUSの例
    #

    HostName ssh.j-focus.jp
    User ****0001

    #マウントするホスト側のdir
    # #/home1/<グループ名>/<ユーザ名>
    HostDir /home1/****/****0001

    #local側のマウントする場所
    #(TreeFoam側で設定する)
    MountPoint
    #
    # sshによるサーバlogin
    # ——————-
    # FOCUSの例
    #

    #サーバlogin
    login
    ssh ff01Focus #logon先(~/.ssh/configで定義)

    #login後の環境設定
    # サーバ側に「setEnviron」ファイルを作成する。
    setEnviron
    . ~/OF230terminal     #OpenFOAMの環境設定
    cd ~                                #currentDirectoryを設定(TreeFoamが書き換える)

    青字部分は、FOCUSへログイン出来るようになったら、各自の必要な環境に応じて書き換える。(通常は指定したファイルOF230tweminalは存在せず、何も組み込まれない)

  • ホームディレクトリ直下の.ssh フォルダを作成し、用意した秘密鍵(id_rsa)を収納。以下のconfigファイルも収納しておく。

Host FocusLogin
User ****0001
Hostname ssh.j-focus.jp
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60

Host ff01Focus
HostName ff
User ****0001
ProxyCommand ssh FocusLogin -W %h:%p
ServerAliveInterval 60

  • 上記ファイルのパーミッションに注意。必要に応じて変更(下図参照)。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_372

  • keyringに秘密鍵パスワードを登録する為、seahorseを起動する(以下はDEXCS2015 linux mint17のGUI操作イメージ)


%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_373


%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_374

+ボタンを押すと、以下のメニューが現れる

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_375

Secure Shell Key を選択

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_376

名前は何でも良い

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_377

ここで入力するパスワードは何でも良いが、もう一度聞かれるので間違いなく入力すること。またちゃんと記憶しておくこと。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_378

FOCUSのサーバーアドレスとログイン名を入力

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_379

ここで入力するパスワードは秘密鍵を作成する際に使用したパスワード

 

  • とりあえず、コマンドラインにて、FOCUSへログイン出来る事を確認。

custom@custom ~ $ ssh ff01Focus

と入力してみる

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_387

上記ダイヤログが現れるので、ここで最初に入力したパスワードを入力すれば・・・

The authenticity of host ‘ff (<no hostip for proxy command>)’ can’t be established.
RSA key fingerprint is 6c:09:02:57:8f:4b:03:17:00:0a:dd:9f:39:d4:33:45.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘ff’ (RSA) to the list of known hosts.
Last login: Tue Sep 20 17:22:57 2016 from ***.***.4.11
[****0001@ff01 ~]$exit
logout
Connection to ff closed.
custom@custom ~ $

となってFOCUSのフロントエンドサーバーに、「秘密鍵のパスワードを入力しないで」接続できた! ということです。

  • これにて本記事冒頭のTreeFoamでFOCUSサーバーをマウント/アンマウント出来るようになる。但しログインシェル起動は、このままでは単にFOCUSのフロントエンドサーバーに接続できるというだけで、冒頭のような使い勝手を実現するには、以下のFOCUSサイドでの環境設定が必要。

 

設定(FOCUS)

  • TreeFoam上で、FOCUSサーバーのマウントポイント(focusServer)をダブルクリックすると、ファイルマネージャが立ち上がり、以下のように表示される。但しフォルダーの名前はあくまで筆者の環境であり、ユーザー毎に異なっているのは当然ですが、setEnviron という見慣れないファイルが存在しているはずです。
    %e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_389
  • このsetEnvironをダブルクリックしてテキストエディタで調べると、

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_390

となっており、これは設定(ローカルマシン)の最初に説明した.TreeFoamUser/data/sshfs_data の最下2行で定義された内容(最下行はログインシェルが起動されたフォルダ名に変更されている)になっており、TreeFoamが作成したものです。

  • ここでたとえば、以下のような内容

#!/bin/bash
# OpenFOAM terminal
#

module load gnu/openmpi165
unset FOAM_INST_DIR
source /home1/share/openfoam/2.3.0/gnu/openmpi/OpenFOAM-2.3.0/etc/bashrc

. $WM_PROJECT_DIR/bin/tools/RunFunctions

echo “set OpenFOAM-2.3.0 environment.”

OF230terminalというファイルを作成し、ホームフォルダ直下に収納しておけば、OpenFOAMの2.3.0の環境が組み込まれることになる。OpenFOAMの用途(ヴァージョン)に応じて、この内容を書き換えるなり、別のファイルを使いたい場合は、.TreeFoamUser/data/sshfs_data の下から2行目を変更する、

  • 但し、このsetEnviron ファイルが自動作成出来たとしても、このままではこの環境は組み込まれない。組み込む為にはもう一工夫必要で、たとえば。.bash_profile ファイル中の最下行に、以下のように記述しておくのが一案です。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_391

 

  • これにて、TreeFoam上のwork/testにて右クリック⇒ポップアップメニューからログインシェルを起動すれば、以下のような端末が現れるようになる。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_392

プラスアルファ

以上で基本的な設定は完了ですが、このままだとFOCUS上のファイル構造をツリー展開するのに、結構な待ち時間が生じてしまってイライラさせられます。実はこれに対する対策もすでに実現済みですが、TreeFoam本体の改良が必要で、その更新正式版が出来たら・・・ということで。

最後に

本記事の冒頭あたりに記したように、手順を間違えたりすると、keyringがうまく動いてくれない事がよくあって手こずりました。その際に参考になるかもしれない情報を以下に掲載しておきます。

  • keyringがうまく動かない場合、TreeFoamを起動した際の小さな端末上で、秘密鍵のパスワード入力待ち状態だったりします。%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_393

この場合は、その端末上でパスワードを入力してやれば、とりあえずマウントしたりすることは出来るようになります。

  • 上記方法にて、FOCUSへログイン出来ておれば、seahorseの設定を再度やり直してうまく動くようになる場合もありました。ローカルマシンの.sshフォルダは以下のようなファイル構成になっているはずですが、known_hosts を削除してやり直すとうまく動くようになる場合もありました。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_394

  • 近日公開予定のDEXCS2016(Linux mint 18)では、seahorseの起動メニューが異なる

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_367

ばかりでなく、デフォルトでkeyring そのものを自動起動させる一手間も必要でした(DEXCS2016では組み込み済です)。

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_396

%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_397%e7%af%84%e5%9b%b2%e3%82%92%e9%81%b8%e6%8a%9e_398

mixerVessel by cfMesh

遅ればせながら、この夏に第42回オープンCAE勉強会@岐阜、夏合宿にて使用した表題講習会の資料とケースファイルを公開します。



資料はこちら

ケースファイルはこちら

動作環境として、講習会ではDEXCS2015 for OpenFOAM(R) のプロトタイプ版で実施しましたが、もちろん最新の公開版でも出来ます。

資料の33頁以降に、OpenFOAMの標準チュートリアルとして同梱されているSTLファイルをベースに、これらをFreeCADにインポートして、解析モデルの作成法ついて説明してありますが、はっきりと言って、面倒臭い。

そこで、講習会では、これが完成したという前提で、これらを使って、DEXCSに搭載のFreeCADマクロやTreeFoamをどうやって使うか?という話の流れになっています。

講習会では、メッシュを作成するデモしか行えませんでしたが、上述のようにFreeCADによるモデル作成も出来るようになっているので、FreeCADの練習がてらお試しあれ。

 

また、ここでは計算結果についても掲載しておきます。

範囲を選択_999(180)

 

 

お役に立つと思ったら、下の広告をクリックしてやって下さい。



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

ダウンロードはこちら

(2015/9/26公開)

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

範囲を選択_999(005)

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2015では、

  • ベースOSはLinux Mint 17.1 Cinnamon No Codecs(LTS)
    • DEXCS2014ではやむ無くubuntu でしたが、Linux Mint に戻しました
    • 国際化にも対応しました。但し、ヘルプファイルは日本語のみ。
    • 2015/9/23 システムアップデート
  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • DEXCS2011から搭載するようになった中級者向けツール(TreeFoam)の機能強化を図りました。
  • FreeCADマクロ(cfMesh用簡単設定ツール)を、より使い易くしました。

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

また、製作可能なisoイメージの最大容量の制限の関係上、今回はHelyx-OS と、OpenMDAOの搭載は見送る事としました。

 

インストールと利用法

範囲を選択_999(006)

詳しくはこちら


マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • 基本的に、DEXCS2011でやった方法と同じです.DEXCS2012,2013では、同じやり方が通用しない部分が一部ありましたが、それらの不具合はなくなりました。
  • VirtualBoxにインストールする方法は、こちらにDEXCS2013について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2014では導入済みなので、共有ファイルの設定なども同様に実施可能です。

同梱プログラム

範囲を選択_999(007)

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

    • DEXCSランチャーのヘルプメニューを参照下さい。
      • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
      • 「ランチャーの使い方」-「形状作成」にて、FreeCADの使い方を概略説明しています。
      • 「ランチャーの使い方」-「メッシュ」にて、FreeCADマクロで起動される表形式のGUIの使い方と、cfMesh作成に必要なパラメタの概要を説明しています。
      • 「ランチャーの使い方」-「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
      • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
    • Blender⇒SwiftツールをDEXCSランチャーから使用することはなくなりましたが、ツールそのものは使用可能で、メッシュ作成用のテンプレートフォルダもBlenderモデルと併せて同梱してあります(デスクトップ上:DEXCS/template/swift_dexcsMesh)。
    • Swiftツールもヴァージョンアップして、出力ファイルの仕様が少々変更になっていますが、基本的な使用方法は変わっておりません。使用法の詳細を知りたい方はDEXCS2013のリリースノートをご覧ください。
    • SLURMというリソースマネージャもインストールしてあり、サブミット用のサンプルスクリプトを含んだケースファイルも同梱してあります(デスクトップ上:DEXCS/template/slurm_damBreak)。コア数が4つのマシンであれば、以下のコマンドを、そのまま利用可能(のはず)です。
      • $ sbatch submit.sh  (ジョブサブミット)
      • $ squeue  (ジョブ確認)
      • $ scancel [jobID] (ジョブ停止)
    • コア数が4でないなどの環境で、バッチジョブがペンディング状態のまま実行出来ない場合は、デスクトップ上、DEXCS/launcherOpen/doc/slurm.pdf を参考に設定ファイル(slurm.conf)を変更して使用して下さい。
    • ジョブサブミット、ジョブ確認は、TreeFoamの十徳ナイフからも起動できます.
    • 上記を含めて、TreeFoamから起動する十徳ナイフのメニューに変更はありません。
    • JAVA gnuplot GUI の使用方法
    • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。(DEXCS2014までは内容が古い物になっていましたが、DEXCS2015では、最新版に対応した内容になっています)
    • TreeFoamに関する情報は、DEXCS公式HPの AboutTreeFoamの記事にまとめてあります。
    • DEXCS2015に搭載のTreeFOAMは、+dexcsSwakとして、上記公式ページに掲載ヴァージョンに対して独自のカスタマイズが加えてあります。範囲を選択_999(008)
    • また、これに関連し、一部の機能が無効になっています範囲を選択_999(009)

 

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

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

範囲を選択_999(681)

 

詳しくはこちら

DEXCSランチャーのヘルプメニューからも参照できます

DEXCS2014では、

  • OpenFOAMやその他の組み込みツールのヴァージョンアップに対応
  • 初心者向けのDEXCSランチャーは、FreeCADマクロ(cfMesh用簡単設定ツール)を導入することで更なる簡素化が出来ました。
  • DEXCS2011から搭載するようになった中級者向けツール(TreeFoam)の機能強化を図りました。
  • 最適化ツール(OpenMDAO+openfoam_wrapper)を新たに導入しました。

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

 

インストールと利用法

範囲を選択_999(682)

詳しくはこちら

マシンイメージなので、DVDにイメージ書き込みすれば、DVDから起動してそのまま利用することができます。 (DEXCS初体験の人はこのライブDVDとして「まずは使ってみる」方法をお薦めします。)

  • 起動後にインストール機能により、HDD等に直接インストールできる上、使用するユーザー名等を選択することができます。
  • VMWare Playerや、VirtualBox等の仮想環境で起動して、仮想環境を作成することも簡単です。
  • 基本的に、DEXCS2011でやった方法と同じです.DEXCS2012,2013では、同じやり方が通用しない部分が一部ありましたが、それらの不具合はなくなりました。
  • VirtualBoxにインストールする方法は、こちらにDEXCS2013について詳しく記されていますが、基本は同じです。また、DEXCS2011までは、”Guest Additions”が入っておりませんでしたが、DEXCS2014では導入済みなので、共有ファイルの設定なども同様に実施可能です。

 

 

同梱プログラム

範囲を選択_999(684)

 

 

OSはUbuntu-14.04

DEXCS2012,2013 では、ベースOSをそれまでのUbuntu から、Linux Mintに変更しましたが、DEXCS2014では先祖返りして、Ubuntu-14.04になりました。
当初は相応のLinux Mint 17で開発を進めていましたが、TreeFoamでSegmentation Faultが頻発し、どうにも解決できなかった為です。また、致命的とまでいわないが、リマスターツールの挙動がややおかしいという点もありました。

ただ、それにしても、UbuntuはCAE用途には使い難いなぁ・・・と思うのは少数派でしょうか?

 

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

    • DEXCSランチャーのヘルプメニューを参照下さい。
    • 本当に初めて使う人は、「ランチャーの使い方」-「まずは使ってみる」をご覧下さい。
    • 「ランチャーの使い方」-「形状作成」にて、FreeCADの使い方を概略説明しています。
    • 「ランチャーの使い方」-「メッシュ」「計算実行」「結果処理」を理解できるようになると、OpenFOAMの基本的なファイル構造を理解できたことにもなります。
    • 以上は動画チュートリアルになっていますが、「フラッシュプレーヤー」を変更して参照することを強くお勧めします。変更方法は、最下段の「フラッシュプレーヤーの変更方法」をご覧ください。
      • Blender⇒SwiftツールをDEXCSランチャーから使用することはなくなりましたが、ツールそのものは使用可能で、メッシュ作成用のテンプレートフォルダもBlenderモデルと併せて同梱してあります(デスクトップ上:DEXCS/template/swift_dexcsMesh)。
      • Swiftツールもヴァージョンアップして、出力ファイルの仕様が少々変更になっていますが、基本的な使用方法は変わっておりません。使用法の詳細を知りたい方はDEXCS2013のリリースノートをご覧ください。
      • openfoam_wrapper の使用法については、OpenMDAO端末を起動して、以下のコマンドを入力すれば、粘度の同定問題のドキュメントが表示されるので参考にして下さい。
        • $ openmdao docs openfoam_wrapper
      • SLURMというリソースマネージャもインストールしてあり、サブミット用のサンプルスクリプトを含んだケースファイルも同梱してあります(デスクトップ上:DEXCS/template/slurm_damBreak)。コア数が4つのマシンであれば、以下のコマンドを、そのまま利用可能(のはず)です。
        • $ sbatch submit.sh  (ジョブサブミット)
        • $ squeue  (ジョブ確認)
        • $ scancel [jobID] (ジョブ停止)
      • コア数が4でないなどの環境で、バッチジョブがペンディング状態のまま実行出来ない場合は、デスクトップ上、DEXCS/launcherOpen/doc/slurm.pdf を参考に設定ファイル(slurm.conf)を変更して使用して下さい。
      • ジョブサブミット、ジョブ確認は、TreeFoamの十徳ナイフからも起動できます.
      • 上記を含めて、TreeFoamから起動する十徳ナイフのメニューは大幅に変更しました。(http://dexcs.net/ocse2/?p=1836
      • JAVA gnuplot GUI の使用方法
      • TreeFoamの基本的な使い方はTreeFoamのヘルプメニューから、「使い方」を参照して下さい。
    • TreeFoamの実践的な使用方法

DEXCS2014 for OpenFOAM(R)公開版に向けて取組中

表題のプロトタイプ版を第33回オープンCAE勉強会@岐阜(夏合宿)にて試用したところ、取り立ててトラブルも無く、OpenFOAM-2.3.xを始めとする搭載コンポーネントの問題は無さそうとわかりました。そこで、今後の正式公開版に向けての実施項目がほぼ確定したのでここにアナウンスしておきます。

 

DEXCSランチャーの国際化対応

範囲を選択_999(509)

  • DEXCS2013では、日本語版と英語版で起動用ボタンが異なっていましたが、DEXCS2014では普通のソフトと同じように、メニューで切り替え、ソフトを再立ちげした時に反映するように変更しました。

 

メッシュ作成手順は、FreeCAD⇒cfMesh

DEXCSランチャーでの標準手順であった、Blender(+Swiftツール)⇒snappyHexMeshの部分を、FreeCADでモデルを作成して、cfMeshでメッシュ作成する手順に変更します。

範囲を選択_999(510)

  • プロトタイプ版では、cfMesh用設定ファイルの作成に一部手作業が必要でしたが、FreeCADのマクロ機能を使って自動作成できるようにする予定です。夏の合宿での演習テキスト(113ページ)では、まだポンチ図でしたが、現在のところ、上のようなGUI画面までは作成できています。

 

十徳ナイフはそろそろお役ご免

範囲を選択_999(511)

  • TreeFoamのアドオンとして十徳ナイフを残してきましたが、現在では半分ほどの項目はTreeFoamの機能で実現できてしまうので、今回はそれらをメニューから削除してしまいます。メニューの数は極力少なくした方が判りやすいので。
  • 一方、TreeFoamを数年使ってきてはいますが、やはりどうしてもコマンドライン入力が必要な場合も生じることがあり、そういう場合の痒いところに手が届く機能があれば、、、と思っており、まずは
    • Allrun, Allclear

くらいは、一々端末を起動しないで実行できるようにする予定。

 

動画チュートリアル

DEXCSランチャーの手順が変わるので、その部分は全面的な変更になります。それも含めて、このチュートリアル作成が一番手間のかかるところです。

 

その他

これまで通り、無償で公開しますが、広告収入が入る仕組みだとか、スポンサー(募集中)のロゴ入り冠版とかあっても良いのかなぁ、とも思っています。