[petsc-users] Creating a 2d geometry by using vector
Barry Smith
bsmith at mcs.anl.gov
Thu Aug 18 21:09:53 CDT 2011
Alan,
I'm not sure what you are getting at but we commonly use tricks like (see src/snes/examples/tutorials/ex19.c)
typedef struct {
PetscScalar u,v,omega,temp;
} Field;
Then in this case use a DMDAVecGetArray() to get f and x and then have nice notation like
f[j][i].u = x[j][i].u;
f[j][i].v = x[j][i].v;
f[j][i].omega = x[j][i].omega - (x[j][i+1].v - x[j][i].v)*dhx;
f[j][i].temp = x[j][i].temp;
note that this means the values are stored interlaced in the vector.
Barry
On Aug 18, 2011, at 9:03 PM, Alan Wei wrote:
> Dear All,
> I'm trying to 'draw' a 2-D cylinder in PETSc. It simply restore the x and y coordinate values in two arrays. I wonder if I can use Vec in PETSc to implement it (i.e. defining a vec circle) so that I can call its x or y coordinate by circle.x or circle.y. Is this possible? also, is this a better way than just defining it as two arrays, i.e. x[ ] and y[ ].
>
> thanks in advance,
> Alan
More information about the petsc-users
mailing list