From 5748fc3e53282ea4cc29a02583bcccc7989077b0 Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 21 Jan 2026 11:15:26 -0800 Subject: [PATCH 1/2] Add small constant. Fix issue with lower_bound --- simpeg_drivers/components/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/simpeg_drivers/components/models.py b/simpeg_drivers/components/models.py index bc21626a..efb0dc22 100644 --- a/simpeg_drivers/components/models.py +++ b/simpeg_drivers/components/models.py @@ -233,6 +233,7 @@ def reference_model(self) -> np.ndarray | None: self.reference_inclination, self.reference_declination, ) + ref_model += 1e-8 # To avoid zeroing the angles ref_model = (field_vecs.T * ref_model).flatten() return ref_model @@ -271,11 +272,11 @@ def lower_bound(self) -> np.ndarray | None: else: bound_model = self._lower_bound.model - if ( - self.driver.params.inversion_type == "magnetic vector" - and self._upper_bound.model is not None - ): - bound_model = -self._upper_bound.model + if self.driver.params.inversion_type == "magnetic vector": + bound_model = None + + if self._upper_bound.model is not None: + bound_model = -self._upper_bound.model if bound_model is None: lbound = np.full(self.n_active, -np.inf) From ff5db6e59601b0667e5d07b9b9a8c8c5ed764aea Mon Sep 17 00:00:00 2001 From: dominiquef Date: Wed, 21 Jan 2026 11:24:23 -0800 Subject: [PATCH 2/2] Update test --- tests/run_tests/driver_mvi_test.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tests/run_tests/driver_mvi_test.py b/tests/run_tests/driver_mvi_test.py index 8030f0e0..7cfbe7d8 100644 --- a/tests/run_tests/driver_mvi_test.py +++ b/tests/run_tests/driver_mvi_test.py @@ -20,6 +20,7 @@ from geoh5py.groups.property_group import GroupTypeEnum from geoh5py.objects import Curve from geoh5py.workspace import Workspace +from simpeg.utils.mat_utils import cartesian2amplitude_dip_azimuth from simpeg_drivers.components.factories import DirectivesFactory from simpeg_drivers.potential_fields import ( @@ -213,7 +214,7 @@ def test_magnetic_vector_reference( tmi_uncertainty=5.0, data_object=components.survey, starting_model=components.model, - reference_model=1.0, + reference_model=0.0, reference_inclination=30, reference_declination=0, ) @@ -224,13 +225,10 @@ def test_magnetic_vector_reference( assert np.all(driver.models.reference_inclination == 30) assert np.all(driver.models.reference_declination == 0) - np.allclose( - np.kron( - np.r_[0, np.cos(-np.deg2rad(30)), np.sin(-np.deg2rad(30))], - np.ones(driver.models.n_active), - ), - driver.models.reference_model, - ) + ref_model = driver.models.reference_model + ref_spherical = cartesian2amplitude_dip_azimuth(ref_model.reshape(-1, 3, order="F")) + np.allclose(ref_spherical[0, 1], 30) + np.allclose(ref_spherical[0, 2], 0) if __name__ == "__main__":