OpenFOAM-v2312のAllrunの結果を公開した。総ケース数476(448)、使用ディスク容量:1016GB(約1TB)、総計算時間:約35日(32日)であった。かっこ()内数字はv2306のもの。
今回は、計算が終了した即日、残された手作業項目も済ませ、データベース化、グラフ化も完了し、公開にこぎつけた。
基本的に、先の記事に記した方法で、ほぼログ解析まで問題なく実行できた。残された手作業項目もOpenFOAM-v2206(Linuxの場合)と同じであった。その他、実行エラーしたケース等についても、簡単に取り纏めておく。
- IO/fileHandler_dynamicCode
- basic/laplacianFoam/twoBlocks-processorAgglom
- incompressible/adjointOptimisationFoam/shapeOptimisation/naca0012/laminar/multipleConstraints
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/levelSet/R_05x_NB_01x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/levelSet/R_05x_NB_02x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/levelSet/R_10x_NB_01x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/levelSet/R_10x_NB_02x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_05x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_10x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_20x
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet/porosityBased/R_20x_massConstr
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet_Dual_Bottleneck/losses-mass-30-70
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet_Dual_Bottleneck/losses-mass-50-50
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/1_Inlet_2_Outlet_Dual_Bottleneck/losses-mass-70-30
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/3DBox/losses
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/3DBox/losses-mass
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/3DBox/losses-mass-uniformity
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/laminar/3DBox/losses-mass-uniformity-SQP
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/levelSet/R_05x_NB_01
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/levelSet/R_10x_NB_01
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/levelSet/R_10x_NB_02
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/levelSet/R_20x_NB_01
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BP/losses
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BP/losses-massConstr
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/BP/uniformity-losses
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/linear/losses
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/linear/losses-massConstr
- incompressible/adjointOptimisationFoam/topologyOptimisation/monoFluidAero/turbulent/1_Inlet_2_Outlet/porosityBased/linear/uniformity-losses
- mesh/snappyHexMesh/insidePoints
これは、テキストサーチの段階では、v2306から一つ減った。
- mesh/foamyHexMesh/flange
- mesh/foamyHexMesh/mixerVessel
- mesh/foamyHexMesh/simpleShapes
- mesh/snappyHexMesh/motorBike_leakDetection
- multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D
しかし、v2306でグラフ化してエラーと判明した以下のケースが、今回のグラフ化で抽出できなかった・・・ということはエラーの状態から変化無し
- 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
- ケース名変更
データベースのグラフ化例
別記事で記した通り、上記データベース化されたデータはバックボーン(phpMyAdmin)で動的にグラフ化できるようになっているが、現在のところ閲覧者が動的にグラフを作成する仕組みまでは出来ていない。HP管理者が、本結果(OpenFOAM-v2312)を中心に様々な観点で作成したグラフをいくつか紹介しておく。
もっと別なグラフを見たいだとか、SQL構文も下手な書き方をしているところもあると思うので、遠慮なくコメントいただきたい。
使用したSQL構文
使用したSQL構文
使用したSQL構文
以下は、上記SQL構文の最終行にてwhere のレンジを変えてプロットしたもの。凡例は手作業にて追加。
計算時間やディスク使用量が大きく(およそ2割以上)変化したケースのうち、以下のケースはパラメタファイルに変化があった。
- compressible/rhoSimpleFoam/squareBendLiq
- discreteMethods/dsmcFoam/freeSpaceStream
- incompressible/pimpleFoam/laminar/cylinder2D
- mesh/snappyHexMesh/sphere_gapClosure
- incompressible/adjointOptimizationFoam/shapeOptimization/motorBike
- incompressible/adjointOptimizationFoam/shapeOptimization/sbend/laminar/opt/constrained/SQP
以下のケースは、パラメタファイルに変化無し(ソルバーやライブラリが変化?)
- finiteArea/surfactantFoam/planeTransport [確認#1]
- incompressible/pimpleFoam/LES/planeChannel[確認#2]
- multiphase/cavitatingFoam/LES/throttle3D[確認#3]
- multiphase/overInterDyMFoam/floatingBodyWithSpring[確認#4]
- multiphase/overInterDyMFoam/simpleRotor[確認#5]
- multiphase/overInterDyMFoam/twoSimpleRotors[確認#6]
- multiphase/overCompressibleInterDyMFoam/compressible/twoSimpleRotors[確認#7]
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 `of_tutorials`
JOIN of_ver ON of_tutorials.of_ver = of_ver.id
JOIN of_exe_system ON of_tutorials.exe_system=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 `of_tutorials`
JOIN of_ver ON of_tutorials.of_ver = of_ver.id
JOIN of_exe_system ON of_tutorials.exe_system=of_exe_system.id
where of_ver.id in (30, 31)
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 `of_tutorials` where of_ver in (30) )
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
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 (31)
order by new.category, new.solver, new.model, new.caseName
;
select category, caseName, diskUsage/1000, o_diskUsage/1000, exeTime, o_exeTime , clockTime, o_clockTime from of_temp
where exeTime < 1000
;
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 `of_tutorials` where of_ver in (30) )
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
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 (31)
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/1000 < 1000
;
SQL-7
select `ver_name` version,
`clockTime`,
`exeTime`,
case when exe_system = 4 then 0.5* (`diskUsage`)/1000000
else (`diskUsage`)/1000000
end as du,
`name` exeSys,
`release_date`
from `of_tutorials`
JOIN of_ver ON of_tutorials.of_ver = of_ver.id
JOIN of_exe_system ON of_tutorials.exe_system=of_exe_system.id
where category = "multiphase" and solver = "cavitatingFoam" and model = "LES" and caseName = "throttle3D"
order by `release_date`
ピンバック: OpenFOAM-v2312 Allrun – オープンCAEコンサルタントOCSE^2