rqs_control_type structure#

#include <galahad_rqs.h>

struct rqs_control_type {
    // fields

    bool f_indexing;
    ipc_ error;
    ipc_ out;
    ipc_ problem;
    ipc_ print_level;
    ipc_ dense_factorization;
    ipc_ new_h;
    ipc_ new_m;
    ipc_ new_a;
    ipc_ max_factorizations;
    ipc_ inverse_itmax;
    ipc_ taylor_max_degree;
    rpc_ initial_multiplier;
    rpc_ lower;
    rpc_ upper;
    rpc_ stop_normal;
    rpc_ stop_hard;
    rpc_ start_invit_tol;
    rpc_ start_invitmax_tol;
    bool use_initial_multiplier;
    bool initialize_approx_eigenvector;
    bool space_critical;
    bool deallocate_error_fatal;
    char problem_file[31];
    char symmetric_linear_solver[31];
    char definite_linear_solver[31];
    char prefix[31];
    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_ problem

unit to write problem data into file problem_file

ipc_ print_level

controls level of diagnostic output

ipc_ dense_factorization

should the problem be solved by dense factorization? Possible values are

  • 0 sparse factorization will be used

  • 1 dense factorization will be used

  • other the choice is made automatically depending on the dimension and sparsity

ipc_ new_h

how much of \(H\) 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_m

how much of \(M\) 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_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_ max_factorizations

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

ipc_ inverse_itmax

the number of inverse iterations performed in the “maybe hard” case

ipc_ taylor_max_degree

maximum degree of Taylor approximant allowed

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\| - (multiplier/\sigma)^(1/(p-2)) | \leq\) stop_normal \* max \(( \|x\|, (multiplier/\sigma)^(1/(p-2)) )\) REAL ( KIND = wp ) :: stop_normal = epsmch \*\* 0.75

rpc_ stop_hard

stop when bracket on optimal multiplier <= stop_hard * max( bracket ends ) REAL ( KIND = wp ) :: stop_hard = epsmch ** 0.75

rpc_ start_invit_tol

start inverse iteration when bracket on optimal multiplier <= stop_start_invit_tol * max( bracket ends )

rpc_ start_invitmax_tol

start full inverse iteration when bracket on multiplier <= stop_start_invitmax_tol * max( bracket ends)

bool use_initial_multiplier

ignore initial_multiplier?

bool initialize_approx_eigenvector

should a suitable initial eigenvector should be chosen or should a previous eigenvector may be used?

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 problem_file[31]

name of file into which to write problem data

char symmetric_linear_solver[31]

the name of the symmetric-indefinite linear equation solver used. Possible choices are currently: ‘sils’, ‘ma27’, ‘ma57’, ‘ma77’, ‘ma86’, ‘ma97’, ‘ssids’, ‘mumps’, ‘pardiso’, ‘mkl_pardiso’, ‘pastix’, ‘wsmp’, and ‘sytr’, although only ‘sytr’ 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 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 sls_control_type sls_control

control parameters for the Cholesky factorization and solution (see sls_c documentation)

struct ir_control_type ir_control

control parameters for iterative refinement (see ir_c documentation)