[petsc-users] Distributing already assembled stiffness matrix
Jed Brown
jed at jedbrown.org
Wed Oct 18 07:38:35 CDT 2017
"Jaganathan, Srikrishna" <srikrishna.jaganathan at fau.de> writes:
> Thanks for your response, its helpful.
>
> I do have few more questions, most of my matrices are of compressed row
> storage format.
>
> 1)So when I was creating sequentially , I just used
> MatCreateSeqAIJWithArrays , but the same for MPI version is quite
> confusing to use. I don't understand how to decide on the local rows(it
> would be really helpful if there is an example) .
Just call MatSetValues once per row. The MatCreateMPIAIJWith*
interfaces are not for you.
> 2)When I also tried using MatSetValues it doesn't seem to use the same
> indexing as compressed row storage format.What type of indexing should
> be used when MatSetValues are used and called from rank 0 for CRS
> Matrices?
>
> On 2017-10-18 13:33, Jed Brown wrote:
>> Easiest is to assemble into a distributed matrix from rank 0. So
>> instead of calling MatCreate using PETSC_COMM_SELF, use a parallel
>> communicator (like PETSC_COMM_WORLD). It is fine if only rank 0 calls
>> MatSetValues, but all processes must call MatAssemblyBegin/End.
>>
>> "Jaganathan, Srikrishna" <srikrishna.jaganathan at fau.de> writes:
>>
>>> Hello,
>>>
>>>
>>> I have been trying to distribute a already existing stiffness matrix
>>> in
>>> my FEM code to petsc parallel matrix object , but I am unable to find
>>> any documentation regarding it. It was quite straightforward to create
>>> a
>>> sequential petsc matrix object and everything was working as
>>> intended.I
>>> have read some of the user comments in the mailing lists regarding
>>> similar situation and most of the times the solution suggested is to
>>> create stiffness matrix from the the mesh in distributed format. Since
>>> its a little difficult in my case to pass the mesh data in the code ,
>>> is
>>> there anyway to distribute already existing stiffness matrix ?
>>>
>>> Thanks and Regards
>>>
>>> Srikrishna Jaganathan
More information about the petsc-users
mailing list