遅ればせながらOpenFOAM-v2306のAllrunの結果を公開した。総ケース数448(445)、使用ディスク容量:約1TB(980GB)、総計算時間:約32日(34日)であった。かっこ()内数字はv2212のもので、ケース数、使用ディスク容量が増えたにも拘らず、計算時間はわずかながらも短縮されている。
計算そのものとログ解析は、ほぼ半年前に終了していたが、残された手作業項目をようやく片付けた。
基本的に、先の記事に記した方法で、ほぼログ解析まで問題なく実行できた。残された手作業項目もOpenFOAM-v2206(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
- ディスクスペースの重複カウント修正
- IO/fileHandler
- compressible/rhoPimpleFoam/laminar/helmholtzResonance
- ケース名変更
これは、テキストサーチの段階では、v2212から変化無し
- mesh/foamyHexMesh/flange
- mesh/foamyHexMesh/mixerVessel
- mesh/foamyHexMesh/simpleShapes
- mesh/snappyHexMesh/motorBike_leakDetection
- multiphase/overCompressibleInterDyMFoam/compressibleTwoSimpleRotors
- multiphase/reactingMultiphaseEulerFoam/laminar/mixerVessel2D
と思っていたが、グラフ化してみたところ、以下のケースも怪しかった。
データベースのグラフ化例
別記事で記した通り、上記データベース化されたデータはバックボーン(phpMyAdmin)で動的にグラフ化できるようになっているが、現在のところ閲覧者が動的にグラフを作成する仕組みまでは出来ていない。HP管理者が、本結果(OpenFOAM-v2306)を中心に様々な観点で作成したグラフをいくつか紹介しておく。
もっと別なグラフを見たいだとか、SQL構文も下手な書き方をしているところもあると思うので、遠慮なくコメントいただきたい。
SQL-1
select `ver_name` version,
count(*) postcount,
sum(`diskUsage`)/1000,
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-2
select `ver_name` version,
sum(`clockTime`)/3600 clockHr,
sum(`diskUsage`)/1000,
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-3
select `ver_name` version,
case when exe_system = 4 then 0.5* sum(`diskUsage`)/1000000
else sum(`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
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 (28, 30)
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 (28) )
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 (30)
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
;