I tried the matrix-free method. Since the number of the unknown is large, say 
50000, then the number of matrix elements is 50000^2, which is greater than the 
max number represented by the 32-bit int. PETSC gives an error message: "Mesh 
of 50000 by 50000 by 1 (dof) is too large for 32 bit indices."

I know using the 64-bit int option when compiling PETSC can avoid this error. 
However, it seems that 64-bit int makes the PETSC relatively slow. I wonder why 
the matrix-free method still counts the total number of matrix elements even 
though they are not stored. Any other ways around it?

Thank you,
Jiannan

From: Barry Smith <bsm...@petsc.dev>
Sent: Tuesday, May 24, 2022 2:13 PM
To: Tu, Jiannan <jiannan...@uml.edu>
Cc: petsc-users@mcs.anl.gov
Subject: Re: [petsc-users] Using matrix-free with KSP

This e-mail originated from outside the UMass Lowell network.
________________________________

   You can use MatCreateMFFD 
https://petsc.org/main/docs/manualpages/Mat/MatCreateMFFD/<https://urldefense.com/v3/__https:/petsc.org/main/docs/manualpages/Mat/MatCreateMFFD/__;!!PVKG_VDCxu5g!stxq2NWGVjUihvHBQC9Rlk0aHVoowcy0PTQYMcQxQ4DqOEC05KSw6TmstSXKckiUgelHzy4ue-d10-zlXkw$>
 MatMFFDSetFunction MatSetFromOptions MatMFFDSetBase and provide the matrix to 
KSP. Note you will need to use -pc_type none or provide your own custom 
preconditioner with 
https://petsc.org/main/docs/manualpages/PC/PCSHELL/<https://urldefense.com/v3/__https:/petsc.org/main/docs/manualpages/PC/PCSHELL/__;!!PVKG_VDCxu5g!stxq2NWGVjUihvHBQC9Rlk0aHVoowcy0PTQYMcQxQ4DqOEC05KSw6TmstSXKckiUgelHzy4ue-d1cA4fKGw$>




On May 24, 2022, at 1:21 PM, Tu, Jiannan 
<jiannan...@uml.edu<mailto:jiannan...@uml.edu>> wrote:

I want to use a matrix-free matrix to solve a large linear equation system 
because the matrix is too large to be stored. Petsc user manual describes 
matrix-free method for SNES with examples. The matrix-free matrices section 
explains how to set up such a matrix, but I can't find any example of 
matrix-free method with KSP. I am wondering how to apply the method to KSP 
iterative solver in parallel.

I greatly appreciate your help for me to understand this topic.

Jiannan Tu

Reply via email to