From 6c66fc0af17d347b64adfa1b2f93203546645747 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Tue, 18 Aug 2026 11:44:47 +0200 Subject: [PATCH 1/6] use log scales for distance, fix latex rendering --- src/app-feelpp-distance/plots.json | 63 ++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 13 deletions(-) diff --git a/src/app-feelpp-distance/plots.json b/src/app-feelpp-distance/plots.json index ba6fa54..5a1d36c 100644 --- a/src/app-feelpp-distance/plots.json +++ b/src/app-feelpp-distance/plots.json @@ -67,7 +67,7 @@ "contents":[ { "type":"text", - "text":"We consider the unit cube stem:[ [0, 1]^3 ] discretized by an unstructured tetrahedral mesh. Let stem:[h] denote the mesh size, controlling the total number of vertices stem:[N]. For each mesh vertex stem:[\\mathbf{x}_i] , our goal is to compute the Euclidean distance" + "text":"We consider the unit cube stem:[ [0, 1\\]^3 ] discretized by an unstructured tetrahedral mesh. Let stem:[h] denote the mesh size, controlling the total number of vertices stem:[N]. For each mesh vertex stem:[\\mathbf{x}_i] , our goal is to compute the Euclidean distance" }, { "type":"latex", @@ -79,7 +79,7 @@ }, { "type":"latex", - "latex":"\\begin{equation*}\n d_{\\text{exact}}(x,y,z) = \\min{ {x, 1-x, y, 1-y,z, 1-z} } \\end{equation*}" + "latex":"\\begin{equation*}\n d_{\\text{exact}}(x,y,z) = \\min{ \\{ x, 1-x, y, 1-y,z, 1-z \\} } \\end{equation*}" }, { "type":"text", @@ -298,15 +298,27 @@ "type":"plot", "plot":{ "title":"Execution time (BVH and FMM) by number of tasks", - "plot_types":["marked_scatter"], + "plot_types":["scatter"], "xaxis":{"parameter":"tasks","label":"Number of tasks"}, "yaxis":{"label":"Time [s]"}, - "color_axis":{ "parameter": "mesh.h", "label":"Mesh" }, - "secondary_axis":{"parameter":"perfvalue", "label":" ", "filter":[ + "secondary_axis":{ "parameter": "mesh.h", "label":"Mesh" }, + "color_axis":{"parameter":"perfvalue", "label":" ", "filter":[ {"times_time_BVH":"BVH"}, {"times_time_FMM":"FMM"} ]}, - "aggregations":[ {"column":"M","agg":"max"} ] + "aggregations":[ {"column":"M","agg":"max"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -314,15 +326,27 @@ "plot":{ "title":"Execution time (BVH and FMM) by number of tasks", "transformation":"speedup", - "plot_types":["marked_scatter"], + "plot_types":["scatter"], "xaxis":{"parameter":"tasks","label":"Number of tasks"}, "yaxis":{"label":"Time [s]"}, - "color_axis":{ "parameter": "mesh.h", "label":"Mesh" }, - "secondary_axis":{"parameter":"perfvalue", "label":" ", "filter":[ + "secondary_axis":{ "parameter": "mesh.h", "label":"Mesh" }, + "color_axis":{"parameter":"perfvalue", "label":" ", "filter":[ {"times_time_BVH":"BVH"}, {"times_time_FMM":"FMM"} ]}, - "aggregations":[ {"column":"M","agg":"max"} ] + "aggregations":[ {"column":"M","agg":"max"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -338,8 +362,14 @@ "yaxis":{"label":"$\\text{Error} L^2$"}, "color_axis":{ "parameter": "mesh.h", "label":"Mesh" }, "secondary_axis":{"parameter":"tasks", "label":"Number of tasks"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:errors_L2_error_BVH"} ] - + "aggregations":[ {"column":"perfvalue","agg":"filter:errors_L2_error_BVH"} ], + "layout_modifiers":{ + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -355,7 +385,14 @@ "yaxis":{"label":"$\\text{Error} L^2$"}, "color_axis":{ "parameter": "M" }, "secondary_axis":{"parameter":"tasks", "label":"Number of tasks"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:errors_L2_error_BVH"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:errors_L2_error_BVH"} ], + "layout_modifiers":{ + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } } ] From b7ae92431a14b90d6ee5492f86d7729b711dc4da Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Tue, 18 Aug 2026 13:28:55 +0200 Subject: [PATCH 2/6] up plots to loglog scale --- src/app-feelpp-io/plots.json | 163 +++++++++++++++++++++++++++++++---- 1 file changed, 148 insertions(+), 15 deletions(-) diff --git a/src/app-feelpp-io/plots.json b/src/app-feelpp-io/plots.json index 342f1af..0186081 100644 --- a/src/app-feelpp-io/plots.json +++ b/src/app-feelpp-io/plots.json @@ -262,7 +262,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:loadMesh"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:loadMesh"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, @@ -276,7 +288,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveMesh"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveMesh"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, @@ -289,7 +313,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpace"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpace"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -301,7 +337,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpaceV"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpaceV"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -313,7 +361,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveField"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveField"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -325,7 +385,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveFieldV"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveFieldV"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -337,7 +409,19 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"discretization","label":"Discretization"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:export"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:export"} ], + "layout_modifiers": { + "xaxis": { + "type": "log", + "dtick": 0.30102999566, + "tick0": 0 + }, + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, @@ -360,7 +444,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:loadMesh"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:loadMesh"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, @@ -374,7 +465,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveMesh"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveMesh"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, @@ -387,7 +485,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpace"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpace"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -399,7 +504,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpaceV"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:functionSpaceV"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -411,7 +523,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveField"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveField"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -423,7 +542,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:saveFieldV"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:saveFieldV"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } }, { @@ -435,7 +561,14 @@ "yaxis": { "label": "Time [s]" }, "secondary_axis":{"parameter":"tasks","label":"np"}, "color_axis": { "parameter": "mesh", "label": "Mesh"}, - "aggregations":[ {"column":"perfvalue","agg":"filter:export"} ] + "aggregations":[ {"column":"perfvalue","agg":"filter:export"} ], + "layout_modifiers": { + "yaxis": { + "type": "log", + "dtick":1, + "exponentformat": "power" + } + } } } @@ -444,4 +577,4 @@ ] } ] -} \ No newline at end of file +} From cebd452479204adb2791cb5277cbb068366371c6 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Wed, 19 Aug 2026 17:04:41 +0200 Subject: [PATCH 3/6] fix solver not being considered --- docs/modules/ROOT/pages/index.adoc | 11 ++++-- src/app-feelpp-distance/dist2.cfg | 2 +- .../eye2brain/heatfluid_eye2brain.json | 24 ++++++++---- .../eye2brain/heatfluid_eye2brain_plots.json | 38 ++++++++++++++++--- 4 files changed, 58 insertions(+), 17 deletions(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index f8a76a9..8eeafd0 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -5,7 +5,7 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] :page-cards-tag: benchmark,report,machine,application,usecase,example :page-tags: dashboard_index :page-cards-within-module: false -:docdatetime: 2026-01-19T17:16:05 +:docdatetime: 2026-08-19:14:54:10 - Feel++ Benchmarking Version : 4.0.0 @@ -25,8 +25,13 @@ ifdef::env-github,env-browser,env-vscode[:imagesprefix: ../images/] |=== | Status | Date | machine | application | Use Case -|🟢 | 2025-12-09 10:30:47 | gaya | feelpp_app_io | eye-mesh -|🟢 | 2025-12-09 10:27:36 | gaya | feelpp_app_io | eye-mesh +|🔴 | xref:leaves/gaya-feelpp_toolbox_heatfluid-eye2brain-2026_08_19T14_32_13/leaf.adoc[2026-08-19 14:32:13] | gaya | feelpp_toolbox_heatfluid | eye2brain +|🟢 | xref:leaves/gaya-feelpp_toolbox_heatfluid-eye2brain-2026_08_19T14_12_25/leaf.adoc[2026-08-19 14:12:25] | gaya | feelpp_toolbox_heatfluid | eye2brain +|🔴 | xref:leaves/gaya-feelpp_toolbox_solid-NAFEMS_LE10-2026_08_18T14_05_13/leaf.adoc[2026-08-18 14:05:13] | gaya | feelpp_toolbox_solid | NAFEMS_LE10 +|🔴 | xref:leaves/gaya-feelpp_app_distance-cube-2026_08_18T09_35_06/leaf.adoc[2026-08-18 09:35:06] | gaya | feelpp_app_distance | cube +|🟢 | xref:leaves/gaya-feelpp_toolbox_thermoelectric-HL_31-2026_07_17T13_32_56/leaf.adoc[2026-07-17 13:32:56] | gaya | feelpp_toolbox_thermoelectric | HL_31 +|🔴 | xref:leaves/gaya-feelpp_toolbox_heat-ThermalBridgesENISO10211-2026_07_16T11_30_40/leaf.adoc[2026-07-16 11:30:40] | gaya | feelpp_toolbox_heat | ThermalBridgesENISO10211 +|🔴 | xref:leaves/gaya-feelpp_app_io-eye2brain-2026_07_15T11_28_37/leaf.adoc[2026-07-15 11:28:37] | gaya | feelpp_app_io | eye2brain |=== -- diff --git a/src/app-feelpp-distance/dist2.cfg b/src/app-feelpp-distance/dist2.cfg index 8b8463d..f1709c8 100644 --- a/src/app-feelpp-distance/dist2.cfg +++ b/src/app-feelpp-distance/dist2.cfg @@ -1,3 +1,3 @@ gmsh.filename = $cfgdir/dist.geo M = 1000 #1500 -h = 0.02 # 0.06 \ No newline at end of file +h = 0.02 # 0.06 diff --git a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain.json b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain.json index ece0fb6..ce544d6 100644 --- a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain.json +++ b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain.json @@ -5,7 +5,8 @@ "timeout":"0-00:30:00", "resources":{ "tasks":"{{parameters.tasks.value}}", - "exclusive_access":true + "exclusive_access":true, + "memory":"{{parameters.memory.value}}" }, "input_file_dependencies":{ "case_cfg":"feelpp_toolboxes/eye/eye-{{parameters.position.value}}.cfg", @@ -29,7 +30,8 @@ } }, "options": [ - "--config-files {{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.case_cfg}} {{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.solve_cfg}}", + "--config-files {{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.case_cfg}}", + "{{platforms.{{machine.platform}}.input_dir}}/{{input_file_dependencies.solver_cfg}}", "--directory {{output_directory}}/{{instance}}", "--repository.case {{use_case_name}}", "--case.discretization=P2-P2P1", @@ -50,7 +52,7 @@ }, "scalability": { "directory": "{{output_directory}}/{{instance}}/{{use_case_name}}", - "clean_directory":true, + "clean_directory":false, "stages": [ { "name": "Constructor", @@ -93,21 +95,27 @@ { "name": "tasks", "sequence": [128,256,384,512] - // "sequence": [128] }, { "name": "mesh", - // "sequence": ["M0"] - "sequence": ["M0","M1", "M2","M2", "M4","M5","M6"] + "sequence": ["M0", "M1", "M2", "M3", "M4", "M5", "M6"] }, { "name": "position", - // "sequence": ["prone"] "sequence": ["prone","standing","supine"] }, { "name": "solver", "sequence": ["simple"] + }, + { + "name":"memory", + "sequence": [400,700,1200], + "conditions":{ + "400": [ { "mesh": ["M0","M1","M2","M3","M4"] } ], + "700": [ { "mesh": ["M5"] } ], + "1200": [ { "mesh": ["M6"] } ] + } } ] -} \ No newline at end of file +} diff --git a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json index 048ec97..a375284 100644 --- a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json +++ b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json @@ -11,7 +11,7 @@ { "name":"mesh_stats", "columns":[ - {"name":"Tag","values":["Mr0","Mr1","Mr2","Mr3","Mr4","Mr5","Mr6"]}, + {"name":"Tag","values":["M0","M1","M2","M3","M4","M5","M6"]}, {"name":"hmin","values":[0.000125, 0.000137, 0.0000654, 0.0000329, 0.0000255, 0.0000312, 0.0000282]}, {"name":"hmax","values":[ 0.00400, 0.00363, 0.0016, 0.000959, 0.000529, 0.00015, 0.000000994]}, {"name":"hmean","values":[0.000923, 0.000772, 0.000467, 0.000417, 0.000288, 0.000277, 0.000184]}, @@ -262,13 +262,16 @@ {"Solve_solve":"Solve"}, {"PostProcessing_exportResults":"Post Process"} ] - } + }, + "aggregations":[ + {"column":"position","agg":"filter:standing"} + ] } }, { "type":"plot", "plot":{ - "title":"Computational time for the coupled heat-fluid testcase", + "title":"Relative time spent in each component of the computation for the coupled heat-fluid testcase.", "plot_types":["stacked_bar"], "xaxis":{"parameter":"tasks","label":"Nproc"}, "transformation":"relative_performance", @@ -282,7 +285,32 @@ {"Solve_solve":"Solve"}, {"PostProcessing_exportResults":"Post Process"} ] - } + }, + "aggregations":[ + {"column":"position","agg":"filter:standing"} + ] + } + }, + { + "type":"plot", + "plot":{ + "title":"Computational time by postural orientation for the coupled heat-fluid testcase.", + "plot_types":["stacked_bar"], + "secondary_axis":{"parameter":"position","label":"Position"}, + "yaxis":{"label":"Computational time[s]"}, + "xaxis":{"parameter":"mesh","label":"Mesh"}, + "color_axis":{"label":"Step", + "filter":[ + {"Constructor_initMesh":"initMesh"}, + {"Constructor_matrixVector":"Data Structures"}, + {"Solve_assembly":"Assembly"}, + {"Solve_solve":"Solve"}, + {"PostProcessing_exportResults":"Post Process"} + ] + }, + "aggregations":[ + {"column":"tasks","agg":"filter:256"} + ] } } ] @@ -290,4 +318,4 @@ ] } ] -} \ No newline at end of file +} From e4e8e9ad5a5737ba89fb4dcf255d89bccd41e452 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Fri, 21 Aug 2026 10:52:47 +0200 Subject: [PATCH 4/6] up nb rays to 500,1000,1500 to solve segfault for big meshes --- src/app-feelpp-distance/feelpp-distance.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app-feelpp-distance/feelpp-distance.json b/src/app-feelpp-distance/feelpp-distance.json index 73f8c6a..6553ea3 100644 --- a/src/app-feelpp-distance/feelpp-distance.json +++ b/src/app-feelpp-distance/feelpp-distance.json @@ -84,7 +84,8 @@ }, { "name": "M", - "sequence": [ 1000, 1500, 2000, 2500] + //"sequence": [ 1000, 1500, 2000, 2500] + "sequence": [ 100, 500, 1000 ] } ] } From b125c3a27ce45b3d05094c1591f0c9bbf32748d5 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Fri, 21 Aug 2026 10:53:19 +0200 Subject: [PATCH 5/6] fix bad bench name --- .../heatfluid/eye2brain/heatfluid_eye2brain_plots.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json index a375284..7ed8751 100644 --- a/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json +++ b/src/app-feelpp-toolbox/heatfluid/eye2brain/heatfluid_eye2brain_plots.json @@ -93,7 +93,7 @@ { "type":"section", - "title":"Benchmark: Thermo-Electric Coupling", + "title":"Benchmark: Heat-Fluid Coupling", "contents":[ { "type":"section", From f7a593df2879b19b74db859563c9f5515fe1cd36 Mon Sep 17 00:00:00 2001 From: Javier Cladellas Date: Fri, 21 Aug 2026 14:27:49 +0200 Subject: [PATCH 6/6] trigger pkg publish [build container]