Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
7234 Discussions

could pardiso handle a sparse equations with dynamic size?

haibo__zhao
Beginner
525 Views

Hi, I am new to Pardiso and I want to use pardiso to solve a large sparse linear equations in a transient problem. My  problem is that my sparse matrix size is not fixed . it is dynamic and varies with time. I want to know if pardiso could handle this problems or the size in Pardiso must be fixed? If so, what should I do? 

0 Kudos
1 Reply
Kirill_V_Intel
Employee
525 Views

Hello!

As a first step I'd estimate whether you actually need to re-use the matrix from the previous step. Maybe, you'll get results quickly enough when simply re-computing factorization at each step (= for each matrix) and there is no need to complicate things.

The question is then what remains the same in your problem when the matrix size changes. Do you expect previous matrix to be a good approximation of the current one? Then possibly you can use the factorization once you've computed it as a preconditioner for the next problem but you'll need a transition matrix which will match you meshes at different time steps (I imagine your problem size changes due to the mesh changing). In this case, you'll have your favorite iterative method (say, CG or BiCGStab) with a preconditioner which will involve calling PARDISO when computing the preconditioner action.

Also, if you matrix changes are due to the localized changes in the mesh, you can do the same, or exploit the Schur complement (re-compute only a smaller part of the factorization). See https://software.intel.com/en-us/articles/intel-mkl-support-to-new-functionality-schur-complement

Hope this is useful.

Best,
Kirill

0 Kudos
Reply