diff --git a/simpeg_drivers/joint/driver.py b/simpeg_drivers/joint/driver.py index 5ad9c34b..bc93f59e 100644 --- a/simpeg_drivers/joint/driver.py +++ b/simpeg_drivers/joint/driver.py @@ -65,7 +65,8 @@ def data_misfit(self): fun.name = f"Group_{label.upper()}:Tile_{ii}" multipliers += [ - getattr(self.params, f"group_{label}_multiplier") ** 2.0 + (getattr(self.params, f"group_{label}_multiplier") or 1.0) + ** 2.0 ] * len(driver.data_misfit.objfcts) if self.client: diff --git a/simpeg_drivers/joint/joint_petrophysics/options.py b/simpeg_drivers/joint/joint_petrophysics/options.py index ab901db0..b10816bf 100644 --- a/simpeg_drivers/joint/joint_petrophysics/options.py +++ b/simpeg_drivers/joint/joint_petrophysics/options.py @@ -15,6 +15,7 @@ from typing import ClassVar from geoh5py.data import FloatData, ReferencedData +from geoh5py.groups import SimPEGGroup from geoh5py.objects import Octree from simpeg_drivers import assets_path @@ -49,6 +50,8 @@ class JointPetrophysicsOptions(BaseJointOptions): title: str = "Joint Petrophysically Guided Inversion (PGI)" inversion_type: str = "joint petrophysics" + group_a_multiplier: float | None = None group_b_multiplier: float | None = None + group_b: SimPEGGroup | None = None mesh: Octree models: JointPetrophysicsModelOptions diff --git a/tests/run_tests/driver_joint_pgi_homogeneous_test.py b/tests/run_tests/driver_joint_pgi_homogeneous_test.py index aff3e37d..37cea33a 100644 --- a/tests/run_tests/driver_joint_pgi_homogeneous_test.py +++ b/tests/run_tests/driver_joint_pgi_homogeneous_test.py @@ -143,7 +143,7 @@ def test_homogeneous_run( orig_data = [] petrophysics = None gradient_rotation = None - mesh = None + for suffix in "AB": components = SyntheticsComponents( geoh5=geoh5, @@ -226,6 +226,19 @@ def test_homogeneous_run( ) drivers.append(MagneticInversionDriver(params)) + # Test if single group is valid + params = JointPetrophysicsOptions.build( + topography_object=topography, + geoh5=geoh5, + group_a=drivers[0].out_group, + mesh=global_mesh, + petrophysical_model=petrophysics, + ) + driver = JointPetrophysicsDriver(params) + assert len(driver.data_misfit.objfcts) == 1 + assert driver.data_misfit.multipliers == [1.0] + + # Re-build full params = JointPetrophysicsOptions.build( topography_object=topography, geoh5=geoh5,