OpenFOAM-v2512

OpenFOAM-v2512のAllrunの結果を公開した。総ケース数496(492)、使用ディスク容量:1050GB(約1TB)、総計算時間:約20.5日(19日)であった。かっこ()内数字はv2506のもの。

計算開始:2026年1月6日 / 計算終了:2026年3月21日 (今回は業務の都合上、中断あり)

Table of Contents

ケースサマリー

基本的に、先の記事に記した方法で、ほぼログ解析まで問題なく実行できた。実行エラーしたケース、残された手作業項目等についても、簡単に取り纏めておく。

また今回より、ケースファイルそのものの実質的な内容変化について、KDiff3で調べた結果についても記しておく。

KDiff3によるケース比較サマリー図

 

左が2512 / 右が2506

(緑は同一、赤が変化あり)

以下の詳細図中、更新されたケースは、その更新内容によって、以下5つのパターンに分類し、ケース名の後に(*n)として注記しておいた。

  1. 新規追加された
  2. Fa(Finite-area)関連更新に伴う変更
  3. AMI関連更新に伴う変更
  4. Runfunctions更新に伴うスクリプト変更
  5. バグフィックス?
  6. その他
カテゴリー(basic)詳細

2DImplicitCyclic(*4)

scalarTransportFoam下の2つのケースが別物としてカウントされるようになったということ。

obliqueAirJet(*2)

hotRoomWithThermalShell.multi-area(*1)

その他の更新ケースは(*4)

 

  • pimpleFoam詳細

mixerVesselAMI2D(*3)

axialTurbine_rotating_oneBlade(*3)

propeller1(*5)

  • simpleFoam詳細

airFoil2D(*6)

pitzDaily_fused(*6)

squareBend(*6)

drippingChair(*2)

windShield(*1)

column(*5)

TJunctionSwitchin_createPatch(*5)

rotorDik_inclined(*1)

  • heatTransfer/buoyantPimpleFoam/hotRoomWithThermalShell.multi-area
  • lagrangian/kinematicParcelFoam/windshield
  • mesh/moveDynamicMesh/rotorDisk_inclined

これらのケースにはAllrunは含まれないので、普通にtutorialsケーストップレベルのAllrunを実行すると単体実行されてしまう。しかし、decomposedParDictが同梱されているので、foamRunTutorial コマンドで実行すると並列計算されることになり、本来は並列計算を想定したケースと考えた方が良さそうである。

そこでこれらのケースには並列計算用のAllrunを同梱して実施している。

上記ケースは、decomposeParDict で16が指定されているが、同梱のAllrunでは単体計算することになる。一方、Allrun-parallelも同梱されており、こちらを使えば並列計算となり、1時間以上の短縮は見込まれる。

ログファイル(testLoopReport, logs)中に”ERROR”の出力があったもの

“ERROR”出力は無かったが、計算が発散終了していたもの(v2506以前でも同様)

(注1)Allrunでは正常に計算できていた(ERRORはAllTest)

(注2)ERRORが出ること自体は問題無い

  • 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
    • ディスクスペースの重複カウント修正
      • IO/fileHandler
      • compressible/rhoPimpleFoam/laminar/helmholtzResonance
    • 再計算(原因不明だが、メッシュデータが消失していた為)
      • compressible/rhoPorousSimpleFoam/angledDuct/explicit
      • compressible/rhoPorousSimpleFoam/angledDuct/implicit
      • incompressible/porousSimpleFoam/angledDuct/explicit
      • incompressible/porousSimpleFoam/angledDuct/implicit
      • incompressible/porousSimpleFoam/straightDuctImplicit

データベースのグラフ化例

別記事で記した通り、上記データベース化されたデータはバックボーン(phpMyAdmin)で動的にグラフ化できるようになっているが、現在のところ閲覧者が動的にグラフを作成する仕組みまでは出来ていない。HP管理者が、本結果(OpenFOAM-v2512)を中心に様々な観点で作成したグラフをいくつか紹介しておく。

チュートリアル数の推移

使用したSQL構文

使用したSQL構文

使用したSQL構文

 

使用したSQL構文

使用したSQL構文

v2412のデータは、v2412のまとめ記事のデータと異なっているのは、一部のlagrangianのケースで、単体計算していたのを並列計算でやり直している

使用したSQL構文

 

使用したSQL構文

使用したSQL構文

