<div dir="ltr">Just make a function that creates viewers like this, then call it to create two independent viewers that are configured similarly except for the file name. I don't think this makes sense in the library.<div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Mar 20, 2013 at 1:28 PM, Nachiket Gokhale <span dir="ltr"><<a href="mailto:gokhalen@gmail.com" target="_blank">gokhalen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I have this in my code:<br>
<br>
ierr = PetscViewerCreate(PETSC_COMM_WORLD,&RightViewer);CHKERRQ(ierr);<br>
ierr = PetscViewerSetType(RightViewer,PETSCVIEWERASCII);CHKERRQ(ierr);<br>
ierr = PetscViewerFileSetMode(RightViewer,FILE_MODE_WRITE);CHKERRQ(ierr);<br>
ierr = PetscViewerSetFormat(RightViewer,PETSC_VIEWER_ASCII_MATLAB);CHKERRQ(ierr);<br>
<br>
ierr = PetscViewerCreate(PETSC_COMM_WORLD,&LeftViewer);CHKERRQ(ierr);<br>
ierr = PetscViewerSetType(LeftViewer,PETSCVIEWERASCII);CHKERRQ(ierr);<br>
ierr = PetscViewerFileSetMode(LeftViewer,FILE_MODE_WRITE);CHKERRQ(ierr);<br>
ierr = PetscViewerSetFormat(LeftViewer,PETSC_VIEWER_ASCII_MATLAB);CHKERRQ(ierr);<br>
<br>
It would have been nice to create the LeftViewer from the RightViewer.<br>
 That is what I am trying to do.<br>
<br>
At other places I use only one viewer to output left and right matrices:<br>
<br>
 // projection matrices in ascii<br>
  ierr = PetscViewerCreate(PETSC_COMM_WORLD,&ProjMatViewer);CHKERRQ(ierr);<br>
  ierr = PetscViewerSetType(ProjMatViewer,PETSCVIEWERASCII);CHKERRQ(ierr);<br>
  ierr = PetscViewerFileSetMode(ProjMatViewer,FILE_MODE_WRITE);CHKERRQ(ierr);<br>
  ierr = PetscViewerSetFormat(ProjMatViewer,PETSC_VIEWER_ASCII_MATLAB);CHKERRQ(ierr);<br>
  // right<br>
  ierr = PetscViewerFileSetName(ProjMatViewer,projfileasciiright);CHKERRQ(ierr);<br>
  ierr = MatView(ProjMatRight,ProjMatViewer);CHKERRQ(ierr);<br>
  // left<br>
  ierr = PetscViewerFileSetName(ProjMatViewer,projfileasciileft);CHKERRQ(ierr);<br>
  ierr = MatView(ProjMatLeft,ProjMatViewer);CHKERRQ(ierr);<br>
  // destroy<br>
  ierr = PetscViewerDestroy(&ProjMatViewer);CHKERRQ(ierr);<br>
<br>
But I think switching the filename is inconvenient - I'd rather create<br>
a separate viewer Left and Right Matrices and have it copy the same<br>
parameters from an already created viewer.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Nachiket<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Mar 20, 2013 at 2:16 PM, Jed Brown <<a href="mailto:jedbrown@mcs.anl.gov">jedbrown@mcs.anl.gov</a>> wrote:<br>
> What would it mean to duplicate a viewer? What are you actually trying to<br>
> do?<br>
><br>
> On Mar 20, 2013 12:59 PM, "Nachiket Gokhale" <<a href="mailto:gokhalen@gmail.com">gokhalen@gmail.com</a>> wrote:<br>
>><br>
>> Not a show stopper, but would it be possible to add a<br>
>> PetscViewerDuplicate function? I don't see such a function here -<br>
>><br>
>> <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Viewer/index.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Viewer/index.html</a><br>
>><br>
>> Cheers, -Nachiket<br>
</div></div></blockquote></div><br></div></div>