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
public gko::EnablePolymorphicObject<NestedDissection<ValueType, IndexType>, LinOpFactory>
public gko::EnablePolymorphicAssignment<NestedDissection<ValueType, IndexType>>
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::shared_ptr<const LinOp> system_matrix,
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 gko::enable_parameters_type<parameters_type, NestedDissection<ValueType, IndexType>>
Public Functions
- inline parameters_type &with_options(
- std::unordered_map<int, int> options,
- Returns:
*thisfor 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.