sbls_control_type structure#
struct sbls_control_type{T} f_indexing::Bool error::Int32 out::Int32 print_level::Int32 indmin::Int32 valmin::Int32 len_ulsmin::Int32 itref_max::Int32 maxit_pcg::Int32 new_a::Int32 new_h::Int32 new_c::Int32 preconditioner::Int32 semi_bandwidth::Int32 factorization::Int32 max_col::Int32 scaling::Int32 ordering::Int32 pivot_tol::T pivot_tol_for_basis::T zero_pivot::T static_tolerance::T static_level::T min_diagonal::T stop_absolute::T stop_relative::T remove_dependencies::Bool find_basis_by_transpose::Bool affine::Bool allow_singular::Bool perturb_to_make_definite::Bool get_norm_residual::Bool check_basis::Bool space_critical::Bool deallocate_error_fatal::Bool symmetric_linear_solver::NTuple{31,Cchar} definite_linear_solver::NTuple{31,Cchar} unsymmetric_linear_solver::NTuple{31,Cchar} prefix::NTuple{31,Cchar} sls_control::sls_control_type{T} uls_control::uls_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 print_level
controls level of diagnostic output
Int32 indmin
initial estimate of integer workspace for SLS (obsolete)
Int32 valmin
initial estimate of real workspace for SLS (obsolete)
Int32 len_ulsmin
initial estimate of workspace for ULS (obsolete)
Int32 itref_max
maximum number of iterative refinements with preconditioner allowed
Int32 maxit_pcg
maximum number of projected CG iterations allowed
Int32 new_a
how much has \(A\) changed since last factorization: 0 = not changed, 1 = values changed, 2 = structure changed
Int32 new_h
how much has \(H\) changed since last factorization: 0 = not changed, 1 = values changed, 2 = structure changed
Int32 new_c
how much has \(C\) changed since last factorization: 0 = not changed, 1 = values changed, 2 = structure changed
Int32 preconditioner
which preconditioner to use:
0 selected automatically
1 explicit with \(G = I\)
2 explicit with \(G = H\)
3 explicit with \(G =\) diag(max(\(H\),min_diag))
4 explicit with \(G =\) band \((H)\)
5 explicit with \(G =\) (optional, diagonal) \(D\)
11 explicit with \(G_{11} = 0\), \(G_{21} = 0\), \(G_{22} = H_{22}\)
12 explicit with \(G_{11} = 0\), \(G_{21} = H_{21}\), \(G_{22} = H_{22}\)
-1 implicit with \(G_{11} = 0\), \(G_{21} = 0\), \(G_{22} = I\)
-2 implicit with \(G_{11} = 0\), \(G_{21} = 0\), \(G_{22} = H_{22}\)
Int32 semi_bandwidth
the semi-bandwidth for band(H)
Int32 factorization
the explicit factorization used:
0 selected automatically
1 Schur-complement if \(G\) is diagonal and successful otherwise augmented system
2 augmented system
3 C_NULL-space
4 Schur-complement if \(G\) is diagonal and successful otherwise failure
5 Schur-complement with pivoting if \(G\) is diagonal and successful otherwise failure
Int32 max_col
maximum number of nonzeros in a column of \(A\) for Schur-complement factorization
Int32 scaling
not used at present
Int32 ordering
see scaling
T pivot_tol
the relative pivot tolerance used by ULS (obsolete)
T pivot_tol_for_basis
the relative pivot tolerance used by ULS when determining the basis matrix
T zero_pivot
the absolute pivot tolerance used by ULS (obsolete)
T static_tolerance
not used at present
T static_level
see static_tolerance
T min_diagonal
the minimum permitted diagonal in diag(max(\(H\),min_diag))
T stop_absolute
the required absolute and relative accuracies
T stop_relative
see stop_absolute
Bool remove_dependencies
preprocess equality constraints to remove linear dependencies
Bool find_basis_by_transpose
determine implicit factorization preconditioners using a basis of A found by examining A’s transpose
Bool affine
can the right-hand side \(c\) be assumed to be zero?
Bool allow_singular
do we tolerate “singular” preconditioners?
Bool perturb_to_make_definite
if the initial attempt at finding a preconditioner is unsuccessful, should the diagonal be perturbed so that a second attempt succeeds?
Bool get_norm_residual
compute the residual when applying the preconditioner?
Bool check_basis
if an implicit or C_NULL-space preconditioner is used, assess and correct for ill conditioned basis matrices
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 symmetric_linear_solver[31]
indefinite linear equation solver
char definite_linear_solver[31]
definite linear equation solver
char unsymmetric_linear_solver[31]
unsymmetric 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 SLS
struct uls_control_type uls_control
control parameters for ULS