Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

matplotlib를 사용하여 2D FEM 결과를 플롯하는 방법은 무엇입니까?

<시간/>

FEM(Finite Element Method)은 다양한 재료 유형 모델링, 복잡한 형상 테스트, 설계의 작은 영역에 작용하는 국소 효과 시각화와 같은 다양한 작업에 사용됩니다. 기본적으로 큰 공간 영역을 "유한 요소"라고 하는 간단한 부분으로 나눕니다. 이러한 유한 요소를 모델링하는 간단한 방정식은 전체 영역을 모델링하기 위해 더 큰 방정식 시스템으로 수집됩니다.

matplotlib를 사용하여 2D FEM 결과를 플롯하려면 다음 단계를 수행할 수 있습니다. -

  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • numpy를 사용하여 노드, 요소 및 노드 값 데이터 포인트를 생성합니다.
  • 노드의 데이터 포인트를 전치합니다.
  • tricontourf()를 사용하여 3D로 채워진 등고선 플롯 만들기 .
  • 그림을 표시하려면 show()를 사용하세요. 방법.

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

nodes = np.array([
   [0.0, 0.0],
   [1.0, 0.0],
   [2.0, 0.5],
   [0.0, 1.0],
   [1.0, 1.0],
   [1.7, 1.3],
   [1.0, 1.7]])

elements = np.array([
   [1, 2, 5],
   [5, 4, 1],
   [2, 3, 6],
   [6, 5, 2],
   [4, 5, 7],
   [5, 6, 7]])

values = [1, 2, 1, 2, 7, 4, 5]

x, y = nodes.T

plt.tricontourf(x, y, elements - 1, values, 12, cmap='copper')

plt.show()

출력

다음 출력을 생성합니다.

matplotlib를 사용하여 2D FEM 결과를 플롯하는 방법은 무엇입니까? matplotlib를 사용하여 2D FEM 결과를 플롯하는 방법은 무엇입니까?