<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
Thanks, Dr. Simth,<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;If the PETSc can be installed on the&nbsp;supurcomputer by me?&nbsp;&nbsp;The&nbsp;software is currently installed by the&nbsp;network manager of the supercomputer.<BR>
&nbsp;<BR>
&nbsp;&nbsp;The example code : ex2f.F&nbsp;from <A href="http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-2.3.3/src/ksp/ksp/examples/tutorials/ex2f.F">http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-2.3.3/src/ksp/ksp/examples/tutorials/ex2f.F</A>&nbsp;is compiled and run on the same supercomputer.&nbsp;<BR>
There is no error coming out when ex2f.F runs.&nbsp; &nbsp;I am just trying to implement my own matrix into the code.&nbsp; The variation in my code is that the indices of the&nbsp;matrix is&nbsp;arrays, while that in&nbsp;example code is II and JJ. However, in the latest version of my code, I already&nbsp;assigned the arrays of indices to PetscInt II,JJ. Unfortunately, the error still comes out.&nbsp;&nbsp; It's kind of confusing that the own coded program just doen't work well.<BR>
&nbsp;<BR>
&nbsp; Thanks for your suggestion.<BR>
&nbsp;<BR>
<P id=SkyDrivePlaceholder>&nbsp;</P>
in&gt; From: bsmith@mcs.anl.gov<BR>&gt; Date: Wed, 1 Dec 2010 15:48:47 -0600<BR>&gt; To: petsc-users@mcs.anl.gov<BR>&gt; Subject: Re: [petsc-users] column index in MatSetValues()<BR>&gt; <BR>&gt; <BR>&gt; Humm, the problem is still very likely related to a miss-match between 4 byte and 8 byte integers.<BR>&gt; <BR>&gt; You should just install PETSc yourself (then you have control over it, giving control to someone else whenever doing scientific computing is always dangerous).<BR>&gt; <BR>&gt; Installing PETSc is usually no big deal. If you have problems send configure.log and make.log to petsc-maint@mcs.anl.gov<BR>&gt; <BR>&gt; <BR>&gt; Barry<BR>&gt; <BR>&gt; On Dec 1, 2010, at 3:44 PM, Peter Wang wrote:<BR>&gt; <BR>&gt; &gt; Thanks,<BR>&gt; &gt; <BR>&gt; &gt; I changed the '1' to PetscInt ione, However, the error still comes out.<BR>&gt; &gt; <BR>&gt; &gt; do II=Istart,Iend-1<BR>&gt; &gt; mone=II+1 !(Coef,snr,rnr are 1-based row and column numbers, shifting them to 0-based)<BR>&gt; &gt; write(*,'(1a,4i7)')'II=',II,mone,snr(mone),rnr(mone)<BR>&gt; &gt; call MatSetValues(A_Petsc,ione,snr(mone),ione,rnr(mone),Coef(mone),INSERT_VALUES,ierr) ! PetscInt ione and mone; PetscInt snr(n_nz),rnr(n_nz) PetscReal Coef(n_nz)<BR>&gt; &gt; ^^ ^^^<BR>&gt; &gt; enddo <BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; BTW, I am running the code on the clusters of supurcomputer. Where the option ' --with-64-bit-indices=1' shold I find and remove? <BR>&gt; &gt; <BR>&gt; &gt; !===The modified code is ==<BR>&gt; &gt; program Debug_PETSc_MatCreate_20101130<BR>&gt; &gt; implicit none<BR>&gt; &gt; !<BR>&gt; &gt; #include "finclude/petscsys.h"<BR>&gt; &gt; #include "finclude/petscvec.h"<BR>&gt; &gt; #include "finclude/petscmat.h"<BR>&gt; &gt; #include "finclude/petscpc.h"<BR>&gt; &gt; #include "finclude/petscksp.h"<BR>&gt; &gt; ! Variables<BR>&gt; &gt; !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - <BR>&gt; &gt; ! PETSc Variables<BR>&gt; &gt; !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - <BR>&gt; &gt; real*8 norm<BR>&gt; &gt; PetscInt i,j,II,JJ,its !,m,n<BR>&gt; &gt; PetscInt Istart,Iend,ione,mone<BR>&gt; &gt; PetscErrorCode ierr<BR>&gt; &gt; PetscMPIInt myid,numprocs<BR>&gt; &gt; PetscTruth flg<BR>&gt; &gt; PetscScalar v,one,neg_one<BR>&gt; &gt; Vec x,b,u<BR>&gt; &gt; Mat A_petsc <BR>&gt; &gt; KSP ksp<BR>&gt; &gt; PetscInt,parameter::n_nz=4<BR>&gt; &gt; !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - <BR>&gt; &gt; ! Other Variables<BR>&gt; &gt; !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - <BR>&gt; &gt; PetscInt::snr(n_nz),rnr(n_nz)<BR>&gt; &gt; !parameter::n_nz=4<BR>&gt; &gt; PetscReal::Coef(n_nz)<BR>&gt; &gt; data Coef /1., 2., 3. , 4./<BR>&gt; &gt; data snr /0, 1, 2, 3/<BR>&gt; &gt; data rnr /0, 1 , 2, 3/<BR>&gt; &gt; ! Body of Debug_PETSc_MatCreate_20101130<BR>&gt; &gt; ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<BR>&gt; &gt; ! Beginning of program<BR>&gt; &gt; ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <BR>&gt; &gt; call PetscInitialize(PETSC_NULL_CHARACTER,ierr)<BR>&gt; &gt; call MPI_Comm_rank(PETSC_COMM_WORLD,myid,ierr)<BR>&gt; &gt; call MPI_Comm_size(PETSC_COMM_WORLD,numprocs,ierr)<BR>&gt; &gt; write(*,"('snr=',4i4)")snr <BR>&gt; &gt; write(*,"('rnr=',4i4)")rnr <BR>&gt; &gt; call MatCreate(PETSC_COMM_WORLD,A_Petsc,ierr)<BR>&gt; &gt; call MatSetSizes(A_Petsc,PETSC_DECIDE,PETSC_DECIDE,n_nz,n_nz,ierr) !n_nz-1???<BR>&gt; &gt; call MatSetFromOptions(A_Petsc,ierr)<BR>&gt; &gt; ! write(*,*)A_petsc<BR>&gt; &gt; call MatGetOwnershipRange(A_Petsc,Istart,Iend,ierr)<BR>&gt; &gt; <BR>&gt; &gt; write(*,'(1a,1i7,1a,1i7)') &amp;<BR>&gt; &gt; '8.....Check after MatGetOwnershipRange() Istart=',Istart,' Iend=',Iend<BR>&gt; &gt; do II=Istart,Iend-1<BR>&gt; &gt; mone=II+1 !(Coef,snr,rnr are 1-based row and column numbers, shifting them to 0-based)<BR>&gt; &gt; write(*,'(1a,4i7)')'II=',II,mone,snr(mone),rnr(mone)<BR>&gt; &gt; call MatSetValues(A_Petsc,ione,snr(mone),ione,rnr(mone),Coef(mone),INSERT_VALUES,ierr)<BR>&gt; &gt; enddo <BR>&gt; &gt; <BR>&gt; &gt; write(*,'(1a)')'9.....Check after MatSetValues()'<BR>&gt; &gt; call MatAssemblyBegin(A_petsc,MAT_FINAL_ASSEMBLY,ierr)<BR>&gt; &gt; call MatAssemblyEnd(A_Petsc,MAT_FINAL_ASSEMBLY,ierr)<BR>&gt; &gt; write(*,'(1a)')'10.....Check after MatCreate()'<BR>&gt; &gt; call MatView(A_Petsc,PETSC_VIEWER_STDOUT_WORLD,ierr)<BR>&gt; &gt; ! call KSPDestroy(ksp,ierr)<BR>&gt; &gt; ! call VecDestroy(u,ierr)<BR>&gt; &gt; ! call VecDestroy(x,ierr)<BR>&gt; &gt; ! call VecDestroy(b,ierr)<BR>&gt; &gt; call MatDestroy(A_petsc,ierr)<BR>&gt; &gt; call PetscFinalize(ierr)<BR>&gt; &gt; end program Debug_PETSc_MatCreate_20101130<BR>&gt; &gt; <BR>&gt; &gt; <BR>&gt; &gt; &gt; From: bsmith@mcs.anl.gov<BR>&gt; &gt; &gt; Date: Wed, 1 Dec 2010 08:06:19 -0600<BR>&gt; &gt; &gt; To: petsc-users@mcs.anl.gov<BR>&gt; &gt; &gt; Subject: Re: [petsc-users] column index in MatSetValues()<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; --with-64-bit-indices=1<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; You only need this option if you are solving problems with over 2 billion unknowns! I recommend removing it otherwise, it wastes memory and slows performance slightly.<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; &gt; MatSetValues(A_Petsc,1,snr(Ione),1,rnr(Ione),Coef(Ione)<BR>&gt; &gt; &gt; ^^^^ ^^^^^<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; --with-64-bit-indices means ALL integers passed to PETSc MUST be 64 bit, but here you are passing the integer 1 as a "regular" 32 bit integer. You need to declare it as a PetscInt, for example<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; PetscInt mone<BR>&gt; &gt; &gt; mone = 1<BR>&gt; &gt; &gt; &gt; MatSetValues(A_Petsc,mone,snr(Ione),mone,rnr(Ione),Coef(Ione)<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; but better just build PETSc without the --with-64-bit-indices<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; Barry<BR>&gt; &gt; &gt; <BR>&gt; &gt; &gt; <BR>&gt; <BR><BR>                                               </body>
</html>