Có một trình giải CFD mã nguồn mở tốt, dễ sử dụng, chất lượng cao không?


17

Luận án của tôi là về việc phát triển các phương pháp số để giảm mô hình trong quá trình đốt cháy. Tôi chạy các phương pháp của mình hoàn toàn trên phần hóa học của mô phỏng đốt cháy, và tôi có rất nhiều nghiên cứu trường hợp cho mô phỏng 0-D (không có dòng chảy). Những gì tôi muốn là chạy các mô phỏng có dòng chảy trong đó, tốt nhất là mô phỏng 2-D hoặc 3-D.

Những mô phỏng này sẽ cần phải song song, do yêu cầu tính toán cao. Tôi cũng cần một cái gì đó có thể giao tiếp với các bộ giải hóa học như Chemkin hoặc Cantera mà tôi có mã nguồn. (Chemkin ở Fortran 77 và Cantera ở C ++.)

Trong trường hợp lý tưởng, tôi có thể chỉ định một mô hình dòng chảy bằng cách sử dụng kiến ​​thức cơ bản về cơ học chất lỏng tôi có từ chương trình grad và một số gói CFD, thêm hóa học và chạy nó. Nếu phải, tôi có thể thiết lập các phương trình điều khiển chuyển động và hóa học của chất lỏng cho một nghiên cứu trường hợp đơn giản dựa trên một thiết lập thử nghiệm được sử dụng bởi một cộng tác viên trước đây, nhưng tôi rất muốn không cuộn mã CFD của riêng mình trừ khi có một gói hoặc gói làm cho nó cực kỳ dễ dàng để làm điều đó. Tôi sẵn sàng dành 2-3 tuần cho nó; Tôi không biết nếu yêu cầu này loại trừ PETSc hoặc Trilinos. Nếu tôi phải dành thời gian dài hơn cho nó, tôi muốn thay thế nó cho đến sau này, bởi vì tôi có một cộng tác viên cung cấp mã CFD cho các nghiên cứu trường hợp.

Có ai có bất kỳ kinh nghiệm nào khi sử dụng gói CFD hoặc viết mã CFD không, và nếu vậy, bạn có thể giới thiệu nó không? Một điều tôi biết tôi muốn sử dụng là tách lạ, nhưng tôi không phải là chuyên gia về CFD hoặc PDE; Tôi nghiên cứu hóa học và các phương pháp số để giảm mô hình. Ngoài ra, vui lòng nhận xét về việc bạn mất bao lâu để tăng tốc độ bằng cách sử dụng phần mềm bạn đề xuất.

@FblerKainedar nói rõ rằng tôi nên đề cập đến các đặc điểm của các vấn đề tôi muốn giải quyết:

  • Khí lý tưởng (hoàn hảo), một pha
  • Có thể nén
  • Dòng chảy gỗ là rất cần thiết; dòng chảy hỗn loạn là một cộng. (Tôi biết một chút về nhiễu loạn từ công việc trước đây trong các phương pháp số trong CFD, nhưng tôi chưa làm việc với người giải CFD; tôi chỉ biết một chút về vật lý.)
  • Công thức số không Mach là ổn (tôi không quan tâm đến các cú sốc hoặc dòng siêu âm)
  • Hóa học đốt cháy, bỏ qua các thông lượng Soret và Dufour, và coi khuếch tán như Fickian
  • Hình học có thể là một cái gì đó đơn giản

Tôi có thể viết mã giao thoa, mặc dù tôi phải viết càng ít thì càng tốt; @FblerKainedar cũng chỉ ra rằng Cantera có các ràng buộc Fortran và Python. Tôi sử dụng các ràng buộc Cantera Python ngay bây giờ để tạo mẫu nhanh, vì vậy tôi cũng cảm thấy thoải mái với chúng.


Cantera có các hàm bao cho python và Fortran, để mở rộng tìm kiếm một chút.
FrenchKainedar

Bạn có muốn mô hình dòng chảy tầng hoặc dòng chảy hỗn loạn? Có thể nén hay không nén được? Khí hoàn hảo? Một pha? Càng nhiều chi tiết bạn có thể cung cấp cho chúng tôi, câu trả lời càng chính xác.
FrenchKainedar

@FblerKainedar: Cảm ơn bạn đã chỉ ra điều đó. Tôi đã thêm một số chi tiết cụ thể.
Geoff Oxberry

2
Thêm một nhận xét: nếu bạn không quan tâm đến âm học hoặc sóng, bạn không nên sử dụng một bộ giải không thể nén? Điều đó sẽ mở rộng khả năng của bạn ...
FrenchKainedar

Hãy để tôi nói lại: Tôi không quan tâm đến những cú sốc. Vì pha là một loại khí lý tưởng và các khí lý tưởng thay đổi mật độ khi áp suất thay đổi, dòng chảy nên có thể nén được.
Geoff Oxberry

Câu trả lời:


11

