- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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 PAP^{T }be the correct formula?

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page