Làm thế nào tôi có thể kiểm tra tính chính xác của kết quả mô phỏng chất lỏng?


9

Tôi đã viết một chương trình mô phỏng chất lỏng dựa trên hạt. Thật khó để nói nếu tôi nhận được kết quả đúng. Kết quả trực quan có vẻ hợp lý, nhưng một số phần của nó trông lạ. Tôi không biết đó là một tính năng của chất lỏng. Có một số phương pháp chính xác để xác minh nếu chương trình của tôi là đúng?

Sửa đổi một số chi tiết

Chương trình của tôi là một chương trình mô phỏng dựa trên hạt 2D. Chất lỏng có thể nén được. Việc thực hiện gần như dựa trên một bài báo cổ điển:

Müller, Matthias, David Charypar và Markus Gross. "Mô phỏng chất lỏng dựa trên hạt cho các ứng dụng tương tác." Thủ tục tố tụng SIGGRAPH 2003 ACM

Tôi đã giải phương trình Navier-Stokes bằng phương pháp lặp. Nó chỉ xem xét áp suất, trọng lực, độ nhớt và sức căng bề mặt.


Có lẽ bạn có thể tính toán lại các điều khoản của phương trình NS với sự khác biệt về số và kiểm tra xem chúng hủy bỏ như thế nào.
Yves Daoust

Câu trả lời:


2

So sánh nó với phần mềm của người khác. Chạy một số bài kiểm tra tiêu chuẩn hóa và tìm hiểu xem bạn có nhận được câu trả lời gần giống như những câu hỏi khác không. Nếu bạn nhận được cùng một câu trả lời, thì khả năng có mã của bạn là khá cao.

Một số xét nghiệm:

  1. Dòng chảy qua xi lanh. Trong 2d lấy miền hình chữ nhật, hình trụ ở giữa, chảy vào bên trái, chảy ra trên cuộc chiến và tính toán lực trên hình trụ. Dưới đây là điểm chuẩn so sánh số ít mã.

  2. Lưu lượng dòng chảy. Hộp kín, tấm nóng ở dưới, tấm lạnh ở trên, chất lỏng nóng bắt đầu tăng lên do lực nổi. Đây là điểm chuẩn .

  3. Tăng bong bóng, điểm chuẩn .

Nhưng thật không may, có thể khá khó để so sánh mã của bạn với mã khoa học trong các điểm chuẩn đó. Tôi đoán bạn đã thực hiện một cái gì đó như SPH hoặc chất lỏng ổn định không được tạo ra cho chính xác nhưng cho sự ổn định.

Lấy ví dụ dòng chảy qua một hình trụ. Tôi sẽ bắt đầu thử nghiệm với số Reynold rất nhỏ và sau đó đo lực tác dụng lên xi lanh khi bạn tăng độ chính xác của mô phỏng (bước thời gian thấp hơn, tăng phân chia hoặc tăng số hạt). Liệu lực hội tụ đến một số nào đó? Nếu không, hơn bạn có một vấn đề, nếu có, hơn là nhìn vào bài viết chuẩn và so sánh kết quả của bạn với những người khác.


Phương pháp này rất giống với kỹ thuật tôi sử dụng để kiểm tra raytracer của mình. Tôi chỉ kết xuất cảnh thử nghiệm với trình kết xuất của người khác và so sánh nó với kết quả của tôi. Họ có hội tụ cùng một kết quả không? Nếu có hơn tôi có nó đúng, nếu không, hơn tôi có nó sai.


Thay vì phần mềm để kiểm tra chống lại yest chống lại các phép đo trong thế giới thực đã biết và các giá trị động lực học chất lỏng. Nếu không, lỗi của bạn là vô vị. Tôi thấy câu hỏi tương tự được đăng ở nơi khác trên mạng stackexhange btw
joojaa

1
Tôi nghĩ rằng thử nghiệm chống lại đo lường trong thế giới thực là tốt cho thử nghiệm nếu bạn có quyền vật lý. Nếu bạn chỉ muốn gỡ lỗi chương trình của bạn, hơn là kiểm tra mã người khác là ý tưởng tốt hơn. Ngoài ra, trong mô phỏng máy tính, bạn có thể đo bất cứ thứ gì mà không ảnh hưởng đến thí nghiệm. Ví dụ, đo tốc độ chất lỏng tại bất kỳ điểm nào là không thể trong thí nghiệm trong thế giới thực, nhưng tầm thường trong mô phỏng máy tính.
tom

Có nhưng bạn cũng thừa hưởng vấn đề của người giải quyết của họ. Tôi thừa nhận tôi đã làm điều này một vài lần khi phát triển một trình giả lập đa khung và kiểm tra kết quả từ mẫu MSC Adams nhưng trong nhận thức đó không thực sự hữu ích
joojaa

Kiểm tra chống lại thí nghiệm trong thế giới thực là tốt hơn? Tôi nghi ngờ điều đó, nhưng tôi có thể sai. Tình huống với vật lý đa sắc tố khá khác với vật lý chất lỏng. Ngay cả một cái gì đó đơn giản như bi-a có hành vi hỗn loạn. Hơn nữa, động lực học cơ thể cứng nhắc với các liên hệ thậm chí không phải là vấn đề toán học được đặt ra, bạn có biết nghịch lý Painlevé? Vì vậy, thực hiện mô phỏng số của vật lý đa năng sẽ thất bại nói chung. Một số tài liệu tham khảo: plus.maths.org/content/chaos-billiard-table en.wikipedia.org/wiki/Painlev%C3%A9_paradox
tom

1
Vâng, tôi biết về cách thức hoạt động của nhiều cơ thể, tôi dạy nó (và nghiên cứu ngắn gọn trong một hoặc hai năm). Nhưng không kiểm tra đối với các giải pháp phân tích đã biết là dễ dàng hơn. Nhưng một chất lỏng thực sự tương tự hỗn loạn như một động lực đa cơ thể. Vì vậy, người ta có thể kiểm tra chống lại các tình huống dòng chảy tầng, vv Ma sát là một con chó cái.
joojaa
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.