Subroutines

Basic subroutines

subroutine spllt_analyse(akeep, fkeep, options, n, ptr, row, info, order)

Perform the analyse phase of the factorization (referred to as symbolic factorization) for a matrix supplied in Compressed Sparse Column (CSC) format. The resulting symbolic factors stored in akeep should be passed unaltered in the subsequent calls to spllt_factor(). This routines also initializes the numeric factorization data stored in fkeep that should also be passed in the subsequent calls to spllt_factor().

Parameters:
  • akeep [spllt_akeep,inout] :: symbolic factorization data.
  • fkeep [spllt_fkeep,inout] :: numeric factorization data.
  • options [spllt_options,in] :: user-supplied options to be used.
  • n [integer,in] :: order of the system.
  • ptr (n+1) [integer,in] :: column pointers for lower triangular part.
  • row (ptr(n+1)-1) [integer,in] :: row indices of lower triangular part.
  • info [spllt_inform,out] :: exit status.
  • order (n) [integer,out] :: permutation array used for matrix ordering.
subroutine spllt_factor(akeep, fkeep, options, val, info)

Perform the numerical factorization of the matrix whose structure is kept in akeep that is determined with the spllt_analyse() routine. The numerical factors are stored in fkeep and should be passed unaltered in the subsequent calls to spllt_solve() for computing the solution to the system.

Parameters:
  • akeep [spllt_akeep,inout] :: symbolic factorization data.
  • fkeep [spllt_fkeep,inout] :: numeric factorization data.
  • options [spllt_options,in] :: user-supplied options to be used.
  • val (*) [real,in] :: non-zero values for \(A\) in same format as for the call to ssids_analyse()
  • info [spllt_inform,out] :: exit status.

Note

This routine call is asynchronous, the routine spllt_wait() should be call afterwards to make sure that the factorization has been completed.

subroutine spllt_solve(fkeep, options, order, x, info[, job])

Solves for multiple right-hand sides on the following problems:

job Equation solved
0 (or absent) \(AX=B\)
1 \(PLX=B\)
2 \((PL)^TX=B\)
Parameters:
  • fkeep [spllt_fkeep,in] :: numeric factorization data.
  • options [spllt_options,in] :: user-supplied options to be used.
  • order (n) [integer,out] :: permutation array used for matrix ordering.
  • x (n,nrhs) [real,inout] :: right-hand sides \(B\) on entry, solutions \(X\) on exit. n represents the order of matrix \(A\).
  • info [spllt_inform,out] :: exit status.
Options:

job [integer,in] :: specifies equation to solve, as per above table.

subroutine spllt_wait()

Wait for all the tasks submitted in a previous function call to be completed.