Python 2차원 FEM 응력 분석 프로그램
개요
파이톤의 선형 탄성 2차원 FEM 응력 분석 프로그램을 만들어 보았다.
원소는 원소 네 노드의 동위소 원소로 한 원소는 네 개의 고스 적분점이 있다.
감당할 수 있는 부하는 다음과 같다.
이론식
노드 변위 공식
$$
[\boldsymbol{k}]\{\boldsymbol{u}\}=\{\boldsymbol{f}\}+\{\boldsymbol{f_t}\}+\{\boldsymbol{f_b}\}
$$
$$
\begin{align}
&[\boldsymbol{k}]=t\cdot\int_A [\boldsymbol{B}]^T[\boldsymbol{D}][\boldsymbol{B}] dA\\
&\{\boldsymbol{f_t}\}=t\cdot\int_A [\boldsymbol{B}]^T[\boldsymbol{D}]\{\boldsymbol{\epsilon_0}\} dA\\
&\{\boldsymbol{f_b}\}=t\cdot\gamma\cdot\int_A [\boldsymbol{N}]^T [\boldsymbol{N}] dA\cdot\{\boldsymbol{w}\}
\end{align}
$$
$$
\{\boldsymbol{\sigma}\}=[\boldsymbol{D}]\{\boldsymbol{\epsilon}-\boldsymbol{\epsilon_0}\}
$$
온도 변화로 인한 오류
노드 위치 이동 - 임의의 위치 오류 관계식
$$
\{\boldsymbol{\epsilon}\}=[\boldsymbol{B}]\{\boldsymbol{u}\}
$$
$는 원소 내 임의의 점의 오류입니다
노드 위치 이동 - 임의의 위치 오류 계산 공식
$$
\{\boldsymbol{v}\}=[\boldsymbol{N}]\{\boldsymbol{u}\}
$$
$원소 내 임의의 점의 위치 이동
쓸 수 있어요?
파이톤은 해석기이기 때문에 계산 속도에 유용한지 걱정이 되지만 노드수:3417, 원소수:3257, 자유도:6834의 모델에서의 계산 시간은 7.9초로 사용할 수 있음을 확인할 수 있습니다.
절차.
프로그램이 길어서 지스트에 붙은 물건에 링크가 붙어 있다.
게다가 변환 그림이라고 해도 응력 등급에 따라 색깔 도색 요소를 구분할 뿐이다. 왜냐하면 나의 목적은 삽입값을 해서 윤곽을 그릴 필요가 없기 때문이다.
입력 데이터 형식
npoin nele nsec npfix nlod NSTR # 基本量
t E po alpha gamma gkh gkv # 材料特性
..... (1~nsec) .....
node1 node2 node3 node4 isec # 要素-節点関係,材料特性番号
..... (1~nele) .....
x y deltaT # 節点座標,節点温度変化
..... (1~npoin) .....
node kox koy rdisx rdisy # 変位拘束条件
..... (1~npfix) .....
node fx fy # 外力
..... (1~nlod) .....
npoin, nele, nsec노드 수, 요소 수, 재료 특성 수
npfix, nlod
잡기 노드 수
NSTR
응력 상태(평면 오류: 0, 평면 응력: 1)
t, E, po, alpha
판 두께, 탄성 계량, 파송비, 선팽창 계수
gamma, gkh, gkv
단위 부피 중량, 수평 및 수직 가속도(g의 비)
x, y, deltaT
노드 x 좌표, 노드 y 좌표, 노드 온도 변화
node, kox, koy
구속 노드 번호, x 및 y 방향 무구속(구속: 1, 자유: 0)
rdisx, rdisy
x 및 y 방향 이동(제한 없이 0 입력)
node, fx, fy
하중 노드 번호, x방향 하중, y방향 하중
출력 데이터 형식
npoin nele nsec npfix nlod NSTR
4 1 1 2 2 1
sec t E po alpha gamma gkh gkv
1 1.0000000e+00 1.0000000e+03 0.0000000e+00 1.0000000e-05 2.3000000e+00 0.000 0.000
node x y fx fy deltaT kox koy
1 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 1
2 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1
3 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 0 0
4 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 0 0
node kox koy rdis_x rdis_y
1 1 1 0.0000000e+00 0.0000000e+00
2 0 1 0.0000000e+00 0.0000000e+00
elem i j k l sec
1 1 2 3 4 1
node dis-x dis-y
1 0.0000000e+00 0.0000000e+00
2 8.8817842e-19 0.0000000e+00
3 1.7763568e-18 2.0000000e-02
4 4.1448326e-18 2.0000000e-02
elem sig_x sig_y tau_xy p1 p2 ang
1 -7.4014868e-16 2.0000000e+01 1.1333527e-16 2.0000000e+01 0.0000000e+00 9.0000000e+01
n=8 time=0.044 sec
node, dis-x, dis-y노드 번호, x 방향 이동, y 방향 이동
elme, sig_x, sig_y, tau_xy
부속품 번호, x방향 직응력, y방향 직응력, 커팅 응력
p1, p2, ang
첫 번째 응력, 두 번째 응력, 첫 번째 응력의 방향
n, time
전자유도, 시간 계산
수출 사례
이상
Reference
이 문제에 관하여(Python 2차원 FEM 응력 분석 프로그램), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/damyarou/items/50ea6adbede7fbee8aa5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)