- Thank you received: 1
Difference between 'umfpack' and 'pardiso'
4 years 5 months ago #2783
by dong
Difference between 'umfpack' and 'pardiso' was created by dong
I would like to ask a question about different direct solvers.
With umfpack flag, there is traceback call when running the following code.
NgException: UmfpackInverse: Numeric factorization failed.
But when I changed to inverse="pardiso" or without that flag. The code run without any errors.
Could you please tell me what the difference between 'umfpack' , 'pardiso' and no flag is?
Thank you so much.
With umfpack flag, there is traceback call when running the following code.
Code:
#Solve
inv = a.mat.Inverse(freedofs=X.FreeDofs(), inverse="umfpack")
res = f.vec.CreateVector()
res.data = f.vec - a.mat*gfu.vec
gfu.vec.data += inv * res
But when I changed to inverse="pardiso" or without that flag. The code run without any errors.
Code:
#Solve
inv = a.mat.Inverse(freedofs=X.FreeDofs(), inverse="pardiso")
res = f.vec.CreateVector()
res.data = f.vec - a.mat*gfu.vec
gfu.vec.data += inv * res
Code:
#Solve
inv = a.mat.Inverse(freedofs=X.FreeDofs())
res = f.vec.CreateVector()
res.data = f.vec - a.mat*gfu.vec
gfu.vec.data += inv * res
Could you please tell me what the difference between 'umfpack' , 'pardiso' and no flag is?
Thank you so much.
Attachments:
- christopher
- Offline
- Administrator
Less
More
- Thank you received: 101
4 years 5 months ago - 4 years 5 months ago #2797
by christopher
Replied by christopher on topic Difference between 'umfpack' and 'pardiso'
Hi, pardiso and umfpack are 2 different direct sparse solvers, if no argument is provided and both are installed pardiso is used.
Umfpack (most likely correctly) tells you that your system is singular and therefore not solveable. Pardiso can "solve" it by numerical error, so the round off errors make your system regular.
Umfpack (most likely correctly) tells you that your system is singular and therefore not solveable. Pardiso can "solve" it by numerical error, so the round off errors make your system regular.
Last edit: 4 years 5 months ago by christopher.
4 years 1 month ago #3231
by Libo-Yan
Replied by Libo-Yan on topic Difference between 'umfpack' and 'pardiso'
Hello Christopher,
If I test the example Fluid-structure interaction proposed by MICHAEL NEUNTEUFEL:
I received the error:
NgException: SparseMatrix::InverseMatrix: UmfpackInverse not available
Then I tried to fix this error as the followings:
stokes.mat.Inverse(bts, inverse = "pardiso")
Then, I received the error:
The kernel appears to have died. It will restart automatically.
I am using Anaconda in WIN10.
Thanks in advance!
Libo Yan
If I test the example Fluid-structure interaction proposed by MICHAEL NEUNTEUFEL:
I received the error:
NgException: SparseMatrix::InverseMatrix: UmfpackInverse not available
Then I tried to fix this error as the followings:
stokes.mat.Inverse(bts, inverse = "pardiso")
Then, I received the error:
The kernel appears to have died. It will restart automatically.
I am using Anaconda in WIN10.
Thanks in advance!
Libo Yan
Time to create page: 0.116 seconds