Skip to content

Commit 2ed3816

Browse files
Merge pull request #156 from CliMA/ne/simplify_update
Simplify ensemble update with helper function
2 parents 7e8df53 + 472d1b1 commit 2ed3816

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

docs/src/api.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ ClimaCalibrate.submit_pbs_job
5252
ClimaCalibrate.initialize
5353
ClimaCalibrate.save_G_ensemble
5454
ClimaCalibrate.update_ensemble
55+
ClimaCalibrate.update_ensemble!
56+
ClimaCalibrate.observation_map_and_update!
5557
ClimaCalibrate.ExperimentConfig
5658
ClimaCalibrate.get_prior
5759
ClimaCalibrate.get_param_dict

src/backends.jl

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,8 @@ function calibrate(
220220
if errors == ensemble_size
221221
error("Full ensemble has failed, aborting calibration.")
222222
end
223-
G_ensemble = observation_map(iter)
224-
save_G_ensemble(output_dir, iter, G_ensemble)
225223
ekp = load_ekp_struct(output_dir, iter)
226-
terminate = update_ensemble!(ekp, G_ensemble, output_dir, iter, prior)
224+
terminate = observation_map_and_update!(ekp, output_dir, iter, prior)
227225
!isnothing(terminate) && break
228226
end
229227
return ekp
@@ -321,11 +319,8 @@ function calibrate(
321319
failure_rate,
322320
)
323321
@info "Iteration $iter time: $time"
324-
# Process results
325-
G_ensemble = observation_map(iter)
326-
save_G_ensemble(output_dir, iter, G_ensemble)
327322
ekp = load_ekp_struct(output_dir, iter)
328-
terminate = update_ensemble!(ekp, G_ensemble, output_dir, iter, prior)
323+
terminate = observation_map_and_update!(ekp, output_dir, iter, prior)
329324
!isnothing(terminate) && break
330325
end
331326
return ekp
@@ -444,10 +439,8 @@ function calibrate(
444439
reruns = 0,
445440
)
446441
@info "Completed iteration $iter, updating ensemble"
447-
G_ensemble = observation_map(iter)
448-
save_G_ensemble(output_dir, iter, G_ensemble)
449442
ekp = load_ekp_struct(output_dir, iter)
450-
terminate = update_ensemble!(ekp, G_ensemble, output_dir, iter, prior)
443+
terminate = observation_map_and_update!(ekp, output_dir, iter, prior)
451444
!isnothing(terminate) && break
452445
end
453446
return ekp

src/ekp_interface.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,18 @@ function update_ensemble!(ekp, G_ens, output_dir, iteration, prior)
370370
return terminate
371371
end
372372

373+
"""
374+
observation_map_and_update!(ekp, output_dir, iteration, prior)
375+
376+
Compute the observation map and update the given EKP object.
377+
"""
378+
function observation_map_and_update!(ekp, output_dir, iteration, prior)
379+
g_ensemble = observation_map(iteration)
380+
save_G_ensemble(output_dir, iteration, g_ensemble)
381+
terminate = update_ensemble!(ekp, g_ensemble, output_dir, iteration, prior)
382+
return terminate
383+
end
384+
373385
"""
374386
last_completed_iteration(output_dir)
375387

0 commit comments

Comments
 (0)