void MatrixAdapter<Matrix>::do_getCrs(const Teuchos::ArrayView<scalar_t> nzval, const Teuchos::ArrayView<global_ordinal_t> colind, const Teuchos::ArrayView<typename MatrixAdapter<Matrix>::global_size_t> rowptr, typename MatrixAdapter<Matrix>::global_size_t& nnz, const Teuchos::Ptr<const Tpetra::Map<local_ordinal_t,global_ordinal_t,node_t> > rowmap, EDistribution distribution, EStorage_Ordering ordering, col_access ca) const { using Teuchos::Array; // get the ccs and transpose Array<scalar_t> nzval_tmp(nzval.size(), 0); Array<global_ordinal_t> rowind(colind.size(), 0); Array<global_size_t> colptr(this->getGlobalNumCols() + 1); this->getCcs(nzval_tmp(), rowind(), colptr(), nnz, rowmap, ordering, distribution); if( !nzval.is_null() && !colind.is_null() && !rowptr.is_null() ) Util::transpose(nzval_tmp(), rowind(), colptr(), nzval, colind, rowptr); }