Làm thế nào để bạn gỡ lỗi mã số, những gì có thể là nguồn gốc của lỗi dao động này?


16

Yên tĩnh rất nhiều cái nhìn sâu sắc có thể có được kinh nghiệm hình thức, tôi chỉ tự hỏi nếu có ai đã nhìn thấy một cái gì đó tương tự như thế này trước đây. Biểu đồ cho thấy điều kiện ban đầu (màu xanh lá cây) cho phương trình khuếch tán tiến, sau đó là giải pháp ở lần lặp 200 (màu xanh) và sau đó một lần nữa ở lần lặp 400 (màu đỏ).

Lỗi dao động

Các giải pháp của phương trình khuếch tán tiến lên nổ tung sau một vài lần lặp. Số Péclet và điều kiện CFL được thỏa mãn, C \ xấp xỉ 0,0015 , do đó các phương trình phải ổn định. Tôi dự đoán tôi có một lỗi trong mã số.C 0.0015μ0.07C0.0015

Lý lịch. Sự khác biệt là sự khác biệt trung tâm cho cả hai điều khoản tiến bộ và khuếch tán. Tôi tin rằng đây là thứ tự đầu tiên của sự thăng tiến và thứ hai để khuếch tán. Tôi đã thực hiện điều này bằng cách sử dụng phương pháp thể tích hữu hạn (lần đầu tiên) trong đó các giá trị hệ số (vận tốc và hệ số khuếch tán) tại các mặt của ô được tìm thấy bằng phép nội suy tuyến tính từ trung bình ô. Tôi áp dụng điều kiện biên Robin trên các bề mặt bên trái và bên phải và đặt từ thông ở các ranh giới về 0.

Làm thế nào để bạn gỡ lỗi mã số của bạn? Có ai đã cảnh một cái gì đó như thế này trước đây, nơi nào sẽ là một nơi tốt để bắt đầu tìm kiếm?

Cập nhật

Cập nhật

Giải pháp không thể đơn giản hơn! Tôi chỉ làm một dấu hiệu lỗi về thuật ngữ khuếch tán. Thật lạ, tôi chắc chắn rằng tôi đã không đăng bài này, tôi sẽ không tìm thấy lỗi! Nếu ai đó muốn chia sẻ các mẹo về cách họ gỡ lỗi mã số của họ, tôi vẫn quan tâm. Tôi không có một phương pháp, đó là một chút thành công và bỏ lỡ, tôi tiếp tục thử công cụ để có manh mối, nhưng quá trình này có thể mất vài tuần (đôi khi).

Bằng chứng là nó hoạt động ( NB rằng với phương pháp thể tích hữu hạn, tất cả những gì bạn cần làm để tính diện tích là tổng của chiều rộng chiều cao cho tất cả các ô, nếu bạn sử dụng phương pháp tích hợp, chẳng hạn như numpy.trapz, kết quả của bạn bao gồm số lỗi của phương pháp hình thang). Chuyện gì đang xảy ra ở đây? Có một hệ số vận tốc và khuếch tán không đổi nhưng với các điều kiện biên khép kín . Do đó, tại ranh giới, chúng ta thấy trạng thái cân bằng giữa trường vận tốc đẩy sang phải và đẩy khuếch tán sang trái.×

Phương trình khuếch tán khuyên với điều kiện biên kín bằng phương pháp thể tích hữu hạn.


2
Bạn đang sử dụng loại phân biệt nào? Phương pháp đặt hàng nào? Điều kiện biên của bạn là gì?
Geoff Oxberry

Cảm ơn bạn @GeoffOxberry, tôi đã cập nhật với nhiều chi tiết hơn. Mặc dù để thực sự hiểu những gì tôi đã làm, bạn có thể đọc ghi chú trong phòng thí nghiệm của tôi trên liên kết github ở trên.
boyfarrell

2
Tôi ngưỡng mộ cách tiếp cận đồng tâm của bạn đối với vấn đề này. Là những âm mưu từ các phương trình phụ thuộc thời gian? Nếu có, bạn quan sát thấy gì cho ? θ=0,0.5,1
ngày

1
Tôi đã thử điều đó, nó cho rộng rãi như nhau. Nhưng bây giờ tôi cảm thấy ngu ngốc, tôi đã kiểm tra lỗi ký hiệu ... đặt và làm cho nó hoạt động (trong giới hạn khuếch tán, có khuếch tán âm làm cho nó hoạt động!). Vì vậy, để tham khảo trong tương lai, ở trên có thể phù hợp với một lỗi dấu hiệu. Chưa hoàn toàn thử nghiệm nên tôi sẽ báo cáo lại sớm! Tái bút cảm ơn vì lời khen :)d < 0a=0d<0
boyfarrell

Câu trả lời:


9

Tôi đã thu thập một số kinh nghiệm của mình về gỡ lỗi mã số ở đây: deal.II FAQ: gỡ lỗi . Tôi không biết nếu điều đó sẽ giúp bạn trong trường hợp cụ thể này, nhưng nó có thể trong những người khác.


Xin chào, liên kết đó đã bị hỏng khi dự án chuyển đi - đây có phải là liên kết đúng không? github.com/dealii/dealii/wiki/
Mạnh

Vâng, đó là một trong những chính xác. Cảm ơn đã cập nhật nó trong bình luận của bạn!
Wolfgang Bangerth
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.