void ComputeMassMat::compute(SXMatrix &M,const TetMesh&mesh, const vector<SX> &density){ assert_eq(density.size(),mesh.tets().size()); this->_density = density; _M.setZero(); computeCompactM(_M,mesh); const int n = mesh.nodes().size(); M.resize(n*3,n*3); M.setZero(); for (int i = 0; i < _M.size1(); ++i){ for (int j = 0; j < _M.size2(); ++j){ if( _M.hasNZ(i,j) ){ M.elem(i*3+0,j*3+0) = _M.elem(i,j); M.elem(i*3+1,j*3+1) = _M.elem(i,j); M.elem(i*3+2,j*3+2) = _M.elem(i,j); } } } }