% Reference stiffness matrix A and mass matrix M for
% standard linear elements on a 4 x 4 triangulation
% of the unit square (0,1) x (0,1).
%
% Anders Logg, 2003-03-03
% logg@math.chalmers.se
%
% Some simple tests:
%
%   1. det(full(2*A))     should give 0
%   2. sum(A)             should give 0
%   3. sum(sum(M))        should give 1
%
% We would really like det(A) to give 0, but this doesn't work
% because of round-off errors.

A = sparse(25,25);

A(1,1)   =  1.0;
A(2,1)   = -0.5;
A(6,1)   = -0.5;
A(1,2)   = -0.5;
A(2,2)   =  2.0;
A(3,2)   = -0.5;
A(7,2)   = -1.0;
A(2,3)   = -0.5;
A(3,3)   =  2.0;
A(4,3)   = -0.5;
A(8,3)   = -1.0;
A(3,4)   = -0.5;
A(4,4)   =  2.0;
A(5,4)   = -0.5;
A(9,4)   = -1.0;
A(4,5)   = -0.5;
A(5,5)   =  1.0;
A(10,5)  = -0.5;
A(1,6)   = -0.5;
A(6,6)   =  2.0;
A(7,6)   = -1.0;
A(11,6)  = -0.5;
A(2,7)   = -1.0;
A(6,7)   = -1.0;
A(7,7)   =  4.0;
A(8,7)   = -1.0;
A(12,7)  = -1.0;
A(3,8)   = -1.0;
A(7,8)   = -1.0;
A(8,8)   =  4.0;
A(9,8)   = -1.0;
A(13,8)  = -1.0;
A(4,9)   = -1.0;
A(8,9)   = -1.0;
A(9,9)   =  4.0;
A(10,9)  = -1.0;
A(14,9)  = -1.0;
A(5,10)  = -0.5;
A(9,10)  = -1.0;
A(10,10) =  2.0;
A(15,10) = -0.5;
A(6,11)  = -0.5;
A(11,11) =  2.0;
A(12,11) = -1.0;
A(16,11) = -0.5;
A(7,12)  = -1.0;
A(11,12) = -1.0;
A(12,12) =  4.0;
A(13,12) = -1.0;
A(17,12) = -1.0;
A(8,13)  = -1.0;
A(12,13) = -1.0;
A(13,13) =  4.0;
A(14,13) = -1.0;
A(18,13) = -1.0;
A(9,14)  = -1.0;
A(13,14) = -1.0;
A(14,14) =  4.0;
A(15,14) = -1.0;
A(19,14) = -1.0;
A(10,15) = -0.5;
A(14,15) = -1.0;
A(15,15) =  2.0;
A(20,15) = -0.5;
A(11,16) = -0.5;
A(16,16) =  2.0;
A(17,16) = -1.0;
A(21,16) = -0.5;
A(12,17) = -1.0;
A(16,17) = -1.0;
A(17,17) =  4.0;
A(18,17) = -1.0;
A(22,17) = -1.0;
A(13,18) = -1.0;
A(17,18) = -1.0;
A(18,18) =  4.0;
A(19,18) = -1.0;
A(23,18) = -1.0;
A(14,19) = -1.0;
A(18,19) = -1.0;
A(19,19) =  4.0;
A(20,19) = -1.0;
A(24,19) = -1.0;
A(15,20) = -0.5;
A(19,20) = -1.0;
A(20,20) =  2.0;
A(25,20) = -0.5;
A(16,21) = -0.5;
A(21,21) =  1.0;
A(22,21) = -0.5;
A(17,22) = -1.0;
A(21,22) = -0.5;
A(22,22) =  2.0;
A(23,22) = -0.5;
A(18,23) = -1.0;
A(22,23) = -0.5;
A(23,23) =  2.0;
A(24,23) = -0.5;
A(19,24) = -1.0;
A(23,24) = -0.5;
A(24,24) =  2.0;
A(25,24) = -0.5;
A(20,25) = -0.5;
A(24,25) = -0.5;
A(25,25) =  1.0;

M = sparse(25,25);

