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

First solve with dense right hand side and following solve with sparse rhs

Hailong_X_
Beginner
282 Views

Dear All

I am trying to using pardiso (sparse direct solver) as my subdomain (substructure) solver in my domain decomposition application.

The first solve with dense right hand side (rhs) coming from source terms and boundary conditions.

The following sloves using the factorized sparse matrices with sparse right hand side only assotiated with boundary conditions.

With pardiso, the first solve I set IPARM(31) = 0 and PERM(i)=0 with phase = 13.

The following solves, I set IPARM(31) = 1, and only some PERM(i) = 1.

It seems like the entries b( m ) affected my solution even if PERM(m) =0 when phase = 33.

Here are my questions.

1. Is PERM usefull for function pardiso( ) when phase = 33 ?

2. Is there a better way to acheive my goal which is 

   the first solve (phase = 13) is with dense right hand side, but the following solves (phase = 33) using the factorized matrices with sparse right hand side ?

Hailong

0 Kudos
3 Replies
Zhang_Z_Intel
Employee
282 Views

Hailong,

In the case of partial solver, PERM is used in all phases. But I'm not sure how it is used in the solve phase, and how it affects the solution vector. Let me check with our PARDISO engineer and get back to you later. Thanks.

0 Kudos
Alexander_K_Intel2
282 Views

Hi Hailong,

According your question:

1. Am I correct that you use one reordering and factorization steps for your matrix and after change PERM array to achieve partial solution? It is incorrect using of partial solving algorithm because PARDISO need to have PERM array on reordering step. Please correct me, if I didn't understand you.

2. The one way to achieve you goal is the following:

iparm(31)=0

call pardiso(pt,ido=13,...)

call pardiso(pt,ido=-1)

iparm(31)=1

set perm

call pardiso(pt,ido=12,...)

loop call pardiso(pt,ido=33,...)

call pardiso(pt,ido=-1)

With best regards,

Alexander Kalinkin

0 Kudos
Hailong_X_
Beginner
282 Views

Hi Alexander

Thanks for your suggestion. Your understanding is correct.

But my goal is just factorize the matrices once. Because it is the most expensive part of the code.

My goal to be more specific is that one reordering and one factorization for the whole problem.

The first solve is with all the entries of the right hand side (rhs) b. But the rest of the solves are the patial solves.

Do you have any suggestion to do that?

Hailong

0 Kudos
Reply