Abaqus에서 Python 언어 적용---4.2 출력 데이터베이스 개체 모델

분석 작업을 제출한 후 Abaqus에서 생성한 출력 데이터베이스에는 모델 데이터(모델 데이터) 결과 데이터(결과 데이터) 가 포함됩니다 .

1. 모델 데이터(model data)
모델 데이터는 루트 어셈블리(Root Assembly)의 구성 요소 및 구성 요소 인스턴스를 설명하는 데 사용됩니다. 예: 노드 좌표, 세트 정의, 요소 유형 등

2. 결과 데이터(result data)
결과 데이터는 다양한 분석 결과를 기술하기 위해 사용됩니다. 예를 들면 응력, 변형, 변위 등이 있습니다. 리더는 출력 요청에 따라 결과 데이터를 설정할 수 있습니다. 결과 데이터는 필드 데이터이거나 기록 데이터일 수 있습니다.

4.2.1 모델 데이터
모델 데이터는 해석 모델을 정의하는 데 사용됩니다. 예: 구성 요소, 재료, 경계 조건, 물리적 상수 등 Abaqus 스크립팅 인터페이스는 모든 모델 데이터를 출력 데이터베이스에 쓰지 않았습니다. 예: 스크립팅 시 로드에 거의 액세스하지 않으므로 모델 데이터베이스에 로드가 기록되지 않습니다. 출력 데이터베이스에 저장된 모델 데이터에는 주로 부품, 루트 어셈블리, 부품 인스턴스, 영역, 재료, 섹션, 섹션 할당) 및 섹션 범주가 포함되며 위의 모델 데이터는 Abaqus 스크립트 인터페이스 개체에 저장됩니다.

1. 컴포넌트
어셈블리 모듈에서는 동일한 컴포넌트에 대해 여러 컴포넌트 인스턴스를 생성할 수 있습니다. 부품은 유한 요소 해석에 직접 참여할 수 없으며 출력 데이터베이스의 부품에는 노드, 요소, 표면 및 어셈블리에 대한 정보가 포함됩니다.

2. 루트 어셈블리
루트 어셈블리에는 위치 지정 구성 요소 인스턴스의 관련 정보가 포함되어 있으며 유한 요소에는 루트 어셈블리의 경계 조건, 제약 조건, 상호 작용 및 하중 내역이 필요합니다. 각 출력 데이터베이스에는 루트 어셈블리가 하나만 포함될 수 있습니다.

3. 부품 인스턴스
어셈블리 모듈은 부품 인스턴스를 찾아 조립하며, 부품 모듈에 정의된 모든 부품 기능은 부품 인스턴스에 상속됩니다. 즉, 모든 부품 기능은 부품 인스턴스의 특성입니다. 루트 어셈블리의 각 구성 요소 인스턴스는 다른 인스턴스와 독립적으로 배치됩니다.

4. 재료
재료 모델을 재사용할 수 있으며 루트 어셈블리의 구성 요소 인스턴스는 동일한 재료 모델을 사용할 수 있습니다. 여러 재료 모델이 모델 데이터베이스에 정의될 수 있지만 루트 어셈블리에서 사용되는 재료 모델만 출력 데이터베이스에 복사됩니다.

5. 단면
Property 모듈에서 정의한 Material 속성은 컴포넌트 인스턴스와 아무런 관련이 없으며, Abaqus/CAE는 단면을 통해 둘을 연결합니다. 먼저 Abaqus는 특정 유형의 섹션에 재료 속성을 할당합니다(예: 3D 솔리드 부품에 대해 Solid 단면 선택). 그런 다음 섹션에 이 재료 속성이 포함된 다음 해당 섹션을 해당 구성 요소 인스턴스에 할당하고 이제 구성 요소 인스턴스가 섹션에 해당하는 재료 속성이 있습니다. 루트 어셈블리에서 사용되는 섹션만 출력 데이터베이스에 복사됩니다.

6. 섹션 할당
섹션 할당은 정의된 섹션을 해당 컴포넌트 인스턴스 또는 컴포넌트 인스턴스에 해당하는 영역에 할당하는 것을 의미합니다. 출력 데이터베이스의 섹션 할당은 할당된 영역과 연결된 상태로 유지됩니다.

7. 섹션 분류
섹션 분류는 동일한 섹션으로 정의된 영역을 함께 그룹화합니다. 예: 사용된 5개의 단면 점에 대한 쉘 단면 영역을 그룹화합니다. 동일한 단면 분류는 단면점을 통해 해석결과의 위치를 ​​판단할 수 있습니다.

8. 인터랙션
인터랙션은 주로 분석에서 표면 간의 접촉 관계를 정의하는 데 사용됩니다. 연락처 쌍으로 정의된 상호 작용만 출력 데이터베이스에 기록됩니다.

9. 상호 작용 속성
상호 작용 속성은 상호 작용하는 표면의 물리적 속성(예: 접선 및 법선 속성)을 정의합니다. 접선 마찰 속성만 출력 데이터베이스에 기록된다는 점은 주목할 가치가 있습니다.

