[petsc-users] how to use MatSetValues?
Tomasz Jankowski
tomjan at jay.au.poznan.pl
Tue Mar 8 03:16:28 CST 2011
> I think m and n are the number of rows and columns you are inserting
> in the matrix. If you insert one value at a time, that would be
>
> MatSetValues(xx,1,row,1,col,val,INSERT_VALUES);
>
> I hope it helps
>
> Gianluca
hello Gianluca, thanks for re.
your sugestion doesn't work.
my code
Mat xx;
PetscInitialize(&argc,&argv,(char *)0,help);
MatCreateSeqAIJ(PETSC_COMM_SELF,5,5,PETSC_DECIDE,PETSC_NULL,&xx);
PetscInt row [] ={0, 1, 2, 3, 4};
PetscInt col [] = {1, 0, 4, 2, 3};
PetscScalar val[] = {1.1,2.2,3.3,4.4,5.5};
MatSetValues(xx,5,row,5,col,val,INSERT_VALUES);
MatAssemblyBegin(xx,MAT_FINAL_ASSEMBLY);
MatAssemblyEnd(xx,MAT_FINAL_ASSEMBLY);
MatView(xx,PETSC_VIEWER_STDOUT_WORLD);
PetscFinalize();
and here few examples of results
MatSetValues(xx,1,row,1,col,val,INSERT_VALUES);
row 0: (1, 1.1)
row 1:
row 2:
row 3:
row 4:
MatSetValues(xx,5,row,1,col,val,INSERT_VALUES);
row 0: (1, 1.1)
row 1: (1, 2.2)
row 2: (1, 3.3)
row 3: (1, 4.4)
row 4: (1, 5.5)
MatSetValues(xx,5,row,5,col,val,INSERT_VALUES);
row 0: (0, 2.2) (1, 1.1) (2, 4.4) (3, 5.5) (4, 3.3)
row 1: (0, 4.94066e-324) (1, 2.07411e-317) (2, 1.4822e-323) (3, 2.07356e-317) (4, 4.24399e-314)
row 2: (0, 6.36599e-314) (1, 2.122e-314) (2, 2.07402e-317) (3, 1.5957e-316) (4, 1.18832e-312)
row 3: (0, 6.95332e-310) (1, 2.07367e-317) (2, 0) (3, 1.20407e-312) (4, 0)
row 4: (0, 6.95332e-310) (1, 0) (2, 2.07378e-317) (3, 0) (4, 2.122e-314)
tom
########################################################
# tomjan at jay.au.poznan.pl #
# jay.au.poznan.pl/~tomjan/ #
########################################################
On Tue, 8 Mar 2011, Gianluca Meneghello wrote:
> I think m and n are the number of rows and columns you are inserting
> in the matrix. If you insert one value at a time, that would be
>
> MatSetValues(xx,1,row,1,col,val,INSERT_VALUES);
>
> I hope it helps
>
> Gianluca
>
> On 8 March 2011 09:39, Tomasz Jankowski <tomjan at jay.au.poznan.pl> wrote:
>> hello,
>>
>> Could someone give me a hand with MatSetValues function?
>>
>> suppose such example sparse matrix
>>
>> 0 1.1 0 0 0
>> 2.2 0 0 0 0
>> 0 0 0 0 3.3
>> 0 0 4.4 0 0
>> 0 0 0 5.5 0
>>
>> after storing it in row, col and val arrays we have
>>
>> row[0] = 0;col[0]=1;val[0]=1.1;
>> row[1] = 1;col[1]=0;val[1]=2.2;
>> row[2] = 2;col[2]=4;val[2]=3.3;
>> row[3] = 3;col[3]=2;val[3]=4.4;
>> row[3] = 4;col[3]=3;val[4]=5.5;
>>
>> question is: how to use MatSetValues with it?
>>
>> I thought that 'MatSetValues(xx,5,row,1,col,val,INSERT_VALUES);' would be
>> good but it doesn't .(I suppose I don't fully anderstand how it works...)
>>
>> thanks,
>>
>> tom
>>
>> ########################################################
>> # tomjan at jay.au.poznan.pl #
>> # jay.au.poznan.pl/~tomjan/ #
>> ########################################################
>>
>
>
>
> --
> "[Je pense que] l'homme est un monde qui vaut des fois les mondes et
> que les plus ardentes ambitions sont celles qui ont eu l'orgueil de
> l'Anonymat" -- Non omnibus, sed mihi et tibi
> Amedeo Modigliani
>
More information about the petsc-users
mailing list