1load "Element_Mixte"
2/*
3   Solving the following Poisson problem
4   Find $p$, such that;
5   $ - \Delta p = f $   on $\Omega$,
6   $ dp / dn = (g1d,g2d). n  $ on $\Gamma_{123}$
7   $ p = gd  $ on $\Gamma_{1}$
8  with de Mixte finite element formulation
9   Find $p\in L^2(\Omega)   and $u\in H(div) $ such than
10    u - Grad p = 0
11    - div u =  f
12   $  u. n = (g1d,g2d). n  $ on $\Gamma_{123}$
13   $ p = gd  $ on $\Gamma_{1}$
14
15   the variationnel form is:
16 $\forall v\in H(div)$;  $v.n = 0$ on $\Gamma_{4}\} $:    $ \int_\Omega  u v + p div v -\int_{\Gamma_{123}} gd* v.n  = 0 $
17
18 $\forall q\in L^2$:   $  -\int_\Omega q div u = \int_Omega f q  $
19and $ u.n = (g1n,g2n).n$ on $\Gamma_4$
20
21*/
22mesh Th=square(10,10);
23fespace Vh(Th,RT1);
24fespace Ph(Th,P1dc);
25
26func gd = 1.;
27func g1n = 1.;
28func g2n = 1.;
29func f = 1.;
30
31Vh [u1,u2],[v1,v2];
32Ph p,q;
33
34problem laplaceMixte([u1,u2,p],[v1,v2,q],solver="SPARSESOLVER",eps=1.0e-10,tgv=1e30,dimKrylov=150) =
35   int2d(Th)( p*q*0e-10+ u1*v1 + u2*v2 + p*(dx(v1)+dy(v2)) + (dx(u1)+dy(u2))*q )
36 + int2d(Th) ( f*q)
37 - int1d(Th,1,2,3)( gd*(v1*N.x +v2*N.y))   //  int on gamma
38 + on(4,u1=g1n,u2=g2n);
39
40 laplaceMixte;
41 plot([u1,u2],coef=0.1,wait=1,ps="o/lapRTuv.eps",value=true);
42 plot(p,fill=1,wait=1,ps="o/laRTp.eps",value=true);
43