我有一个形成表面(即三角剖分)的 3D 三角形列表。该结构是变形的三角形格子。我想知道晶格的 voronoi 镶嵌的变形六边形的面积相对于未变形晶格单元的其余区域(即相对于正六边形)的变化。事实上,我真的想要与这些三角形相关的六边形晶胞的面积平方变化的总和。
背景/数学细节:我用三角形格子来近似弯曲的弹性片。调整片材泊松比(弹性常数)的一种方法是在能量中添加“体积”应变能项。我正在尝试计算变形的弹性三角形晶格的“体积”应变能,定义为:U_volumetric = 1/2 T (e_v)^2,其中 e_v=deltaV/V 由面积的变化决定一个 voronoi 单元相对于其参考区域,这是一个已知常数。
想:
Sum[ (DeltaA/ A).^2 ]
在所有六角形单元格上。
我的数据存储在变量中:
xyz = [ x1,y1,z1; x2,y2,z2; etc] %
3D 中的顶点/粒子
TRI = [ vertex0, vertex1, vertex2; etc] %
第一个三角形的粒子
所在vertex0
的行在哪里。xyz
vertex 0
NeighborList = [ p1n1, p1n2, p1n3, p1n4, p1n5,p1n6 ; p2n1...]
% 其中 p1n1 是粒子 1 的第一个最近邻,作为 xyz 的行索引。例如,xyz(NL(1,1),:)
返回xyz
粒子 1 的第一个邻居的位置。
AreaTRI = [ areaTRI1; areaTRI2; etc]
我在 MATLAB 中写这个。
到目前为止,我将每个顶点的面积近似为三角形面积的 1/3,然后对 6 个最近邻三角形求和。但是 voronoi 单元面积不会完全等于 Sum_(i=0,1,...5) 1/3* areaTRI_i,所以这是一个不好的近似值。请参阅上面链接中的图像,我认为这更清楚了。