sils_control_type structure#

#include <galahad_sils.h>

struct sils_control_type {
    // fields

    bool f_indexing;
    ipc_ ICNTL[30];
    ipc_ lp;
    ipc_ wp;
    ipc_ mp;
    ipc_ sp;
    ipc_ ldiag;
    ipc_ la;
    ipc_ liw;
    ipc_ maxla;
    ipc_ maxliw;
    ipc_ pivoting;
    ipc_ nemin;
    ipc_ factorblocking;
    ipc_ solveblocking;
    ipc_ thresh;
    ipc_ ordering;
    ipc_ scaling;
    rpc_ CNTL[5];
    rpc_ multiplier;
    rpc_ reduce;
    rpc_ u;
    rpc_ static_tolerance;
    rpc_ static_level;
    rpc_ tolerance;
    rpc_ convergence;
};

detailed documentation#

control derived type as a C struct

components#

bool f_indexing

use C or Fortran sparse matrix indexing

ipc_ ICNTL[30]

MA27 internal integer controls.

ipc_ lp

Unit for error messages.

ipc_ wp

Unit for warning messages.

ipc_ mp

Unit for monitor output.

ipc_ sp

Unit for statistical output.

ipc_ ldiag

Controls level of diagnostic output.

ipc_ la

Initial size for real array for the factors. If less than nrlnec, default size used.

ipc_ liw

Initial size for integer array for the factors. If less than nirnec, default size used.

ipc_ maxla

Max. size for real array for the factors.

ipc_ maxliw

Max. size for integer array for the factors.

ipc_ pivoting

Controls pivoting. Possible values are:

  • 1 Numerical pivoting will be performed.

  • 2 No pivoting will be performed and an error exit will occur immediately a pivot sign change is detected.

  • 3 No pivoting will be performed and an error exit will occur if a zero pivot is detected.

  • 4 No pivoting is performed but pivots are changed to all be positive.

ipc_ nemin

Minimum number of eliminations in a step (unused)

ipc_ factorblocking

Level 3 blocking in factorize (unused)

ipc_ solveblocking

Level 2 and 3 blocking in solve.

ipc_ thresh

Controls threshold for detecting full rows in analyse, registered as percentage of N, 100 Only fully dense rows detected (default)

ipc_ ordering

Controls ordering: Possible values are:

  • 0 AMD using HSL’s MC47

  • 1 User defined

  • 2 AMD using HSL’s MC50

  • 3 Min deg as in HSL’s MA57

  • 4 Metis_nodend ordering

  • 5 Ordering chosen depending on matrix characteristics. At the moment choices are HSL’s MC50 or Metis_nodend

  • >5 Presently equivalent to 5 but may chnage

ipc_ scaling

Controls scaling: Possible values are:

  • 0 No scaling

  • >0 Scaling using HSL’s MC64 but may change for > 1

rpc_ CNTL[5]

MA27 internal real controls.

rpc_ multiplier

Factor by which arrays sizes are to be increased if they are too small.

rpc_ reduce

If previously allocated internal workspace arrays are greater than reduce times the currently required sizes, they are reset to current requirment.

rpc_ u

Pivot threshold.

rpc_ static_tolerance

used for setting static pivot level

rpc_ static_level

used for switch to static

rpc_ tolerance

Anything less than this is considered zero.

rpc_ convergence

used to monitor convergence in iterative refinement