Full-Waveform Inversion
Part 5 - Extensions
%matplotlib inline# This notebook will use this variable to determine which
# remote site to run on.
import os
import numpy as np
import salvus.namespace as sn
SALVUS_FLOW_SITE_NAME = os.environ.get("SITE_NAME", "local")p = sn.Project(path="project")Step 9: Additional prior knowledge
In a typical USCT setup, there is always enough space between the ultrasound transducers and the phantom. What if we include that information as prior knowledge into our problem formulation?
An easy way of doing this, is to define a region of interest and restrict the reconstruction to this area.
To keep it simple, we just define a sphere with a radius of 6.5 cm as the target region.
mesh = p.simulations.get_mesh(simulation_configuration="initial_model")
# define the region of interest
roi = np.zeros_like(mesh.connectivity)
mask = np.linalg.norm(mesh.points[mesh.connectivity], axis=2) < 0.065
roi[mask] = 1.0
mesh.attach_field("region_of_interest", roi)Let’s see if this helps with the iterations. To be able to compare the results, we just create a new inverse problem within the same project, initialize the region of interest, and start iterating.
p += sn.InverseProblemConfiguration(
name="my_second_inversion",
prior_model="initial_model",
events=p.events.list(),
mapping=sn.Mapping(
scaling="absolute",
inversion_parameters=["VP", "RHO"],
region_of_interest=mesh,
),
preconditioner=sn.ConstantSmoothing({"VP": 0.01, "RHO": 0.01}),
method=sn.TrustRegion(initial_trust_region_linf=10.0),
misfit_configuration="L2",
wavefield_compression=sn.WavefieldCompression(
forward_wavefield_sampling_interval=10
),
job_submission=sn.SiteConfig(
site_name=SALVUS_FLOW_SITE_NAME, ranks_per_job=4
),
)p.inversions.iterate(
inverse_problem_configuration="my_second_inversion",
timeout_in_seconds=360,
ping_interval_in_seconds=10,
)[2024-03-15 09:27:14,976] INFO: Adding new iteration #0. [2024-03-15 09:27:14,985] INFO: Resuming iteration #0. [2024-03-15 09:27:14,985] INFO: 1 new tasks have been issued. [2024-03-15 09:27:14,986] INFO: Processing task `misfit_and_gradient` [2024-03-15 09:27:15,487] INFO: Iteration 0: Number of events: 5 chi = 0.017690077140191465 ||g|| = 0.016261600061325036 pred = --- ared = --- norm_update = --- tr_radius = --- [2024-03-15 09:27:15,488] INFO: 1 new tasks have been issued. [2024-03-15 09:27:15,488] INFO: Processing task `preconditioner` [2024-03-15 09:27:15,658] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:27:25,667] INFO: Processing task `preconditioner` [2024-03-15 09:27:25,800] INFO: 1 new tasks have been issued. [2024-03-15 09:27:25,800] INFO: Processing task `misfit` [2024-03-15 09:27:25,862] INFO: Submitting job array with 5 jobs ... [2024-03-15 09:27:25,976] INFO: Launched simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:27:25,976] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:27:35,994] INFO: Processing task `misfit` [2024-03-15 09:27:36,705] INFO: old misfit control group: 0.01769007714019146 new misfit control group: 0.006645707015224614 predicted reduction control group: -0.005735067527115341 actual reduction control group: -0.011044370124966847 5 out of 5 event(s) improved the misfit. [2024-03-15 09:27:36,706] INFO: Model update accepted. [2024-03-15 09:27:36,706] INFO: 1 new tasks have been issued. [2024-03-15 09:27:36,707] INFO: Processing task `finalize_iteration` [2024-03-15 09:27:36,739] INFO: Succesfully completed iteration #0. [2024-03-15 09:27:36,741] INFO: Adding new iteration #1.
Let’s see if the region of interest was considered when the model was updated.
p.viz.nb.inversion(inverse_problem_configuration="my_second_inversion")Indeed, outside of the pre-defined sphere, the model is still constant and has the same values as the initial model.
Let’s do a few more iterations and see what the reconstruction will be.
for i in range(2):
p.inversions.iterate(
inverse_problem_configuration="my_second_inversion",
timeout_in_seconds=360,
ping_interval_in_seconds=10,
)
p.inversions.delete_disposable_files(
inverse_problem_configuration="my_second_inversion",
data_to_remove=["auxiliary", "gradients", "waveforms"],
)
p.viz.nb.inversion(inverse_problem_configuration="my_second_inversion")[2024-03-15 09:27:38,058] INFO: Resuming iteration #1. [2024-03-15 09:27:38,058] INFO: 1 new tasks have been issued. [2024-03-15 09:27:38,058] INFO: Processing task `gradient` [2024-03-15 09:27:38,391] INFO: Submitting job array with 5 jobs ...
Uploading 1 files... Uploading 1 files... Uploading 1 files... Uploading 1 files... Uploading 1 files... [2024-03-15 09:27:38,442] INFO: Launched adjoint simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:27:38,443] INFO: Some tasks of iteration #1 are still running. Please check again later. [2024-03-15 09:27:48,445] INFO: Processing task `gradient` [2024-03-15 09:27:48,655] INFO: 5 events have already been submitted. They will not be submitted again. [2024-03-15 09:27:49,154] INFO: Iteration 1: Number of events: 5 chi = 0.006645707015224614 ||g|| = 0.00812201838987874 pred = -0.005735067527115341 ared = -0.011044370124966847 norm_update = 0.7265222129292461 tr_radius = 0.7265223043807953 [2024-03-15 09:27:49,163] INFO: 1 new tasks have been issued. [2024-03-15 09:27:49,164] INFO: Processing task `preconditioner` [2024-03-15 09:27:49,246] INFO: Some tasks of iteration #1 are still running. Please check again later. [2024-03-15 09:27:59,265] INFO: Processing task `preconditioner` [2024-03-15 09:27:59,384] INFO: 1 new tasks have been issued. [2024-03-15 09:27:59,384] INFO: Processing task `misfit` [2024-03-15 09:27:59,458] INFO: Submitting job array with 5 jobs ... [2024-03-15 09:27:59,568] INFO: Launched simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:27:59,569] INFO: Some tasks of iteration #1 are still running. Please check again later. [2024-03-15 09:28:09,598] INFO: Processing task `misfit` [2024-03-15 09:28:10,406] INFO: old misfit control group: 0.006645707015224614 new misfit control group: 0.0028967887381038215 predicted reduction control group: -0.002794686584493957 actual reduction control group: -0.0037489182771207924 5 out of 5 event(s) improved the misfit. [2024-03-15 09:28:10,406] INFO: Model update accepted. [2024-03-15 09:28:10,407] INFO: 1 new tasks have been issued. [2024-03-15 09:28:10,407] INFO: Processing task `finalize_iteration` [2024-03-15 09:28:10,462] INFO: Succesfully completed iteration #1. [2024-03-15 09:28:10,464] INFO: Adding new iteration #2. [2024-03-15 09:28:10,470] INFO: ... searching for obsolete files in project/INVERSIONS/my_second_inversion/00000 [2024-03-15 09:28:10,472] INFO: ... searching for obsolete files in project/INVERSIONS/my_second_inversion/00001 [2024-03-15 09:28:10,615] INFO: Freed up 6.0 MB of space. [2024-03-15 09:28:10,618] INFO: Resuming iteration #2. [2024-03-15 09:28:10,619] INFO: 1 new tasks have been issued. [2024-03-15 09:28:10,619] INFO: Processing task `gradient` [2024-03-15 09:28:10,943] INFO: Submitting job array with 5 jobs ...
Uploading 1 files... Uploading 1 files... Uploading 1 files... Uploading 1 files... Uploading 1 files... [2024-03-15 09:28:10,999] INFO: Launched adjoint simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:28:11,001] INFO: Some tasks of iteration #2 are still running. Please check again later. [2024-03-15 09:28:21,003] INFO: Processing task `gradient` [2024-03-15 09:28:21,217] INFO: 5 events have already been submitted. They will not be submitted again. [2024-03-15 09:28:21,712] INFO: Iteration 2: Number of events: 5 chi = 0.002896788738103822 ||g|| = 0.003362099830398031 pred = -0.002794686584493957 ared = -0.0037489182771207924 norm_update = 0.7176518757295359 tr_radius = 1.4530446087615907 [2024-03-15 09:28:21,728] INFO: 1 new tasks have been issued. [2024-03-15 09:28:21,728] INFO: Processing task `preconditioner` [2024-03-15 09:28:21,823] INFO: Some tasks of iteration #2 are still running. Please check again later. [2024-03-15 09:28:31,852] INFO: Processing task `preconditioner` [2024-03-15 09:28:31,985] INFO: 1 new tasks have been issued. [2024-03-15 09:28:31,986] INFO: Processing task `misfit` [2024-03-15 09:28:32,047] INFO: Submitting job array with 5 jobs ... [2024-03-15 09:28:32,156] INFO: Launched simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:28:32,157] INFO: Some tasks of iteration #2 are still running. Please check again later. [2024-03-15 09:28:42,197] INFO: Processing task `misfit` [2024-03-15 09:28:42,848] INFO: old misfit control group: 0.0028967887381038215 new misfit control group: 0.0024078610288392685 predicted reduction control group: -0.00022036795434662477 actual reduction control group: -0.000488927709264553 5 out of 5 event(s) improved the misfit. [2024-03-15 09:28:42,849] INFO: Model update accepted. [2024-03-15 09:28:42,849] INFO: 1 new tasks have been issued. [2024-03-15 09:28:42,849] INFO: Processing task `finalize_iteration` [2024-03-15 09:28:42,930] INFO: Succesfully completed iteration #2. [2024-03-15 09:28:42,932] INFO: Adding new iteration #3. [2024-03-15 09:28:42,939] INFO: ... searching for obsolete files in project/INVERSIONS/my_second_inversion/00000 [2024-03-15 09:28:42,941] INFO: ... searching for obsolete files in project/INVERSIONS/my_second_inversion/00001 [2024-03-15 09:28:43,028] INFO: ... searching for obsolete files in project/INVERSIONS/my_second_inversion/00002 [2024-03-15 09:28:43,164] INFO: Freed up 6.0 MB of space.
This looks better, so the prior knowledge was indeed helpful.
Alternatively, we could specify point-wise lower and upper bounds on the model parameters
In the example below, we allow deviations of +/- 20% in both VP and RHO, except for the
previously selected region of interest, where we restrict VP updates to +/- 1 m/s.
Note that the mapping function does not contain a region of interest in this case.
p += sn.InverseProblemConfiguration(
name="my_third_inversion",
prior_model="initial_model",
events=p.events.list(),
mapping=sn.Mapping(
scaling="absolute",
inversion_parameters=["VP", "RHO"],
),
preconditioner=sn.ConstantSmoothing({"VP": 0.01, "RHO": 0.01}),
method=sn.TrustRegion(initial_trust_region_linf=10.0),
misfit_configuration="L2",
wavefield_compression=sn.WavefieldCompression(
forward_wavefield_sampling_interval=10
),
job_submission=sn.SiteConfig(
site_name=SALVUS_FLOW_SITE_NAME, ranks_per_job=4
),
)mesh = p.simulations.get_mesh("initial_model")
lb = mesh.copy()
ones = np.ones_like(lb.elemental_fields["VP"])
lb.elemental_fields["VP"] *= 0.8
lb.elemental_fields["RHO"] *= 0.8
lb.elemental_fields["VP"][roi < 0.5] = 1501.0
ub = mesh.copy()
ub.elemental_fields["VP"] *= 1.2
ub.elemental_fields["RHO"] *= 1.2
ub.elemental_fields["VP"][roi < 0.5] = 1502.0
p.inversions.set_constraints(
inverse_problem_configuration="my_third_inversion",
constraints={
"lower_bounds": lb,
"upper_bounds": ub,
},
)
p.inversions.iterate("my_third_inversion", timeout_in_seconds=360)
p.viz.nb.inversion(inverse_problem_configuration="my_third_inversion")[2024-03-15 09:28:44,293] INFO: Adding new iteration #0. [2024-03-15 09:28:44,302] INFO: Resuming iteration #0. [2024-03-15 09:28:44,303] INFO: 1 new tasks have been issued. [2024-03-15 09:28:44,303] INFO: Processing task `misfit_and_gradient` [2024-03-15 09:28:44,700] INFO: Iteration 0: Number of events: 5 chi = 0.017690077140191465 ||g|| = 0.02256501255377387 pred = --- ared = --- norm_update = --- tr_radius = --- [2024-03-15 09:28:44,701] INFO: 1 new tasks have been issued. [2024-03-15 09:28:44,702] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,771] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,778] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,802] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,809] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,832] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,840] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,865] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,872] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,904] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,914] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,938] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,945] INFO: Processing task `preconditioner` [2024-03-15 09:28:44,974] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:44,980] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,009] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,017] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,047] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,054] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,083] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,089] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,121] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,129] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,156] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,165] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,194] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,201] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,227] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,234] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,263] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,269] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,298] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,305] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,335] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,341] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,370] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,379] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,410] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,417] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,446] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,453] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,488] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,494] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,522] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,529] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,556] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,562] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,592] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,600] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,633] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,640] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,672] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,679] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,711] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,718] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,746] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,752] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,782] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,789] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,823] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,831] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,863] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,870] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,896] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,905] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,935] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,945] INFO: Processing task `preconditioner` [2024-03-15 09:28:45,977] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:45,987] INFO: Processing task `preconditioner` [2024-03-15 09:28:46,018] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,026] INFO: Processing task `preconditioner` [2024-03-15 09:28:46,054] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,062] INFO: Processing task `preconditioner` [2024-03-15 09:28:46,092] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,099] INFO: Processing task `preconditioner` [2024-03-15 09:28:46,128] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,139] INFO: Processing task `preconditioner` [2024-03-15 09:28:46,262] INFO: 1 new tasks have been issued. [2024-03-15 09:28:46,262] INFO: Processing task `misfit`
[2024-03-15 09:28:46,325] INFO: Submitting job array with 5 jobs ... [2024-03-15 09:28:46,439] INFO: Launched simulations for 5 events. Please check again to see if they are finished. [2024-03-15 09:28:46,440] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,459] INFO: Processing task `misfit` [2024-03-15 09:28:46,529] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,549] INFO: Processing task `misfit` [2024-03-15 09:28:46,619] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,640] INFO: Processing task `misfit` [2024-03-15 09:28:46,710] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,730] INFO: Processing task `misfit` [2024-03-15 09:28:46,804] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:46,825] INFO: Processing task `misfit` [2024-03-15 09:28:47,057] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,075] INFO: Processing task `misfit` [2024-03-15 09:28:47,152] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,176] INFO: Processing task `misfit` [2024-03-15 09:28:47,254] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,276] INFO: Processing task `misfit` [2024-03-15 09:28:47,349] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,369] INFO: Processing task `misfit` [2024-03-15 09:28:47,447] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,470] INFO: Processing task `misfit` [2024-03-15 09:28:47,540] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,560] INFO: Processing task `misfit` [2024-03-15 09:28:47,635] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,658] INFO: Processing task `misfit` [2024-03-15 09:28:47,733] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,758] INFO: Processing task `misfit` [2024-03-15 09:28:47,830] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,856] INFO: Processing task `misfit` [2024-03-15 09:28:47,929] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:47,949] INFO: Processing task `misfit` [2024-03-15 09:28:48,026] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,047] INFO: Processing task `misfit` [2024-03-15 09:28:48,117] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,136] INFO: Processing task `misfit` [2024-03-15 09:28:48,374] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,392] INFO: Processing task `misfit` [2024-03-15 09:28:48,466] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,486] INFO: Processing task `misfit` [2024-03-15 09:28:48,557] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,579] INFO: Processing task `misfit` [2024-03-15 09:28:48,667] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,688] INFO: Processing task `misfit` [2024-03-15 09:28:48,772] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,792] INFO: Processing task `misfit` [2024-03-15 09:28:48,863] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,882] INFO: Processing task `misfit` [2024-03-15 09:28:48,962] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:48,982] INFO: Processing task `misfit` [2024-03-15 09:28:49,053] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,073] INFO: Processing task `misfit` [2024-03-15 09:28:49,143] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,163] INFO: Processing task `misfit` [2024-03-15 09:28:49,238] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,260] INFO: Processing task `misfit` [2024-03-15 09:28:49,333] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,351] INFO: Processing task `misfit` [2024-03-15 09:28:49,584] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,603] INFO: Processing task `misfit` [2024-03-15 09:28:49,678] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,698] INFO: Processing task `misfit` [2024-03-15 09:28:49,776] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,795] INFO: Processing task `misfit` [2024-03-15 09:28:49,866] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,884] INFO: Processing task `misfit` [2024-03-15 09:28:49,955] INFO: Some tasks of iteration #0 are still running. Please check again later. [2024-03-15 09:28:49,974] INFO: Processing task `misfit` [2024-03-15 09:28:50,626] INFO: old misfit control group: 0.01769007714019146 new misfit control group: 0.008118344503778099 predicted reduction control group: -0.005352485226509939 actual reduction control group: -0.009571732636413362 5 out of 5 event(s) improved the misfit. [2024-03-15 09:28:50,627] INFO: Model update accepted. [2024-03-15 09:28:50,627] INFO: 1 new tasks have been issued. [2024-03-15 09:28:50,627] INFO: Processing task `finalize_iteration` [2024-03-15 09:28:50,663] INFO: Succesfully completed iteration #0. [2024-03-15 09:28:50,665] INFO: Adding new iteration #1.
The example above is just meant to demonstrate the use of box constraints. For cases where lower and upper bounds are (almost) equal, we recommend using a region of interest instead.
Bonus question. The setup above is also a prime example of an “inverse crime”, except for one small detail. Can you identify what it is?