Bỏ qua

Hệ thống đánh số phần tử và thư viện hàm dạng

Hàm dạng \(N_\alpha^e(\boldsymbol{r})\) được giới thiệu trong Hàm dạng và xấp xỉ phần tử hữu hạn có dạng cụ thể cho từng loại phần tử. Chương này phân loại các nhóm phần tử do FrontISTR cung cấp bằng số loại phần tử ba chữ số và trình bày giao diện của thư viện hàm dạng để xử lý thống nhất từng phần tử. Các hệ tọa độ tự nhiên và hàm dạng cụ thể của phần tử khối ba chiều, cùng với việc chuyển đổi thứ tự nút giữa cạnh cho phần tử bậc hai, được trình bày trong Hàm dạng của phần tử khối ba chiều, còn hướng dẫn lựa chọn loại phần tử được nêu trong Thư viện phần tử (chức năng).

Phân loại phần tử và quy tắc đặt tên

Các loại phần tử FrontISTR được nhận diện bằng số ba chữ số. Ý nghĩa của từng chữ số như sau.

  • Chữ số thứ nhất (nhóm phần tử): 1 = phần tử đường/giàn, 2 = phần tử phẳng, 3 = phần tử khối, 5 = phần tử giao diện, 6 = phần tử dầm, 7 = phần tử vỏ.
  • Chữ số thứ hai (hình dạng cơ bản): phân biệt hình dạng hình học trong nhóm phần tử (tam giác, tứ giác, tứ diện, lăng trụ hoặc lục diện).
  • Chữ số thứ ba (bậc nội suy): 1 = bậc nhất (chỉ các nút góc), 2 = bậc hai (bao gồm nút giữa cạnh). Ngoại lệ, phần tử giàn hai nút có số 301.

Các phần tử được cung cấp được liệt kê theo nhóm trong bảng dưới đây.

Nhóm phần tử Loại phần tử Số nút Mô tả
Phần tử đường 111 2 Phần tử liên kết 2 nút (không dùng được cho phân tích ứng suất)
112 3 Phần tử liên kết 3 nút (không dùng được cho phân tích ứng suất)
Phần tử phẳng 231 3 Phần tử tam giác tuyến tính 3 nút
232 6 Phần tử tam giác bậc hai 6 nút
241 4 Phần tử tứ giác tuyến tính 4 nút
242 8 Phần tử tứ giác bậc hai 8 nút (họ Serendipity)
Phần tử khối 301 2 Phần tử giàn 2 nút
341 4 Phần tử tứ diện tuyến tính 4 nút
342 10 Phần tử tứ diện bậc hai 10 nút
351 6 Phần tử lăng trụ tuyến tính 6 nút
352 15 Phần tử lăng trụ bậc hai 15 nút
361 8 Phần tử lục diện tuyến tính 8 nút
362 20 Phần tử lục diện bậc hai 20 nút (họ Serendipity)
Phần tử giao diện 541 4×2 Phần tử mặt tứ giác tuyến tính 4 nút (không dùng được cho phân tích ứng suất)
542 8×2 Phần tử mặt tứ giác bậc hai 8 nút (không dùng được cho phân tích ứng suất)
Phần tử dầm 611 2 Phần tử dầm Bernoulli-Euler 2 nút (6 bậc tự do mỗi nút)
641 2×2 Phần tử dầm Bernoulli-Euler 2 nút (3 bậc tự do mỗi nút, dùng cho bậc tự do hỗn hợp)
Phần tử vỏ 731 3 Phần tử vỏ tam giác MITC3 (6 bậc tự do mỗi nút)
741 4 Phần tử vỏ tứ giác MITC4 (6 bậc tự do mỗi nút)
743 9 Phần tử vỏ tứ giác MITC9 (6 bậc tự do mỗi nút)
761 3×2 Phần tử vỏ tam giác MITC3 (3 bậc tự do mỗi nút, dùng cho bậc tự do hỗn hợp)
781 4×2 Phần tử vỏ tứ giác MITC4 (3 bậc tự do mỗi nút, dùng cho bậc tự do hỗn hợp)

Phần tử lục diện tuyến tính 361 có nhiều công thức (tích phân đầy đủ, chế độ không tương thích, B-bar và F-bar), được lựa chọn thông qua điều khiển phân tích. Chi tiết xem Các công thức phần tử nâng cao.

