Skip to content

Commit c00a65e

Browse files
committed
fix: add fault ellipsoid vtk output
1 parent 699a701 commit c00a65e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

LoopStructural/modelling/features/fault/_fault_segment.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,26 @@ def fault_centre(self):
114114
def displacementfeature(self):
115115
return FaultDisplacementFeature(self, self.faultfunction, name=self.name, model=self.model)
116116

117+
def fault_ellipsoid(self, **kwargs):
118+
try:
119+
import pyvista as pv
120+
121+
fault_ellipsoid = pv.PolyData(
122+
self.model.rescale(self.fault_centre[None, :], inplace=False)
123+
)
124+
fault_ellipsoid["norm"] = self.builder.fault_normal_vector[None, :]
125+
126+
geom = pv.ParametricEllipsoid(
127+
self.fault_minor_axis,
128+
self.fault_major_axis,
129+
self.fault_intermediate_axis,
130+
)
131+
ellipsoid = fault_ellipsoid.glyph(geom=geom, **kwargs)
132+
return ellipsoid
133+
except ImportError:
134+
logger.error("pyvista not installed")
135+
return None
136+
117137
def set_fault_offset(self, offset: float):
118138
self.fault_offset = offset
119139

@@ -204,6 +224,9 @@ def evaluate_value(self, locations):
204224
# v[mask] = self.__getitem__(0).evaluate_value(locations[mask, :])
205225
return self.__getitem__(0).evaluate_value(locations)
206226

227+
def ellipsoid(self):
228+
pass
229+
207230
def mean(self):
208231
return self.__getitem__(0).mean()
209232

0 commit comments

Comments
 (0)