Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #555
Closed
Open
Issue created Aug 15, 2016 by James Willenbring@jmwilleOwner

Tpetra: Make it possible to Import/Export a RowGraph into a CrsGraph

Created by: mhoemmen

@kddevin writes:

I would like to redistribute a Tpetra::RowGraph into a new Tpetra::CrsGraph.

To distribute a Tpetra::RowMatrix into a new Tpetra::CrsMatrix, we can use CrsMatrix::doImport, as both CrsMatrix and RowMatrix are SrcDistObject and, thus, the RowMatrix source can be the first argument of CrsMatrix::doImport.

But for RowGraph, we cannot use CrsGraph::doImport, as RowGraph is not a SrcDistObject, even though CrsGraph, RowMatrix, and CrsMatrix are all SrcDistObject.

Why isn't RowGraph a SrcDistObject? Is there a better way to do the redistribution?

CrsGraph's implementation of DistObject methods (in particular, checkSizes, copyAndPermute, and packAndPrepare) all use the RowGraph interface. Furthermore, RowGraph implements Packable. Thus, all we need to do is make RowGraph inherit from SrcDistObject.

This is TRIVIAL since SrcDistObject implements no methods other than a virtual destructor. Would you like to do it?

Assignee
Assign to
Time tracking