위의 모델 데이터 개체는 출력 데이터베이스의 모델 데이터로 Abaqus/CAE의 모델 데이터베이스 에 저장된 개체와 유사합니다 . 모델 데이터베이스에는 여러 모델이 포함될 수 있으며 모델 이름을 지정해야 한다는 차이점이 있습니다. 스크립트를 작성할 때 출력 데이터베이스에는 하나의 모델만 포함되므로 스크립트를 작성할 때 모델 이름을 지정할 필요가 없습니다.

다음 코드 예제는 모델 데이터베이스에 있는 인스턴스 개체 하우징을 나타냅니다.

mdb = openMdb(pathName = "///文件路径///")
myModel = mdb.models['Transmission']
myPart = myModel.rootAssembly.instances['housing']

첫 번째 줄은 openMdb 메소드를 호출하여 해당 경로를 통해 model 데이터베이스를 열고 mdb에 변수를 할당합니다. 두 번째
줄은 model 데이터베이스에서 "Transmission"이라는 모델을 열고 이를 myModel 변수에 할당합니다. 세
번째 줄은 모델의 루트 어셈블리 구성 요소 인스턴스 "하우징"을 변수 myPart에 할당합니다.

다음 코드는 출력 데이터베이스(odb)에서 동일한 인스턴스 개체를 참조합니다.

odb = openOdb(path = "///文件路径///")
myPart = odb.rootAssembly.instances['housing']

코드의 첫 번째 줄은 openOdb 메서드를 호출하여 경로 아래의 출력 데이터베이스를 열고,
두 번째 줄은 출력 데이터베이스의 인스턴스 개체 "housing"을 호출합니다.

출력 데이터베이스의 상태와 객체 모델의 계층적 관계를 보려면 prettyPrint를 호출하십시오 .

예: 다음 코드는 캔틸레버 빔 모델에 대한 출력 데이터베이스 표시 결과를 제공합니다.

from odbAccess import *
from textRepr import *
odb = openOdb(path = '///文件路径///')
prettyPrint(odb, 2)

4.2.2 결과 데이터 결과
데이터는 사용자가 지정한 유한요소해석 결과를 말한다. Abaqus 스크립팅 인터페이스는 출력 데이터베이스의 결과 데이터를 다음 부분으로 나눕니다.

1. 해석 단계(steps)
Abaqus 유한 요소 해석에는 하나 이상의 해석 단계가 포함되는 경우가 많으며, 각 해석 단계에는 해당 해석 유형이 포함됩니다. 예: 출력 데이터베이스의 분석 단계 개체에 액세스하기 위한 Crush 명령은 다음과 같습니다.

crushStep = odb.steps['Crush']

2. 프레임(프레임)
출력 데이터베이스의 각 증분 단계의 분석 결과는 프레임이 되며, 각 분석 단계에는 여러 프레임이 포함됩니다. 주파수 추출 분석 또는 좌굴 분석은 각 기능 모듈을 개별적으로 프레임으로 저장합니다. Crush 분석 단계의 마지막 프레임에 접근하는 명령은 다음과 같습니다.

crushFrame = crushStep.frames[-1]

3. 필드 출력 필드 출력은
특정 계산 결과의 모든 구성 요소를 출력할 수 있으며 단위 번호, 노드 번호, 위치, 통합 지점, 단면 지점, 유형 등을 포함하여 데이터 정보의 양이 매우 큽니다. 스크립트의 실행 효율성을 높이기 위해 결과 데이터의 하위 집합, 즉 사용자 정의 출력 영역(예: 단위 집합)만 출력할 수 있습니다. 다음 명령은 출력 응력 필드 변수 S를 나타냅니다.

stress = crushFrame.fieldOutputs('S')

4. 히스토리 출력(history 출력)
히스토리 출력은 모델의 특정 지점이나 작은 영역에 대한 결과 출력(예: 에너지)을 정의하는 데 사용되며 일반적으로 출력 빈도가 더 높습니다. 현장 출력과 달리 이력 출력은 해석 결과의 개별 변수(예: 응력 성분)를 출력할 수 있습니다. 다음 명령은 출력 변위의 두 번째 구성요소 U2를 나타냅니다.

u2Deflection = endPoint.historyOutputs['U2']

출력 유형에 따라 기록 출력의 HistoryRegion 개체는 노드, 통합 지점, 영역, 재료 지점 또는 전체 모델로 정의될 수 있습니다. 기록 출력이 있는 영역에 액세스하는 명령은 다음과 같습니다.

endPoint = crushStep.historyRegions['end point']

HistoryRegion 개체에는 여러 분석 단계의 모든 시간 간격에 대한 기록 출력 결과도 포함될 수 있습니다. 예: (t1, U21), (t2, U22) 등 히스토리 출력 객체 u2Deflection이 제공된 후 결과를 추출하는 명령은 다음과 같습니다.

for time, value in u2Deflection.data:
	print("Time:", time, "U2 deflection:", value)

Supongo que te gusta

Origin blog.csdn.net/qq_35412059/article/details/107070336
Recomendado
Clasificación