use mesh_sieve::algs::dual_graph::{DualGraph, build_dual};
#[cfg(feature = "metis-support")]
use mesh_sieve::algs::metis_partition::MetisPartition;
use mesh_sieve::topology::point::PointId;
use mesh_sieve::topology::sieve::{MeshSieve, Sieve};
fn main() {
let (mesh, cells) = {
let mut s = MeshSieve::default();
s.add_arrow(PointId::new(10).unwrap(), PointId::new(1).unwrap(), ());
s.add_arrow(PointId::new(10).unwrap(), PointId::new(2).unwrap(), ());
s.add_arrow(PointId::new(11).unwrap(), PointId::new(2).unwrap(), ());
s.add_arrow(PointId::new(11).unwrap(), PointId::new(3).unwrap(), ());
(
s,
vec![PointId::new(10).unwrap(), PointId::new(11).unwrap()],
)
};
let _dg: DualGraph = build_dual(&mesh, cells.clone());
#[cfg(feature = "metis-support")]
{
let p = _dg.metis_partition(2);
println!("partition array = {:?}", p.part);
}
}