llst_control_type structure#

#include <galahad_llst.h>

struct llst_control_type {
    // fields

    bool f_indexing;
    ipc_ error;
    ipc_ out;
    ipc_ print_level;
    ipc_ new_a;
    ipc_ new_s;
    ipc_ max_factorizations;
    ipc_ taylor_max_degree;
    rpc_ initial_multiplier;
    rpc_ lower;
    rpc_ upper;
    rpc_ stop_normal;
    bool equality_problem;
    bool use_initial_multiplier;
    bool space_critical;
    bool deallocate_error_fatal;
    char definite_linear_solver[31];
    char prefix[31];
    struct sbls_control_type sbls_control;
    struct sls_control_type sls_control;
    struct ir_control_type ir_control;
};

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_ out

unit for monitor output

ipc_ print_level

controls level of diagnostic output

ipc_ new_a

how much of \(A\) has changed since the previous call. Possible values are

  • 0 unchanged

  • 1 values but not indices have changed

  • 2 values and indices have changed

ipc_ new_s

how much of \(S\) has changed since the previous call. Possible values are

  • 0 unchanged

  • 1 values but not indices have changed

  • 2 values and indices have changed

ipc_ max_factorizations

the maximum number of factorizations (=iterations) allowed. -ve implies no limit

ipc_ taylor_max_degree

maximum degree of Taylor approximant allowed (<= 3)

rpc_ initial_multiplier

initial estimate of the Lagrange multipler

rpc_ lower

lower and upper bounds on the multiplier, if known

rpc_ upper

see lower

rpc_ stop_normal

stop when \(| \|x\| -\) radius \(| \leq\) max( stop_normal \* max( 1, radius )

bool equality_problem

is the solution is <b<required to lie on the boundary (i.e., is the constraint an equality)?

bool use_initial_multiplier

ignore initial_multiplier?

bool space_critical

if space is critical, ensure allocated arrays are no bigger than needed

bool deallocate_error_fatal

exit if any deallocation fails

char definite_linear_solver[31]

the name of the definite linear equation solver used. Possible choices are currently: ‘sils’, ‘ma27’, ‘ma57’, ‘ma77’, ‘ma86’, ‘ma87’, ‘ma97’, ‘ssids’, ‘mumps’, ‘pardiso’, ‘mkl_pardiso’, ‘pastix’, ‘wsmp’, ‘potr’, ‘sytr’ and ‘pbtr’, although only ‘potr’, ‘sytr’, ‘pbtr’ and, for OMP 4.0-compliant compilers, ‘ssids’ are installed by default; others are easily installed (see README.external). More details of the capabilities of each solver are provided in the documentation for galahad_sls.

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’

struct sbls_control_type sbls_control

control parameters for the symmetric factorization and related linear solves (see sbls_c documentation)

struct sls_control_type sls_control

control parameters for the factorization of S and related linear solves (see sls_c documentation)

struct ir_control_type ir_control

control parameters for iterative refinement for definite system solves (see ir_c documentation)