nodend_control_type structure#
#include <galahad_nodend.h> struct nodend_control_type { // fields bool f_indexing; char version[31]; ipc_ error; ipc_ out; ipc_ print_level; bool no_metis_4_use_5_instead; char prefix[31]; ipc_ metis4_ptype; ipc_ metis4_ctype; ipc_ metis4_itype; ipc_ metis4_rtype; ipc_ metis4_dbglvl; ipc_ metis4_oflags; ipc_ metis4_pfactor; ipc_ metis4_nseps; ipc_ metis5_ptype; ipc_ metis5_objtype; ipc_ metis5_ctype; ipc_ metis5_iptype; ipc_ metis5_rtype; ipc_ metis5_dbglvl; ipc_ metis5_niter; ipc_ metis5_ncuts; ipc_ metis5_seed; ipc_ metis5_no2hop; ipc_ metis5_minconn; ipc_ metis5_contig; ipc_ metis5_compress; ipc_ metis5_ccorder; ipc_ metis5_pfactor; ipc_ metis5_nseps; ipc_ metis5_ufactor; ipc_ metis5_niparts; ipc_ metis5_ondisk; ipc_ metis5_dropedges; ipc_ metis5_twohop; ipc_ metis5_fast; };
detailed documentation#
control derived type as a C struct
components#
bool f_indexing
use C or Fortran sparse matrix indexing
char version[31]
specify the version of METIS to be used. Possible values are 4.0, 5.1 and 5.2
ipc_ error
error and warning diagnostics occur on stream error
ipc_ out
general output occurs on stream out
ipc_ print_level
the level of output required is specified by print_level
bool no_metis_4_use_5_instead
if .no_metis_4_use_5_instead is true, and METIS 4.0 is not availble, use Metis 5.2 instead
char prefix[31]
all output lines will be prefixed by .prefix(2:LEN(TRIM(.prefix))-1) where .prefix contains the required string enclosed in quotes, e.g. “string” or ‘string’
ipc_ metis4_ptype
the partitioning method employed. 0 = multilevel recursive bisectioning: 1 = multilevel k-way partitioning
ipc_ metis4_ctype
the matching scheme to be used during coarsening: 1 = random matching, 2 = heavy-edge matching, 3 = sorted heavy-edge matching, and 4 = k-way sorted heavy-edge matching.
ipc_ metis4_itype
the algorithm used during initial partitioning: 1 = edge-based region growing and 2 = node-based region growing.
ipc_ metis4_rtype
the algorithm used for refinement: 1 = two-sided node Fiduccia-Mattheyses (FM) refinement, and 2 = one-sided node FM refinement.
ipc_ metis4_dbglvl
the amount of progress/debugging information printed: 0 = nothing, 1 = timings, and \(>\) 1 increasingly more.
ipc_ metis4_oflags
select whether or not to compress the graph, and to order connected components separately: 0 = do neither, 1 = try to compress the graph, 2 = order each connected component separately, and 3 = do both.
ipc_ metis4_pfactor
the minimum degree of the vertices that will be ordered last. More specifically, any vertices with a degree greater than 0.1 metis4_pfactor times the average degree are removed from the graph, an ordering of the rest of the vertices is computed, and an overall ordering is computed by ordering the removed vertices at the end of the overall ordering. Any value smaller than 1 means that no vertices will be ordered last.
ipc_ metis4_nseps
the number of different separators that the algorithm will compute at each level of nested dissection.
ipc_ metis5_ptype
the partitioning method. The value 0 gives multilevel recursive bisectioning, while 1 corresponds to multilevel \(k\)-way partitioning.
ipc_ metis5_objtype
the type of the objective. Currently the only and default value metis5_objtype = 2, specifies node-based nested dissection, and any invalid value will be replaced by this default.
ipc_ metis5_ctype
the matching scheme to be used during coarsening: 0 = random matching, and 1 = sorted heavy-edge matching.
ipc_ metis5_iptype
the algorithm used during initial partitioning: 2 = derive separators from edge cuts, and 3 = grow bisections using a greedy node-based strategy.
ipc_ metis5_rtype
the algorithm used for refinement: 2 = Two-sided node FM refinement, and 3 = One-sided node FM refinement.
ipc_ metis5_dbglvl
the amount of progress/debugging information printed: 0 = nothing, 1 = diagnostics, 2 = plus timings, and \(>\) 2 plus more.
ipc_ metis5_niparts
the number of initial partitions used by MeTiS 5.2.
ipc_ metis5_niter
the number of iterations used by the refinement algorithm.
ipc_ metis5_ncuts
the number of different partitionings that it will compute: -1 = not used.
ipc_ metis5_seed
the seed for the random number generator.
ipc_ metis5_ondisk
whether on-disk storage is used (0 = no, 1 = yes) by MeTiS 5.2.
ipc_ metis5_minconn
specify that the partitioning routines should try to minimize the maximum degree of the subdomain graph: 0 = no, 1 = yes, and -1 = not used.
ipc_ metis5_contig
specify that the partitioning routines should try to produce partitions that are contiguous: 0 = no, 1 = yes, and -1 = not used.
ipc_ metis5_compress
specify that the graph should be compressed by combining together vertices that have identical adjacency lists: 0 = no, and 1 = yes.
ipc_ metis5_ccorder
specify if the connected components of the graph should first be identified and ordered separately: 0 = no, and 1 = yes.
ipc_ metis5_pfactor
the minimum degree of the vertices that will be ordered last. More specifically, any vertices with a degree greater than 0.1 metis4_pfactor times the average degree are removed from the graph, an ordering of the rest of the vertices is computed, and an overall ordering is computed by ordering the removed vertices at the end of the overall ordering.
ipc_ metis5_nseps
the number of different separators that the algorithm will compute at each level of nested dissection.
ipc_ metis5_ufactor
the maximum allowed load imbalance (1 +metis5_ufactor)/1000 among the partitions.
ipc_ metis5_dropedges
will edges be dropped (0 = no, 1 = yes) by MeTiS 5.2.
ipc_ metis5_no2hop
specify that the coarsening will not perform any 2–hop matchings when the standard matching approach fails to sufficiently coarsen the graph: 0 = no, and 1 = yes.
ipc_ metis5_twohop
reserved for future use but ignored at present.
ipc_ metis5_fast
reserved for future use but ignored at present.