uls_control_type structure#

#include <galahad_uls.h>

struct uls_control_type {
    // fields

    bool f_indexing;
    ipc_ error;
    ipc_ warning;
    ipc_ out;
    ipc_ print_level;
    ipc_ print_level_solver;
    ipc_ initial_fill_in_factor;
    ipc_ min_real_factor_size;
    ipc_ min_integer_factor_size;
    int64_t max_factor_size;
    ipc_ blas_block_size_factorize;
    ipc_ blas_block_size_solve;
    ipc_ pivot_control;
    ipc_ pivot_search_limit;
    ipc_ minimum_size_for_btf;
    ipc_ max_iterative_refinements;
    bool stop_if_singular;
    rpc_ array_increase_factor;
    rpc_ switch_to_full_code_density;
    rpc_ array_decrease_factor;
    rpc_ relative_pivot_tolerance;
    rpc_ absolute_pivot_tolerance;
    rpc_ zero_tolerance;
    rpc_ acceptable_residual_relative;
    rpc_ acceptable_residual_absolute;
    char prefix[31];
};

detailed documentation#

control derived type as a C struct

components#

bool f_indexing

use C or Fortran sparse matrix indexing

ipc_ error

unit for error messages

ipc_ warning

unit for warning messages

ipc_ out

unit for monitor output

ipc_ print_level

controls level of diagnostic output

ipc_ print_level_solver

controls level of diagnostic output from external solver

ipc_ initial_fill_in_factor

prediction of factor by which the fill-in will exceed the initial number of nonzeros in \(A\)

ipc_ min_real_factor_size

initial size for real array for the factors and other data

ipc_ min_integer_factor_size

initial size for integer array for the factors and other data

int64_t max_factor_size

maximum size for real array for the factors and other data

ipc_ blas_block_size_factorize

level 3 blocking in factorize

ipc_ blas_block_size_solve

level 2 and 3 blocking in solve

ipc_ pivot_control

pivot control:

  • 1 Threshold Partial Pivoting is desired

  • 2 Threshold Rook Pivoting is desired

  • 3 Threshold Complete Pivoting is desired

  • 4 Threshold Symmetric Pivoting is desired

  • 5 Threshold Diagonal Pivoting is desired

ipc_ pivot_search_limit

number of rows/columns pivot selection restricted to (0 = no restriction)

ipc_ minimum_size_for_btf

the minimum permitted size of blocks within the block-triangular form

ipc_ max_iterative_refinements

maximum number of iterative refinements allowed

bool stop_if_singular

stop if the matrix is found to be structurally singular

rpc_ array_increase_factor

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

rpc_ switch_to_full_code_density

switch to full code when the density exceeds this factor

rpc_ array_decrease_factor

if previously allocated internal workspace arrays are greater than array_decrease_factor times the currently required sizes, they are reset to current requirements

rpc_ relative_pivot_tolerance

pivot threshold

rpc_ absolute_pivot_tolerance

any pivot small than this is considered zero

rpc_ zero_tolerance

any entry smaller than this in modulus is reset to zero

rpc_ acceptable_residual_relative

refinement will cease as soon as the residual \(\|Ax-b\|\) falls below max( acceptable_residual_relative \* \(\|b\|\), acceptable_residual_absolute )

rpc_ acceptable_residual_absolute

see acceptable_residual_relative

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’