trs_control_type structure#

#include <galahad_trs.h>

struct trs_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_absolute_normal;
    rpc_ stop_hard;
    rpc_ start_invit_tol;
    rpc_ start_invitmax_tol;
    bool equality_problem;
    bool use_initial_multiplier;
    bool initialize_approx_eigenvector;
    bool force_Newton;
    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 & 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|| - radius | \leq\) max( stop_normal \* radius, stop_absolute_normal )

rpc_ stop_absolute_normal

see stop_normal

rpc_ stop_hard

stop when bracket on optimal multiplier \(\leq\) stop_hard \* max( bracket ends )

rpc_ start_invit_tol

start inverse iteration when bracket on optimal multiplier \(\leq\) stop_start_invit_tol \* max( bracket ends )

rpc_ start_invitmax_tol

start full inverse iteration when bracket on multiplier \(\leq\) stop_start_invitmax_tol \* max( bracket ends)

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 initialize_approx_eigenvector

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

bool force_Newton

ignore the trust-region if \(H\) is positive definite

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)