OpenFoam vs FiPy


8

Tôi cần tìm hiểu và sử dụng gói giải pháp tự động khối lượng hữu hạn cho một dự án tôi đang thực hiện và đã thu hẹp nó xuống hai gói này. Tôi đã tự hỏi nếu có ai có kinh nghiệm về cả hai gói và có thể nhận xét về một so sánh. Xem xét mục tiêu tương tự của cả hai gói, tôi hơi ngạc nhiên rằng tôi không thể tìm thấy nhiều trong cách so sánh trực tuyến.

Cảm giác của tôi là FiPy sẽ dễ học / triển khai hơn vì nó dựa trên Python nhưng OpenFoam có thể mạnh hơn và giàu tính năng hơn do được áp dụng rộng rãi? Cả hai gói có tổ chức rất đáng tin cậy đằng sau chúng.

Câu trả lời:


3

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, mhdFoambộ 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 đó.


Lưu ý bên lề: Ngoài OpenFOAM 2 "chính thức" còn có dự án OpenFOAM 1.6-ext , một chi nhánh do cộng đồng điều khiển với nhiều tính năng do người dùng gửi, trong khi đó, dự án trước đây "chỉ" được phát triển bởi OpenCFD Ltd
Tobias Kienzler

Đây chính xác là loại ý kiến ​​được thông báo mà tôi đang tìm kiếm, cảm ơn bạn. Có vẻ như FiPy sẽ phù hợp hơn với nhu cầu của tôi. Mô phỏng plasma thường đòi hỏi nhiều bộ phương trình bespoke hơn và do đó, ngay cả những thứ như mhdFoam cũng không hấp dẫn lắm đối với tôi. Chúc mừng cho câu trả lời của bạn
dmon

@dmon Vui mừng tôi có thể giúp. Như đã đề cập, pythonflu có thể đáng xem sau đó - có thể bạn có bằng tiến sĩ sla̶v̶e̶student so sánh hiệu suất :-P
Tobias Kienzler

@dmon Vậy, mọi việc diễn ra thế nào?
Tobias Kienzler
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.