diff --git a/dune/istl/test/bcrsbuild.cc b/dune/istl/test/bcrsbuild.cc index 4c2e360a03af12efac815eb2a6e94dedf1a1111f..ab51de8b00c311d9e6627c5c2df0c3f18e23d94f 100644 --- a/dune/istl/test/bcrsbuild.cc +++ b/dune/istl/test/bcrsbuild.cc @@ -43,6 +43,8 @@ struct Builder<Dune::BCRSMatrix<B,A> > matrix=1; Dune::printmatrix(std::cout, matrix, "random", "row"); + Dune::BCRSMatrix<B,A> matrix1(matrix); + Dune::printmatrix(std::cout, matrix, "random", "row"); } /*{ @@ -77,6 +79,26 @@ struct Builder<Dune::BCRSMatrix<B,A> > Dune::printmatrix(std::cout, matrix, "random", "row"); }*/ } + + void rowWiseBuild(int rows, int cols) + { + Dune::BCRSMatrix<B,A> matrix( rows, cols, Dune::BCRSMatrix<B,A>::row_wise ); + for(typename Dune::BCRSMatrix<B,A>::CreateIterator ci=matrix.createbegin(), cend=matrix.createend(); + ci!=cend; ++ci) + { + int i=ci.index(); + if(i<cols) + ci.insert(i); + if(i-1>=0 && i-1<cols) + ci.insert(i-1); + if(i+1<cols) + ci.insert(i+1); + } + + Dune::printmatrix(std::cout, matrix, "row_wise", "row"); + Dune::BCRSMatrix<B,A> matrix1(matrix); + Dune::printmatrix(std::cout, matrix, "row_wise", "row"); + } }; // This code used to trigger a valgrind 'uninitialized memory' warning; see FS 1041 @@ -93,6 +115,7 @@ int main() try{ Builder<Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > > builder; builder.randomBuild(5,4); + builder.rowWiseBuild(5,4); testDoubleSetSize(); }catch(Dune::Exception e) { std::cerr << e<<std::endl;