b = Eigen::VectorXd::Zero(V.rows()*2); Eigen::SparseMatrix Dx, Dy, U, D, B; computeSurfaceGradientMatrix(Dx, Dy); igl::cat(2, Dx, Eigen::SparseMatrix(-Dy), U); igl::cat(2, Dx, Dy, D); igl::cat(1, U, D, B); // Area diagonal Eigen::VectorXd areas; igl::doublearea(V, F, areas); Eigen::SparseMatrix AA(areas.size()*2, areas.size()*2); for(int i=0; i