1

私は電磁気学の結合問題を解いています:

「curl curl u + u = curl J in OmegaC」

uxn = ガンマのグラード psi xn

オメガ I ではラプラス psi = 0

grad psi \cdot n = u \cdot n on Gamma

psi = 0 on \partial Omega"

ここで、Omega は OmegaI と OmegaC の互いに素な和集合であり、OmegaC の境界はガンマであり、OmegaI の境界はガンマと \partial Omega の素な和集合です。

Domain Decomposition を使用してこの問題を解決したいと考えています (Alonso, Valli の「マクスウェル方程式の渦電流近似」の 120 ページをフォローしています)。まず、Gamma の 2 番目のインターフェイス方程式は grad psi\cdot n = div_tau ((J-curl u) xn) on Gamma のように書き直すことができることに気付きました。ここで、div_tau は接線方向の発散であり、恒等式: curl u を使用しました。 \cdot n = div_tau(uxn)。

反復スキームは次のようになります。ベクトル フィールド ラムダが与えられた場合、最初に解く

オメガ I ではラプラス psi = 0

grad psi \cdot n =div_tau(lambda xn) on Gamma

\partial Omega で psi = 0

つまり、部分統合と FreeFem++ 構文を使用します。

problem laplaceI(psiI,vI, solver=CG)=

-int3d(ThI)(Grad(psiI)'*Grad(vI))
+int2d(ThI,interiorI)([lambday*N.z-lambdaz*N.y,lambdaz*N.x-lambdax*N.z,lambdax*N.y-lambday*N.x]'*Grad(vI))
+on(exterior, psiI=0);

それから、

curl curl u + u = OmegaC の curl J

uxn = ガンマのグラード psi xn

すなわち:

problem curlcurlC([HCx,HCy,HCz],[wCx,wCy,wCz], solver=CG)=

 int3d(ThC)(Curl(HCx,HCy,HCz)'*Curl(wCx,wCy,wCz))
+int3d(ThC)([HCx,HCy,HCz]'*[wCx,wCy,wCz])
-int3d(ThC)([gx,gy,gz]'*[wCx,wCy,wCz])
+on(interiorC, HCx=dx(psiI), HCy=dy(psiI), HCz=dz(psiI));

([gx,gy,gz] は [Jx,Jy,Jz] のカール)

最後に、ベクトル フィールド lambda: を更新する必要があります [lambdax,lambday,lambdaz]=(1-theta)*[lambdax,lambday,lambdaz]+theta*([Jx,Jy,Jz]-Curl(HCx,HCy,HCz))

解決策は反復によって変化していません。問題はラムダの更新にあると思います。

何か考えはありますか?

4

0 に答える 0