[petsc-users] petsc4py, plotting DA and writing to file
Barry Smith
bsmith at mcs.anl.gov
Mon Sep 27 12:02:16 CDT 2010
On Sep 27, 2010, at 11:47 AM, Lisandro Dalcin wrote:
> On 27 September 2010 13:33, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>
>> Lisandro
>>
>> In C he could do VecView(vec,PETSC_VIEWER_DRAW_WORLD); can he not do the equivalent in Python?
>> What syntax would he use?
>
> viewer = PETSc.Viewer.DRAW(globalvec.comm)
> globalvec.view(viewer) # or viewer(globalvec)
>
>>
>> Perhaps the 2d bratu python example could demonstrate this since it is simple and there is no monkeying with copying to one process etc.
>>
>
> Well, that example does not even use a DA, the plot is going to be a bit ugly.
Sorry. Barry
>
>> Barry
>>
>> On Sep 27, 2010, at 11:27 AM, Lisandro Dalcin wrote:
>>
>>> On 27 September 2010 13:12, Amal Alghamdi <amal.ghamdi at kaust.edu.sa> wrote:
>>>> Dear All,
>>>> I'm using the DA structure in petsc4py. I'd like to know please what is the
>>>> right way to:
>>>> plot the DA vector (the global vector).
>>>> write the global vector to a file.
>>>> Is that each process writes or draws its own part? or I should communicate
>>>> all the data to one process? or none of these?!!
>>>> Thank you very much
>>>> Amal
>>>
>>> Use a PETSc.Viewer().createBinary() to save the global vector. Each
>>> process will save its own part.
>>>
>>> In order to plot it, I think you should use numpy.fromfile() to load
>>> the data, and then plot the array.
>>>
>>> Other way would be to use a PETSc.Scatter.toZero() to get the data at
>>> process 0, and then plot it
>>>
>>> scatter, seqvec = PETSc.Scatter.toZero(globalvec)
>>> im = PETSc.InsertMode.INSERT_VALUES
>>> sm = PETSc.ScatterMode.FORWARD
>>> scatter.scatter(globalvec, seqvec, im, sm)
>>> if globalvec.comm.rank == 0:
>>> plot(seqvec.array)
>>>
>>>
>>> --
>>> Lisandro Dalcin
>>> ---------------
>>> CIMEC (INTEC/CONICET-UNL)
>>> Predio CONICET-Santa Fe
>>> Colectora RN 168 Km 472, Paraje El Pozo
>>> Tel: +54-342-4511594 (ext 1011)
>>> Tel/Fax: +54-342-4511169
>>
>>
>
>
>
> --
> Lisandro Dalcin
> ---------------
> CIMEC (INTEC/CONICET-UNL)
> Predio CONICET-Santa Fe
> Colectora RN 168 Km 472, Paraje El Pozo
> Tel: +54-342-4511594 (ext 1011)
> Tel/Fax: +54-342-4511169
More information about the petsc-users
mailing list