Tôi là một người dùng nặng của OpenFOAM , vì vậy, tự nhiên tôi muốn giới thiệu nó. Nó có một số lượng lớn các tính năng bao gồm các mô hình đốt (mặc dù không nhất thiết chính xác là những gì bạn cần) và đã được người khác sử dụng cùng với Canterra . Nếu bạn cần một người giải cho một phương trình cụ thể chưa được thực hiện, bạn hoàn toàn có thể viết phương trình của mình . Tôi không biết phân chia kỳ lạ là gì (tôi không tự mình đốt cháy), nhưng những người khác đã sử dụng nó trong OpenFOAM .

Có một số lượng hạn chế của hướng dẫn. Những người được ghi lại trong hướng dẫn sử dụng không bao gồm hóa học. Có một số trường hợp mẫu cho các bộ giải phản ứng mà bạn có thể xem qua. Đặt cược tốt nhất của bạn là kiểm tra trang web khóa học OS-CFD tại Chalmers (liên kết là cho năm 2011, nhưng nó chứa một liên kết đến các trang của những năm trước). Các sinh viên ở đó thường ghi lại những người giải quyết họ đang làm việc, ví dụ ở đây .

Về nỗ lực tìm hiểu nó: Nếu bạn nhận được bằng cách sử dụng một trong các mô hình được xác định trước, việc sử dụng khá đơn giản và bạn sẽ có thể có kết quả trong vòng vài tuần. Nếu bạn phải xuống dưới mức cao nhất (ví dụ: để thêm bộ giải ODE mới), mọi thứ có thể trở nên khó khăn hơn khá nhanh và bạn sẽ đánh giá cao khi biết C ++.


Cảm ơn bạn đã giới thiệu! Tôi đã nghe những điều hay về OpenFOAM và tôi muốn sử dụng nó trong tương lai. Theo kinh nghiệm của bạn, việc học API có dễ không? Có bất kỳ hướng dẫn hay ví dụ hay nào sử dụng OpenFOAM, tốt nhất là với hóa học không?
Geoff Oxberry

Tôi đã cập nhật câu trả lời của mình
akid

1
Bắt đầu học C ++ sớm. :) Thần tốc.
tmaric

2

Bạn có thể sử dụng PyClaw , một phần mở rộng song song của Clawpack (lưu ý: Tôi là một trong những nhà phát triển chính của PyClaw). Nó bao gồm các bộ giải 2D và 3D cho các phương trình Euler bất biến (lưu lượng nén) của một loại khí lý tưởng. Nó cũng có tính năng phân tách Strang tích hợp, nhưng bạn cần thêm đánh giá các thuật ngữ nhớt và hóa học. Cần đơn giản để giao tiếp với Chemkin và Cantera, vì PyClaw được viết bằng Python và đã bao gồm cả mã Fortran 77 và C.

PyClaw tương đối mới (mặc dù mã Clawpack cơ bản khá cũ) và do đó không được thiết lập như một cái gì đó như OpenFOAM.


Cảm ơn! Tôi sẽ phải kiểm tra nó, mặc dù có thể tôi sẽ mất một lúc để đến đó. Khi tôi sử dụng nó, tôi sẽ cho bạn biết nó hoạt động như thế nào.
Geoff Oxberry

2

NIST's Fire Dynamics Simulator (FDS) nghe giống như những gì bạn muốn. FDS là một bộ giải dòng chảy số Mach thấp. Mật độ có thể thay đổi, nhưng hiệu ứng âm thanh và các cú sốc bị bỏ qua.

FDS là tài liệu khá tốt, tuy nhiên, tôi thừa nhận tôi đã không tìm kiếm trong các thói quen giải quyết dòng chính. Tôi cũng không biết nhiều về cách FDS xử lý hóa học đốt.

Tôi khuyên bạn nên tải xuống mã mới nhất từ trang web Google Code của FDS .


0

Có rất nhiều ở đó!

OpenFOAM là tốt nhất, IMHO, nhưng những người khác đang ở liên kết này ,


Vui lòng không đưa ra câu trả lời 'chỉ liên kết', vì các liên kết có thể bị hỏng.
Ngày

Tôi không muốn trình bày tất cả các tùy chọn được đề cập trong đó là "của tôi". Về mặt kỹ thuật, tôi có thể sao chép và dán tất cả nội dung, nhưng tôi không phải là người đó. Vì vậy, tôi đặt liên kết thẳng để cung cấp tín dụng cho (các) tác giả gốc
T3rmInAt0r

1
Ổn thỏa. Tuy nhiên, bạn có thể, ví dụ, chủ tịch của Cơ học chất lỏng tính toán và cơ học hỗn loạn tại trường đại học Manchester đã biên soạn một danh sách các phần mềm nguồn mở cho các kỹ sư. Nếu bạn làm như vậy, khách truy cập đồng nghiệp vẫn có thể tìm kiếm trên internet trong trường hợp liên kết bị hỏng.
Ngày

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.