Isorropia is primarily an interface to the Zoltan library, but can be built and used with minimal capability without Zoltan. To enable Isorropia's Zoltan support, you need to add '--enable-isorropia-zoltan' and '--enable-epetraext' to your Trilinos configure command, and provide include-paths and library specifications for Zoltan version 2.0 (provide these to configure using the '--with-incdirs' and '--with-libs' configure arguments).
The Isorropia::create_balanced_copy functions are free-standing functions (not class members) which simply take an input object (Epetra_CrsGraph, Epetra_CrsMatrix, etc.) and return a copy which is balanced across partitions.
For more sophisticated use-cases, such as performing one partitioning and then using it to redistribute multiple objects, it is more efficient to use the Isorropia::Partitioner and Isorropia::Redistributor classes. The general usage model is to:
Isorropia is currently aimed primarily at repartitioning/redistributing Epetra objects, including Epetra_CrsGraph, Epetra_RowMatrix (which includes Epetra_CrsMatrix and Epetra_VbrMatrix) and Epetra_MultiVector.
matrix_1.cpp demonstrates creating a balanced copy of Epetra_CrsGraph and Epetra_CrsMatrix objects using Isorropia::Epetra::create_balanced_copy functions.
part_redist.cpp demonstrates repartitioning and redistributing the contents of an Epetra_LinearProblem object, using the Isorropia::Partitioner and Isorropia::Redistributor classes. This program does not use user-specified weights/costs.
Other programs in the example subdirectory demonstrate the use of weights/costs data to influence the partitioner. See vert_weights.cpp, graphedge_weights.cpp and hgedge_weights.cpp.
Teuchos::ParameterList params; params.set("PARTITIONING_METHOD", "SIMPLE_LINEAR");
Teuchos::ParameterList params; Teuchos::ParameterList& sublist = params.sublist("Zoltan"); sublist.set("LB_METHOD", "GRAPH"); sublist.set("PARMETIS_METHOD", "PARTKWAY");