From f11ef65b42db03ba9ea3223e96a3917b2b2a6b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20M=C3=B8yner?= Date: Mon, 4 Mar 2024 12:39:46 +0100 Subject: [PATCH 1/5] Don't use merge (can overwrite if there is overlap) --- src/models.jl | 8 ++++++-- src/utils.jl | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/models.jl b/src/models.jl index c28c31cd..eb4f70e4 100644 --- a/src/models.jl +++ b/src/models.jl @@ -431,8 +431,12 @@ function setup_storage!(storage, model::JutulModel; setup_linearized_system = tr else state0 = setup_state(model, deepcopy(state0)) end - state0 = merge(state0, parameters) - state = merge(state, parameters) + for (k, v) in pairs(model.parameters) + if haskey(parameters, k) + state0[k] = parameters[k] + state[k] = parameters[k] + end + end # Both states now contain all parameters, ready to store. storage[:state0] = state0 storage[:state] = state diff --git a/src/utils.jl b/src/utils.jl index 49637c0c..b3a8b9d7 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -53,7 +53,6 @@ end function check_increment(dx, pvar, key) has_bad_values = any(!isfinite, dx) if has_bad_values - display(dx) bad = findall(isfinite.(vec(dx)) .== false) n_bad = length(bad) n = min(10, length(bad)) From 004e59b71a9820d704c6ab3197c4bf80bfc000ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20M=C3=B8yner?= Date: Mon, 4 Mar 2024 15:08:36 +0100 Subject: [PATCH 2/5] Fix to output type for partitioned arrays --- ext/JutulPartitionedArraysExt/io.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/JutulPartitionedArraysExt/io.jl b/ext/JutulPartitionedArraysExt/io.jl index 118a2ff7..7a888848 100644 --- a/ext/JutulPartitionedArraysExt/io.jl +++ b/ext/JutulPartitionedArraysExt/io.jl @@ -43,13 +43,14 @@ function rank_folder(pth, rank) end function consolidate_distributed_results(states, reports, partitions) - state = JUTUL_OUTPUT_TYPE() - report = JUTUL_OUTPUT_TYPE() + JT = Jutul.JUTUL_OUTPUT_TYPE + state = JT() + report = JT() mlabel = partitions[1]["main_partition_label"] if isnothing(mlabel) consolidate_cell_values!(state, states, partitions) else - main_state = JUTUL_OUTPUT_TYPE() + main_state = JT() for substate in states for (k, v) in pairs(substate) if k == mlabel From 2e9a82ec203d72f2619bbbd7e00788ff2e79149c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20M=C3=B8yner?= Date: Mon, 4 Mar 2024 12:39:46 +0100 Subject: [PATCH 3/5] Don't use merge (can overwrite if there is overlap) --- src/models.jl | 8 ++++++-- src/utils.jl | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/models.jl b/src/models.jl index b8fbe7c8..d678fbef 100644 --- a/src/models.jl +++ b/src/models.jl @@ -431,8 +431,12 @@ function setup_storage!(storage, model::JutulModel; setup_linearized_system = tr else state0 = setup_state(model, deepcopy(state0)) end - state0 = merge(state0, parameters) - state = merge(state, parameters) + for (k, v) in pairs(model.parameters) + if haskey(parameters, k) + state0[k] = parameters[k] + state[k] = parameters[k] + end + end # Both states now contain all parameters, ready to store. storage[:state0] = state0 storage[:state] = state diff --git a/src/utils.jl b/src/utils.jl index 49637c0c..b3a8b9d7 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -53,7 +53,6 @@ end function check_increment(dx, pvar, key) has_bad_values = any(!isfinite, dx) if has_bad_values - display(dx) bad = findall(isfinite.(vec(dx)) .== false) n_bad = length(bad) n = min(10, length(bad)) From bd3d7dba9f15792be63aa065867a4b2cfb99cc21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20M=C3=B8yner?= Date: Mon, 4 Mar 2024 15:08:36 +0100 Subject: [PATCH 4/5] Fix to output type for partitioned arrays --- ext/JutulPartitionedArraysExt/io.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/JutulPartitionedArraysExt/io.jl b/ext/JutulPartitionedArraysExt/io.jl index 118a2ff7..7a888848 100644 --- a/ext/JutulPartitionedArraysExt/io.jl +++ b/ext/JutulPartitionedArraysExt/io.jl @@ -43,13 +43,14 @@ function rank_folder(pth, rank) end function consolidate_distributed_results(states, reports, partitions) - state = JUTUL_OUTPUT_TYPE() - report = JUTUL_OUTPUT_TYPE() + JT = Jutul.JUTUL_OUTPUT_TYPE + state = JT() + report = JT() mlabel = partitions[1]["main_partition_label"] if isnothing(mlabel) consolidate_cell_values!(state, states, partitions) else - main_state = JUTUL_OUTPUT_TYPE() + main_state = JT() for substate in states for (k, v) in pairs(substate) if k == mlabel From 3420d32c3e43ae9d1c1d163625f785aee64e5ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olav=20M=C3=B8yner?= Date: Mon, 4 Mar 2024 16:46:21 +0100 Subject: [PATCH 5/5] Bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 5c43a638..333b7b6b 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Jutul" uuid = "2b460a1a-8a2b-45b2-b125-b5c536396eb9" authors = ["Olav Møyner "] -version = "0.2.25" +version = "0.2.26" [deps] AlgebraicMultigrid = "2169fc97-5a83-5252-b627-83903c6c433c"