问题描述
我正在研究人脑 tACS 模拟,其中我有 STL 格式的皮肤、头骨、脑脊液、大脑和心室模型。形状无关紧要,也没有交叉点。我想运行有限元分析并使用 SfePy,但到目前为止我唯一的问题是如何定义体积区域。使用 pymesh,我可以使用以下代码生成非常详细且良好的网格:
import pymesh
skin_stl = pymesh.load_mesh('skin.stl')
skull_stl = pymesh.load_mesh('skull.stl')
csf_stl = pymesh.load_mesh('csf.stl')
brain_stl = pymesh.load_mesh('brain.stl')
model = pymesh.merge_meshes( (skin_stl, skull_stl, csf_stl, brain_stl) )
model_tet = pymesh.tetrahedralize(model, 10)
如您所见,边界很清晰,并且网格划分算法考虑到了这一点。如果我得到这个网格的组件数,它应该是 4,因为我有 4 个边界表面。使用以下代码,我能够分离并获取上述镶嵌网格的顶点和面。
new_mesh = pymesh.form_mesh(model_tet.vertices, model_tet.faces)
sep_mesh = pymesh.separate_mesh(new_mesh)
我无法以任何方式分离网格并将体素包含在两个连续的边界表面之间。有没有办法使用 pymesh 或其他方法来做到这一点?
