Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để vẽ biểu đồ kết quả 2d FEM bằng cách sử dụng matplotlib?

Phương pháp phần tử hữu hạn (FEM) được sử dụng trong nhiều nhiệm vụ khác nhau như mô hình hóa các loại vật liệu khác nhau, kiểm tra hình học phức tạp, hình dung các hiệu ứng cục bộ tác động lên một khu vực nhỏ của thiết kế. Về cơ bản, nó phá vỡ một miền không gian lớn thành những phần đơn giản được gọi là "phần tử hữu hạn". Các phương trình đơn giản mô hình hóa các phần tử hữu hạn này sau đó được thu thập thành một hệ phương trình lớn hơn để mô hình hóa toàn bộ miền.

Để vẽ biểu đồ kết quả FEM 2d bằng matplotlib, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Tạo các điểm dữ liệu nút, phần tử và giá trị nút bằng cách sử dụng numpy.
  • Chuyển vị trí các điểm dữ liệu của các nút.
  • Tạo biểu đồ đường viền được tô 3D bằng cách sử dụng tricontourf () .
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

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()

Đầu ra

Nó sẽ tạo ra kết quả sau

Làm thế nào để vẽ biểu đồ kết quả 2d FEM bằng cách sử dụng matplotlib? Làm thế nào để vẽ biểu đồ kết quả 2d FEM bằng cách sử dụng matplotlib?