MatCreateMPIAIJWithSplitArrays

Matthew Knepley knepley at gmail.com
Thu Jan 15 10:06:52 CST 2009


On Thu, Jan 15, 2009 at 9:42 AM, Panyasantisuk Jarunan <
Jarunan.Panyasantisuk at eleves.ec-nantes.fr> wrote:

> When I create a matrix with MatCreateMPIAIJWithSplitArrays, as it doesn't
> copy the values so I have to use MatSetValues to set the internal value?


1) You should upgrade to 3.0.0

2) You should not have to call MatSetValues(). It will use the arrays you
provide.

  Matt


>
> --
> Jarunan PANYASANTISUK
> MSc. in Computational Mechanics
> Erasmus Mundus Master Program
> Ecole Centrale de Nantes
> 1, rue de la noë, 44321 NANTES, FRANCE
>
>
>
> Barry Smith <bsmith at mcs.anl.gov> a Ã(c)crit :
>
>
>>   You should be able to use MatCreateMPIAIJWithSplitArrays(),
>>  MatCreateMPIAIJWithArrays() or MatMPIAIJSetPreallocationCSR()
>> from Fortran. Are you using PETSc 3.0.0?
>>
>>   The arguments for MatCreateMPIAIJWithArrays() or
>>  MatMPIAIJSetPreallocationCSR() have the same meaning
>> (in fact MatCreateMPIAIJWithArrays() essentially calls
>>  MatCreateMPIAIJWithArrays()).
>>
>>   Barry
>>
>> On Jan 14, 2009, at 7:38 AM, Panyasantisuk Jarunan wrote:
>>
>>  Oh, I could not use MatCreateMPIAIJWithArrays either but the  mechanism
>>> below works.
>>>
>>>    call MatCreate(PETSC_COMM_WORLD,D,ierr)
>>>    call MatSetSizes(D,N,N,PETSC_DETERMINE,PETSC_DETERMINE,
>>>   $     ierr)
>>>    call MatSetType(D,MATMPIAIJ,ierr) ! to set type a parallel matrix
>>>    call MatSetFromOptions(D,ierr)
>>>    call MatMPIAIJSetPreallocationCSR(D,pointer,Column,v,ierr)
>>>
>>> Where pointer is start-row indices a
>>>    Column is local column indices
>>>    v is value
>>>
>>> Is there the different beteween the start-row indices in
>>>  MatMPIAIJSetPreallocationCSR and row indices in  MatCreateMPIAIJWithArrays
>>> ?
>>>
>>>
>>>
>>> Regards,
>>> Jarunan
>>>
>>>
>>>
>>>
>>> Hello,
>>>
>>> To define a matrix with arrays, I cannot use
>>>  MatCreateMPIAIJWithSplitArrays in my program which is written in  Fortran:
>>>
>>>    call MatCreateMPIAIJWithSplitArrays(PETSC_COMM_WORLD,N,N,
>>>   $     PETSC_DETERMINE,PETSC_DETERMINE,pointer,column,v,opointer,
>>>   $     oColumn,ov,D,ierr)
>>>
>>> The error is
>>> F:246: undefined reference to `matcreatempiaijwithsplitarrays_'
>>>
>>> I could use MatCreateMPIAIJWithArrays but the off diagonal values  are
>>> missing with this command.
>>>
>>> I would be appreciate for any advice. Thank you before hand.
>>>
>>> Regards,
>>> Jarunan
>>>
>>>
>>>
>>>
>>> --
>>> Jarunan PANYASANTISUK
>>> MSc. in Computational Mechanics
>>> Erasmus Mundus Master Program
>>> Ecole Centrale de Nantes
>>> 1, rue de la noë, 44321 NANTES, FRANCE
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>


-- 
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20090115/c96081a3/attachment.html>


More information about the petsc-users mailing list