MatCreateMPIAIJWithSplitArrays

Panyasantisuk Jarunan Jarunan.Panyasantisuk at eleves.ec-nantes.fr
Fri Jan 23 10:07:03 CST 2009


I have tried to upgrade to 3.0.0, I could compile the program with 
MatCreateMPIAIJWithSplitArrays() but somehow cause of the configuration 
I cannot execute the program. Anyway, does not it work with petsc-2.3.3?

Is there an equivalent mechanism for MatCreateMPIAIJWithSplitArrays() 
(Like MatMPIAIJSetPreallocationCSR() for MatCreateMPIAIJWithArrays()) ?

Thank you very much

Regards,
Jarunan

-- 
Jarunan PANYASANTISUK
MSc. in Computational Mechanics
Erasmus Mundus Master Program
Ecole Centrale de Nantes
1, rue de la noë, 44321 NANTES, FRANCE



Matthew Knepley <knepley at gmail.com> a écrit :

> 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
>






More information about the petsc-users mailing list