OpenFOAM-v2206のAllrunがほぼ完了した。総ケース数431、使用ディスク容量:約900GB、総計算時間:約50日(Linuxの場合)であった。
現時点で、データベース化に際して一部の計算をやり直し中であるが、全自動化に向け次バージョンでやり直し作業を極力しなくて済むよう、実行前後の作業要点を取り纏めておくこととした。
なお、Linux(ubuntu)マシンでは全自動化に向け大凡見通しがついているが、Macではv2106では問題無かった箇所でエラーになったなど、やってみてエラー対処した項目が多くあり、今後もバージョンが変わった時の対応については見通し困難である。
Linuxの場合
基本的に、先の記事に記した方法で、ほぼログ解析まで問題なく実行できた。残された手作業項目と、実行エラーしたケースについて、簡単に取り纏めておく。
- Allrun実行前
- チュートリアルリスト作成
- プロセッサ数が不足するケースでのdecomposeParDict変更
- AllTest実行し、ERRORケース確認
- ログ解析スクリプト実行前
- incompressible/pimpleFoam?laminar/cylinder2D ケースの、log.blockMesh.main をlog.blockMesh に変更
- ログ解析スクリプト実行後
- ケース名変更
- combustion/XiFoam/RAS⇒combustion/XiFoam/RAS/moriyoshiHomogeneous
- compressible/sonicLiquidFoam⇒compressible/sonicLiquidFoam/decompositionTank
- ディスクスペースの重複カウント修正
- compressible/rhoPimpleFoam/laminar/helmholtzResonance
- ケース名変更
foamyHexMeshは、OpenFOAMのバージョンによって、うまく動いたり動かなかったりしている。v2206では、以下のケースでエラー終了していた。
- mesh/foamyHexMesh/flange
- mesh/foamyHexMesh/mixerVessel
- mesh/foamyHexMesh/simpleShapes
MacM1の場合
そもそもMacM1でOpenFOAMを動かすのに何かとノウハウが必要であったが、v2206においては、Linuxの場合の手作業項目に加えて、以下多くの手戻り作業が必要であり、エラーケースも多かった。
但し、ビルドの問題によるやり直しは、Allrun実行前のAllTestの実行ログをきちんと調べておれば対処できていたはずであった。
applications/utilities/surface/ 以下のコマンドがビルドされていなかった。buildディレクトリを見ると、一番最初の「surfaceAdd」しかビルドされていなかった。その他のツールがビルドされなかった原因は不明であるが、とりあえずAllrunチュートリアルの中で使用している以下のツールについては、手動でビルドして、該当チュートリアル(snappyHexMeshを使用するほとんどのケース)をやり直した。
- surfaceFeatureExtract
- surfaceRefineRedGreen
- surfaceBooleanFeatures
- surfaceOrient
- surfaceTransformPoints
但し、surfaceBooleanFeatures については、ビルドには成功したものの、実行時に以下のリンクエラー
dyld[4141]: symbol not found in flat namespace (__ZN4Foam16PolyhedronReaderC1ERKNS_10triSurfaceERN4CGAL12Polyhedron_3INS4_5EpeckE8My_itemsNS4_18HalfedgeDS_defaultENSt3__19allocatorIiEEEE)
にて、計算できなかった(以下の2ケース)が、
- mesh/foamyHexMesh/mixerVesselAMI
- mesh/foamyHexMesh/simpleShapes
これらのケースは、このエラーが解消できたとしても、foamyHexMesh そのものがうまくいかない可能性が大きい(Linuxマシンでも計算できていない)ので、これ以上の追求は断念した。
reconstructParを実行途中でエラー終了するケースがいくつか存在した。
- multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent
- multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine
- multiphase/interFoam/laminar/damBreakPermeable
- multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection
エラーメッセージは、以下のようなものである。
Time = 0.04
Reconstructing FV fields
Reconstructing volScalarFields
alpha.air
alpha.mercury
alpha.oil–> FOAM FATAL IO ERROR: (openfoam-2206)
Bad token – could not get scalar valuefile: processor2/0.04/alpha.oil at line 8090.
当該ファイルを調べたところ、値が「1.5598e-314」となっていた。e-314 と、あまりに小さな値を解釈できないようだ。ちなみにこの部分、Linuxマシンでは、「0」と出力されており、問題なくreconstruction できていた。
外部ソルバーと連携して計算するケースにおいて、実行に失敗している。
- heatTransfer/chtMultiRegionFoam/externalCoupledHeater
- heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater
- compressible/rhoPimpleFoam/RAS/externalCoupledSquareBendLiq
[0] –> FOAM FATAL IO ERROR: (openfoam-2206)
[0] Trying to read data for processor 6 row 0. Does your file have as many rows as there are patch faces (1600) ?
[0]
[0] file: comms/coupleGroup/T.in at line 2.
- basic/laplacianFoam/multiWorld1
- basic/laplacianFoam/multiWorld2
–> FOAM FATAL ERROR: (openfoam-2206)
The dummy Pstream library cannot be used in parallel mode
- compressible/rhoCentralFoam/biconic25-55Run35
–> FOAM FATAL IO ERROR: (openfoam-2206)
patch type ‘patch’ not constraint type ‘wedge’
for patch wedge1 of field p in file “/Volumes/Drive1/run/compressible/rhoCentralFoam/biconic25-55Run35/0/p”file: 0/p.boundaryField.wedge1 at line 32431.
- heatTransfer/chtMultiRegionFoam/solarBeamWithTrees
> –FOAM FATAL ERROR: (openfoam-2206)
Failed to compile regular expression ‘(U|h|e|k|epsilon|R|)’
An empty regex is not allowed in the POSIX grammar.:
今後
- データベース化(近日中に実施予定)
- OpenFOAM v10 については、Linuxマシンで、実行前のAllTestにおいてエラーの無い事も確認し、Allrun本番を開始した(9/15)。
- 同上、MacM1は当面見送り予定(新たなトラブルが予想されるのと、MacM1で別の用途がある為)。
ピンバック: Allrun on M1 Mac – オープンCAEコンサルタントOCSE^2
ピンバック: OpenFOAM-v2212 – E.Mogura's OpenFOAM®
ピンバック: OpenFOAM-v2306 – E.Mogura's OpenFOAM®
ピンバック: OpenFOAM-v2312 – E.Mogura's OpenFOAM®
ピンバック: OpenFOAM-v2406 – E.Mogura's OpenFOAM®