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

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

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

4 posts / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.

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.

Hi Hailong,

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,

Hi Alexander

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