Skip to content

Commit

Permalink
Merge branch 'main' into averages_for_allocation
Browse files Browse the repository at this point in the history
  • Loading branch information
SouthEndMusic committed Apr 24, 2024
2 parents 86a87ff + 6c266af commit a0d8808
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion core/src/allocation_init.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function find_subnetwork_connections!(p::Parameters)::Nothing
# destination node subnetwork id ≠1
for node_id in graph[].node_ids[1]
for outflow_id in outflow_ids(graph, node_id)
if graph[outflow_id].subnetwork_id != 1
if (graph[outflow_id].subnetwork_id != 1)
main_network_source_edges =
get_main_network_connections(p, graph[outflow_id].subnetwork_id)
edge = (node_id, outflow_id)
Expand Down
4 changes: 3 additions & 1 deletion core/src/allocation_optim.jl
Original file line number Diff line number Diff line change
Expand Up @@ -866,7 +866,9 @@ function save_allocation_flows!(
end

# Check whether the next edge is the current one reversed
if edge_2 == reverse(edge_1)
# and the edge does not have a UserDemand end
if edge_2 == reverse(edge_1) &&
!(edge_1[1].type == NodeType.UserDemand || edge_1[2].type == NodeType.UserDemand)
# If so, these edges are both processed in this iteration
flow_rate += sign_2 * JuMP.value(F[edge_2])
skip = true
Expand Down
11 changes: 9 additions & 2 deletions core/src/util.jl
Original file line number Diff line number Diff line change
Expand Up @@ -572,8 +572,15 @@ is_flow_constraining(node::AbstractParameterNode) = hasfield(typeof(node), :max_

"""Whether the given node is flow direction constraining (only in direction of edges)."""
is_flow_direction_constraining(node::AbstractParameterNode) = (
node isa
Union{Pump, Outlet, TabulatedRatingCurve, FractionalFlow, Terminal, UserDemand}
node isa Union{
Pump,
Outlet,
TabulatedRatingCurve,
FractionalFlow,
Terminal,
UserDemand,
FlowBoundary,
}
)

function has_main_network(allocation::Allocation)::Bool
Expand Down
2 changes: 1 addition & 1 deletion core/test/allocation_test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ end
# lower the subnetwork demands
@test subnetwork_demands[(NodeID(:Basin, 2), NodeID(:Pump, 11))] [3.1, 4.0, 0.0]
@test subnetwork_demands[(NodeID(:Basin, 6), NodeID(:Pump, 24))] [0.004, 0.0, 0.0]
@test subnetwork_demands[(NodeID(:Basin, 10), NodeID(:Pump, 38))][1:2] [0.001, 0.002]
@test subnetwork_demands[(NodeID(:Basin, 10), NodeID(:Pump, 38))][1:2] [0.001, 0.001]
end

@testitem "Allocation level control" begin
Expand Down
2 changes: 1 addition & 1 deletion pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ netCDF4 = "*"
numpy = "*"
pandas = "*"
pandas-stubs = "*"
pandera = "*"
pandera = ">=0.18"
pip = "*"
pyarrow = "*"
pydantic = ">=2"
Expand Down
2 changes: 1 addition & 1 deletion python/ribasim/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies = [
"matplotlib",
"numpy",
"pandas",
"pandera != 0.16.0",
"pandera >= 0.18",
"pyarrow",
"pydantic ~= 2.0",
"pyogrio",
Expand Down

0 comments on commit a0d8808

Please sign in to comment.