上図で、変化のなかったライン(x1)から大きく乖離したケースについて番号付きの角矢印記号を付しておいた。以下の項目中の行頭の数字はその番号に合わせてある。またケース名の後ろに(*)を付したケースは計算結果の違いがほとんど無いのに拘らず計算速度が低下したものである。

  1. IO/cavity_parProfiling
    • v2506ではエラー
  2. IO/fileHandler
  3. basic/potentialFoam/pitzDaily
    • 出力変数が減った
  4. combustion/fireFoam/LES/compartmentFire (*)
  5. combustion/fireFoam/LES/oppositeBurningPanels (*)
  6. combustion/PDRFoam/flamePropagationWithObstacles
    • 出力形式が異なる(.gz)
  7. compressible/acousticFoam/obliqueAirJet (*)
  8. compressible/rhoSimpleFoam/squareBendLiq (*)
  9. heatTransfer/buoyantSimpleFoam/comfortHotRoom (*)
  10. heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater
  11. incompressible/adjointOptimisationFoam/shapeOptimisation/motorBike
    • Np=16(v2512) / Np=20(v2506)
  12. incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/levelSet/R_20x_NB_01
    •  下図参照
  13. incompressible/overPimpleDyMFoam/twoSimpleRotors
  14. incompressible/overSimpleFoam/aeroFoil
    • メッシュが異なっている
  15. incompressible/pimpleFoam/LES/decayIsoTurb (*)
  16. incompressible/pimpleFoam/LES/NACA4412
    •  実行時プロセッサ数の違い(v2506まではNp=1)
  17. incompressible/pimpleFoam/LES/periodicPlaneChannel (*)
  18. incompressible/pimpleFoam/LES/planeChannel (*)
  19. incompressible/pimpleFoam/LES/surfaceMountedCube (*)
  20. incompressible/pimpleFoam/LES/vortexShed (*)
  21. incompressible/pimpleFoam/RAS/oscillatingInletACMI2D
  22. incompressible/pimpleFoam/RAS/propeller1
    •  v2506ではreconstructionでエラーしていた
  23. incompressible/pimpleFoam/RAS/wingMotion
  24. incompressible/pisoFoam/LES/motorBike (*)
  25. incompressible/simpleFoam/airFoil2D
    • 収束ステップ数が異なる(短くなった)
  26. incompressible/simpleFoam/motorBike (*)
  27. incompressible/simpleFoam/turbulentFlatPlate (*)
  28. lagrangian/icoUncoupledKinematicParcelFoam/hopper
    • 計算結果が途中からおかしくなっていた。しかし、再計算したら、v2506と同等になった。
  29. lagrangian/kinematicParcelFoam/drippingChair
    • 下図参照
  30. lagrangian/kinematicParcelFoam/pitzDailyWithSprinklers
    • 下図参照
  31. lagrangian/MPPICDyMFoam/column
    • バグフィックス?(controlDict中のsolver指定変更)
  32. lagrangian/MPPICFoam/cyclone (*)
  33. lagrangian/MPPICFoam/injectionChannel(*)
  34. lagrangian/reactingParcelFoam/airRecirculationRoom (*)
  35. mesh/foamyHexMesh/flange
    • どちらもエラーで、ステップ数が異なっている
  36. mesh/foamyHexMesh/simpleShapes
    • v2512ではエラー
  37. multiphase/cavitatingFoam/LES/throttle3D (*)
  38. multiphase/compressibleInterFoam/laminar/depthCharge3D (*)
  39. multiphase/compressibleInterIsoFoam/laminar/depthCharge3D (*)
  40. multiphase/icoReactingMultiphaseInterFoam/poolEvaporation (*)
  41. multiphase/interFoam/laminar/oscillatingBox (*)
  42. multiphase/interFoam/laminar/vofToLagrangian (*)
  43. multiphase/interFoam/laminar/waves/irregularMultiDirection (*)
  44. multiphase/interFoam/laminar/waves/streamFunction (*)
  45. multiphase/interFoam/RAS/DTCHull (*)
  46. multiphase/interFoam/RAS/DTCHullMoving (*)
  47. multiphase/interFoam/RAS/mixerVesselAMI (*)
  48. multiphase/overInterDyMFoam/floatingBody
  49. multiphase/overInterDyMFoam/rigidBodyHull (*)
  50. multiphase/overInterDyMFoam/simpleRotor
  51. multiphase/reactingMultiphaseEulerFoam/laminar mixerVessel2D
    • ステップ数が異なっている
  52. verificationAndValidation/atmosphericModels/atmDownstreamDevelopment (*)
  53. verificationAndValidation/atmosphericModels/atmFlatTerrain (*)
