gko::experimental::reorder::
NestedDissection#

Nested dissection reordering via the METIS library. Recursively splits the graph by small vertex separators to expose parallelism in the resulting factor and reduce fill-in on problems with two- or three-dimensional structure. Available only when Ginkgo is built with METIS support.

template<typename ValueType, typename IndexType>
class NestedDissection #

Inherits from

Computes a Nested Dissection (ND) reordering of an input matrix using the METIS library.

Template Parameters:
  • ValueType – the type used to store values of the system matrix

  • IndexType – the type used to store sparsity pattern indices of the system matrix

Public Functions

inline const parameters_type &get_parameters()#

Returns the parameters used to construct the factory.

Returns:

the parameters used to construct the factory.

std::unique_ptr<permutation_type> generate(
std::shared_ptr<const LinOp> system_matrix,
) const#

Creates a new product from the given components.

The method will create an ComponentsType object from the arguments of this method, and pass it to the generate_impl() function which will create a new AbstractProductType.

Note

This function overrides the default LinOpFactory::generate to return a Permutation instead of a generic LinOp, which would need to be cast to Permutation again to access its indices. It is only necessary because smart pointers aren’t covariant.

Template Parameters:

Args – types of arguments passed to the constructor of ComponentsType

Parameters:

args – arguments passed to the constructor of ComponentsType

Returns:

an instance of AbstractProductType

Public Static Functions

static inline parameters_type build()#

Creates a new parameter_type to set up the factory.

struct parameters_type #

Inherits from

Public Functions

inline parameters_type &with_options(
std::unordered_map<int, int> options,
)#
Returns:

*this for chaining

Public Members

std::unordered_map<int, int> options#

The options to be passed on to METIS, stored as key-value pairs. Any options that are not set here use their default value.