Skip to content

Commit 92b30ea

Browse files
committed
add inequality pairs and inequality values to the get_data function
1 parent 7c13373 commit 92b30ea

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

LoopStructural/modelling/features/_geological_feature.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,8 @@ def get_data(self, value_map: Optional[dict] = None) -> List[Union[ValuePoints,
283283
value_constraints = self.builder.get_value_constraints()
284284
gradient_constraints = self.builder.get_gradient_constraints()
285285
norm_constraints = self.builder.get_norm_constraints()
286+
inequality_values = self.builder.get_inequality_constraints()
287+
inequality_pairs = self.builder.get_inequality_pairs_constraints()
286288
data = []
287289
if gradient_constraints.shape[0] > 0:
288290

@@ -301,6 +303,22 @@ def get_data(self, value_map: Optional[dict] = None) -> List[Union[ValuePoints,
301303
name=f'{self.name}_norm',
302304
)
303305
)
306+
if inequality_values.shape[0] > 0:
307+
data.append(
308+
ValuePoints(
309+
locations=self.model.rescale(inequality_values[:, :3]),
310+
values=inequality_values[:, 3],
311+
name=f'{self.name}_inequality',
312+
)
313+
)
314+
if inequality_pairs.shape[0] > 0:
315+
data.append(
316+
ValuePoints(
317+
locations=self.model.rescale(inequality_pairs[:, :3]),
318+
values=inequality_pairs[:, 3],
319+
name=f'{self.name}_inequality_pairs',
320+
)
321+
)
304322
if value_constraints.shape[0] > 0:
305323
if value_map is not None:
306324
for name, v in value_map.items():

LoopStructural/modelling/features/builders/_geological_feature_builder.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,34 @@ def get_norm_constraints(self):
395395
)
396396
else:
397397
return np.zeros((0, 7))
398+
def get_inequality_constraints(self):
399+
"""
400+
Get the inequality constraints
398401
402+
Returns
403+
-------
404+
numpy array
405+
"""
406+
mask = np.all(~np.isnan(self.data.loc[:, inequality_name()].to_numpy(float)), axis=1)
407+
if mask.shape[0] > 0:
408+
return self.data.loc[mask, xyz_names() + inequality_name()].to_numpy(float)
409+
else:
410+
return np.zeros((0, 4))
411+
412+
def get_inequality_pairs_constraints(self):
413+
"""
414+
Get the inequality pairs constraints
415+
416+
Returns
417+
-------
418+
numpy array
419+
"""
420+
mask = np.all(~np.isnan(self.data.loc[:, pairs_name()].to_numpy(float)), axis=1)
421+
if mask.shape[0] > 0:
422+
return self.data.loc[mask, xyz_names() + pairs_name()].to_numpy(float)
423+
else:
424+
return np.zeros((0, 4))
425+
399426
def get_orientation_constraints(self):
400427
"""
401428
Get the orientation constraints

0 commit comments

Comments
 (0)