FETI-method in FreeFEM

Hi everyone,

I changed some things up in my code and all of a sudden, my Dirichlet conditions aren’t working anymore. I receive the message “We expected an unknown u=… of the problem”. Can please someone tell me what is wrong here? The error occurs in problem pb1 and pb2:

macro dn(u)(dx(u)*N.x+dy(u)*N.y) //

// Parameters
int inside = 2; int outside = 1; int n = 4;

// Mesh
border a(t=1, 2){x=t; y=0; label=outside;};
border b(t=0, 1){x=2; y=t; label=outside;};
border c(t=2, 0){x=t; y=1; label=outside;};
border d(t=1, 0){x=1-t; y=t; label=inside;};
border g(t=0, 1){x=1-t; y=t; label=inside;};
border g1(t=pi/2, 2*pi){x=cos(t); y=sin(t); label=outside;};

mesh th = buildmesh(a(5n) + b(5n) + c(10n) + d(5n));
mesh TH = buildmesh(g(5n) + g1(25n));

fespace vh(th, P2);
vh u, v, w=0, e;

fespace VH(TH, P2);
VH U, V, W=0, E;

// Problem
problem PB1 (U, V, init=0, solver=Cholesky)
= int2d(TH)(
+ dy(U)dy(V)
+ int2d(TH)(
- V
+ int1d(TH, inside)(
(dn(W) - (1/2)
(dn(W) + dn(w))))
+ on(outside, U=0);

problem PB2 (u, v, init=0, solver=Cholesky)
= int2d(th)(
+ dy(u)dy(v)
+ int2d(th)(
- v
+ int1d(th, inside)(
(dn(w) - (1/2)
(dn(W) + dn(w))))
+ on(outside, u=0);

problem pb1 (E, V, init=0, solver=Cholesky)
= int2d(TH)(
+ dy(E)dy(V)
+ on(inside, E=(1/2)
+ on(outside, E=0);

problem pb2 (e, v, init=0, solver=Cholesky)
= int2d(th)(
+ dy(e)dy(v)
+ on(inside, e=(1/2)
+ on(outside, e=0);

int i = 0;
for (i = 0; i < 10; i++){
// Solve

W = U + E;
w = u + e;
plot(W, w, wait=true);


// Plot
plot(W, w);

Thank you in advance!

Okay, unnecessary question: The problems are the semicola behind “+ on(inside, E=(1/2)*(u-U))”

I somehow dont get the right output. I tried to implement the FETI-method from the Domain Decomposition book of Nataf (see picture). Can someone see what’s the issue here? The plots are just the same and do not look like a good solution.