Skip to content

Commit a1887e0

Browse files
committed
Update hash calculation logic
1 parent 3c50a88 commit a1887e0

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

flow360/component/simulation/translator/solver_translator.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,12 +1457,18 @@ def calculate_monitor_semaphore_hash(params: SimulationParams):
14571457
for output in params.outputs:
14581458
if not isinstance(output, get_args(get_args(MonitorOutputType)[0])):
14591459
continue
1460-
if output.moving_statistic is None:
1461-
continue
1462-
json_string_list.append(json.dumps(dump_dict(output.moving_statistic)))
1463-
if params.run_control and params.run_control.stopping_criteria:
1464-
for criterion in params.run_control.stopping_criteria:
1465-
json_string_list.append(json.dumps(dump_dict(criterion)))
1460+
if isinstance(output, ForceOutput):
1461+
json_string_list.extend(
1462+
[
1463+
json.dumps(dump_dict(model))
1464+
for model in sorted(
1465+
output.models, key=lambda x: (x.type, x.name, x.private_attribute_id)
1466+
)
1467+
]
1468+
)
1469+
json_string_list.extend(output.output_fields.items)
1470+
if output.moving_statistic is not None:
1471+
json_string_list.append(json.dumps(dump_dict(output.moving_statistic)))
14661472
combined_string = "".join(sorted(json_string_list))
14671473
hasher = hashlib.sha256()
14681474
hasher.update(combined_string.encode("utf-8"))
@@ -1957,10 +1963,9 @@ def get_columnar_data_processor_json(
19571963
"""
19581964
Get the columnar data processor json from the simulation parameters.
19591965
"""
1960-
translated = {}
1966+
translated = {"outputs": []}
19611967
if not input_params.outputs:
19621968
return translated
1963-
monitor_outputs = []
19641969
for output in input_params.outputs:
19651970
if not isinstance(output, get_args(get_args(MonitorOutputType)[0])):
19661971
continue
@@ -1970,6 +1975,5 @@ def get_columnar_data_processor_json(
19701975
exclude_none=True,
19711976
context={"columnar_data_processor": True},
19721977
)
1973-
monitor_outputs.append(output_dict)
1974-
translated["outputs"] = monitor_outputs
1978+
translated["outputs"].append(output_dict)
19751979
return translated

tests/simulation/translator/ref/Flow360_om6wing_stopping_criterion_and_moving_statistic.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
},
8585
"runControl": {
8686
"externalProcessMonitorOutput": true,
87-
"monitorProcessorHash": "4581ab2e4847a22e8e1af690f2f4d57da76110b57c3ba528eabe7b2ad93e4927",
87+
"monitorProcessorHash": "358a3ff400394b995bfcf89b31f949f232c4bea45f9cea3e11bc9a4a713c9a78",
8888
"stoppingCriteria": [
8989
{
9090
"monitoredColumn": "point_legacy1_Point1_Helicity_mean",

0 commit comments

Comments
 (0)