If I change the order of Dirichlet boundary with the Dirichlet condition function on() the value of the vertices on corner change.
The problem is a Laplace problem, with value 500 on the button and 0 at the rest.
//Code for result 1
mesh Th = readmesh("Th2.msh");
fespace Vh(Th,P1);
Vh u,v;
solve Laplace(u,v) = int2d(Th)( dx(u)*dx(v) + dy(u)*dy(v)) + on(1,u=500) + on(2,3,4,u=0) ;
//Code for result 2
mesh Th = readmesh("Th2.msh");
fespace Vh(Th,P1);
Vh u,v;
solve Laplace(u,v) = int2d(Th)( dx(u)*dx(v) + dy(u)*dy(v)) + on(2,3,4,u=0) + on(1,u=500);
My Mesh:
17 20 12
0 80 4
0 53.3333333333 4
26.6666666667 80 3
53.3333333333 80 3
0 26.6666666667 4
0 0 1
26.6666666257 53.3333332924 0
80 80 3
57.7777777368 57.7777777368 0
26.6666666257 26.6666666257 0
26.6666666667 0 1
62.2222221812 35.5555555146 0
80 53.3333333333 2
44.4444444035 17.7777777368 0
53.3333333333 0 1
80 26.6666666667 2
80 0 1
3 1 2 0
2 5 7 0
14 10 11 0
15 14 11 0
3 2 7 0
9 8 4 0
4 3 7 0
12 9 7 0
10 7 5 0
11 10 5 0
14 12 10 0
16 12 15 0
9 13 8 0
7 9 4 0
12 13 9 0
15 12 14 0
16 13 12 0
10 12 7 0
15 17 16 0
6 11 5 0
1 2 4
2 5 4
5 6 4
8 4 3
4 3 3
3 1 3
17 16 2
16 13 2
13 8 2
6 11 1
11 15 1
15 17 1