[petsc-users] Query regarding accessing data in a Petsc Vec object
Patrick Sanan
patrick.sanan at gmail.com
Sun Sep 28 07:09:13 CDT 2014
Note that PETSc is designed to hide the details of the implementations
from you (It's in C, but uses the techniques of Object-Oriented
programming that you might be more familiar with in C++), so normal use
would never require the user to know anything about the way PETSc
objects represent data. In cases cases where access to lower-level
representations of the data is useful, there is an interface provided to
do this, as with Vec[Get/Set]Array (see the tutorials included in the
src/ tree for many examples - if you look at the bottom of the link
Anton provided, you'll see a handy list of links to ones that use that
particular function).
The definitions of the functions in VecOps will depend on the
implementation of Vec being used, and this is in general only known at
runtime (which is a great advantage, as you can use command line
arguments to change which implementation is used without recompiling
anything). The various function definitions should be found in
src/vec/vec/impls and subdirectories.
So, while it is possible to access the data stored in an object and
print it and so on, you'd have to include a private header and it'd be
a bit ugly. Perhaps a better way to poke around is to use a debugger
like gdb or lldb (or something else built into your IDE if you're using
one) - that should be quicker, and not require to you to spend time
recompiling things.
On 9/28/14 1:57 PM, Parvathi M.K wrote:
> I want to access the data stored in the vec object directly without
> using any functions. Is this possible?
>
> I tried using something like p->hdr._ in a printf statement (where p
> is a vector). I wish to know which element of the _p_Vec structure
> stores the data.
>
> On Sun, Sep 28, 2014 at 4:45 PM, Parvathi M.K <phoenixauriga at gmail.com
> <mailto:phoenixauriga at gmail.com>> wrote:
>
> Hey,
> I am fairly new to PetSc. I was just curious as to how you can
> directly access the data stored in a Petsc object, say a vector
> without using VecGetValues().
>
> I've gone through the header files, petscimpl.h and vecimpl.h
> which contain the definitions of the PetscObject and Vec
> structures. I cannot figure out which member of the struct holds
> the Vector data entered using VecSet(). Also, I could not find the
> definitions of the functions in VecOps. Could someone tell me
> where I can find these function definitions?
>
> Thank you :)
>
> Parvathi
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140928/24583fed/attachment-0001.html>
More information about the petsc-users
mailing list