sls_control_type structure#

    struct sls_control_type{T}
      f_indexing::Bool
      error::Int32
      warning::Int32
      out::Int32
      statistics::Int32
      print_level::Int32
      print_level_solver::Int32
      bits::Int32
      block_size_kernel::Int32
      block_size_elimination::Int32
      blas_block_size_factorize::Int32
      blas_block_size_solve::Int32
      node_amalgamation::Int32
      initial_pool_size::Int32
      min_real_factor_size::Int32
      min_integer_factor_size::Int32
      max_real_factor_size::Int64
      max_integer_factor_size::Int64
      max_in_core_store::Int64
      array_increase_factor::T
      array_decrease_factor::T
      pivot_control::Int32
      ordering::Int32
      full_row_threshold::Int32
      row_search_indefinite::Int32
      scaling::Int32
      scale_maxit::Int32
      scale_thresh::T
      relative_pivot_tolerance::T
      minimum_pivot_tolerance::T
      absolute_pivot_tolerance::T
      zero_tolerance::T
      zero_pivot_tolerance::T
      negative_pivot_tolerance::T
      static_pivot_tolerance::T
      static_level_switch::T
      consistency_tolerance::T
      max_iterative_refinements::Int32
      acceptable_residual_relative::T
      acceptable_residual_absolute::T
      multiple_rhs::Bool
      generate_matrix_file::Bool
      matrix_file_device::Int32
      matrix_file_name::NTuple{31,Cchar}
      out_of_core_directory::NTuple{401,Cchar}
      out_of_core_integer_factor_file::NTuple{401,Cchar}
      out_of_core_real_factor_file::NTuple{401,Cchar}
      out_of_core_real_work_file::NTuple{401,Cchar}
      out_of_core_indefinite_file::NTuple{401,Cchar}
      out_of_core_restart_file::NTuple{501,Cchar}
      prefix::NTuple{31,Cchar}

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 warning

unit for warning messages

Int32 out

unit for monitor output

Int32 statistics

unit for statistical output

Int32 print_level

controls level of diagnostic output

Int32 print_level_solver

controls level of diagnostic output from external solver

Int32 bits

number of bits used in architecture

Int32 block_size_kernel

the target blocksize for kernel factorization

Int32 block_size_elimination

the target blocksize for parallel elimination

Int32 blas_block_size_factorize

level 3 blocking in factorize

Int32 blas_block_size_solve

level 2 and 3 blocking in solve

Int32 node_amalgamation

a child node is merged with its parent if they both involve fewer than node_amalgamation eliminations

Int32 initial_pool_size

initial size of task-pool arrays for parallel elimination

Int32 min_real_factor_size

initial size for real array for the factors and other data

Int32 min_integer_factor_size

initial size for integer array for the factors and other data

Int64 max_real_factor_size

maximum size for real array for the factors and other data

Int64 max_integer_factor_size

maximum size for integer array for the factors and other data

Int64 max_in_core_store

amount of in-core storage to be used for out-of-core factorization

T array_increase_factor

factor by which arrays sizes are to be increased if they are too small

T array_decrease_factor

if previously allocated internal workspace arrays are greater than array_decrease_factor times the currently required sizes, they are reset to current requirements

Int32 pivot_control

pivot control:

  • 1 Numerical pivoting will be performed.

  • 2 No pivoting will be performed and an error exit will occur immediately a pivot sign change is detected.

  • 3 No pivoting will be performed and an error exit will occur if a zero pivot is detected.

  • 4 No pivoting is performed but pivots are changed to all be positive

Int32 ordering

controls ordering (ignored if explicit PERM argument present)

  • <0 chosen by the specified solver with its own ordering-selected value -ordering

  • 0 chosen package default (or the AMD ordering if no package default)

  • 1 Approximate minimum degree (AMD) with provisions for “dense” rows/col

  • 2 Minimum degree

  • 3 Nested disection

  • 4 indefinite ordering to generate a combination of 1x1 and 2x2 pivots

  • 5 Profile/Wavefront reduction

  • 6 Bandwidth reduction

  • >6 ordering chosen depending on matrix characteristics (not yet implemented)

Int32 full_row_threshold

controls threshold for detecting full rows in analyse, registered as percentage of matrix order. If 100, only fully dense rows detected (defa

Int32 row_search_indefinite

number of rows searched for pivot when using indefinite ordering

Int32 scaling

controls scaling (ignored if explicit SCALE argument present)

  • <0 chosen by the specified solver with its own scaling-selected value -scaling

  • 0 No scaling

  • 1 Scaling using HSL’s MC64

  • 2 Scaling using HSL’s MC77 based on the row one-norm

  • 3 Scaling using HSL’s MC77 based on the row infinity-norm

Int32 scale_maxit

the number of scaling iterations performed (default 10 used if .scale_maxit < 0)

T scale_thresh

the scaling iteration stops as soon as the row/column norms are less than 1+/-.scale_thresh

T relative_pivot_tolerance

pivot threshold

T minimum_pivot_tolerance

smallest permitted relative pivot threshold

T absolute_pivot_tolerance

any pivot small than this is considered zero

T zero_tolerance

any entry smaller than this is considered zero

T zero_pivot_tolerance

any pivot smaller than this is considered zero for positive-definite sol

T negative_pivot_tolerance

any pivot smaller than this is considered to be negative for p-d solvers

T static_pivot_tolerance

used for setting static pivot level

T static_level_switch

used for switch to static

T consistency_tolerance

used to determine whether a system is consistent when seeking a Fredholm alternative

Int32 max_iterative_refinements

maximum number of iterative refinements allowed

T acceptable_residual_relative

refinement will cease as soon as the residual ||Ax-b|| falls below max( acceptable_residual_relative * ||b||, acceptable_residual_absolute

T acceptable_residual_absolute

see acceptable_residual_relative

Bool multiple_rhs

set .multiple_rhs to .true. if there is possibility that the solver will be required to solve systems with more than one right-hand side. More efficient execution may be possible when .multiple_rhs = .false.

Bool generate_matrix_file

if .generate_matrix_file is .true. if a file describing the current matrix is to be generated

Int32 matrix_file_device

specifies the unit number to write the input matrix (in co-ordinate form

char matrix_file_name[31]

name of generated matrix file containing input problem

char out_of_core_directory[401]

directory name for out of core factorization and additional real workspace in the indefinite case, respectively

char out_of_core_integer_factor_file[401]

out of core superfile names for integer and real factor data, real works and additional real workspace in the indefinite case, respectively

char out_of_core_real_factor_file[401]

see out_of_core_integer_factor_file

char out_of_core_real_work_file[401]

see out_of_core_integer_factor_file

char out_of_core_indefinite_file[401]

see out_of_core_integer_factor_file

char out_of_core_restart_file[501]

see out_of_core_integer_factor_file

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’