void scale_vector(double scalar, fei::Vector& vec) { fei::SharedPtr<fei::VectorSpace> vspace = vec.getVectorSpace(); int numIndices = vspace->getNumIndices_Owned(); std::vector<int> indices(numIndices); vspace->getIndices_Owned(numIndices, &indices[0], numIndices); std::vector<double> coefs(numIndices); vec.copyOut(numIndices, &indices[0], &coefs[0]); for(size_t j=0; j<coefs.size(); ++j) { coefs[j] *= scalar; } vec.copyIn(numIndices, &indices[0], &coefs[0]); }