fei::SharedPtr<fei::Matrix> test_Matrix::create_matrix(fei::SharedPtr<fei::Factory> factory) { testData test_data(localProc_, numProcs_); fei::SharedPtr<fei::VectorSpace> vspace = test_VectorSpace::create_VectorSpace(comm_, &test_data, localProc_, numProcs_, false, false, (const char*)0, factory); int err = vspace->initComplete(); if (err != 0) { FEI_COUT << "ERROR, failed to create valid fei::VectorSpace." << FEI_ENDL; throw std::runtime_error("test_Vector::vector_test1: ERROR, failed to create valid fei::VectorSpace."); } fei::SharedPtr<fei::MatrixGraph> mgraph = factory->createMatrixGraph(vspace, vspace, NULL); std::vector<int>& fieldIDs = test_data.fieldIDs; std::vector<int>& idTypes = test_data.idTypes; std::vector<int>& ids = test_data.ids; int numIDs = ids.size(); int fieldID = fieldIDs[0]; int idType = idTypes[0]; int patternID = mgraph->definePattern(numIDs, idType, fieldID); mgraph->initConnectivityBlock(0, 1, patternID); mgraph->initConnectivity(0, 0, &ids[0]); mgraph->initComplete(); fei::SharedPtr<fei::Matrix> matrix = factory->createMatrix(mgraph); return(matrix); }