# Find boundary vertices b = igl.eigen.MatrixXi() IA = igl.eigen.MatrixXi() IC = igl.eigen.MatrixXi() igl.unique(E, b, IA, IC) # List of all vertex indices vall = igl.eigen.MatrixXi() vin = igl.eigen.MatrixXi() igl.coloni(0, V.rows() - 1, vall) # List of interior indices igl.setdiff(vall, b, vin, IA) # Construct and slice up Laplacian L = igl.eigen.SparseMatrixd() L_in_in = igl.eigen.SparseMatrixd() L_in_b = igl.eigen.SparseMatrixd() igl.cotmatrix(V, F, L) igl.slice(L, vin, vin, L_in_in) igl.slice(L, vin, b, L_in_b) # Dirichlet boundary conditions from z-coordinate bc = igl.eigen.MatrixXd() Z = V.col(2) igl.slice(Z, b, bc)
# Find boundary vertices b = igl.eigen.MatrixXi() IA = igl.eigen.MatrixXi() IC = igl.eigen.MatrixXi() igl.unique(E,b,IA,IC); # List of all vertex indices vall = igl.eigen.MatrixXi() vin = igl.eigen.MatrixXi() igl.coloni(0,V.rows()-1,vall) # List of interior indices igl.setdiff(vall,b,vin,IA) # Construct and slice up Laplacian L = igl.eigen.SparseMatrixd() L_in_in = igl.eigen.SparseMatrixd() L_in_b = igl.eigen.SparseMatrixd() igl.cotmatrix(V,F,L) igl.slice(L,vin,vin,L_in_in) igl.slice(L,vin,b,L_in_b) # Dirichlet boundary conditions from z-coordinate bc = igl.eigen.MatrixXd() Z = V.col(2) igl.slice(Z,b,bc)