https://defelement.org/elements/examples/triangle-arnold-winther-2.html
I found that the dual basis \Phi_17, \Phi_18, \Phi_19, \Phi_20 should be multiplied by sqrt(2) (although several hours ago, they were \Phi_9 to \Phi_12), the others are correct. For example, l_17(\Phi_17)= sqrt(2)/2, rather than 1. This suggests the sqrt(2) is missing. The following is the matlab code.
syms x y s0
phi17=[3x(-x^2+3xy+2x-1), 9xy(x-y);
9xy*(x-y), 3y(-3xy+4*x+y^2-1)];
npn=[-sqrt(2)/2,-sqrt(2)/2]phi17[-sqrt(2)/2;-sqrt(2)/2];
f=(1-s0)*subs(npn,{x,y},{1-s0,s0});
sqrt(2)*integral(matlabFunction(f),0,1)
ans =
%which is equal to sqrt(2)/2, rather than 1.
Besides, I used DefElement to verify the dual basis calculated by my code, this also suggests the missing sqrt(2).
https://defelement.org/elements/examples/triangle-arnold-winther-2.html
I found that the dual basis \Phi_17, \Phi_18, \Phi_19, \Phi_20 should be multiplied by sqrt(2) (although several hours ago, they were \Phi_9 to \Phi_12), the others are correct. For example, l_17(\Phi_17)= sqrt(2)/2, rather than 1. This suggests the sqrt(2) is missing. The following is the matlab code.
ans =
Besides, I used DefElement to verify the dual basis calculated by my code, this also suggests the missing sqrt(2).