12. R_20x_NB_01
29. drippingChair
30. pitzDailyWithSprinklers

気付いた点

計算時間が長くなった?

挙動が大きく変化したケース53ケース中、計算結果の変化は無いのに拘らず計算速度が低下したケースが半数以上と多いのが目に付いた。この中にはLES系の長時間ものがあって、全計算時間で見ても明らかに計算時間が増えた。しかし原因として断定できないが、計算サーバーのCPUの問題だと考えている。経験上、現在の計算サーバーは高負荷計算において、性能が安定しない事が多いので。

lagrangian

計算結果そのものが変化したケースが目立った。

補足(SQL文、備忘録)

SQL-1

				
					select `ver_name` version,
 count(*) postcount,
 sum(`clockTime`)/3600 clockHr,
case when exe_system = 4 then 0.5* sum(`diskUsage`)/1000000
else  sum(`diskUsage`)/1000000 
end as du,
 sum(`clockTime`)/3600 ,
`name` exeSys,
`release_date`
 from `wp_of_tutorials`
JOIN wp_of_ver ON wp_of_tutorials.of_ver = wp_of_ver.id
JOIN wp_of_exe_system ON wp_of_tutorials.exe_system=wp_of_exe_system.id
group by `exe_system`, `of_ver`
order by `release_date`
				
			

SQL-4

				
					select `ver_name` version,
 category,
 count(*) postcount,
 sum(`diskUsage`)/1000,
 sum(`clockTime`)/3600 ,
`name` exeSys,
`release_date`,
case when exe_system = 4 then 0.5* sum(`diskUsage`)/1000000
else  sum(`diskUsage`)/1000000
end as du
 from `wp_of_tutorials`
 JOIN wp_of_ver ON wp_of_tutorials.of_ver = wp_of_ver.id
JOIN wp_of_exe_system ON wp_of_tutorials.exe_system=wp_of_exe_system.id
where wp_of_ver.id in (34, 35)
group by `exe_system`, `of_ver` ,`category`
order by `release_date`
				
			

SQL-5

				
					DROP TABLE IF EXISTS of_temp;
create table of_temp as

with old_data 
as( select category as o_category, solver as o_solver, model as o_model, caseName as o_caseName,diskUsage as o_diskUsage ,exeTime as o_exeTime ,clockTime as o_clockTime from `wp_of_tutorials` where of_ver in (34) and exe_system in (8))

select  new.category, new.solver, new.model, new.caseName, new.diskUsage, old.o_diskUsage, new.exeTime, old.o_exeTime , new.clockTime, old.o_clockTime 

from 
 wp_of_tutorials as new 
 inner join old_data old
  on new.category = old.o_category 
  and new.solver = old.o_solver 
  and new.model = old.o_model 
  and new.caseName = old.o_caseName 
where new.of_ver in (35)
order by new.category, new.solver, new.model, new.caseName 
;
select category, solver, model, caseName,  diskUsage/1000, o_diskUsage/1000, exeTime, o_exeTime , clockTime, o_clockTime from of_temp
where clockTime > 0;
				
			

SQL-6

				
					DROP TABLE IF EXISTS of_temp;
create table of_temp as

with old_data 
as( select category as o_category, solver as o_solver, model as o_model, caseName as o_caseName,diskUsage as o_diskUsage ,exeTime as o_exeTime ,clockTime as o_clockTime from `wp_of_tutorials` where of_ver in (34))

select  new.category, new.solver, new.model, new.caseName, new.diskUsage, old.o_diskUsage, new.exeTime, old.o_exeTime , new.clockTime, old.o_clockTime 

from 
 wp_of_tutorials as new 
 inner join old_data old
  on new.category = old.o_category 
  and new.solver = old.o_solver 
  and new.model = old.o_model 
  and new.caseName = old.o_caseName 
where new.of_ver in (35)
order by new.category, new.solver, new.model, new.caseName 
;
select category, solver, model, caseName,  diskUsage/1000, o_diskUsage/1000, exeTime, o_exeTime , clockTime, o_clockTime from of_temp
where diskUsage > 0;
				
			
Facebook
X
LinkedIn

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

上部へスクロール