dqp_control_type structure#
#include <galahad_dqp.h> struct dqp_control_type { // components bool f_indexing; ipc_ error; ipc_ out; ipc_ print_level; ipc_ start_print; ipc_ stop_print; ipc_ print_gap; ipc_ dual_starting_point; ipc_ maxit; ipc_ max_sc; ipc_ cauchy_only; ipc_ arc_search_maxit; ipc_ cg_maxit; ipc_ explore_optimal_subspace; ipc_ restore_problem; ipc_ sif_file_device; ipc_ qplib_file_device; rpc_ rho; rpc_ infinity; rpc_ stop_abs_p; rpc_ stop_rel_p; rpc_ stop_abs_d; rpc_ stop_rel_d; rpc_ stop_abs_c; rpc_ stop_rel_c; rpc_ stop_cg_relative; rpc_ stop_cg_absolute; rpc_ cg_zero_curvature; rpc_ max_growth; rpc_ identical_bounds_tol; rpc_ cpu_time_limit; rpc_ clock_time_limit; rpc_ initial_perturbation; rpc_ perturbation_reduction; rpc_ final_perturbation; bool factor_optimal_matrix; bool remove_dependencies; bool treat_zero_bounds_as_general; bool exact_arc_search; bool subspace_direct; bool subspace_alternate; bool subspace_arc_search; bool space_critical; bool deallocate_error_fatal; bool generate_sif_file; bool generate_qplib_file; char symmetric_linear_solver[31]; char definite_linear_solver[31]; char unsymmetric_linear_solver[31]; char sif_file_name[31]; char qplib_file_name[31]; char prefix[31]; struct fdc_control_type fdc_control; struct sls_control_type sls_control; struct sbls_control_type sbls_control; struct gltr_control_type gltr_control; };
detailed documentation#
control derived type as a C struct
components#
bool f_indexing
use C or Fortran sparse matrix indexing
ipc_ error
error and warning diagnostics occur on stream error
ipc_ out
general output occurs on stream out
ipc_ print_level
the level of output required is specified by print_level
ipc_ start_print
any printing will start on this iteration
ipc_ stop_print
any printing will stop on this iteration
ipc_ print_gap
printing will only occur every print_gap iterations
ipc_ dual_starting_point
which starting point should be used for the dual problem
-1 user supplied comparing primal vs dual variables
0 user supplied
1 minimize linearized dual
2 minimize simplified quadratic dual
3 all free (= all active primal costraints)
4 all fixed on bounds (= no active primal costraints)
ipc_ maxit
at most maxit inner iterations are allowed
ipc_ max_sc
the maximum permitted size of the Schur complement before a refactorization is performed (used in the case where there is no Fredholm Alternative, 0 = refactor every iteration)
ipc_ cauchy_only
a subspace step will only be taken when the current Cauchy step has changed no more than than cauchy_only active constraints; the subspace step will always be taken if cauchy_only < 0
ipc_ arc_search_maxit
how many iterations are allowed per arc search (-ve = as many as require
ipc_ cg_maxit
how many CG iterations to perform per DQP iteration (-ve reverts to n+1)
ipc_ explore_optimal_subspace
once a potentially optimal subspace has been found, investigate it
0 as per an ordinary subspace
1 by increasing the maximum number of allowed CG iterations
2 by switching to a direct method
ipc_ restore_problem
indicate whether and how much of the input problem should be restored on output. Possible values are
0 nothing restored
1 scalar and vector parameters
2 all parameters
ipc_ sif_file_device
specifies the unit number to write generated SIF file describing the current problem
ipc_ qplib_file_device
specifies the unit number to write generated QPLIB file describing the current problem
rpc_ rho
the penalty weight, rho. The general constraints are not enforced explicitly, but instead included in the objective as a penalty term weighted by rho when rho > 0. If rho <= 0, the general constraints are explicit (that is, there is no penalty term in the objective function)
rpc_ infinity
any bound larger than infinity in modulus will be regarded as infinite
rpc_ stop_abs_p
the required absolute and relative accuracies for the primal infeasibilies
rpc_ stop_rel_p
see stop_abs_p
rpc_ stop_abs_d
the required absolute and relative accuracies for the dual infeasibility
rpc_ stop_rel_d
see stop_abs_d
rpc_ stop_abs_c
the required absolute and relative accuracies for the complementarity
rpc_ stop_rel_c
see stop_abs_c
rpc_ stop_cg_relative
the CG iteration will be stopped as soon as the current norm of the preconditioned gradient is smaller than max( stop_cg_relative * initial preconditioned gradient, stop_cg_absolute )
rpc_ stop_cg_absolute
see stop_cg_relative
rpc_ cg_zero_curvature
threshold below which curvature is regarded as zero if CG is used
rpc_ max_growth
maximum growth factor allowed without a refactorization
rpc_ identical_bounds_tol
any pair of constraint bounds (c_l,c_u) or (x_l,x_u) that are closer than identical_bounds_tol will be reset to the average of their values
rpc_ cpu_time_limit
the maximum CPU time allowed (-ve means infinite)
rpc_ clock_time_limit
the maximum elapsed clock time allowed (-ve means infinite)
rpc_ initial_perturbation
the initial penalty weight (for DLP only)
rpc_ perturbation_reduction
the penalty weight reduction factor (for DLP only)
rpc_ final_perturbation
the final penalty weight (for DLP only)
bool factor_optimal_matrix
are the factors of the optimal augmented matrix required? (for DLP only)
bool remove_dependencies
the equality constraints will be preprocessed to remove any linear dependencies if true
bool treat_zero_bounds_as_general
any problem bound with the value zero will be treated as if it were a general value if true
bool exact_arc_search
if .exact_arc_search is true, an exact piecewise arc search will be performed. Otherwise an ineaxt search using a backtracing Armijo strategy will be employed
bool subspace_direct
if .subspace_direct is true, the subspace step will be calculated using a direct (factorization) method, while if it is false, an iterative (conjugate-gradient) method will be used.
bool subspace_alternate
if .subspace_alternate is true, the subspace step will alternate between a direct (factorization) method and an iterative (GLTR conjugate-gradient) method. This will override .subspace_direct
bool subspace_arc_search
if .subspace_arc_search is true, a piecewise arc search will be performed along the subspace step. Otherwise the search will stop at the firstconstraint encountered
bool space_critical
if .space_critical true, every effort will be made to use as little space as possible. This may result in longer computation time
bool deallocate_error_fatal
if .deallocate_error_fatal is true, any array/pointer deallocation error will terminate execution. Otherwise, computation will continue
bool generate_sif_file
if .generate_sif_file is .true. if a SIF file describing the current problem is to be generated
bool generate_qplib_file
if .generate_qplib_file is .true. if a QPLIB file describing the current problem is to be generated
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 unsymmetric_linear_solver[31]
the name of the unsymmetric linear equation solver used. Possible choices are currently: ‘gls’, ‘ma48’ and ‘getr’, although only ‘getr’ is 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_uls.
char sif_file_name[31]
name of generated SIF file containing input problem
char qplib_file_name[31]
name of generated QPLIB file containing input problem
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 fdc_control_type fdc_control
control parameters for FDC
struct sls_control_type sls_control
control parameters for SLS
struct sbls_control_type sbls_control
control parameters for SBLS
struct gltr_control_type gltr_control
control parameters for GLTR