Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6998 Discussions

## Matrix sparsity pattern, PARDISO

Beginner
254 Views

Hello everyone!

I use matlab spy function to plot the sparsity pattern of matrix. I can't quite get what is the correct formula that represents nonsymmetric matrix after phase 11 of PARDISO? I got perm array and created permutation matrix. Will PAPbe the correct formula?

Employee
254 Views

Hello,

Basically, yes,   but there are some discussion. Please see MKL reference manual https://software.intel.com/en-us/mkl-developer-reference-c

Perm  : Array, size (n). Depending on the value of iparm[4] and iparm[30], holds
the permutation vector of size
n
, specifies elements used for computing a
partial solution, or specifies differing values of the input matrices for low
rank update.

If
iparm[4] = 1, iparm[30] = 0, and iparm[35] = 0, perm specifies
the fill-in reducing ordering to the solver. Let
A
be the original matrix
and
C = P*A*P
T be the permuted matrix. Row (column) i of C is the
perm[i] row (column) of A. The array perm
is also used to return the
permutation vector calculated during fill-in reducing ordering stage.

NOTE:
Be aware that setting iparm[4]
= 1 prevents use of a parallel
algorithm for the solve step.

1700
If
iparm[4] = 2, iparm[30] = 0, and iparm[35] = 0, the permutation
vector computed in phase 11 is returned in the
perm
array.
If
iparm[4] = 0, iparm[30] > 0, and iparm[35] = 0, perm specifies
elements of the right-hand side to use or of the solution to compute for
a partial solution.

If
iparm[4] = 0, iparm[30] = 0, and iparm[35] > 0, perm specifies
elements for a Schur complement.

If
iparm[38] = 1, perm specifies values that differ in A for low rank
update (see
Low Rank Update
). The size of the array must be at least
2*
ndiff + 1, where ndiff is the number of values of A
that are different.
The values of
perm
should be:
perm = {ndiff, row_index1, column_index1, row_index2
,
column_index2, ...., row_index_ndiff, column_index_ndiff
}
where row_index_m and column_index_m
are the row and column
indices of the
m-th differing non-zero value in matrix A
. The row and
column index pairs can be in any order, but must use zero-based
indexing regardless of the value of
iparm[34]
.
See
iparm[4], iparm[30], and iparm[38]
for more details.
Indexing of
perm is one-based by default, but unless iparm[38]
= 1 it can
be changed to zero-based by setting the appropriate value to the parameter

iparm[34].

Best Regards,

Ying