avati91
avati91

Reputation: 111

Domain decomposition 3d electromagnetism FreeFem++

I'm solving a coupling problem of electromagnetism:

"curl curl u + u = curl J in OmegaC

u x n = grad psi x n on Gamma

laplace psi = 0 in Omega I

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

psi = 0 on \partial Omega"

where Omega is the disjoint union of OmegaI and OmegaC, The boundary of OmegaC is Gamma and the boundary of OmegaI is the disjoint union of Gamma and \partial Omega.

I want to solve this problem using Domain Decomposition (I'm following page 120 of Alonso, Valli "Eddy current approximation of Maxwell equations"). First of all, I notice that the second interface equation on Gamma can be rewritten as grad psi\cdot n = div_tau ((J-curl u) x n) on Gamma where div_tau is the tangential divergence and where I used the identity: curl u \cdot n = div_tau(u x n).

The iterative scheme becomes: given a vector field lambda, first solve

laplace psi = 0 in Omega I

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

psi = 0 on \partial Omega

namely, using integration by parts and FreeFem++ syntax:

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

then,

curl curl u + u = curl J in OmegaC

u x n = grad psi x n on Gamma

namely:

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

(where [gx,gy,gz] is the curl of [Jx,Jy,Jz])

Finally, we need to update the vector field lambda: [lambdax,lambday,lambdaz]=(1-theta)*[lambdax,lambday,lambdaz]+theta*([Jx,Jy,Jz]-Curl(HCx,HCy,HCz)).

The solutions are not changing with the iterations. I guess the problem is with the updating of lambda.

Do you have any idea?

Upvotes: 1

Views: 258

Answers (0)

Related Questions