如何通过ABAQUS脚本创建'Node'类型而非'Node+Element'的单节点集合?
矩形砖-砂浆RVE有限元分析中PBC边界条件的节点集合创建问题
问题背景
我正在进行矩形砖-砂浆RVE的有限元分析,计划对所有边施加PBC(周期性边界条件)。为此需要为边界边上的每个节点创建Node类型的集合,随后对相对边的对应节点施加方程约束——方程约束对话框仅支持Node或Geometry类型的集合。
我已编写参数化脚本定义RVE所有参数:设置edge seed为0.01,单元类型为CPS8R(二次四边形单元),且已知边界节点的准确数量及坐标。
问题现象
运行脚本后成功创建了集合,但在Mesh模块→对象:Assembly→工具→集合→管理器中,发现脚本创建的集合类型为Node+Element,而非预期的Node类型。
当前脚本代码
tol = minseed/200 # tol=tolerance, where minseed = 0.01 (edge seed size) Num_LE = 487 # Number of Left Edge Nodes Num_RE = Num_LE # ... ... Right Edge Nodes Num_TE = 1643 # ... ... Top Edge Nodes Num_BE = Num_TE # ... ... Bottom Edge Nodes AllNodes = mod.parts['RVE'].nodes # Node Set Generation (Needs to be rectified, it is creating a set of type node+element rather than a set of type node) for i in range(0, Num_LE): mod.rootAssembly.Set(name='LeftNode-'+str(i+1), nodes=AllNodes.getByBoundingBox(0-tol, (i+1)*0.25*minseed-tol, 0, 0+tol, (i+1)*0.25*minseed+tol, 0)) for i in range(0, Num_RE): mod.rootAssembly.Set(name='RightNode-'+str(i+1), nodes=AllNodes.getByBoundingBox(LRVE-tol, (i+1)*0.25*minseed-tol, 0, LRVE+tol, (i+1)*0.25*minseed+tol, 0)) for i in range(0, Num_TE): mod.rootAssembly.Set(name='TopNode-'+str(i+1), nodes=AllNodes.getByBoundingBox((i+1)*0.25*minseed-tol, BRVE-tol, 0, (i+1)*0.25*minseed+tol, BRVE+tol, 0)) for i in range(0, Num_BE): mod.rootAssembly.Set(name='BottomNode-'+str(i+1), nodes=AllNodes.getByBoundingBox((i+1)*0.25*minseed-tol, 0-tol, 0, (i+1)*0.25*minseed+tol, 0+tol, 0)) mod.rootAssembly.Set(name='BRNode', nodes=AllNodes.getByBoundingBox(LRVE-tol, 0-tol, 0, LRVE+tol, 0+tol, 0)) mod.rootAssembly.Set(name='BLNode', nodes=AllNodes.getByBoundingBox(0-tol, 0-tol, 0, 0+tol, 0+tol, 0)) mod.rootAssembly.Set(name='TLNode', nodes=AllNodes.getByBoundingBox(0-tol, BRVE-tol, 0, 0+tol, BRVE+tol, 0)) mod.rootAssembly.Set(name='TRNode', nodes=AllNodes.getByBoundingBox(LRVE-tol, BRVE-tol, 0, LRVE+tol, BRVE+tol, 0))
疑问
请问我遗漏了什么内容,或是有更优的实现方法?
内容的提问来源于stack exchange,提问作者TJSSR
相关产品推荐
相关产品推荐