Phần tử dầm 641 và phần tử vỏ 761/781 là các công thức để nối phần tử kết cấu có 6 bậc tự do với phần tử khối có 3 bậc tự do tại cùng các nút; một nút kết cấu được biểu diễn bởi hai nút 3 bậc tự do. Bản thân các công thức giống với các phiên bản 6 bậc tự do tương ứng (611, 731 và 741).

Thư viện hàm dạng

Các thủ tục tính toán phần tử (xây dựng ma trận độ cứng và vectơ nội lực) không có thủ tục riêng cho từng loại phần tử. Thay vào đó, chúng gọi thư viện hàm dạng qua một giao diện thống nhất nhận số loại phần tử fetype làm đối số. Mô-đun elementInfo (fistr1/src/lib/element/element.f90) cung cấp các hàm sau.

  • NumOfQuadPoints(fetype): trả về số điểm tích phân \(n_q\) của loại phần tử.
  • getQuadPoint(fetype, np, pos): trả về tọa độ tự nhiên \(\boldsymbol{r}_i\) của điểm tích phân \(i\).
  • getWeight(fetype, np): trả về trọng số \(w_i\) của điểm tích phân \(i\).
  • getShapeFunc(fetype, r, N): trả về giá trị hàm dạng \(N_\alpha^e(\boldsymbol{r})\) tại tọa độ tự nhiên \(\boldsymbol{r}\).
  • getShapeDeriv(fetype, r, dN): trả về đạo hàm theo tọa độ tự nhiên \(\partial N_\alpha^e/\partial \boldsymbol{r}\) của hàm dạng.
  • getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): với tọa độ nút phần tử \(\boldsymbol{X}^e\), trả về đạo hàm theo tọa độ vật lý \(\partial N_\alpha^e/\partial \boldsymbol{x}\) và định thức Jacobian \(J\).
  • getNumberOfSubface(fetype), getSubFace(fetype, k, ...): trả về số mặt biên của phần tử và số nút tạo nên từng mặt. Chúng được dùng để xây dựng tải bề mặt và bề mặt tiếp xúc.

Mỗi hàm phân nhánh nội bộ theo số loại phần tử và gọi các chương trình con hàm dạng và đạo hàm hàm dạng trong các mô-đun cấp thấp được cung cấp cho từng loại phần tử (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90). Các bảng số của tọa độ và trọng số điểm tích phân được tập trung trong quadrature.f90. Để thêm loại phần tử mới, hãy cài đặt mô-đun cấp thấp tương ứng và thêm nhánh cho nó vào từng hàm trong elementInfo.

Chuyển đổi thứ tự nút giữa cạnh cho phần tử tam giác bậc hai

Đối với phần tử tam giác bậc hai 232, thứ tự các nút giữa cạnh khác nhau giữa định dạng đầu vào lưới HEC-MW (sắp các nút góc quanh phần tử rồi các nút giữa cạnh theo các cạnh 1-2, 2-3, …) và định dạng nội bộ FrontISTR mà các hàm dạng trong thư viện phần tử giả định. Sự khác biệt giữa hai định dạng được xử lý ngay sau khi đọc lưới bởi hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90hecmw2fstr_connect_conv.c), sắp xếp lại sáu nút thành \(\{1,2,3,6,4,5\}\) theo bảng chuyển đổi Table232. Vì chuyển đổi được thực hiện trực tiếp trên mảng lưu liên kết phần tử, mọi lời gọi thư viện phần tử sau đó đều dùng thứ tự nút nội bộ FrontISTR. Khi xuất kết quả, chuyển đổi ngược fstr2hecmw_mesh_conv khôi phục định dạng HEC-MW trước khi ghi, nên người dùng chỉ cần quan tâm đến định dạng HEC-MW cho cả đầu vào và đầu ra.

Các phần tử khối ba chiều bậc hai 342 (tứ diện) và 352 (lăng trụ) có chuyển đổi tự động tương tự, còn 362 (lục diện bậc hai) không cần chuyển đổi. Xem Hàm dạng của phần tử khối ba chiều để biết cách xử lý. Với phần tử tứ giác phẳng bậc hai 242 và phần tử giao diện 542, không thực hiện chuyển đổi vì thứ tự nút giữa cạnh giống nhau giữa định dạng đầu vào HEC-MW và định dạng nội bộ.

Chủ đề liên quan

AI-assisted translation May contain errors Official docs Status