Định dạng tệp / dữ liệu phổ biến cho lưới (đối với FEM) là gì?


13

Tôi đang phát triển một mô phỏng FEM. Để thử nghiệm sớm, tôi sẽ sử dụng mesher tự viết đơn giản và trực quan hóa biểu đồ lưới. Nhưng tôi muốn chuẩn bị chương trình của mình để sử dụng dữ liệu được tạo bởi một mesher hiện có và xuất nó ra các công cụ trực quan hiện có.

Có một tiêu chuẩn (gần đúng) được đề xuất cho định dạng tệp và định dạng dữ liệu nội bộ cho các lưới (FEM) không?


4
Exodus II để đọc trong lưới và VTK để viết đầu ra.
stali

Câu trả lời:


8

Câu trả lời ngắn gọn là không, không có định dạng chuẩn. Nhưng có một số cái phổ biến, như Gmsh cho đầu vào / đầu ra và VTK cho đầu ra.

Trước khi đưa ra quyết định, bạn cần tìm hiểu xem bạn muốn làm gì. Nếu bạn muốn có chương trình (nhỏ) của mình trong một thời gian, thì bạn có thể chọn định dạng phù hợp nhất với sở thích và nhu cầu của mình. Nếu bạn dự định thay đổi chương trình "lớn hơn" trong tương lai, thì nên bắt đầu quản lý các định dạng tệp của họ ngay bây giờ. Nếu bạn đang dự định sử dụng bộ xử lý trước / hậu xử lý thương mại thì tôi khuyên bạn nên tuân theo các định dạng của chúng, vì chúng "cập nhật" chúng với mọi phiên bản mới và nó có thể là một nỗi đau trong đầu.

Dưới đây, tôi liệt kê một số tùy chọn (nguồn mở).

Sơ chế

Hậu xử lý

  • Visualization với Paraview / Mayavi . Sau đó sử dụng các định dạng tệp VTK . Bạn có thể kiểm tra hướng dẫn sử dụng Paraview tại đây .
  • Bạn cũng có thể xử lý hậu kỳ trong Gmsh.
  • Salome-Meca là một tùy chọn khác để xử lý hậu kỳ, nó hoạt động tốt với VTK.

Tôi nghĩ VTK là định dạng phù hợp với tôi: 1. Tôi có thể sử dụng nó làm đầu vào cho lưới và làm đầu ra cho xử lý hậu kỳ. 2. Có một thư viện để xử lý nó. 3. Nó dường như là phổ biến, ví dụ gmesh có thể tạo ra nó. Những giả định đó có ổn không?
Michael

1
1. Bạn cần xem xét rằng việc bao gồm các thuộc tính vật liệu, BC và các ràng buộc trên mô hình của bạn. Tôi không hoàn toàn chắc chắn làm thế nào để thực hiện những điều này trong VTK, nhưng có lẽ bạn có thể tìm thấy một cách giải quyết. 2. Có, nhưng nó phụ thuộc vào ngôn ngữ lập trình bạn chọn. 3. Vâng, nó là phổ biến. Bạn có thể sử dụng trực tiếp vtk(bằng C ++, Java hoặc Python), Mayavi, Paraview, VisIt hoặc thậm chí Chrome : P. Và, vâng, bạn có thể tạo chúng trong Gmesh, mặc dù không chắc chắn về các nhóm vật lý.
nicoguaro


3

Thực sự có một tiêu chuẩn cho việc này: ISO / TS 10303 (bắt đầu với các phần 1380 đến 1386).

Trước khi bị tấn công bởi ISO, sáng kiến ​​này, bắt đầu từ những năm 1980, được gọi là PDES / BƯỚC. Xem https://www.pdesinc.org/index.html

Nhưng tôi không tin bất cứ ai sử dụng nó trừ khi họ làm việc trong một môi trường mà đó là một yêu cầu bắt buộc. Một số lượng lớn các ủy ban quốc tế đã làm một công việc tuyệt vời trong việc lật đổ ý định tốt ban đầu, và đưa ra một tiêu chuẩn cố gắng bao gồm mọi thứ từ mô tả cấu trúc quản lý chung của một công ty sang định dạng chính xác để viết ngày và giờ (và không, tôi 'Tôi không nói đùa).


3

Số lượng định dạng tệp cho FEM là vô lý, một phần là do mọi gói phần mềm đều thực hiện định dạng riêng trong quá khứ.

nhập mô tả hình ảnh ở đây

(Từ xkcd .)

Tôi đã tạo lướiio để giảm bớt nỗi đau khi chuyển đổi giữa các định dạng, vì vậy nếu bạn sử dụng bất kỳ định dạng nào được hỗ trợ bởi lưới, bạn sẽ có thể dễ dàng thực hiện chuyển đổi trong tương lai.

Trong tất cả các định dạng tôi biết, VTU và XDMF là những định dạng mà cá nhân tôi sử dụng nhiều nhất.



0

Tôi thứ hai việc sử dụng VTK cho đầu ra tập tin. Nếu bạn muốn sử dụng cấu trúc lưới rất chung chung, tôi sẽ chỉ cho bạn hướng thư viện CGNS (Hệ thống ký hiệu chung CFD) là định dạng lưới mở với thư viện riêng được duy trì bởi một tập đoàn (bao gồm cả Boeing và NASA) . Đọc danh sách các nút, thuộc tính, điều kiện biên, v.v ... cực kỳ hữu ích với thư viện này và chính thư viện này rất dễ biên dịch. Thư viện nằm trong C ++, nhưng nó có thể được liên kết với Fortran.

Chúng tôi sử dụng nó trong mã nội bộ của chúng tôi và tôi đã tìm thấy nó là một định dạng rất hiệu quả. Nó sử dụng HDF5 dưới mui xe cho các tệp nhị phân. Hơn nữa, ANSYS, Salome, GMSH đều hỗ trợ xuất khẩu sang định dạng này ở các mức độ khác nhau. Đây là github: https://cgns.github.io/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.