Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abaqus/Python修复了种子设定约束_Python_Mesh_Abaqus - Fatal编程技术网

Abaqus/Python修复了种子设定约束

Abaqus/Python修复了种子设定约束,python,mesh,abaqus,Python,Mesh,Abaqus,我正在使用Abaqus/Python进行有限元分析。我有以下问题:我有一个3D域,它由一个包含边和圆段的2D域组成,并在第三维中延伸。现在我想用一个约束对该域进行网格划分,即沿厚度方向只需使用一个元素。下面是Python代码中拉伸的四分之一圆的最小示例: from abaqus import * from abaqusConstants import * import __main__ # Sketch quarter circle s = mdb.models['Model-1'].Cons

我正在使用Abaqus/Python进行有限元分析。我有以下问题:我有一个3D域,它由一个包含边和圆段的2D域组成,并在第三维中延伸。现在我想用一个约束对该域进行网格划分,即沿厚度方向只需使用一个元素。下面是Python代码中拉伸的四分之一圆的最小示例:

from abaqus import *
from abaqusConstants import *
import __main__

# Sketch quarter circle
s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', 
    sheetSize=50.0)
g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
s.setPrimaryObject(option=STANDALONE)

s.ArcByCenterEnds(center=(0.0, 0.0), point1=(0.0, 5.0), point2=(5.0, 0.0),
    direction=CLOCKWISE)
s.Line(point1=(0.0, 5.0), point2=(0.0, 0.0))
s.Line(point1=(0.0, 0.0), point2=(5.0, 0.0))


# Create part from sketch and extrusion in the depth
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,
    type=DEFORMABLE_BODY)
p.BaseSolidExtrude(sketch=s, depth=0.1)
s.unsetPrimaryObject()
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']

# Mesh
# Global seeds
p.seedPart(size=0.35, deviationFactor=0.1, minSizeFactor=0.1)
# 'fixed' seeding constraint: only one element in thickness direction
e = p.edges
pickedEdges = e.findAt(((5.0, 0.0, 0.025), ), ((0.0, 5.0, 0.025), ), 
    ((0.0, 0.0, 0.025), ))
p.seedEdgeByNumber(edges=pickedEdges, number=1, constraint=FIXED)

# Generate mesh
p.generateMesh()
在最后一行中,当我想要生成网格时,域不能被网格化,因为“固定”种子约束不能被遵守。如果我使用

p.generateMesh(seedConstraintOverride=ON)

要生成网格,可以对域进行网格划分,但只能在厚度方向使用两个元素。有没有办法在厚度方向上仅使用一个元素对域进行网格划分?如果没有,原因是什么?

有几种方法可以做到这一点。一个选项是简单地将网格技术更改为扫描。例如,假设零件由单个几何单元组成(如示例代码中所示),则可以使用以下方法:

part_cells = p.cells()
p.setMeshControls(regions=(part_cells[0],), technique=SWEEP)
p.generateMesh()

必须将
区域
关键字参数作为区域或集合对象序列提供。请注意,如果扫描方向的长度小于全局种子大小,则不需要指定任何边种子约束,只会生成一个元素。

我想再次讨论这个问题。你说过,有几种方法可以做到这一点。除了使用网格扫描技术,还有哪些其他方法?原始答案对您有用吗?根据您的模型和需要,您还可以尝试:(1)自下而上的网格划分,或(2)创建二维网格零件,并将其挤出。相似的概念,实现目标的不同工具。