问题陈述:
我有一个由两个节点有限元组成的有限元网格(因此每个有限元(线)由位于其末端的两个节点组成)。我在网格中有几种类型的组件(有限元组)。例如,一个垂直组件由几个从下到上垂直排列的有限元组成,相邻的有限元共享一个公共节点。
我需要获取一个列表列表,其中每个列表都有每个垂直组件的节点 ID(节点号),从下到上排序。
我所拥有的:我有两个列表列表:并且nodes
具有以下结构:elements
nodes
elements
nodes = [[node_ID1, X1, Y1, Z1],[node_ID2, X2, Y2, Z2], ...]]
elements = [[element_ID1, nodeID_a, nodeID_b],[element_ID2, nodeID_b, nodeID_c], ...]]
我还有另外两个称为列表的列表nodesV
,elementsV
它们分别代表节点和元素的子集样本:
nodesV = [[node_IDa, node_IDb, node_IDc],[ ....]]
elementsV = [[element_IDa, element_IDb, element_IDc],[ ....]]
这两个列表分别代表所有垂直组件的节点和元素。
我需要什么:基于上述数据,我需要构建一个列表列表,其中每个列表包含每个垂直组件的有序节点 ID:
desired_list = [[first nodeID of vertical component 1, ...., last nodeID],[first nodeID of vertical component 2, ...., last nodeID], ...]]
示例:假设我们在网格中只有两个组件,每个组件仅由一个元素组成,一个是垂直的:
nodes = [[1, 0, 0, 0], [2, 1, 0, 0], [3, 1, 0, 1]]
elements = [[1, 1, 2], [2, 1, 3]]
nodesV = [[1,3]] #each list can only contain 16 elements
elementsV = [[2]]
所以desired_list = [[1,3]]
任何想法如何为数千个节点网格执行此操作?