M(1,1)   = 1.041666666666667e-02;
M(2,1)   = 2.604166666666667e-03;
M(6,1)   = 2.604166666666667e-03;
M(7,1)   = 5.208333333333333e-03;
M(1,2)   = 2.604166666666667e-03;
M(2,2)   = 1.562500000000000e-02;
M(3,2)   = 2.604166666666667e-03;
M(7,2)   = 5.208333333333333e-03;
M(8,2)   = 5.208333333333333e-03;
M(2,3)   = 2.604166666666667e-03;
M(3,3)   = 1.562500000000000e-02;
M(4,3)   = 2.604166666666667e-03;
M(8,3)   = 5.208333333333333e-03;
M(9,3)   = 5.208333333333333e-03;
M(3,4)   = 2.604166666666667e-03;
M(4,4)   = 1.562500000000000e-02;
M(5,4)   = 2.604166666666667e-03;
M(9,4)   = 5.208333333333333e-03;
M(10,4)  = 5.208333333333333e-03;
M(4,5)   = 2.604166666666667e-03;
M(5,5)   = 5.208333333333333e-03;
M(10,5)  = 2.604166666666667e-03;
M(1,6)   = 2.604166666666667e-03;
M(6,6)   = 1.562500000000000e-02;
M(7,6)   = 5.208333333333333e-03;
M(11,6)  = 2.604166666666667e-03;
M(12,6)  = 5.208333333333333e-03;
M(1,7)   = 5.208333333333333e-03;
M(2,7)   = 5.208333333333333e-03;
M(6,7)   = 5.208333333333333e-03;
M(7,7)   = 3.125000000000000e-02;
M(8,7)   = 5.208333333333333e-03;
M(12,7)  = 5.208333333333333e-03;
M(13,7)  = 5.208333333333333e-03;
M(2,8)   = 5.208333333333333e-03;
M(3,8)   = 5.208333333333333e-03;
M(7,8)   = 5.208333333333333e-03;
M(8,8)   = 3.125000000000000e-02;
M(9,8)   = 5.208333333333333e-03;
M(13,8)  = 5.208333333333333e-03;
M(14,8)  = 5.208333333333333e-03;
M(3,9)   = 5.208333333333333e-03;
M(4,9)   = 5.208333333333333e-03;
M(8,9)   = 5.208333333333333e-03;
M(9,9)   = 3.125000000000000e-02;
M(10,9)  = 5.208333333333333e-03;
M(14,9)  = 5.208333333333333e-03;
M(15,9)  = 5.208333333333333e-03;
M(4,10)  = 5.208333333333333e-03;
M(5,10)  = 2.604166666666667e-03;
M(9,10)  = 5.208333333333333e-03;
M(10,10) = 1.562500000000000e-02;
M(15,10) = 2.604166666666667e-03;
M(6,11)  = 2.604166666666667e-03;
M(11,11) = 1.562500000000000e-02;
M(12,11) = 5.208333333333333e-03;
M(16,11) = 2.604166666666667e-03;
M(17,11) = 5.208333333333333e-03;
M(6,12)  = 5.208333333333333e-03;
M(7,12)  = 5.208333333333333e-03;
M(11,12) = 5.208333333333333e-03;
M(12,12) = 3.125000000000000e-02;
M(13,12) = 5.208333333333333e-03;
M(17,12) = 5.208333333333333e-03;
M(18,12) = 5.208333333333333e-03;
M(7,13)  = 5.208333333333333e-03;
M(8,13)  = 5.208333333333333e-03;
M(12,13) = 5.208333333333333e-03;
M(13,13) = 3.125000000000000e-02;
M(14,13) = 5.208333333333333e-03;
M(18,13) = 5.208333333333333e-03;
M(19,13) = 5.208333333333333e-03;
M(8,14)  = 5.208333333333333e-03;
M(9,14)  = 5.208333333333333e-03;
M(13,14) = 5.208333333333333e-03;
M(14,14) = 3.125000000000000e-02;
M(15,14) = 5.208333333333333e-03;
M(19,14) = 5.208333333333333e-03;
M(20,14) = 5.208333333333333e-03;
M(9,15)  = 5.208333333333333e-03;
M(10,15) = 2.604166666666667e-03;
M(14,15) = 5.208333333333333e-03;
M(15,15) = 1.562500000000000e-02;
M(20,15) = 2.604166666666667e-03;
M(11,16) = 2.604166666666667e-03;
M(16,16) = 1.562500000000000e-02;
M(17,16) = 5.208333333333333e-03;
M(21,16) = 2.604166666666667e-03;
M(22,16) = 5.208333333333333e-03;
M(11,17) = 5.208333333333333e-03;
M(12,17) = 5.208333333333333e-03;
M(16,17) = 5.208333333333333e-03;
M(17,17) = 3.125000000000000e-02;
M(18,17) = 5.208333333333333e-03;
M(22,17) = 5.208333333333333e-03;
M(23,17) = 5.208333333333333e-03;
M(12,18) = 5.208333333333333e-03;
M(13,18) = 5.208333333333333e-03;
M(17,18) = 5.208333333333333e-03;
M(18,18) = 3.125000000000000e-02;
M(19,18) = 5.208333333333333e-03;
M(23,18) = 5.208333333333333e-03;
M(24,18) = 5.208333333333333e-03;
M(13,19) = 5.208333333333333e-03;
M(14,19) = 5.208333333333333e-03;
M(18,19) = 5.208333333333333e-03;
M(19,19) = 3.125000000000000e-02;
M(20,19) = 5.208333333333333e-03;
M(24,19) = 5.208333333333333e-03;
M(25,19) = 5.208333333333333e-03;
M(14,20) = 5.208333333333333e-03;
M(15,20) = 2.604166666666667e-03;
M(19,20) = 5.208333333333333e-03;
M(20,20) = 1.562500000000000e-02;
M(25,20) = 2.604166666666667e-03;
M(16,21) = 2.604166666666667e-03;
M(21,21) = 5.208333333333333e-03;
M(22,21) = 2.604166666666667e-03;
M(16,22) = 5.208333333333333e-03;
M(17,22) = 5.208333333333333e-03;
M(21,22) = 2.604166666666667e-03;
M(22,22) = 1.562500000000000e-02;
M(23,22) = 2.604166666666667e-03;
M(17,23) = 5.208333333333333e-03;
M(18,23) = 5.208333333333333e-03;
M(22,23) = 2.604166666666667e-03;
M(23,23) = 1.562500000000000e-02;
M(24,23) = 2.604166666666667e-03;
M(18,24) = 5.208333333333333e-03;
M(19,24) = 5.208333333333333e-03;
M(23,24) = 2.604166666666667e-03;
M(24,24) = 1.562500000000000e-02;
M(25,24) = 2.604166666666667e-03;
M(19,25) = 5.208333333333333e-03;
M(20,25) = 2.604166666666667e-03;
M(24,25) = 2.604166666666667e-03;
M(25,25) = 1.041666666666667e-02;
