Skip to content

Commit a159545

Browse files
committed
Changed tetrahedral mesh generation to make use of tetmesh flagging boundary nodes.
1 parent 67ad530 commit a159545

2 files changed

Lines changed: 6 additions & 10 deletions

File tree

src/pyCellAnalyst/CellMech.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ def _readstls(self):
172172
massProps = vtk.vtkMassProperties()
173173
massProps.SetInputData(self.rsurfs[-1])
174174
massProps.Update()
175+
print("Generating tetrahedral mesh from {:s}".format(fname))
175176
self._make3Dmesh(
176177
str(os.path.normpath(self._ref_dir + os.sep + fname)),
177178
'MATERIAL', massProps.GetVolume())
@@ -189,6 +190,7 @@ def _readstls(self):
189190
massProps = vtk.vtkMassProperties()
190191
massProps.SetInputData(self.dsurfs[-1])
191192
massProps.Update()
193+
print("Generating tetrahedral mesh from {:s}".format(fname))
192194
self._make3Dmesh(
193195
str(os.path.normpath(self._def_dir + os.sep + fname)),
194196
'SPATIAL', massProps.GetVolume())
@@ -473,14 +475,14 @@ def _make3Dmesh(self, filename, frame, vConst):
473475
* dvols
474476
* daxes
475477
"""
476-
vConst /= 30000.0
478+
vConst /= 50000.0
477479
edgeSize = (vConst*12/np.sqrt(2)) ** (1./3.)
478480
m = mesh.Mesher(inputname=filename,
479481
outputname="tmp.vtu",
480482
facetAngle=30.0,
481483
facetDistance=0.1,
482484
edgeLength=edgeSize,
483-
edgeRatio=1.5)
485+
edgeRatio=1.3)
484486
m.makeMesh()
485487

486488
gridReader = vtk.vtkXMLUnstructuredGridReader()
@@ -490,13 +492,8 @@ def _make3Dmesh(self, filename, frame, vConst):
490492
nodes = vtk_to_numpy(vtkMesh.GetPoints().GetData())
491493
elements = vtk_to_numpy(vtkMesh.GetCells().GetData()).reshape(
492494
(vtkMesh.GetNumberOfCells(), 5))[:,1:]
493-
extractSurface = vtk.vtkDataSetSurfaceFilter()
494-
extractSurface.SetInputData(vtkMesh)
495-
extractSurface.Update()
496-
faces = extractSurface.GetOutput()
497-
N = faces.GetNumberOfPolys()
498-
faces = vtk_to_numpy(faces.GetPolys().GetData()).reshape((N, 4))[:,1:]
499-
s_nodes = np.unique(np.ravel(faces))
495+
vertex_type = vtk_to_numpy(vtkMesh.GetPointData().GetArray("Vertex Type"))
496+
s_nodes = np.argwhere(vertex_type==1).ravel()
500497

501498
n1 = nodes[elements[:, 0], :]
502499
n2 = nodes[elements[:, 1], :]

src/pyCellAnalyst/FEA_GUI.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ def performFEA(self):
405405

406406
mesh = febio.MeshDef()
407407
# would be good to vectorize these
408-
print self.data[filename]['elements']
409408
for i, e in enumerate(self.data[filename]['elements']):
410409
mesh.elements.append(['tet4', i + 1] + e)
411410

0 commit comments

Comments
 (0)