Hi all,

For 2-D finite difference problems with dof>1,to use MatSetValuesBlocked, what 
should be the indices used in that routine? Am I right if I just use the 
indices just like dof=1, but set (5*dof^2) values at one time?

Specifically, I'm trying to use implicit TS solver with dof>1, as in example 
src/ts/examples/tutorials/ex10. I understand for 1-D finite diffrence cases, we 
have (3 by dof^2) matrix elements, and we can use as in the example: 
MatSetValuesBlocked(B,1,&i,3,col,&K[0][0],INSERT_VALUES);
to insert/form the Jacobian. In my 2-D cases with dof=3, I use 5-point finite 
difference regime, which means I will have (5*3^2=45) elements Jacobian to be 
set at one time as in the example, right? If I use the statement "Matstencil 
row, col[5]" as indices to insert values, after we set: "row.i=i, row.j=j and 
col[1:5].i=..., col[1:5].j=...", then just simply use:
MatSetValuesBlocked(B,1,&row, 5, &col, &K[0][0],INSERT_VALUES);
to insert these (5*3^2) values to form the Jacobian?

I'm also confused by the dof defined in the Mat. Does it mean for each node, 
there are (dof^2) elements?

Thank you in advance!

Best regards,

________________________________________
From: Barry Smith [[email protected]]
Sent: Sunday, September 21, 2014 11:57 AM
To: Feng  Shi
Cc: [email protected]
Subject: Re: [petsc-users] Mat indices

  Mat indices always start with 0 in global indexing used by MatSetValues, 
MatSetValuesBlocked

  With “local orderings” on can chose to use whatever indexing makes sense for 
your local ordering, this is used with MatSetValuesLocal(), 
MatSetValuesBlockedLocal().

   Barry

On Sep 21, 2014, at 10:35 AM, Feng Shi <[email protected]> wrote:

> Hi all,
>
> When setting the Mat indices, like the example: 
> src/ts/examples/tutorials/ex10, I noticed that on line
>
> 508:     col[0] = i-1;
> 509:     col[1] = i;
> 510:     col[2] = i+1<info.mx ? i+1 : -1;
> 511:     
> MatSetValuesBlocked<http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValuesBlocked.html#MatSetValuesBlocked>(B,1,&i,3,col,&K[0][0],INSERT_VALUES<http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/INSERT_VALUES.html#INSERT_VALUES>);
>
> How about the case that when i=0, then col[0]=-1 and i=info.mx then col[2]=-1?
> My question is, is the Mat default indices starting from -1?
>
> Thank you in advance!
>
> Best regards,
>
> Feng

Reply via email to