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.