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’