uls_control_type structure#
#include <galahad_uls.h> struct uls_control_type { // fields bool f_indexing; ipc_ error; ipc_ warning; ipc_ out; ipc_ print_level; ipc_ print_level_solver; ipc_ initial_fill_in_factor; ipc_ min_real_factor_size; ipc_ min_integer_factor_size; int64_t max_factor_size; ipc_ blas_block_size_factorize; ipc_ blas_block_size_solve; ipc_ pivot_control; ipc_ pivot_search_limit; ipc_ minimum_size_for_btf; ipc_ max_iterative_refinements; bool stop_if_singular; rpc_ array_increase_factor; rpc_ switch_to_full_code_density; rpc_ array_decrease_factor; rpc_ relative_pivot_tolerance; rpc_ absolute_pivot_tolerance; rpc_ zero_tolerance; rpc_ acceptable_residual_relative; rpc_ acceptable_residual_absolute; 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_ print_level
controls level of diagnostic output
ipc_ print_level_solver
controls level of diagnostic output from external solver
ipc_ initial_fill_in_factor
prediction of factor by which the fill-in will exceed the initial number of nonzeros in \(A\)
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_factor_size
maximum size for real array for the factors and other data
ipc_ blas_block_size_factorize
level 3 blocking in factorize
ipc_ blas_block_size_solve
level 2 and 3 blocking in solve
ipc_ pivot_control
pivot control:
1 Threshold Partial Pivoting is desired
2 Threshold Rook Pivoting is desired
3 Threshold Complete Pivoting is desired
4 Threshold Symmetric Pivoting is desired
5 Threshold Diagonal Pivoting is desired
ipc_ pivot_search_limit
number of rows/columns pivot selection restricted to (0 = no restriction)
ipc_ minimum_size_for_btf
the minimum permitted size of blocks within the block-triangular form
ipc_ max_iterative_refinements
maximum number of iterative refinements allowed
bool stop_if_singular
stop if the matrix is found to be structurally singular
rpc_ array_increase_factor
factor by which arrays sizes are to be increased if they are too small
rpc_ switch_to_full_code_density
switch to full code when the density exceeds this factor
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
rpc_ relative_pivot_tolerance
pivot threshold
rpc_ absolute_pivot_tolerance
any pivot small than this is considered zero
rpc_ zero_tolerance
any entry smaller than this in modulus is reset to zero
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
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’