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)