rqs_control_type structure#

    struct rqs_control_type{T}
      f_indexing::Bool
      error::Int32
      out::Int32
      problem::Int32
      print_level::Int32
      dense_factorization::Int32
      new_h::Int32
      new_m::Int32
      new_a::Int32
      max_factorizations::Int32
      inverse_itmax::Int32
      taylor_max_degree::Int32
      initial_multiplier::T
      lower::T
      upper::T
      stop_normal::T
      stop_hard::T
      start_invit_tol::T
      start_invitmax_tol::T
      use_initial_multiplier::Bool
      initialize_approx_eigenvector::Bool
      space_critical::Bool
      deallocate_error_fatal::Bool
      problem_file::NTuple{31,Cchar}
      symmetric_linear_solver::NTuple{31,Cchar}
      definite_linear_solver::NTuple{31,Cchar}
      prefix::NTuple{31,Cchar}
      sls_control::sls_control_type{T}
      ir_control::ir_control_type{T}

detailed documentation#

control derived type as a Julia structure

components#

Bool f_indexing

use C or Fortran sparse matrix indexing

Int32 error

unit for error messages

Int32 out

unit for monitor output

Int32 problem

unit to write problem data into file problem_file

Int32 print_level

controls level of diagnostic output

Int32 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

Int32 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

Int32 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

Int32 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

Int32 max_factorizations

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

Int32 inverse_itmax

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

Int32 taylor_max_degree

maximum degree of Taylor approximant allowed

T initial_multiplier

initial estimate of the Lagrange multipler

T lower

lower and upper bounds on the multiplier, if known

T upper

see lower

T 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

T stop_hard

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

T start_invit_tol

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

T 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]

symmetric (indefinite) linear equation solver

char definite_linear_solver[31]

definite linear equation solver

NTuple{31,Cchar} prefix

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)