You have to pass PETSC_NULL_OBJECT instead of PETSC_NULL in Fortran.<br><br><br>From the man pages:<br><br>"This macro does not exist in Fortran; you must use PETSC_NULL_INTEGER,
PETSC_NULL_DOUBLE_PRECISION, PETSC_NULL_FUNCTION, PETSC_NULL_OBJECT etc
"<br><br><br><a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL</a><br><br><br>John<br>
<br><br><div class="gmail_quote">On Fri, May 4, 2012 at 2:01 PM, TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div class="im">
<br>
On 4/5/2012 5:17 PM, Matthew Knepley wrote:
<blockquote type="cite">
<div class="gmail_extra">On Fri, May 4, 2012 at 11:05 AM, TAY
wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> <br>
On 4/5/2012 3:05 PM, Matthew Knepley wrote:
<blockquote type="cite">
<div class="gmail_extra">On Fri, May 4, 2012 at 8:59 AM,
TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> <br>
Hi,<br>
<br>
Is there anything else I can try to get it
working right?<br>
</div>
</blockquote>
<div><br>
</div>
<div>The MatGetNullSpaceRemove() is missing.</div>
</div>
</div>
</blockquote>
Where should I add MatGetNullSpaceRemove and what are its
syntax? I googled but there's no results.<br>
</div>
</blockquote>
<div><br>
</div>
<div>Fixed in p;etsc-dev:</div>
<div><br>
</div>
<div> <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatNullSpaceRemove.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatNullSpaceRemove.html</a></div>
</div>
</div>
</blockquote>
<br></div>
I just compiled the updated petsc-dev but I got the same error msg
when I use:<br>
<br>
call MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)<br>
<br>
error LNK2019: unresolved external symbol MATNULLSPACEREMOVE
referenced in function COMPUTERHS<br>
1>c:\obj_tmp\ex29f\Debug\ex29f.exe : fatal error LNK1120: 1
unresolved externals<div><div class="h5"><br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</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">
<div bgcolor="#FFFFFF" text="#000000"> Thanks.<br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<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">
<div bgcolor="#FFFFFF" text="#000000"> Thanks!<br>
<br>
<br>
On 2/5/2012 10:11 PM, Matthew Knepley wrote:
<blockquote type="cite">
<div class="gmail_extra">On Wed, May 2, 2012
at 1:55 PM, TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
I did a MatView and VecView on both C
and Fortran, right after Mat and Vec
assembly. I have attached the printout
below. They are exactly the same, but
yet the result is different in Neumann
condition. However, the dirichlet
condition gives the correct ans. Is
there anything else that could be
wrong even if the Mat and Vec are the
same?<br>
</div>
</blockquote>
<div><br>
</div>
<div>Did you set the null space for the
matrix when you have Neumann conditions?</div>
</div>
</div>
</blockquote>
Yes, for the matrix, I set as:<br>
<br>
call
MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)<br>
<br>
call MatSetNullSpace(jac,nullspace,ierr)<br>
<br>
call MatNullSpaceDestroy(nullspace,ierr)<br>
<br>
for the Vec, <br>
<br>
call
MatNullSpaceCreate(PETSC_COMM_WORLD,PETSC_TRUE,0,PETSC_NULL_OBJECT,nullspace,ierr)<br>
<br>
<b>!call
MatNullSpaceRemove(nullspace,b,PETSC_NULL,ierr)</b><br>
<br>
call MatNullSpaceDestroy(nullspace,ierr)<br>
<br>
MatNullSpaceRemove was comment out because
there's error during linking<br>
<br>
<br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<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">
<div bgcolor="#FFFFFF" text="#000000">
Thanks!<br>
<br>
Fortran:<br>
<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
row 0: (0, 2) (1, -1) (3, -1)<br>
row 1: (0, -1) (1, 3) (2, -1) (4,
-1)<br>
row 2: (1, -1) (2, 2) (5, -1)<br>
row 3: (0, -1) (3, 3) (4, -1) (6,
-1)<br>
row 4: (1, -1) (3, -1) (4, 4) (5,
-1) (7, -1)<br>
row 5: (2, -1) (4, -1) (5, 3) (8,
-1)<br>
row 6: (3, -1) (6, 2) (7, -1)<br>
row 7: (4, -1) (6, -1) (7, 3) (8,
-1)<br>
row 8: (5, -1) (7, -1) (8, 2)<br>
Vector Object:Vec_0000000084000000_0 1
MPI processes<br>
type: mpi<br>
Process [0]<br>
0.25<br>
0.0205213<br>
1.135e-005<br>
0.0205213<br>
0.00168449<br>
9.31663e-007<br>
1.135e-005<br>
9.31663e-007<br>
5.15289e-010<br>
Vector Object:Vec_0000000084000000_1 1
MPI processes<br>
type: mpi<br>
Process [0]<br>
0.14924<br>
0.0242397<br>
-0.0260347<br>
0.0242397<br>
-0.0256192<br>
-0.0400102<br>
-0.0260347<br>
-0.0400102<br>
-0.0400102<br>
Press any key to continue . . .<br>
<br>
C:<br>
<br>
Matrix Object: 1 MPI processes<br>
type: seqaij<br>
row 0: (0, 2) (1, -1) (3, -1) <br>
row 1: (0, -1) (1, 3) (2, -1) (4,
-1) <br>
row 2: (1, -1) (2, 2) (5, -1) <br>
row 3: (0, -1) (3, 3) (4, -1) (6,
-1) <br>
row 4: (1, -1) (3, -1) (4, 4) (5,
-1) (7, -1) <br>
row 5: (2, -1) (4, -1) (5, 3) (8,
-1) <br>
row 6: (3, -1) (6, 2) (7, -1) <br>
row 7: (4, -1) (6, -1) (7, 3) (8,
-1) <br>
row 8: (5, -1) (7, -1) (8, 2) <br>
Vector Object:Vec_0x1d3b000_0 1 MPI
processes<br>
type: mpi<br>
Process [0]<br>
0.25<br>
0.0205212<br>
1.135e-05<br>
0.0205212<br>
0.00168449<br>
9.31663e-07<br>
1.135e-05<br>
9.31663e-07<br>
5.15288e-10<br>
Vector Object:Vec_0x1d3b000_1 1 MPI
processes<br>
type: mpi<br>
Process [0]<br>
0.139311<br>
0.0305751<br>
-0.0220633<br>
0.0305751<br>
-0.0135158<br>
-0.042185<br>
-0.0220633<br>
-0.042185<br>
-0.058449<br>
<br>
<br>
<br>
<pre cols="72">Yours sincerely,
TAY wee-beng</pre>
<br>
On 1/5/2012 11:54 PM, Matthew Knepley
wrote:
<blockquote type="cite">
<div class="gmail_extra">On Tue, May
1, 2012 at 5:48 PM, TAY wee-beng <span dir="ltr"><<a href="mailto:zonexo@gmail.com" target="_blank">zonexo@gmail.com</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Hi,<br>
<br>
Do you mean my method is
wrong?<br>
<br>
I am following the template of
ex22f,<br>
<br>
where the variables are
declared as :<br>
<br>
PetscScalar v(5)<br>
<br>
MatStencil row(4),col(4,5)<br>
<br>
Hence,<br>
<br>
for the neumann BC<br>
<br>
num = 1<br>
<br>
if (j/=0) then<br>
<br>
v(num) =
-rho*HxdHy<br>
<br>
col(MatStencil_i,num) = i<br>
<br>
col(MatStencil_j,num) = j-1<br>
<br>
num = num +
1<br>
<br>
end if<br>
<br>
if (i/=0) then<br>
<br>
v(num) =
-rho*HydHx<br>
<br>
col(MatStencil_i,num) = i-1<br>
<br>
col(MatStencil_j,num) = j<br>
<br>
num = num +
1<br>
<br>
end if<br>
<br>
if (i/=mx-1)
then<br>
<br>
v(num) =
-rho*HydHx<br>
<br>
col(MatStencil_i,num) = i+1<br>
<br>
col(MatStencil_j,num) = j<br>
<br>
num = num +
1<br>
<br>
end if<br>
<br>
if (j/=my-1)
then<br>
<br>
v(num) =
-rho*HxdHy<br>
<br>
col(MatStencil_i,num) = i<br>
<br>
col(MatStencil_j,num) = j+1<br>
<br>
num = num +
1<br>
<br>
end if<br>
<br>
v(num) =
((num-1)/2.0)*rho*(HxdHy +
HydHx)<br>
<br>
print *, v<br>
<br>
col(MatStencil_i,num) = i<br>
<br>
col(MatStencil_j,num) = j<br>
<br>
!num = num + 1<br>
<br>
call
MatSetValuesStencil(jac,i1,row,num,col,v,INSERT_VALUES,ierr)<br>
<br>
I do not get any more out of
range error. However,my ans is
still different from that of
ex29 in C.<br>
</blockquote>
<div><br>
</div>
<div>This is very simple. You
have an error in your code.
Checking it is very simple:
run the code and</div>
<div>break in MatSetValues().
Make sure ex29 makes calls
with exactly the same indices
as your ex29f.</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"> Yours
sincerely,<br>
<br>
TAY wee-beng<br>
</blockquote>
</div>
<div><br>
<span><font color="#888888"> <span><font color="#888888"> </font></span></font></span></div>
<span><font color="#888888"> <span><font color="#888888"> -- <br>
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<br>
</font></span></font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> <br>
<br clear="all">
<span><font color="#888888">
<div><br>
</div>
-- <br>
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<br>
</font></span></font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> <br>
<br clear="all">
<div><br>
</div>
-- <br>
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<br>
</font></span></div>
</blockquote>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
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<br>
</div>
</blockquote>
</div></div></div>
</blockquote></div><br>