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

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

Link Copied

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

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.

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

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

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

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

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