mã mô phỏng MHD đơn giản cho giáo dục (tự) và chơi với


8

Tôi muốn một số mã tính toán siêu đơn giản để giải quyết các vấn đề từ tính . Độ chính xác cao cũng như hiệu suất không phải là mối quan tâm của tôi. Tôi sẽ không chỉ để khám phá trực quan hành vi định tính của plasma. Quan trọng đối với tôi là:

  • Tính tổng quát - không nên chuyên về bất kỳ tiểu dự án cụ thể nào của MHD
  • Dễ dàng để làm cho nó hoạt động - không yêu cầu bất kỳ thư viện khó cài đặt. Đầu vào là hoàn toàn rõ ràng và được ghi lại bằng một số ví dụ
  • Dễ đọc và sửa đổi - bạn có thể đọc mã và tìm hiểu về giải pháp MHD từ nó. Bạn có thể sử dụng mã này làm điểm bắt đầu để phát triển mã MHD của riêng bạn

Một cái gì đó đơn giản như Navier này giải quyết sẽ là tốt nhất

tốt nhất sẽ là một cái gì đó trong python-numpy hoặc java, nhưng C ++ hoặc Fortran không phải là vấn đề lớn đối với tôi.

Cho đến bây giờ tôi đã tìm thấy:

một số thư viện ( MHD-Hermespython-mhd ) trong python, nhưng dường như không có bất kỳ thông tin hoặc ví dụ nào về cách sử dụng nó.

và đây là Mã MHD TVD miễn phí, nhanh chóng, đơn giản và hiệu quả , có trong frotran nhưng chỉ có 400 dòng

Tôi đã suy nghĩ về việc viết một cái gì đó một mình nhưng tôi muốn chắc chắn rằng không có gì tương tự đã có sẵn. Tôi nghĩ rằng nó có thể khá dễ dàng, chỉ cần lấy bộ giải Navier-Stokes từ liên kết ở trên và giới thiệu tiềm năng điện và từ của bộ giải phân tích FFT (hay Particle Mesh Ewald).


Mã OpenMP Fortran nhỏ đó thực sự gọn gàng.
stali

1
Tôi thích đọc những thứ có bình luận như "! Để giữ mọi thứ ổn định".
Rhys Ulerich


Tôi không thấy OpenFOAM dễ đọc và sửa đổi, nhưng đó là vì các phần tôi phải điều tra được chôn sâu trong mã. Thêm vào đó, ngay cả trang Wikipedia cũng đề cập rằng OpenFOAM được ghi chép kém và có một lộ trình học tập dần dần.
Geoff Oxberry

Hãy thử pyClaw , dựa trên CLAWPACK của Randy LeVeque.
Kyle Kanos

Câu trả lời:


3

Có một cái nhìn về ba:

  • Piernik MHD nó là một mã được phát triển từ Pen & Trac MHD mà bạn đã đề cập trong câu hỏi của mình. Bây giờ nó khá trưởng thành và sự phát triển vẫn còn hoạt động. Viết bằng Fortran hiện đại 95/2003.

  • Godunov MHD một mã MHD được thiết kế đặc biệt để mô phỏng các sự kiện kết nối lại, nhưng có thể dễ dàng sửa đổi và áp dụng cho các vấn đề khác. Nó có thể được song song từ máy đa lõi đơn (OpenMP) cho đến các cụm có nhiều nút (MPI). Viết bằng Fortran 90/95.

  • python-mhd một mã MHD nhỏ và đơn giản, dễ chơi với nó. Viết bằng Python và C.


cảm ơn, tôi nên xem xét chi tiết hơn Về python-mhd: Điều này sẽ rất lý tưởng vì nó là pytho. Tôi cũng đề cập đến nó trong câu hỏi ban đầu. Tuy nhiên, tôi gặp vấn đề khi chạy ví dụ (tôi viết một vấn đề code.google.com/p/python-mhd/issues/detail?id=1 ). Tôi không tìm thấy bất kỳ tài liệu hoặc ví dụ nào khác ngoài trang đó.
Prokop Hapala

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.