From 107aab0fd6229b666a619dd5dc49b162e9de0874 Mon Sep 17 00:00:00 2001 From: domfournier Date: Tue, 9 Apr 2024 10:53:08 -0400 Subject: [PATCH 1/2] Add flag to Spherical directive to preserve reference angle --- SimPEG/directives/directives.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SimPEG/directives/directives.py b/SimPEG/directives/directives.py index 8150dec3c8..0fc6ee6154 100644 --- a/SimPEG/directives/directives.py +++ b/SimPEG/directives/directives.py @@ -3162,6 +3162,7 @@ class VectorInversion(InversionDirective): def __init__( self, simulations: list, regularizations: ComboObjectiveFunction, **kwargs ): + self.reference_angle = False self.simulations = simulations self.regularizations = regularizations @@ -3221,7 +3222,9 @@ def endIter(self): reg_fun.reference_model[indices] = vec_ref if ind > 0: - reg_fun.alpha_s = 0 + if not self.reference_angle: + reg_fun.alpha_s = 0 + reg_fun.eps_q = np.pi reg_fun.units = "radian" angle_map.append(reg_fun.mapping) From 6595bf6165c823aa252de681c0305ce789b766b3 Mon Sep 17 00:00:00 2001 From: domfournier Date: Tue, 9 Apr 2024 11:11:13 -0400 Subject: [PATCH 2/2] Change reference_angles to list --- SimPEG/directives/directives.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/SimPEG/directives/directives.py b/SimPEG/directives/directives.py index 0fc6ee6154..d9c5a590b8 100644 --- a/SimPEG/directives/directives.py +++ b/SimPEG/directives/directives.py @@ -3162,7 +3162,7 @@ class VectorInversion(InversionDirective): def __init__( self, simulations: list, regularizations: ComboObjectiveFunction, **kwargs ): - self.reference_angle = False + self.reference_angles = (False, False, False) self.simulations = simulations self.regularizations = regularizations @@ -3217,12 +3217,14 @@ def endIter(self): model[indices] = vec_model.flatten() angle_map = [] - for ind, reg_fun in enumerate(self.regularizations.objfcts): + for ind, (reg_fun, ref_angle) in enumerate( + zip(self.regularizations.objfcts, self.reference_angles) + ): reg_fun.model = model reg_fun.reference_model[indices] = vec_ref if ind > 0: - if not self.reference_angle: + if not ref_angle: reg_fun.alpha_s = 0 reg_fun.eps_q = np.pi