Sat Jan 17 10:12:35 2026 laplacian_matrix_test(): python version: 3.10.12 numpy version: 1.26.4 Test laplacian_matrix() laplacian_matrix_test01(): A full-storage matrix is returned by: L1DD: Dirichlet/Dirichlet BC L1DN: Dirichlet/Neumann BC L1ND: Neumann/Dirichlet BC L1NN: Neumann/Neumann BC L1PP: Periodic BC Using spacing H = 1.0 L1DD: [[ 2. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 2.]] L1DN: [[ 2. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 1.]] L1ND: [[ 1. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 2.]] L1NN: [[ 1. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 1.]] L1PP: [[ 2. -1. 0. 0. -1.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [-1. 0. 0. -1. 2.]] Using spacing H = 0.16666666666666666 L1DD: [[ 72. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 72.]] L1DN: [[ 72. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 36.]] L1ND: [[ 36. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 72.]] L1NN: [[ 36. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 36.]] L1PP: [[ 72. -36. 0. 0. -36.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [-36. 0. 0. -36. 72.]] laplacian_matrix_test02(): The Laplacian L is applied to data U by: L1DD_APPLY for Dirichlet/Dirichlet BC L1DN_APPLY for Dirichlet/Neumann BC L1ND_APPLY for Neumann/Dirichlet BC L1NN_APPLY for Neumann/Neumann BC L1PP_APPLY for Periodic BC Using spacing H = 0.1 Vector U: [0.09 0.16 0.21 0.24 0.25 0.24 0.21 0.16 0.09] L1DD(U): [2. 2. 2. 2. 2. 2. 2. 2. 2.] L1DN(U): [ 2. 2. 2. 2. 2. 2. 2. 2. -7.] L1ND(U): [-7. 2. 2. 2. 2. 2. 2. 2. 2.] L1NN(U): [-7. 2. 2. 2. 2. 2. 2. 2. -7.] L1PP(U): [-7. 2. 2. 2. 2. 2. 2. 2. -7.] laplacian_matrix_test03(): Compute eigen information for the Laplacian: L1DD_EIGEN for Dirichlet/Dirichlet BC L1DN_EIGEN for Dirichlet/Neumann BC L1ND_EIGEN for Neumann/Dirichlet BC L1NN_EIGEN for Neumann/Neumann BC L1PP_EIGEN for Periodic BC Using spacing H = 1.0 L1DD Eigenvalues: [0.26794919 1. 2. 3. 3.73205081] L1DD Eigenvectors: [[ 2.88675135e-01 5.00000000e-01 5.77350269e-01 5.00000000e-01 2.88675135e-01] [ 5.00000000e-01 5.00000000e-01 7.07050159e-17 -5.00000000e-01 -5.00000000e-01] [ 5.77350269e-01 7.07050159e-17 -5.77350269e-01 -1.41410032e-16 5.77350269e-01] [ 5.00000000e-01 -5.00000000e-01 -1.41410032e-16 5.00000000e-01 -5.00000000e-01] [ 2.88675135e-01 -5.00000000e-01 5.77350269e-01 -5.00000000e-01 2.88675135e-01]] L1DD eigenerror = 1.0709931283124905e-15 L1DN Eigenvalues: [0. 0. 1.71537032 2.83083003 3.68250707] L1DN Eigenvectors: [[ 0. 0. 0.59688479 0.54852873 0.32601868] [ 0. 0. 0.16989112 -0.45573414 -0.54852873] [ 0. 0. -0.54852873 -0.16989112 0.59688479] [ 0. 0. -0.32601868 0.59688479 -0.45573414] [ 0. 0. 0.45573414 -0.32601868 0.16989112]] L1DN eigenerror = 1.4368705231798434e-15 L1ND Eigenvalues: [0.08101405 0.69027853 1.71537032 2.83083003 3.68250707] L1ND Eigenvectors: [[ 0.59688479 0.54852873 0.45573414 0.32601868 0.16989112] [ 0.54852873 0.16989112 -0.32601868 -0.59688479 -0.45573414] [ 0.45573414 -0.32601868 -0.54852873 0.16989112 0.59688479] [ 0.32601868 -0.59688479 0.16989112 0.45573414 -0.54852873] [ 0.16989112 -0.45573414 0.59688479 -0.54852873 0.32601868]] L1ND eigenerror = 1.4370966918545696e-15 L1NN Eigenvalues: [0. 0.38196601 1.38196601 2.61803399 3.61803399] L1NN Eigenvectors: [[ 2.23606798e+00 6.01500955e-01 5.11667274e-01 3.71748034e-01 1.95439508e-01] [ 2.23606798e+00 3.71748034e-01 -1.95439508e-01 -6.01500955e-01 -5.11667274e-01] [ 2.23606798e+00 3.87267321e-17 -6.32455532e-01 -1.16180196e-16 6.32455532e-01] [ 2.23606798e+00 -3.71748034e-01 -1.95439508e-01 6.01500955e-01 -5.11667274e-01] [ 2.23606798e+00 -6.01500955e-01 5.11667274e-01 -3.71748034e-01 1.95439508e-01]] L1NN eigenerror = 8.605877676720563e-16 L1PP Eigenvalues: [0. 1.38196601 1.38196601 3.61803399 3.61803399] L1PP Eigenvectors: [[ 4.47213595e-01 3.71748034e-01 5.11667274e-01 6.01500955e-01 1.95439508e-01] [ 4.47213595e-01 6.01500955e-01 -1.95439508e-01 -3.71748034e-01 -5.11667274e-01] [ 4.47213595e-01 7.74534643e-17 -6.32455532e-01 -1.54906929e-16 6.32455532e-01] [ 4.47213595e-01 -6.01500955e-01 -1.95439508e-01 3.71748034e-01 -5.11667274e-01] [ 4.47213595e-01 -3.71748034e-01 5.11667274e-01 -6.01500955e-01 1.95439508e-01]] L1PP eigenerror = 8.061931356463372e-16 Using spacing H = 0.16666666666666666 L1DD Eigenvalues: [ 9.64617093 36. 72. 108. 134.35382907] L1DD Eigenvectors: [[ 2.88675135e-01 5.00000000e-01 5.77350269e-01 5.00000000e-01 2.88675135e-01] [ 5.00000000e-01 5.00000000e-01 7.07050159e-17 -5.00000000e-01 -5.00000000e-01] [ 5.77350269e-01 7.07050159e-17 -5.77350269e-01 -1.41410032e-16 5.77350269e-01] [ 5.00000000e-01 -5.00000000e-01 -1.41410032e-16 5.00000000e-01 -5.00000000e-01] [ 2.88675135e-01 -5.00000000e-01 5.77350269e-01 -5.00000000e-01 2.88675135e-01]] L1DD eigenerror = 4.5723604548226586e-14 L1DN Eigenvalues: [ 0. 0. 61.75333164 101.90988094 132.57025436] L1DN Eigenvectors: [[ 0. 0. 0.59688479 0.54852873 0.32601868] [ 0. 0. 0.16989112 -0.45573414 -0.54852873] [ 0. 0. -0.54852873 -0.16989112 0.59688479] [ 0. 0. -0.32601868 0.59688479 -0.45573414] [ 0. 0. 0.45573414 -0.32601868 0.16989112]] L1DN eigenerror = 4.3800795900274466e-14 L1ND Eigenvalues: [ 2.9165059 24.85002716 61.75333164 101.90988094 132.57025436] L1ND Eigenvectors: [[ 0.59688479 0.54852873 0.45573414 0.32601868 0.16989112] [ 0.54852873 0.16989112 -0.32601868 -0.59688479 -0.45573414] [ 0.45573414 -0.32601868 -0.54852873 0.16989112 0.59688479] [ 0.32601868 -0.59688479 0.16989112 0.45573414 -0.54852873] [ 0.16989112 -0.45573414 0.59688479 -0.54852873 0.32601868]] L1ND eigenerror = 5.713777654197304e-14 L1NN Eigenvalues: [ 0. 13.75077641 49.75077641 94.24922359 130.24922359] L1NN Eigenvectors: [[ 2.23606798e+00 6.01500955e-01 5.11667274e-01 3.71748034e-01 1.95439508e-01] [ 2.23606798e+00 3.71748034e-01 -1.95439508e-01 -6.01500955e-01 -5.11667274e-01] [ 2.23606798e+00 3.87267321e-17 -6.32455532e-01 -1.16180196e-16 6.32455532e-01] [ 2.23606798e+00 -3.71748034e-01 -1.95439508e-01 6.01500955e-01 -5.11667274e-01] [ 2.23606798e+00 -6.01500955e-01 5.11667274e-01 -3.71748034e-01 1.95439508e-01]] L1NN eigenerror = 2.821542753436901e-14 L1PP Eigenvalues: [ 0. 49.75077641 49.75077641 130.24922359 130.24922359] L1PP Eigenvectors: [[ 4.47213595e-01 3.71748034e-01 5.11667274e-01 6.01500955e-01 1.95439508e-01] [ 4.47213595e-01 6.01500955e-01 -1.95439508e-01 -3.71748034e-01 -5.11667274e-01] [ 4.47213595e-01 7.74534643e-17 -6.32455532e-01 -1.54906929e-16 6.32455532e-01] [ 4.47213595e-01 -6.01500955e-01 -1.95439508e-01 3.71748034e-01 -5.11667274e-01] [ 4.47213595e-01 -3.71748034e-01 5.11667274e-01 -6.01500955e-01 1.95439508e-01]] L1PP eigenerror = 4.3957349452184525e-14 laplacian_matrix_test04(): The inverse of a full-storage matrix is returned by: L1DD_INVERSE: Dirichlet/Dirichlet BC L1DN_INVERSE: Dirichlet/Neumann BC L1ND_INVERSE: Neumann/Dirichlet BC Using spacing H = 1.0 L1DD: [[ 2. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 2.]] L1DD_INVERSE: [[0.83333333 0.66666667 0.5 0.33333333 0.16666667] [0.66666667 1.33333333 1. 0.66666667 0.33333333] [0.5 1. 1.5 1. 0.5 ] [0.33333333 0.66666667 1. 1.33333333 0.66666667] [0.16666667 0.33333333 0.5 0.66666667 0.83333333]] L1DD inverse error = 6.866350197783356e-16 L1DN: [[ 2. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 1.]] L1DN_INVERSE: [[1. 1. 1. 1. 1.] [1. 2. 2. 2. 2.] [1. 2. 3. 3. 3.] [1. 2. 3. 4. 4.] [1. 2. 3. 4. 5.]] L1DN inverse error = 0.0 L1ND: [[ 1. -1. 0. 0. 0.] [-1. 2. -1. 0. 0.] [ 0. -1. 2. -1. 0.] [ 0. 0. -1. 2. -1.] [ 0. 0. 0. -1. 2.]] L1ND_INVERSE: [[5. 4. 3. 2. 1.] [4. 4. 3. 2. 1.] [3. 3. 3. 2. 1.] [2. 2. 2. 2. 1.] [1. 1. 1. 1. 1.]] L1ND inverse error = 0.0 Using spacing H = 0.16666666666666666 L1DD: [[ 72. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 72.]] L1DD_INVERSE: [[0.02314815 0.01851852 0.01388889 0.00925926 0.00462963] [0.01851852 0.03703704 0.02777778 0.01851852 0.00925926] [0.01388889 0.02777778 0.04166667 0.02777778 0.01388889] [0.00925926 0.01851852 0.02777778 0.03703704 0.01851852] [0.00462963 0.00925926 0.01388889 0.01851852 0.02314815]] L1DD inverse error = 1.1660645525601868e-15 L1DN: [[ 72. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 36.]] L1DN_INVERSE: [[0.02777778 0.02777778 0.02777778 0.02777778 0.02777778] [0.02777778 0.05555556 0.05555556 0.05555556 0.05555556] [0.02777778 0.05555556 0.08333333 0.08333333 0.08333333] [0.02777778 0.05555556 0.08333333 0.11111111 0.11111111] [0.02777778 0.05555556 0.08333333 0.11111111 0.13888889]] L1DN inverse error = 2.638970003411226e-15 L1ND: [[ 36. -36. 0. 0. 0.] [-36. 72. -36. 0. 0.] [ 0. -36. 72. -36. 0.] [ 0. 0. -36. 72. -36.] [ 0. 0. 0. -36. 72.]] L1ND_INVERSE: [[0.13888889 0.11111111 0.08333333 0.05555556 0.02777778] [0.11111111 0.11111111 0.08333333 0.05555556 0.02777778] [0.08333333 0.08333333 0.08333333 0.05555556 0.02777778] [0.05555556 0.05555556 0.05555556 0.05555556 0.02777778] [0.02777778 0.02777778 0.02777778 0.02777778 0.02777778]] L1ND inverse error = 2.526824677660198e-15 laplacian_matrix_test05(): Compute upper Cholesky factors for the Laplacian: L1DD_CHOLESKY for Dirichlet/Dirichlet BC L1DN_CHOLESKY for Dirichlet/Neumann BC L1ND_CHOLESKY for Neumann/Dirichlet BC L1NN_CHOLESKY for Neumann/Neumann BC L1PP_CHOLESKY for Periodic BC Using spacing H = 1.0 L1DD Cholesky factor: [[ 1.41421356 -0.70710678 0. 0. 0. ] [ 0. 1.22474487 -0.81649658 0. 0. ] [ 0. 0. 1.15470054 -0.8660254 0. ] [ 0. 0. 0. 1.11803399 -0.89442719] [ 0. 0. 0. 0. 1.09544512]] L1DD Cholesky error = 8.005932084973442e-16 L1DN Cholesky factor: [[ 1.41421356 -0.70710678 0. 0. 0. ] [ 0. 1.22474487 -0.81649658 0. 0. ] [ 0. 0. 1.15470054 -0.8660254 0. ] [ 0. 0. 0. 1.11803399 -0.89442719] [ 0. 0. 0. 0. 0.4472136 ]] L1DN Cholesky error = 7.771561172376096e-16 L1ND Cholesky factor: [[ 1. -1. 0. 0. 0.] [ 0. 1. -1. 0. 0.] [ 0. 0. 1. -1. 0.] [ 0. 0. 0. 1. -1.] [ 0. 0. 0. 0. 1.]] L1ND Cholesky error = 0.0 L1NN Cholesky factor: [[ 1. -1. 0. 0. 0.] [ 0. 1. -1. 0. 0.] [ 0. 0. 1. -1. 0.] [ 0. 0. 0. 1. -1.] [ 0. 0. 0. 0. 0.]] L1NN Cholesky error = 0.0 L1PP Cholesky factor: [[ 1.41421356 -0.70710678 0. 0. -0.70710678] [ 0. 1.22474487 -0.81649658 0. -0.40824829] [ 0. 0. 1.15470054 -0.8660254 -0.28867513] [ 0. 0. 0. 1.11803399 -1.11803399] [ 0. 0. 0. 0. 0. ]] L1PP Cholesky error = 1.0897996476130759e-15 Using spacing H = 0.16666666666666666 L1DD Cholesky factor: [[ 8.48528137 -4.24264069 0. 0. 0. ] [ 0. 7.34846923 -4.89897949 0. 0. ] [ 0. 0. 6.92820323 -5.19615242 0. ] [ 0. 0. 0. 6.70820393 -5.36656315] [ 0. 0. 0. 0. 6.57267069]] L1DD Cholesky error = 3.759838749409412e-14 L1DN Cholesky factor: [[ 8.48528137 -4.24264069 0. 0. 0. ] [ 0. 7.34846923 -4.89897949 0. 0. ] [ 0. 0. 6.92820323 -5.19615242 0. ] [ 0. 0. 0. 6.70820393 -5.36656315] [ 0. 0. 0. 0. 2.68328157]] L1DN Cholesky error = 3.759838749409412e-14 L1ND Cholesky factor: [[ 6. -6. 0. 0. 0.] [ 0. 6. -6. 0. 0.] [ 0. 0. 6. -6. 0.] [ 0. 0. 0. 6. -6.] [ 0. 0. 0. 0. 6.]] L1ND Cholesky error = 0.0 L1NN Cholesky factor: [[ 6. -6. 0. 0. 0.] [ 0. 6. -6. 0. 0.] [ 0. 0. 6. -6. 0.] [ 0. 0. 0. 6. -6.] [ 0. 0. 0. 0. 0.]] L1NN Cholesky error = 0.0 L1PP Cholesky factor: [[ 8.48528137 -4.24264069 0. 0. -4.24264069] [ 0. 7.34846923 -4.89897949 0. -2.44948974] [ 0. 0. 6.92820323 -5.19615242 -1.73205081] [ 0. 0. 0. 6.70820393 -6.70820393] [ 0. 0. 0. 0. 0. ]] L1PP Cholesky error = 4.1121669330639015e-14 laplacian_matrix_test06(): Compute LU factors for the Laplacian: L1DD_LU for Dirichlet/Dirichlet BC L1DN_LU for Dirichlet/Neumann BC L1ND_LU for Neumann/Dirichlet BC L1NN_LU for Neumann/Neumann BC L1PP_LU for Periodic BC Using spacing H = 1.0 L1DD L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [ 0. 0. 0. -0.8 1. ]] L1DD U factor: [[ 2. -1. 0. 0. 0. ] [ 0. 1.5 -1. 0. 0. ] [ 0. 0. 1.33333333 -1. 0. ] [ 0. 0. 0. 1.25 -1. ] [ 0. 0. 0. 0. 1.2 ]] L1DD LU error = 0.0 L1DN L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [ 0. 0. 0. -0.8 1. ]] L1DN U factor: [[ 2. -1. 0. 0. 0. ] [ 0. 1.5 -1. 0. 0. ] [ 0. 0. 1.33333333 -1. 0. ] [ 0. 0. 0. 1.25 -1. ] [ 0. 0. 0. 0. 0.2 ]] L1DN LU error = 0.0 L1ND L factor: [[ 1. 0. 0. 0. 0.] [-1. 1. 0. 0. 0.] [ 0. -1. 1. 0. 0.] [ 0. 0. -1. 1. 0.] [ 0. 0. 0. -1. 1.]] L1ND U factor: [[ 1. -1. 0. 0. 0.] [ 0. 1. -1. 0. 0.] [ 0. 0. 1. -1. 0.] [ 0. 0. 0. 1. -1.] [ 0. 0. 0. 0. 1.]] L1ND LU error = 0.0 L1NN L factor: [[ 1. 0. 0. 0. 0.] [-1. 1. 0. 0. 0.] [ 0. -1. 1. 0. 0.] [ 0. 0. -1. 1. 0.] [ 0. 0. 0. -1. 1.]] L1NN U factor: [[ 1. -1. 0. 0. 0.] [ 0. 1. -1. 0. 0.] [ 0. 0. 1. -1. 0.] [ 0. 0. 0. 1. -1.] [ 0. 0. 0. 0. 0.]] L1NN LU error = 0.0 L1PP L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [-0.5 -0.33333333 -0.25 -1. 1. ]] L1PP U factor: [[ 2. -1. 0. 0. -1. ] [ 0. 1.5 -1. 0. -0.5 ] [ 0. 0. 1.33333333 -1. -0.33333333] [ 0. 0. 0. 1.25 -1.25 ] [ 0. 0. 0. 0. 0. ]] L1PP LU error = 2.7755575615628914e-17 Using spacing H = 0.16666666666666666 L1DD L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [ 0. 0. 0. -0.8 1. ]] L1DD U factor: [[ 72. -36. 0. 0. 0. ] [ 0. 54. -36. 0. 0. ] [ 0. 0. 48. -36. 0. ] [ 0. 0. 0. 45. -36. ] [ 0. 0. 0. 0. 43.2]] L1DD LU error = 0.0 L1DN L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [ 0. 0. 0. -0.8 1. ]] L1DN U factor: [[ 72. -36. 0. 0. 0. ] [ 0. 54. -36. 0. 0. ] [ 0. 0. 48. -36. 0. ] [ 0. 0. 0. 45. -36. ] [ 0. 0. 0. 0. 7.2]] L1DN LU error = 0.0 L1ND L factor: [[ 1. 0. 0. 0. 0.] [-1. 1. 0. 0. 0.] [ 0. -1. 1. 0. 0.] [ 0. 0. -1. 1. 0.] [ 0. 0. 0. -1. 1.]] L1ND U factor: [[ 36. -36. 0. 0. 0.] [ 0. 36. -36. 0. 0.] [ 0. 0. 36. -36. 0.] [ 0. 0. 0. 36. -36.] [ 0. 0. 0. 0. 36.]] L1ND LU error = 0.0 L1NN L factor: [[ 1. 0. 0. 0. 0.] [-1. 1. 0. 0. 0.] [ 0. -1. 1. 0. 0.] [ 0. 0. -1. 1. 0.] [ 0. 0. 0. -1. 1.]] L1NN U factor: [[ 36. -36. 0. 0. 0.] [ 0. 36. -36. 0. 0.] [ 0. 0. 36. -36. 0.] [ 0. 0. 0. 36. -36.] [ 0. 0. 0. 0. 0.]] L1NN LU error = 0.0 L1PP L factor: [[ 1. 0. 0. 0. 0. ] [-0.5 1. 0. 0. 0. ] [ 0. -0.66666667 1. 0. 0. ] [ 0. 0. -0.75 1. 0. ] [-0.5 -0.33333333 -0.25 -1. 1. ]] L1PP U factor: [[ 72. -36. 0. 0. -36.] [ 0. 54. -36. 0. -18.] [ 0. 0. 48. -36. -12.] [ 0. 0. 0. 45. -45.] [ 0. 0. 0. 0. 0.]] L1PP LU error = 9.992007221626409e-16 laplacian_matrix_test(): Normal end of execution. Sat Jan 17 10:12:35 2026