域分解3d电磁FreeFem ++

时间:2016-06-03 09:16:44

标签: math pde numerical-analysis freefem++

我正在解决电磁耦合问题:

“在OmegaC中卷曲你+ + u =卷曲J

u x n = Gamma上的grad psi x n

在Omega I中laplace psi = 0

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

psi = 0 on \ partial Omega“

Omega是OmegaI和OmegaC的不相交联盟,OmegaC的边界是Gamma,而OmegaI的边界是Gamma和\ partial Omega的不相交联合。

我想使用域分解来解决这个问题(我正在遵循Alonso的第120页,Valli“麦克斯韦方程的涡流近似”)。 首先,我注意到Gamma上的第二个接口方程可以重写为 Gamma上的grad psi \ cdot n = div_tau((J-curl u)x n) 其中div_tau是切向差异,我使用了身份:curl u \ cdot n = div_tau(u x n)。

迭代方案变为:给定矢量场lambda, 先解决

在Omega I中laplace psi = 0

毕业psi \ cdot n = div_tau(lambda x n)在Gamma上

psi = 0 on \ partial Omega

即使用部件集成和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);

然后,

curme curl u + u =在OmegaC中卷曲J

u x n = Gamma上的grad psi x n

即:

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))

解决方案不随迭代而改变。我想问题是lambda的更新。

你有什么想法吗?

0 个答案:

没有答案