sls_control_type structure#
#include <galahad_sls.h> struct sls_control_type { // fields bool f_indexing; ipc_ error; ipc_ warning; ipc_ out; ipc_ statistics; ipc_ print_level; ipc_ print_level_solver; ipc_ bits; ipc_ block_size_kernel; ipc_ block_size_elimination; ipc_ blas_block_size_factorize; ipc_ blas_block_size_solve; ipc_ node_amalgamation; ipc_ initial_pool_size; ipc_ min_real_factor_size; ipc_ min_integer_factor_size; int64_t max_real_factor_size; int64_t max_integer_factor_size; int64_t max_in_core_store; rpc_ array_increase_factor; rpc_ array_decrease_factor; ipc_ pivot_control; ipc_ ordering; ipc_ full_row_threshold; ipc_ row_search_indefinite; ipc_ scaling; ipc_ scale_maxit; rpc_ scale_thresh; rpc_ relative_pivot_tolerance; rpc_ minimum_pivot_tolerance; rpc_ absolute_pivot_tolerance; rpc_ zero_tolerance; rpc_ zero_pivot_tolerance; rpc_ negative_pivot_tolerance; rpc_ static_pivot_tolerance; rpc_ static_level_switch; rpc_ consistency_tolerance; ipc_ max_iterative_refinements; rpc_ acceptable_residual_relative; rpc_ acceptable_residual_absolute; bool multiple_rhs; bool generate_matrix_file; ipc_ matrix_file_device; char matrix_file_name[31]; char out_of_core_directory[401]; char out_of_core_integer_factor_file[401]; char out_of_core_real_factor_file[401]; char out_of_core_real_work_file[401]; char out_of_core_indefinite_file[401]; char out_of_core_restart_file[501]; char prefix[31]; };
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_ warning
unit for warning messages
ipc_ out
unit for monitor output
ipc_ statistics
unit for statistical output
ipc_ print_level
controls level of diagnostic output
ipc_ print_level_solver
controls level of diagnostic output from external solver
ipc_ bits
number of bits used in architecture
ipc_ block_size_kernel
the target blocksize for kernel factorization
ipc_ block_size_elimination
the target blocksize for parallel elimination
ipc_ blas_block_size_factorize
level 3 blocking in factorize
ipc_ blas_block_size_solve
level 2 and 3 blocking in solve
ipc_ node_amalgamation
a child node is merged with its parent if they both involve fewer than node_amalgamation eliminations
ipc_ initial_pool_size
initial size of task-pool arrays for parallel elimination
ipc_ min_real_factor_size
initial size for real array for the factors and other data
ipc_ min_integer_factor_size
initial size for integer array for the factors and other data
int64_t max_real_factor_size
maximum size for real array for the factors and other data
int64_t max_integer_factor_size
maximum size for integer array for the factors and other data
int64_t max_in_core_store
amount of in-core storage to be used for out-of-core factorization
rpc_ array_increase_factor
factor by which arrays sizes are to be increased if they are too small
rpc_ 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
ipc_ 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
ipc_ 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)
ipc_ 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
ipc_ row_search_indefinite
number of rows searched for pivot when using indefinite ordering
ipc_ 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
ipc_ scale_maxit
the number of scaling iterations performed (default 10 used if .scale_maxit < 0)
rpc_ scale_thresh
the scaling iteration stops as soon as the row/column norms are less than 1+/-.scale_thresh
rpc_ relative_pivot_tolerance
pivot threshold
rpc_ minimum_pivot_tolerance
smallest permitted relative pivot threshold
rpc_ absolute_pivot_tolerance
any pivot small than this is considered zero
rpc_ zero_tolerance
any entry smaller than this is considered zero
rpc_ zero_pivot_tolerance
any pivot smaller than this is considered zero for positive-definite sol
rpc_ negative_pivot_tolerance
any pivot smaller than this is considered to be negative for p-d solvers
rpc_ static_pivot_tolerance
used for setting static pivot level
rpc_ static_level_switch
used for switch to static
rpc_ consistency_tolerance
used to determine whether a system is consistent when seeking a Fredholm alternative
ipc_ max_iterative_refinements
maximum number of iterative refinements allowed
rpc_ acceptable_residual_relative
refinement will cease as soon as the residual ||Ax-b|| falls below max( acceptable_residual_relative * ||b||, acceptable_residual_absolute
rpc_ 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
ipc_ 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
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’