どのように数値コードをデバッグしますか、この振動エラーの原因は何ですか?


16

静かに多くの洞察を経験から得ることができます。これと似たようなものを以前に見たことがある人はいないかと思っていました。このプロットは、移流拡散方程式の初期条件(緑)、反復200(青)、反復400(赤)での解を示しています。

振動エラー

移流拡散方程式の解は、数回の反復後に爆発します。ペクレ数、およびCFL条件が満たされ、、方程式はそうする必要があり安定しています。数値コードにバグがあると予想しています。μ0.07C0.0015

バックグラウンド。離散化は、移流と拡散の両方の用語の中心的な違いです。これは移流の1次であり、拡散の2次であると思います。これを有限体積アプローチ(初めて)を使用して実装しました。この方法では、セルの平均値からの線形補間によってセル面の係数(速度と拡散係数)の値が求められます。左右の表面にロビン境界条件を適用し、境界のフラックスをゼロに設定します。

数値コードをどのようにデバッグしますか?これまでにこのようなシーンはありますか?どこから探し始めるのが良いでしょうか?

更新

更新

解決策はこれ以上簡単ではありません!私はちょうど拡散項でサインエラーを犯しました。それは奇妙です、私はこれを投稿していなかったと確信しています、私はエラーを見つけなかっただろう!数値コードをデバッグする方法についてのヒントを共有したい場合は、まだ興味があります。私には方法がありません、それは少しヒットとミスです、私は手がかりを得るために何かを試し続けますが、このプロセスには数週間かかる場合があります。

×

有限体積法による閉境界条件を伴う移流拡散方程式


2
どのような離散化を使用していますか?注文方法は?あなたの境界条件は何ですか?
ジェフオックスベリー

@GeoffOxberryに感謝します。詳細を更新しました。私がやったことを本当に理解するために、上記のgithubリンクで私のラボブックノートを読むことができます。
-boyfarrell

2
θ=00.51

1
a=0d<0

回答:


9

:私はここに数値コードをデバッグする上で私の経験の一部を採取してきたdeal.II FAQ:デバッグを。この特定のケースでそれがあなたを助けたのかどうかはわかりませんが、他の人には役立つかもしれません。


こんにちは、プロジェクトが移動したときにそのリンクが壊れました-これは今正しいですか?github.com/dealii/dealii/wiki/...
hyperpallium

はい、それは正しいものです。コメントで更新していただきありがとうございます!
ヴォルフガングバンガース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.