1
どのように数値コードをデバッグしますか、この振動エラーの原因は何ですか?
静かに多くの洞察を経験から得ることができます。これと似たようなものを以前に見たことがある人はいないかと思っていました。このプロットは、移流拡散方程式の初期条件(緑)、反復200(青)、反復400(赤)での解を示しています。 移流拡散方程式の解は、数回の反復後に爆発します。ペクレ数、およびCFL条件が満たされ、、方程式はそうする必要があり安定しています。数値コードにバグがあると予想しています。μ ≈ 0.07μ≈0.07\mu\approx0.07C≈ 0.0015C≈0.0015C\approx 0.0015 バックグラウンド。離散化は、移流と拡散の両方の用語の中心的な違いです。これは移流の1次であり、拡散の2次であると思います。これを有限体積アプローチ(初めて)を使用して実装しました。この方法では、セルの平均値からの線形補間によってセル面の係数(速度と拡散係数)の値が求められます。左右の表面にロビン境界条件を適用し、境界のフラックスをゼロに設定します。 数値コードをどのようにデバッグしますか?これまでにこのようなシーンはありますか?どこから探し始めるのが良いでしょうか? 更新 これは、移流拡散方程式の有限体積法の実装に関する個人的な「ラボブック」スタイルのメモです。http://danieljfarrell.github.io/FVM/ Pythonソースコードは、http://github.com/danieljfarrell/FVM.gitから入手できます。 更新 解決策はこれ以上簡単ではありません!私はちょうど拡散項でサインエラーを犯しました。それは奇妙です、私はこれを投稿していなかったと確信しています、私はエラーを見つけなかっただろう!数値コードをデバッグする方法についてのヒントを共有したい場合は、まだ興味があります。私には方法がありません、それは少しヒットとミスです、私は手がかりを得るために何かを試し続けますが、このプロセスには数週間かかる場合があります。 ××\times