2017-08-16 1 views
1

私は有限要素解析のためにAbaqus/Pythonを使っています。私は以下の問題を抱えています。私は、エッジを含む2Dドメインと円のセグメントで構成され、第3次元で抽出された3Dドメインを持っています。今度は、そのドメインを、厚さ方向に沿って1つの要素のみが使用されなければならないという制約でメッシュしたいと思います。 Pythonコードで押し出された四分円の最小限の例を次に示します。「固定」の播種制約は光栄することができないので、最後の行でAbaqus/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) 

を使用すると、ドメインはメッシュ化できますが、厚み方向には2つの要素しかありません。ドメインを1つの要素だけでメッシュする方法はありますか?そうでない場合、なぜですか?

答えて

0

これを行うにはいくつかの方法があります。 1つの選択肢は、単にメッシュ技法をスイープに変更することです。たとえば、あなたの部分は、(あなたの例のコードのように)単一の幾何セルで構成され、あなたは以下を使用することができます仮定:

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

あなたは地域や設定したオブジェクトのシーケンスとしてregionキーワード引数を与える必要があります。掃引方向の長さがグローバルシードサイズよりも小さい場合は、エッジシード制約を指定する必要はなく、1つの要素だけが生成されることに注意してください。

+0

ありがとうございました! – SoB