Visible to Intel only — GUID: GUID-1C28C2B0-86E8-4B18-BB9C-EF9AEBEF6FAC
Visible to Intel only — GUID: GUID-1C28C2B0-86E8-4B18-BB9C-EF9AEBEF6FAC
dss_define_structure
Communicates locations of non-zero elements in the matrix to the solver.
Syntax
call dss_define_structure(handle, opt, rowIndex, nRows, nCols, columns, nNonZeros);
Include Files
- mkl.fi, mkl_dss.f90
Description
The routine dss_define_structure communicates the locations of the nNonZeros number of non-zero elements in a matrix of nRows * nCols size to the solver.
The Intel® oneAPI Math Kernel Library (oneMKL) DSS software operates only on square matrices, sonRows must be equal to nCols.
To communicate the locations of non-zero elements in the matrix, do the following:
Define the general non-zero structure of the matrix by specifying the value for the options argument opt. You can set the following values for real matrices:
MKL_DSS_SYMMETRIC_STRUCTURE
MKL_DSS_SYMMETRIC
MKL_DSS_NON_SYMMETRIC
and for complex matrices:
MKL_DSS_SYMMETRIC_STRUCTURE_COMPLEX
MKL_DSS_SYMMETRIC_COMPLEX
MKL_DSS_NON_SYMMETRIC_COMPLEX
The information about the matrix type must be defined in dss_define_structure.
Provide the actual locations of the non-zeros by means of the arrays rowIndex and columns (see Sparse Matrix Storage Format).
Input Parameters
opt |
INTEGER, INTENT(IN) Parameter to pass the DSS options. The default value for the matrix structure is MKL_DSS_SYMMETRIC. |
rowIndex |
INTEGER, INTENT(IN) Array of size nRows+1. Defines the location of non-zero entries in the matrix. |
nRows |
INTEGER, INTENT(IN) Number of rows in the matrix. |
nCols |
INTEGER, INTENT(IN) Number of columns in the matrix; must be equal to nRows. |
columns |
INTEGER, INTENT(IN) Array of size nNonZeros. Defines the column location of non-zero entries in the matrix. |
nNonZeros |
INTEGER, INTENT(IN) Number of non-zero elements in the matrix. |
Output Parameters
handle |
TYPE (MKL_DSS_HANDLE), INTENT(INOUT) Pointer to the data structure storing internal DSS results (MKL_DSS_HANDLE). |
Return Values
MKL_DSS_SUCCESS
MKL_DSS_STATE_ERR
MKL_DSS_INVALID_OPTION
MKL_DSS_STRUCTURE_ERR
MKL_DSS_ROW_ERR
MKL_DSS_COL_ERR
MKL_DSS_NOT_SQUARE
MKL_DSS_TOO_FEW_VALUES
MKL_DSS_TOO_MANY_VALUES
MKL_DSS_OUT_OF_MEMORY
MKL_DSS_MSG_LVL_ERR
MKL_DSS_TERM_LVL_ERR