Tôi chưa sử dụng FiPy nhưng chỉ có OpenFOAM , nhưng tôi nghĩ một số điểm trên cả hai trang chủ cho thấy nó phụ thuộc rất nhiều vào những gì bạn muốn mô phỏng.
OpenFOAM đã có một số bộ giải được cải thiện (chủ yếu là CFD, vì hồ sơ của bạn nêu rõ vật lý plasma tính toán, mhdFoam
bộ giải có thể là thứ bạn muốn hoặc ít nhất là làm cơ sở, ở đây là nhóm người dùng của nó), nhưng có thể được mở rộng để giải quyết các PDE khả thi FVM khác , trong khi ở FiPy, có lẽ bạn sẽ phải thực hiện các phương trình từ đầu - và trong trường hợp sau, vâng, Python thoải mái hơn nhiều so với C ++, ít nhất là với tôi.
Có một số mã Python đó làm cho cuộc sống với OpenFOAM dễ dàng hơn: PyFoam để giúp đỡ thành lập trường, và pythonflu , một wrapper để ghi giải quyết bằng Python (chưa được kiểm tra, tôi không biết làm thế nào mà thực hiện).
Theo kinh nghiệm của tôi, việc thiết lập một trường hợp trong OpenFOAM khá tẻ nhạt và rất có thể bạn sẽ kết thúc việc viết các kịch bản để tự động hóa thiết lập lưới, v.v., vì vậy tôi không biết liệu FiPy có thực sự đòi hỏi nhiều nỗ lực hơn ngay cả khi bạn đã sử dụng một của người giải quyết đã triển khai của OpenFOAM. Và nếu bạn chọn sử dụng Python cho kịch bản đó, tôi nghi ngờ bạn có thể viết hầu hết mã theo cách mà quyết định về FiPy so với OpenFOAM có sự khác biệt dưới 100 dòng mã, nghĩa là không nên quá khó thay đổi suy nghĩ của bạn sau này, đặc biệt là nếu được lên kế hoạch trước.
Tất nhiên, những điểm quan trọng hơn là lần đầu tiên thiết lập mất bao nhiêu thời gian và hiệu suất của nó. Mặc dù vậy, tôi không thể tìm thấy bất kỳ so sánh nào, vì vậy bạn phải tự so sánh chúng ...
Cá nhân, trước đây tôi chưa sử dụng OpenFOAM và tôi sẽ cần mô phỏng một hệ thống mà OpenFOAM chưa cung cấp bộ giải, rất có thể tôi sẽ thử FiPy trước tiên do tôi thích Python hơn C ++. Nhưng như đã đề cập, cùng với PyFoam, người ta có thể đưa ra một khung khá chung chung để so sánh hai ... Nếu một bộ giải OpenFOAM có thể được sử dụng mặc dù, tôi có thể sử dụng cái đó.