ニュートン・ラフソンを超えて非線形移流拡散システムを解く方法は?


9

私は、それぞれのソース項を介して2つのadv-diff結合ドメインがあるプロジェクトに取り組んでいます(1つのドメインは質量を加算し、他のドメインは質量を減算します)。簡潔にするために、定常状態でモデル化しています。方程式は、次のようなソース項を持つ標準の移流拡散輸送方程式です。

c1t=0=F1+Q1(c1,c2)c2t=0=F2+Q2(c1,c2)

ここで、は種iの拡散および移流フラックスであり、Q iは種iのソース項です。FiiQii

Newton-Raphson法を使用して問題のソルバーを記述でき、ブロック質量行列を使用して2つのドメインを完全に結合しました。

Fcoupled=[A100A2][c1,ic2,i]xi[b1(c1,i,c2,i)b2(c1,i,c2,i)]

は、ヤコビ行列を決定し、c 1c 2の両方を更新するために使用されますFcoupledc1c2

J(xi)[xi+1xi]=Fcoupled

または

xi+1=xi(J(xi))1Fcoupled

速度を上げるために、反復ごとにヤコビアンを計算することはありません。現在、5回ごとに遊んでいます。これは十分に機能し、解を安定させているようです。

問題は、両方のドメインが2D / 2.5Dであるより大きなシステムに移動することであり、ヤコビ行列を計算すると、使用可能なコンピューターリソースがすぐに使い果たされます。後で最適化設定で使用するためにこのモデルを構築しているので、減衰係数の調整などの反復ごとにハンドルを握ることはできません。

私の問題に対してより堅牢でアルゴリズムを求めて他の場所を探すのは正しいのですか、それともこれで問題ないのですか?私は準線形化について少し調べましたが、それが自分のシステムにどの程度適用できるかはわかりません。

ヤコビアンを頻繁に再計算せずに非線形方程式系を解くことができる、見逃した他の巧妙なアルゴリズムはありますか?


2
AMG-代数的マルチグリッド法などの反復ソルバーを検討しましたか?物理学に基づいた優れた前提条件を考え出す必要があるかもしれません。
NameRakes

1
並列線形代数パッケージを使用してヤコビ行列の形成と解を配布できるコンピューティングクラスタにアクセスできますか?
ビル・バルト

いいえ、私はAMGについては考慮していません。これらは対称システムのためだけのものであり、対流が支配的な問題では使用できないと思いました。私は再びAMGの文献を調べます。
cbcoutinho

このプロジェクトは、これらの種類のリソースにアクセスできない同僚のためのスタンドアロンアプリケーションとして開発されているため、並列計算は困難です。私は自分のためにmpiをプロジェクトに組み込むことを検討しましたが、それによって他者の参入の障壁が高まり、そもそもそれが全体のポイント
でした。–

3
ヤコビアンの計算がなぜそれほど問題なのですか?有限差分/ボリューム/要素を使用している場合は、常に同じであるスパース部分と、変化するが計算が簡単な対角部分が必要です。
David Ketcheson、2016年

回答:


4

2Dおよび3Dの制限がヤコビアンを格納していることを想定しています。

1つのオプションは、時間微分を保持し、明示的な「疑似」時間ステップを使用して定常状態に反復することです。通常、拡散システムと反応システムに必要なCFL数は、法外に小さくなる場合があります。非線形マルチグリッド(完全近似ストレージマルチグリッドとも呼ばれます)とローカルタイムステッピングを試して、収束を高速化できます。

DF(un)δun=F(un)
DF
DF(un)δuF(un+ϵδuδu)F(un)ϵ.
AAxx

ϵ107F

注意すべきもう1つの点は、強力な前提条件が必要なシステムの場合(つまり、Jacobiまたはblock-Jacobiでは不十分)、上記の方法をマルチグリッドスキームのスムーザーとして使用することをお勧めします。ポイントまたはブロックヤコビプレコンディショナーを試したい場合は、ヤコビアンの対角要素または対角ブロックのみを計算して保存できますが、それほど多くはありません。Gauss-SeidelまたはSSORプレコンディショナーは、ヤコビアンを明示的に格納しなくても実装できる可能性があることにも言及します。このペーパーでは、計算流体力学のコンテキストで、行列のない対称ガウスザイデルで前処理された行列のないGMRESの実装について説明します。


1

私のナビエ・ストークス方程式の経験から、完全に陰的なスキームがなくても非常にうまくいくことができます。

時間の進化を解くための高速な数値スキームが必要な場合は、IMEX(暗黙-明示)スキームを見てください。たとえば、Ascher、Ruuth、Spiteri Implicit-Explicit Runge-Kutta Methods for Time-Dependent Partial Differential Equationsのこの論文を参照してください。

(MatlabのようなODE45)ステップサイズ制御を備えた明示的な高次時間積分スキームを使用することもできます。ただし、拡散部分に起因するシステムの剛性により、問題が発生する可能性があります。幸いにも、拡散部分は線形であるため、暗黙的に処理できます(これはIMEXスキームの考え方です)。


0

最初はコメントのみを追加することを検討しましたが、スペースが足りなかったため、このトピックでの経験について簡単に説明します。

まず、あなたの表記に探して Iが結合されたフォームが表示されていない、私はその仮定B 1bの2の両方に依存しなければならないC 1 IをおよびC 2を私は。さらに、A 1A 2Fcoupledb1b2c1,ic2,iA1A2F1F2ci、しかし隣人の値についてもですが、これはあなたの記法を間違って理解しているだけかもしれません。

一般的なコメントとして、分析的なヤコビアンを使用することは、非線形反復ソルバー(つまり、あなたのケースではNewton-Raphsonソルバー)の2次収束を取得する唯一の方法のように思われることを付け加えたいと思います。あなたの場合それを観察しましたか?そうしないと、近似(線形化)に誤解が生じる可能性があるため、これは非常に重要です。

私が関わったすべてのアプリケーション(大規模な計算が含まれるものもありました)で、ヤコビアンの組み立てに時間を費やすことはありませんでした。最も時間のかかる問題は、常に線形ソルバーを適用することでした。分析ヤコビアン(利用可能な場合)は常に二次収束のため、私が優先する選択に取り組んでいたアプリケーションにありました。このような非線形ソルバーは、反復線形ソルバーの収束に問題を引き起こす行列を生成する場合があるため、線形ソルバーを支援するために、分析ヤコビアンよりも単純な線形化を使用しようとしました。非線形代数システムの線形化に依存する非線形ソルバーの動作と線形代数ソルバーの動作との間のそのようなトレードオフは常にトリッキーであり、一般的な推奨はできませんでした。

しかし、PDEシステムの分析ヤコビアンの欠点(またはプロパティ)の欠点は、それが結合代数システムを生成することです。そのため、このようなシステムを何らかの方法で分離すると、たとえば、反復分割によって各PDEの近似を個別に解く場合などです。メソッドを使用すると、グローバルソルバーの2次収束が失われます。ただし、少なくとも各離散化(分離)PDEを個別に解く場合は、ニュートンラフソン法を使用することで、この特定の問題の解を再び高速化できます。


b1b2c1c2A1A2F1F2ベクトルなので、1つの変数だけではなく、状態変数のベクトルの関数です。有限差分を使用してヤコビアンを数値的に計算します。これまでのところ、分析ヤコビアンについては調査していません。
cbcoutinho 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.