Skip to content

Commit bd35f09

Browse files
author
Jack Dunham
committed
Add sweep_solve method for EachRegion adapter.
A callback occuring at each region can be passed using the `do` syntax using this method.
1 parent 624f964 commit bd35f09

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/solvers/sweep_solve.jl

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,23 @@ end
2424

2525
# I suspect that `sweep_callback` is the more commonly used callback, so allow this to
2626
# be set using the `do` syntax.
27-
function sweep_solve(sweep_callback, sweep_iterator; kwargs...)
28-
return sweep_solve(sweep_iterator; sweep_callback, kwargs...)
27+
function sweep_solve(
28+
sweep_callback, sweep_iterator; region_callback=default_region_callback
29+
)
30+
return sweep_solve(sweep_iterator; sweep_callback, region_callback)
31+
end
32+
33+
function sweep_solve(
34+
each_region_iterator::EachRegion; region_callback=default_region_callback
35+
)
36+
return sweep_solve(region_callback, each_region_iterator)
37+
end
38+
function sweep_solve(region_callback, each_region_iterator::EachRegion)
39+
for _ in each_region_iterator
40+
# I don't think it is obvious what object this particular callback should take,
41+
# but for now be consistant and pass the parent sweep iterator.
42+
sweep_iterator = each_region_iterator.parent
43+
region_callback(sweep_iterator)
44+
end
45+
return problem(each_region_iterator)
2946
end

0 commit comments

Comments
 (0)