必要なもの
OpenFORM.org では3つの方法が紹介されています。1. Windows10にインストールできるUbuntu上、2.Windows10で動くunix バーチャル環境上、3. Blue-CFD-core、です。最近は、この手のアプリケーションソフトも多様なベンチで稼働するので、選択時に悩みます。Windows PC に導入するにも上述のようにいろいろ方法がありますが、基本的には unix 環境を構築するみたいです。このUnix環境の構築の手法も Windows10 からは Windows10の付加機能で対応でき、その環境(bash:unixシェル(Ubuntu ; Linux)の中でのインストールも可能になっています。
参考;
Windows しか使ったことのない方へ。linux などのOSでは、一般的にはファイル名等、大文字と小文字は区別されます。linux環境内のコマンドラインでプログラム等を実行する場合は、大文字と小文字を意識してください。
例 ; paraFoam など。
あと、ユーザーマニュアル
英語版 ユーザーマニュアル(sourceforge, Ver.6, 2018)
日本語版 ユーザーマニュアル(一般社団法人 オープンCAE研究会)
Windows Subsystem for Linux あるいは Bash on Ubuntu on Windows のインストール
【手順】
ウインドウズマーク(スタートボタン)を右クリック
「プログラムと機能」を左クリック
開いたウインドウ左側の「Windowsの機能の有効化または無効化」を左クリック
開いたウインドウの「Windows Subsystem for Linux(Beta)」にチェックを入れOKボタンをクリック
変更が適用されます
再起動します
開発者モードを有効化するために、スタートメニュー→左下の歯車(設定)→開いたウインドウの「更新とセキュリティ」→左側下方の「開発者向け」をクリック。
「開発者モード」をチェック、警告に「はい」をクリック。インストールされる。
再び再起動
スタートボタンを右クリックして一覧から「コマンドプロンプト」を開く
コマンドプロンプト内で「bash」と打ち込んで Enter
途中の確認で「y」入力。ユーザー登録とパスワード設定。
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:Userstomna>bash
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
続行するには、"y" を入力してください: y
Windows ストアからダウンロードしています... 46%
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かか ります...
既定の UNIX ユーザー アカウントを作成してください。ユー ザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: yourID
新しい UNIX パスワードを入力してください:*************
新しい UNIX パスワードを再入力してください: *************
passwd: password updated successfully
インストールが正常に終了しました
環境が間もなく開始されます...
ドキュメントを参照できる場所: https://aka.ms/wsldocs
yourID@yourMACHIN:/mnt/c/Users/yourID$
インストール終了後、アップデートをしておきます。これは随時実行してください
sudo apt update
sudo apt upgrade
ホスト名登録ファイルの作成
sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'
この環境で、Linux(ubuntu)用の openFOAM を以下を参考にインストールしてもかまいません。
最新の apt package list を得るために以下のコマンドを打つ
sudo apt-get update
OpenFOAM (4 in the name refers to version 4.1) と paraviewopenfoam50 とが一緒にインストールされます。※パッケージが見つからないと言われます・・・
sudo apt-get -y install openfoam4
この記事ではこの方法はとらずに、以下のパッケージを使用してインストールします。
# ホントにインストール方法はどっちでもかまいません。
blueCFD-Core (非公式版 openFOAM) のインストール
blueCFD-Core は、直接 Windows にインストールできるパッケージのようです。とりあえずインストールして使用するにはあまり問題はありません。ただ、非公式版なので、アップデートが遅れたりする可能性があるかもしれません。でも、とりあえず使うのは気にしなくてよいでしょう。メリットは、bash環境やいろんなツールをまとめて簡単にインストールできることです。パッケージされているツールは、OpenFOAM、ParaView、MSYS2、MS-MPI、Gnuplot、Notebad2 の6種です。フォルダの総容量は800MBほどですのでそれなりの容量のノートパソコンでもインストールできます。
ソースをダウンロード
配布先サイト blueCFD-Core Project から blueCFD-Core-2017-2-win64-setup.exe 等、お好みのバージョンををダウンロードする
ダウンロードが終了したらインストールファイル blueCFD-Core-2017-2-win64-setup.exe を開く(実行する)
注意:
インストールフォルダは、program files ではなく、フォルダ名にスペースを含まないあらたなフォルダを作成して入れる方が無難です
対話形式の指示に従って、Full Instration でインストールしてしまいます。→インストール finish
スタートメニューから “blueCFD-Core terminal” を実行すれば、Msys2でbash が起動します
以上で、openFOAM のインストールが終了します。
お待たせしました、ここからが openFOAM の最初の一歩です
openFOAM は、複数のファイルの大集合体です。それは、インストールしたフォルダをたどっていくとよくわかります。チュートリアルがついていますので、とりあえずこれらを利用すると雰囲気を体感できますが、そのまえに、非常におおざっぱな openFOAM の概要を示します。
terminal を最初に実行する際は、windowsの”管理者として実行”をしておかないと、起動時に permission denied のエラーが表示される可能性があります。一度設定されるとエラーが出なくなります。
openFOAM をインストールしたフォルダの中に 9つほどのフォルダができています。
AddOns : gunuplot や 可視化ポスト処理アプリの paraview, notpad2 が入っています
msys64 :bash 関係が入っているようです。端末ソフト Msys2
OpenFOAM-4.x : OpenFOAM の本体等が入っています。ここの中にある tutorials を利用します
【OpenFOAMでの計算実行手順】
基本的には DOS コンソール上の操作です。 Blue-CFD には Blue-CFD-Core terminal というコンソールがあります。おそらくパス等の環境変数をセットしてくれているので、すんなりと動きます(OpenFORM以外は動いてますが再確認中:2019/04)。caseフォルダを作成する。
自分がこれから数値計算の入力、出力ファイルを置くフォルダを好きなどこかに好きな名前で作る。この作業フォルダの必要なファイルを含む必要最小のフォルダをcaseフォルダと呼ぶようです。
上述のtutorials のフォルダから好きなサンプルを 1. で作成したcaseフォルダにコピーする。
(フォルダ名が長くて)カレントディレクトリィの変更が面倒かもしれないが tutorials を丸ごとコピーしてもかまわない。一般には、チュートリアルのサンプルとしては、 ./tutorials/incompressible/icoFoam/cavity/cavity が使用されます。
カレントディレクトリィをサンプルのフォルダ(caseフォルダ)へ変更(移動)する
(cavityだけコピーした場合は、その cavity がケースフォルダ)
cd d://YourFolder//cavity
cavityのなかには、三つのフォルダがあります。0
constant
systemこの場合は、この三つのフォルダが必要最小単位です。
最初の 0 は、時刻0 の 0 です。なかには p と u というファイルがあります。初期状態の速度と圧力のようです。ほかにも温度の T などがあるようです。
system の中には、○○dict というファイルが二つありますが、これはディクショナリィファイルと呼ばれるようです。MeshModelDict はメッシュモデルに関するもの、controlDictは計算方法に関する記述が入っているようです。計算開始時刻をある時刻を指定して開始することもできます。
残りの二つは、計算手法に関する設定ファイルです。
constant は、今回は動粘度 ν(nu)が定義されているようです。
これらの記述書式は、ネット上でも説明されています。
まず、グリッドデーターを作成する。
OpenFOAM では、オリジナル書式のグリッドモデルファイル形式のようです。同梱されているツールを使うと、stl形式のファイルなどからメッシュモデルが作成されるようです。caseフォルダ内にて blockMesh と入力して Enter をおす(実行)
D:YourFoldercavity> blockmesh
/*---------------------------------------------------------------------------*
| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 5.x |
| \ / A nd | Web: www.OpenFOAM.org |
| \/ M anipulation | |
*---------------------------------------------------------------------------*/
/* Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt *
| Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com |
*---------------------------------------------------------------------------*/
Build : 5.x-963176928289
Exec : blockmesh
Date : Apr 12 2019
Time : 19:32:50
Host : "FSET-PRD01"
PID : 19020
I/O : uncollated
Case : O:/0_PRG/OpenFORM/cavity
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Creating block mesh from
"O:/0_PRG/OpenFORM/cavity/system/blockMeshDict"
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patches
Creating block mesh topology
Check topology
Basic statistics
Number of internal faces : 0
Number of boundary faces : 6
Number of defined boundary faces : 6
Number of undefined boundary faces : 0
Checking patch -> block consistency
Creating block offsets
Creating merge list .
Creating polyMesh from blockMesh
Creating patches
Creating cells
Creating points with scale 0.1
Block 0 cell size :
i : 0.005 .. 0.005
j : 0.005 .. 0.005
k : 0.01 .. 0.01
Writing polyMesh
----------------
Mesh Information
----------------
boundingBox: (0 0 0) (0.1 0.1 0.01)
nPoints: 882
nCells: 400
nFaces: 1640
nInternalFaces: 760
----------------
Patches
----------------
patch 0 (start: 760 size: 20) name: movingWall
patch 1 (start: 780 size: 60) name: fixedWalls
patch 2 (start: 840 size: 800) name: frontAndBack
End
D:YourFoldercavity>
constant/PolyMesh というフォルダに何か生成されています。
ソルバー icoForm を実行する。
この “icoForm” というのがソルバーで、今回の caseフォルダーである cavity の中に納められている各ファイルの内容を自動的に読み込んでその条件に従って計算を行うプログラム実行シェル本体です。icoFoam は、「非定常層流解析ソルバー」です。ほかにもいろいろあります。 tutorialsのフォルダ分類は、ソルバーの種類を反映させた分類になっていたわけです。
D:YourFoldercavity> icoFoam
おもなソルバーの名称と対象問題: 標準ソルバでもかなりの種類があります。ユーザーガイドの3章後半を見れば、大抵のものができそうに思います。
basic : 基本グループ
potentialFoam : ポテンシャル流れソルバ
laplacianFoam ラプラシアン方程式ソルバ/固体の熱伝導などに使用
potentialFoam ポテンシャル流ソルバ{NS方程式コード用の初期場作成にも利用します)
scalarTransportFoam パッシブスカラー用の輸送方程式ソルバ
scalarTransportFoam : スカラー輸送方程式ソルバー
icoFoam : 非定常層流解析ソルバー
incompressible : 非圧縮性流体
icoFoam : 非定常層流解析ソルバ
simpleFoam : 定常乱流解析ソルバー (SIMPLE 法)
pisoFoam : 非定常乱流解析ソルバー (PISO 法)
pimpleFoam : 非定常乱流解析ソルバー (PIMPLE = PISO + SIMPLE 法)
laplacianFoam : 拡散方程式ソルバー
実行すると、端末画面に時間ステップごとの情報が表示されて、どんどん上へ流れていきます。cavity フォルダの中に時刻を表す数字のファイルがたくさんできます。これらが各時間ステップの計算結果です。controlDict の、開始時刻、タイムステップ、データ書きだしステップ、などをいじくって、ファイルの数が増減したり、時間ステップが変わったりする様子を確認してみてください。これでなんとなく、OpenFOAM の使い方やファイルの存在意義がわかったのではないでしょうか。各ファイルの記述、作成方法については、ネットやマニュアルで勉強してみてください。
この結果ファイルを可視化してくれるのが paraView です。bash が計算用フォルダ cavity にいれば(=カレントディレクトリィがcavity ならば)、paraFoam というスクリプトを実行すると自動的に可視化してくれます。三角ボタンを押せばアニメーションになります。が、インストールによってはバグがあって、ファイルやライブラリィが見つからないという致命的エラー(Fatal Error)を出して動きません。paraViewは動きますので、表示ファイルを指定して試してみてください(ところがこれも慣れがいるようです、paraViewについてはまたあらためて。。。)
さて、最後ですが、このOpenFORMは、基本的には2つの要素で構成されているとあります。
ソルバとユーティリティ、
です。これらをまとめてアプリケーションと呼び、実体は数値解析のためのC ++ライブラリです。ソルバは差分方程式の記述部分が含まれ、ユーティリティは初期条件ほかさまざまなデータの操作を受け持ちます。したがって、新しい問題や解法にも対応が可能になっています。計算対象モデルは常に3次元で、2次元流れには境界条件等で対応します。座標系は直交系です。そうです、一般人の物理は今なおハエが支配しています。
以上が、ざくっとした OpenFOAM の導入です。
ゼロから初めて、まずは使い方がわかり、やがてプログラムをいじくることができれば、オープンソースの本来の目的である、新しいソルバー開発と製作で、OpenFOAMに是非、貢献してください。
[02]では、設定ファイルの中身を見てみます。
Blue CFD Core 2017 の BlueCFD-Core terminal を起動した直後の画面、
Setting environment for OpenFOAM 5.x mingw-w64 Double Precision (of5-64), using MSMPI71 – please wait…
Environment is now ready. Notes:
– You can change between installed versions by running: ofmenu
– You can change to other predefined versions by running: ofmenuNew
userID@machiName MINGW64 OpenFOAM-5.x~
>
Setting environment for OpenFOAM 5.x mingw-w64 Double Precision (of5-64), using MSMPI71 – please wait…
Your “mingw_w64” operating system is not supported by the modifications
made to OpenFOAM. For further assistance, please report at:
https://github.com/blueCFD/Core/issues
Environment is now ready. Notes:
– You can change between installed versions by running: ofmenu
– You can change to other predefined versions by running: ofmenuNew
user@MACHINENAME MINGW64 OpenFOAM-5.x ~
$ ofmenuNew
———- Setting up OpenFOAM variables for new build ———-
— Current MPI chosen for parallel operations: MSMPI71
Choose one option for selecting the new build architecture:
1 – OpenFOAM 5.x mingw-w64 Single Precision (of5-64S)
2 – OpenFOAM 5.x mingw-w32 Double Precision (of5-32)
3 – OpenFOAM 5.x mingw-w32 Single Precision (of5-32S)
Choose one of the numbers 1 to 3 (any other for none) then press Enter:
1
Setting environment for OpenFOAM 5.x mingw-w64 Single Precision (of5-64S), using MSMPI71 – please wait…
Environment is now ready. Notes:
– You can change between installed versions by running: ofmenu
– You can change to other predefined versions by running: ofmenuNew
user@MACHINENAME MINGW64 OpenFOAM-5.x ~
$
投稿日時:2017年5月8日 7:18 PM
OpenFORM で計算するのに使用するチュートリアルのキャビティフローにある各種定義ファイルの中身をざっと解説してみます。お役に立てば幸いです。、
systemフォルダにあるBlockMeshDictファイルの内容です。
最初の convert to meter は、ここで指定された数値を m単位 に換算する係数です。スケールの変更が簡単にできるということです。方形領域の頂点の grid の定義のあとメッシュの定義がされています。方形領域の各面を命名するとともに、そのあとは grid ID Number で定義しています。並び順は、境界のパネルは領域内部から外側を見て時計回り(右手則)です。境界の条件定義の empty は2次元領域を計算する際の magic word です^ ^ 奥行きの浅いキャビティ領域がこれで指定されたことがわかります。↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.1;
vertices
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 0.1)
(1 0 0.1)
(1 1 0.1)
(0 1 0.1)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1)
);
edges
(
);
boundary
(
movingWall
{
type wall;
faces
(
(3 7 6 2)
);
}
fixedWalls
{
type wall;
faces
(
(0 4 7 3)
(2 6 5 1)
(1 5 4 0)
);
}
frontAndBack
{
type empty;
faces
(
(0 3 2 1)
(4 5 6 7)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
systemフォルダにあるcomtrolDictファイルの内容です。実行指示ファイルのような中身です。使用するソルバ: 計算コード(モジュール名)と、初期条件ファイルや時間ステップなどの、実際の計算にかかるパラメーターが記述されているのがわかります。ここを修正すれば、継続計算も簡単に実行できそうです。↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.5;
deltaT 0.005;
writeControl timeStep;
writeInterval 20;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //
systemフォルダにあるfvSolutionファイルの内容です。計算方法とそのパラメーターが指定されています。↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.05;
}
pFinal
{
$p;
relTol 0;
}
U
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-05;
relTol 0;
}
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
// ************************************************************************* //
systemフォルダにあるfvSchemesファイルの内容です。計算モジュールが使用するより細かい各計算スキームを指定しているようです。指定内容はデフォゥルトになっています。↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //
constant フォルダの transportPropertiesファイルの中身です。動粘度 nu が定義されています。[]の中は単位の次元です。順に、M, L, Time, Th, mol, A, cd です。最後の4つは本研究室では扱わないでしょう。↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu [0 2 -1 0 0 0 0] 0.01;
// ************************************************************************* //
0 フォルダにある速度と圧力のファイルの内容
V file:control フォルダ内のファイルで定義された境界壁面の名前ごとに速度の定義がされています。[]の中は前述の通り単位の速度の次元です。順に、M, L, Time, Th, mol, A, cd です。上面は一方向一様流、それ以外はすべりなしで速度ゼロです。二次元流れなので側方はemptyです。block mesh dict ファイルとだぶっている理由はまだ調べていません(^^;;↓
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
movingWall
{
type fixedValue;
value uniform (1 0 0);
}
fixedWalls
{
type noSlip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
P file : 速度と同様、圧力がそれぞれ勾配値で定義されています。
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
movingWall
{
type zeroGradient;
}
fixedWalls
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
// ************************************************************************* //
中身を見れば、なんとか手がでそうな気分になる、っと思っていただければラッキーです。
次回は、計算結果をみれれば、と思います。
投稿日時:2019年4月5日 7:47 PM
OpenFORM で計算するために使用するチュートリアルのキャビティフローにあるファイルの中身と関連させて、計算結果表示まで目指してみます。
まずモデルを図示すると以下のようになります。
fff
投稿日時:2019年4月12日 6:23 PM
より具体的に作業をトレースします。
【インストール時のエラー : MS-MPI の重複】
“MS-MPI Installation failed with error code 50. A version of MPI that is same or newer is already installed.”
このエラーが発生すると、インストーラーは中断する。これが問題かも。
インストール時のオプションのMPI(MS-MPI 7.1)インストール(recommended)を解除して再インストール。これでインストーラーを最後まで実行してすべて解決か、と思いましたが、残念。
【ターミナルの配色】
最初に、ターミナルのデフォルト配色は老人には厳しい配色なので、端末内バックグランドで右クリックして、Optionメニューの外見(looks)から、背景色をブラウンかネイビー、前景色を白あたりに設定しておきます。
【フォルダ構成】
検証のため一旦アンインストールして再インストールしました。ホームディレクトリィには以下のようなファイル構成でプログラムが入っています。
user@MACHINENAME MINGW64 OpenFOAM-5.x ~
$ ls -al
合計 45
drwxr-xr-x 1 user なし 0 4月 24 10:52 .
drwxr-xr-x 1 user なし 0 4月 17 21:39 ..
-rw-r–r– 1 user なし 40 4月 23 20:37 .bash_history
-rw-r–r– 1 user なし 76 9月 14 2017 .bash_profile
-rw-r–r– 1 user なし 1237 9月 26 2017 .bashrc
drwxr-xr-x 1 user なし 0 4月 17 22:05 .bashrc.d
drwxr-xr-x 1 user なし 0 4月 17 21:59 .blueCFDCore
-rw-r–r– 1 user なし 33 4月 23 19:25 .blueCFDOrigin
-rw-r–r– 1 user なし 121 4月 23 21:35 .defaultCore
-rw-r–r– 1 user なし 889 9月 14 2017 .inputrc
-rw-r–r– 1 user なし 92 9月 14 2017 .minttyrc
-rw-r–r– 1 user なし 78 9月 14 2017 .profile
-rw-r–r– 1 user なし 32 9月 14 2017 .pythonrc
drwxrwx— 1 Administrators なし 0 4月 17 22:05 AddOns
drwxrwx— 1 Administrators なし 0 4月 23 19:47 blueCFD
-rw-r–r– 1 user なし 3108 10月 13 2017 changedefmpi.bat
-rw-r–r– 1 user なし 186 4月 23 19:43 defaultmpi.sh
-rw-r–r– 1 user なし 1637 9月 14 2017 mountBlueCFD
-rw-r–r– 1 user なし 178 9月 14 2017 README.TXT
-rw-r–r– 1 user なし 9617 9月 14 2017 sourceOF
【作業用フォルダの作成とコピー】
チュートリアルを 作業ディレクトリィ “MyOenFOAM” を作成、そこにコピーしてから作業開始します。大文字小文字とOpenFORM と打ち間違わないようにして。。。^^;
なお、$HOME など環境変数も利用できますので適宜利用。
$ mkdir MyOenFOAM ←チュートリアルの練習用の作業フォルダ作成
$ cd MyOpenFOAM ←作成フォルダに移動
$ mkdir sampleCAVITY ← さらに cavity のコピーを置くフォルダ作成$ cd /home//ofuser/blueCFD/OpenFOAM-5.x/tutorials/incompressible/icoFoam/cavity/cavity ← チュートリアルのフォルダ内に移動
$ cp -R * /home/ofuser/MyOpenFOAM/sampleCAVITY ←その中のファイルを再帰的に全部コピー
$ cd /home/ofuser/MyOpenFOAM/sampleCAVITY ←作業フォルダーに移動
$ ls -al ← コピーされているか表示して確認
【メッシュ作成 — blockMesh の実行】[01]
blockMesh を実行して見ると、プログラムが見つからないといわれる。。。。blockMesh.exe を見つけて実行すると今度はライブラリがないと言われます。
$ /home/ofuser/blueCFD/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/bin/blockMesh.exe
C:/AP/Develop/BLUECF~1/BLUECF~1/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/bin/blockMesh.exe: error while loading shared libraries: libPstream.dll: cannot open shared object file: No such file or directory
これはパスの問題なのでしょうか、というか、Windows用の実行ファイルを実行してしまっていそうです。時間を見ながら調査中です。ちなみに在処は以下の通り。[02へ]
$ du -a | grep libPstream.dll
28 ./blueCFD/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/lib/dummy/libPstream.dll
60 ./blueCFD/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/lib/MS-MPI-7.1/libPstream.dll
【paraFOAM (paraView) の実行】[01]
さらに paraView の実行についても、エラーが出て、これは作業手順ファイルを修正して再コンパイルするとよいらしいのですが、Windows ユーザー的には面倒です。
$ paraFOAM
FATAL ERROR: ParaView reader module libraries do not exist
Please build the reader module before continuing:
cd $FOAM_UTILITIES/postProcessing/graphics/PVReaders
./Allwclean
./Allwmake
$ cd $FOAM_UTILITIES/postProcessing/graphics/PVReaders
$ ALLwclean
wclean libso vtkPVblockMesh
wclean libso vtkPVFoam
$ Allwmake -all
Allwmake applications/utilities/postProcessing/graphics/PVReaders
Default: don’t build plugins for ParaView on Windows.
うーん、一番最初の頃に動いたのは全くのビギナーズラックのようです。 >_<
追記1
【メッシュ作成 — blockMesh の実行】[02]
さて、blueCFD の,5.6.0 Window 64bits用 をインストールして再起動後、再度端末を起動すると、以下のように、blockMesh, icoFORM はすんなりと動きました。
$ pwd
/home/ofuser
$ cd MyOpenFOAM
$ cd sampleCAVITY
$ blockMesh
/*—————————————————————————*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*—————————————————————————*/
/* Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt *\
| Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com |
\*—————————————————————————*/
Build : 5.x-963176928289
Exec : C:/AP/Develop/BLUECF~1/BLUECF~1/OpenFOAM-5.x/platforms/mingw_w64GccDPInt32Opt/bin/blockMesh.exe
Date : Apr 24 2019
Time : 18:34:46
Host : “MACHINENAME”
PID : 14340
I/O : uncollated
Case : C:/AP/…../MyOpenFOAM/sampleCAVITY
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Creating block mesh from
“C:/AP/……/MyOpenFOAM/sampleCAVITY/system/blockMeshDict”
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patches
Creating block mesh topology
Check topology
Basic statistics
Number of internal faces : 0
Number of boundary faces : 6
Number of defined boundary faces : 6
Number of undefined boundary faces : 0
Checking patch -> block consistency
Creating block offsets
Creating merge list .
Creating polyMesh from blockMesh
Creating patches
Creating cells
Creating points with scale 0.1
Block 0 cell size :
i : 0.005 .. 0.005
j : 0.005 .. 0.005
k : 0.01 .. 0.01
Writing polyMesh
—————-
Mesh Information
—————-
boundingBox: (0 0 0) (0.1 0.1 0.01)
nPoints: 882
nCells: 400
nFaces: 1640
nInternalFaces: 760
—————-
Patches
—————-
patch 0 (start: 760 size: 20) name: movingWall
patch 1 (start: 780 size: 60) name: fixedWalls
patch 2 (start: 840 size: 800) name: frontAndBack
End
$ icoFOAM
/*—————————————————————————*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*—————————————————————————*/
/* Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt *\
| Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com |
\*—————————————————————————*/
Build : 5.x-963176928289
Exec : C:/AP/………../mingw_w64GccDPInt32Opt/bin/icoFOAM.exe
Date : Apr 24 2019
Time : 18:35:49
Host : “MACHINENAME”
PID : 15724
I/O : uncollated
Case : C:/AP/…………./MyOpenFOAM/sampleCAVITY
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create mesh for time = 0
PISO: Operating solver in PISO mode
Reading transportProperties
Reading field p
Reading field U
Reading/calculating face flux field phi
Starting time loop
Time = 0.005
Courant Number mean: 0 max: 0
smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 8.90511e-006, No Iterations 19
smoothSolver: Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations 0
DICPCG: Solving for p, Initial residual = 1, Final residual = 0.0492854, No Iterations 12
time step continuity errors : sum local = 0.000466513, global = -1.79995e-019, cumulative = -1.79995e-019
DICPCG: Solving for p, Initial residual = 0.590864, Final residual = 2.65225e-007, No Iterations 35
time step continuity errors : sum local = 2.74685e-009, global = -2.6445e-019, cumulative = -4.44444e-019
ExecutionTime = 0.531 s ClockTime = 1 s
Time = 0.01
:
:
Time = 0.5
Courant Number mean: 0.222158 max: 0.852134
smoothSolver: Solving for Ux, Initial residual = 2.3091e-007, Final residual = 2.3091e-007, No Iterations 0
smoothSolver: Solving for Uy, Initial residual = 5.0684e-007, Final residual = 5.0684e-007, No Iterations 0
DICPCG: Solving for p, Initial residual = 8.63844e-007, Final residual = 8.63844e-007, No Iterations 0
time step continuity errors : sum local = 8.8828e-009, global = 4.94571e-019, cumulative = 1.10417e-017
DICPCG: Solving for p, Initial residual = 9.59103e-007, Final residual = 9.59103e-007, No Iterations 0
time step continuity errors : sum local = 9.66354e-009, global = 1.13175e-018, cumulative = 1.21735e-017
ExecutionTime = 1.629 s ClockTime = 2 s
End
以上のように実行できました。ただ、blockMesh の結果や計算結果の可視化のための paraFORM のエラーは、相変わらずです。問題がひとつに絞れました。
といいつつも、端末を再起動するとパスの設定が消えてしまうようです。blockMesh も icoFOAM も元通りです。仕様がビギナーズラック仕様です。.bashrc ではなく、ほかのファイルを読み込んで設定するところが、起動時にトラブっているようです。ま、もともとファイルが見つからないのはそれが原因しかなさそうですが、設定ファイルがどこにあるのか探して当然ながら常に実行できるようにしないといけないようです。しかし、、、^^;;[03へ]
追記2
【メッシュ作成 — blockMesh の実行】[03]
環境変数の設定は、どこから実行しているのかは現時点ではわかりませんでした。.bashrc も .bash_profile(= .profile と中身は同じ)を実行してもダメでした。 が、以下のようなメッセージがあるので、その指示通りにすれば、環境は復活できます。
:
:
Environment is now ready. Notes:
– You can change between installed versions by running: ofmenu
– You can change to other predefined versions by running: ofmenuNew
WARNING: No environment was activated.
You can start any of the installed environments by running: ofmenu
You can start any of the other predefined environments by running: ofmenuNew
$
$ ofmenu
————– Setting up OpenFOAM variables ————–
— Current MPI chosen for parallel operations: MSMPI71
Choose one option for selecting the build architecture:
1 – OpenFOAM 5.x mingw-w64 Double Precision (of5-64)
Choose one of the numbers 1 to 1 (any other for none) then press Enter:
1
Setting environment for OpenFOAM 5.x mingw-w64 Double Precision (of5-64), using MSMPI71 – please wait…
これでその後はうまくいきました。
# 再度再インストールしたら paraFoam がうまくいかない・・・TqT
相変わらず、paraFOAM の起動がうまくいかないですが、blueCFDインストール時にMPI が既にインストールされているというメッセージウインドウのあと、OK を選択するとそれ以降のインストールを実行していないような挙動が見られます。ここが少し気になります。
環境変数にある MPI_HOME の内容を見ると
/home/ofuser/blueCFD/ThirdParty-5.x/MS-MPI-7.1…
となっていますが、そもそもこのフォルダは存在しません。これが関係しているようです、、、よね。でも、MPIはまだ先の話なのに。仮想環境は Windows ファイルシステムと関係ないようで、うまく渡り歩いているようで、初心者には混乱の極みです。
paraView の問題が、画面を見るとグラフィクスの部分が失敗しているようなので、OpenGL の対応を調べる必要があるようです。
<– 結局は、オンボードのグラフィックが OpenGL3 未対応、ということのようでした。ようやくグラボを入手して実行すると、とりあえずはいけそうです。
blueCFD のサイトでも、環境によっては OpenGL 2 のバージョンに戻す方法が以下のように記載されています。
ParaViewの他のバージョンをインストールまたは使用する方法
理由
ParaViewの他のバージョンを使用したい理由は主に2つあります。
起動した直後にParaViewがクラッシュした場合は、お使いのマシンのGPU /グラフィックカードがOpenGL 2をサポートしていないか、そのGPU用に現在インストールされているドライバがOpenGL 2を正しくサポートしていない可能性があります。
このシナリオでは、OpenGL 1.xをサポートしたWindows用の最後のビルド済みバージョンであるParaView 4.4.0をインストールするのが最善です。
blueCFD-Coreで提供されるParaViewのバージョンが最新バージョンではない場合
解決方法
少なくとも2つの解決策があります。
BlueCFD-CoreでParaViewのインストールを置き換える
ParaViewの既存のインストールを使用する
注:どちらの方法でも、blueCFD-Coreインストーラーを介してParaViewをインストールしておく必要があります。これにより、環境が自動的にblueCFD-Core端末にロードされ、ParaViewを端末のコマンド行から起動できるようになります。
解決策1 – blueCFD-CoreのParaViewのインストールを置き換える
blueCFD-Coreターミナルを起動します。
端末で次のコマンドを実行します。
cd ~/AddOns/
管理者権限が必要になる可能性があるため、次の手順を対話的に実行する必要があるため、Windowsエクスプローラを起動します。
explorer .
コマンドは次のとおりですexplorer 。space dot
Windowsエクスプローラが開き、AddOns フォルダの内容が表示されます。
フォルダの内容を変更するか削除してくださいParaView。ParaViewParaViewインストーラーで使用できるように、新しいフォルダーを作成することを忘れないでください。
これでParaViewフォルダの中に入り、アドレスバーからフルパスをコピーしてParaViewのインストール中にそれを使うことができます。下記はWindows 10からのアドレスバーです。パスの右側をクリックして、以下に示す編集モードになるようにしてください。
パスのコピー元の例
以下の図に示すように、使用したいバージョンのParaViewインストーラを実行し、正しいパスが使用されていることを確認してください。
インストールパスを変更する場所の例
ParaViewがインストールされたら、blueCFD-Coreターミナルから使用する準備ができているはずです。
解決策2 – ParaViewの既存のインストールを使用する
注:この解決策を使用することの欠点は、ファイル拡張子.foamが自動的にWindowsに登録されてこのバージョンのParaViewで開くことができないことです。
例として、ParaView 4.4がフォルダにインストールされている場合を使用します C:\Program Files\ParaView 4.4.0。
blueCFD-Coreターミナルを起動します。
端末で次のコマンドを実行します。
nano ~/.bashrc.d/paraview.sh
Notepad2のウィンドウでファイルを開くはずです。
42行目に移動して、この行を変更します。
export AddOns_ParaView_DIR=$HOME/AddOns/ParaView
この行に:
export AddOns_ParaView_DIR=”/c/Program Files/ParaView 4.4.0″
ファイル(メニューFile –> Save)を保存してNotepad2ウィンドウを閉じます。
キーの組み合わせAlt+F2を使用して新しい端末を起動してください。エラーメッセージがない場合は、古い端末を閉じることができます。
今、コマンドたびのparaviewかがparaFoam実行され、あるParaView 4.4常に開く必要があります。
以前動いた ノートパソコン (ASUS ZenBook intel CORE )たしかに sundybridge ではあるけど OpenGL 3.1 に対応しているはず。。。 なんですが。でもまぁ、環境がうまくいっていない原因はインストーラーにもありそうで、調べていると、blueCAPEオフィシャルサイトの以下の記述にありなすた。これが原因なのでしょうか。
「たとえば、Intel製の最新のドライバ がインストールされるまで、CPU i5-2410mを搭載し、Windows 7 x64を実行しているラップトップは、ParaView 5.1.2を正しく実行していないと報告 されています。ただし、たとえば、Intel CPU i3-350mはOpenGL 2.1をサポートしていますが、ParaViewが正しく機能するために必要なすべての機能を提供するわけではありません。したがって、ParaView 5.1.2はこの世代のCPU / GPUでは正しく動作しない可能性があります。」
近日中に、グラフィックボードを買い足すか、久しぶりに一つ、パソコンを組むしかなさそうです。
$ paraView
ERROR: In C:\bbd\5105004d\source-paraview\VTK\Rendering\OpenGL2\vtkWin32OpenGLRenderWindow.cxx, line 663
vtkWin32OpenGLRenderWindow (000002CE4DBC2010): We have determined that your graphics system is an Intel SandyBridge based system. These systems only partially support VTK. If you encounter any issues please make sure your graphics drivers from Intel are up to date.
継続して調査中。
投稿日時:2019年4月24日 11:13 AM
いろいろ周辺でトラブルに見舞われ精神的に追い込まれますが。。。。
もうそんな悪環境で20年近く過ごしているので、
世間の問題視とは隔絶された閉鎖間強の中で芯径を鈍感にして地道にやって行くのみです。
というわけで、
現代風のノートパソコンも入手できて、OpenFOAMも問題なくインストールされるのはもちろん、グラフィック環境の問題の煩わしさからも解放され、ParaVIEW も何ら問題なく起動しました。
今回以降のおもな使用機種:HP
Reboot!
ここでは、時間の合い間に、
できるだけ手っ取り早く、OpenFOAMを動かし、まずは簡単なソルバーで計算を実行し、OpennFOAMの仕組みを知ること。
ソルバーについて、ポテンシャルから粘性流れへの拡張のためソルバーを変更し結果をチェックし、直感的理解をすること。作業効率を確認すること。
モデルについて、外部流れを中心として、静止円柱、静止角柱、回転円柱、回転物体、について、すなわち、回転メッシュの二次元的結果を得て妥当性を体感すること。
モデルについて、二次元から、高さ方向を延伸しエッジをもうけて、三次元効果を確認すること。
最終的に、独自のタービン間割れの計算を行い、風洞実験結果と比較すること。
これらをシナリオにして、その中で、ちまちまと作業をしながら、遅々として進まない状況で進めていきます。
チマチマに惑わされて現在地を見失わないためと、チマチマをぶっ飛んざっくりした結果を得るための屁理屈のための、グローバルドライビングマップです。
では続きは後ほど。... ^o^;;
投稿日時:2020年3月12日 11:16 AM