<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Perfect, PETSC_NULL_VEC works in fortran. Thank you very much for
your help! :-)<br>
<br>
Cheers,<br>
Sam<br>
<br>
<div class="moz-cite-prefix">On 11/24/2017 03:18 PM, Matthew Knepley
wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4G=7Ja8p50wgB8fiGfy_AZENHTNR8fJspYTSxuGfnpS8MQ@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Fri, Nov 24, 2017 at 6:42 AM,
Samuel Lanthaler <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:s.lanthaler@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:s.lanthaler@gmail.com">s.lanthaler@gmail.com</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Ah,
great. I didn't understand that "optional" arguments are
not optional in the fortran sense of the word. After
setting up two vectors to pass to the routine, the program
works. Thank you very much!<br>
<br>
One additional question: In the documentation, it is
written that I can pass PETSC_NULL for these two vectors,
if I don't actually need them. That probably only works in
C, but not in fortran. Is there a corresponding argument I
can pass to the routine in fortran? It seems, that
PETSC_NULL_REAL doesn't work; is there some other
PETSC_NULL_XXX that should be passed in this case from
fortran? If not, then I'll just stick to creating vectors
and distroying them afterwards, which is fine for me as
well.<br>
</blockquote>
<div><br>
</div>
<div>You can use PETSC_NULL_VEC</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Cheers,<br>
Sam<br>
<br>
<br>
On 11/24/2017 01:56 AM, Smith, Barry F. wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
MatZeroRowsColumns() as two vector arguments you are
missing<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
On Nov 23, 2017, at 2:43 PM, Samuel Lanthaler <<a
moz-do-not-send="true"
href="mailto:s.lanthaler@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:s.lanthaler@gmail.com">s.lanthaler@gmail.com</a></a>>
wrote:<br>
<br>
Hi there,<br>
I'm new to PETSc and have been trying to do some basic
manipulation of matrices in fortran, but don't seem to
be able to set a row/column to zero using the
MatZeroRowsColumns command: The following is a small
example program:<br>
<br>
! initialize PETSc<br>
CALL PetscInitialize(PETSC_NULL_CHA<wbr>RACTER,ierr)<br>
<br>
! Set up a new matrix<br>
m = 3<br>
CALL MatCreate(PETSC_COMM_WORLD,mat<wbr>A,ierr);
CHKERRQ(ierr);<br>
CALL MatSetType(matA,MATMPIAIJ,ierr<wbr>);
CHKERRQ(ierr);<br>
CALL MatSetSizes(matA,PETSC_DECIDE,<wbr>PETSC_DECIDE,m,m,ierr);
CHKERRQ(ierr);<br>
CALL MatMPIAIJSetPreallocation(matA<wbr>,3,PETSC_NULL_INTEGER,3,PETSC_<wbr>NULL_INTEGER,ierr);
CHKERRQ(ierr);<br>
<br>
! set values of matrix<br>
vals(1,:) = (/1.,2.,3./)<br>
vals(2,:) = (/4.,5.,6./)<br>
vals(3,:) = (/7.,8.,9./)<br>
!<br>
idxm = (/0,1,2/)<br>
idxn = (/0,1,2/)<br>
!<br>
CALL MatSetValues(matA,3,idxm,3,idx<wbr>n,vals,INSERT_VALUES,ierr);
CHKERRQ(ierr);<br>
! assemble matrix<br>
CALL MatAssemblyBegin(matA,MAT_FINA<wbr>L_ASSEMBLY,ierr);
CHKERRQ(ierr);<br>
CALL MatAssemblyEnd(matA,MAT_FINAL_<wbr>ASSEMBLY,ierr);
CHKERRQ(ierr);<br>
! set one row/column to zero, put 6.0d0 on
diagonal<br>
idone(1) = 2<br>
val = 6.0d0<br>
CALL MatZeroRowsColumns(matA,1,idon<wbr>e,val,ierr);
CHKERRQ(ierr);<br>
<br>
! finalize PETSc<br>
CALL PetscFinalize(PETSC_NULL_CHARA<wbr>CTER,ierr)<br>
<br>
When running the program, I get the following error
message:<br>
<br>
[0]PETSC ERROR: ------------------------------<wbr>------------------------------<wbr>------------<br>
[0]PETSC ERROR: Caught signal number 11 SEGV:
Segmentation Violation, probably memory access out of
range<br>
[0]PETSC ERROR: Try option -start_in_debugger or
-on_error_attach_debugger<br>
[0]PETSC ERROR: or see <a moz-do-not-send="true"
href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind"
rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/faq.html#valgrind</a><br>
[0]PETSC ERROR: or try <a moz-do-not-send="true"
href="http://valgrind.org" rel="noreferrer"
target="_blank">http://valgrind.org</a> on GNU/linux
and Apple Mac OS X to find memory corruption errors<br>
[0]PETSC ERROR: likely location of problem given in
stack below<br>
[0]PETSC ERROR: --------------------- Stack Frames
------------------------------<wbr>------<br>
[0]PETSC ERROR: Note: The EXACT line numbers in the
stack are not available,<br>
[0]PETSC ERROR: INSTEAD the line number of the
start of the function<br>
[0]PETSC ERROR: is given.<br>
[0]PETSC ERROR: --------------------- Error Message
------------------------------<wbr>------------------------------<wbr>--<br>
[0]PETSC ERROR: Signal received<br>
[0]PETSC ERROR: See <a moz-do-not-send="true"
href="http://www.mcs.anl.gov/petsc/documentation/faq.html"
rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/d<wbr>ocumentation/faq.html</a>
for trouble shooting.<br>
[0]PETSC ERROR: Petsc Release Version 3.8.2, Nov, 09,
2017<br>
[0]PETSC ERROR: ./test on a arch-complex-debug named
sam-ThinkPad-T450s by sam Thu Nov 23 23:28:15 2017<br>
[0]PETSC ERROR: Configure options
PETSC_DIR=/home/sam/Progs/pets<wbr>c-3.8.2
PETSC_ARCH=arch-complex-debug
--with-scalar-type=complex<br>
[0]PETSC ERROR: #1 User provided function() line 0 in
unknown file<br>
------------------------------<wbr>------------------------------<wbr>--------------<br>
MPI_ABORT was invoked on rank 0 in communicator
MPI_COMM_WORLD<br>
with errorcode 59.<br>
Would someone be so kind as to tell me what I'm doing
wrong? Thank you!<br>
<br>
Best regards,<br>
Sam<br>
</blockquote>
</blockquote>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>What most experimenters take for granted before
they begin their experiments is infinitely more
interesting than any results to which their
experiments lead.<br>
-- Norbert Wiener</div>
<div><br>
</div>
<div><a moz-do-not-send="true"
href="http://www.caam.rice.edu/%7Emk51/"
target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>