[petsc-users] Trying to write Fortran version of ksp/ex34.c

Åsmund Ervik asmund.ervik at ntnu.no
Thu Apr 3 14:49:41 CDT 2014

Hi Matt,

I'm handling the null space in the same way as ex34, that is, I remove the null space (containing just the constant functions, I think) in both ComputeRHS and ComputeMatrix.

However, I just tried commenting out those lines (MatNullSpaceCreate, MatSetNullSpace or MatNullSpaceRemove, MatNullSpaceDestroy) and that has no effect. The same happens in ex34.c, commenting out the lines fixing the null space makes no difference. Does that make sense?

Are these examples intended to be run with some special options? I see in the makefile (e.g. runex34) that there are a lot of multigrid options, but I don't think that should matter?

Also, could you confirm that ex34.c does zero Neumann BCs? The header was a bit confusing, it says u=0 but I assume it should be du/dn = 0 (zero normal derivative)?

This is with 3.4.4, by the way.


Fra: Matthew Knepley [knepley at gmail.com]
Sendt: 3. april 2014 15:56
Til: Åsmund Ervik
Kopi: petsc-users at mcs.anl.gov
Emne: Re: [petsc-users] Trying to write Fortran version of ksp/ex34.c

On Thu, Apr 3, 2014 at 8:43 AM, Åsmund Ervik <asmund.ervik at ntnu.no<mailto:asmund.ervik at ntnu.no>> wrote:
Hash: SHA1

Dear PETSc users,

I'm trying to write a Poisson solver in Fortran using the
KSPSetComputeOperators etc. framework. When debugging this, I ended up
modifying ksp/ex22.f so that it matches ksp/ex34.c. The difference
between these is that ex34.c has a non-constant RHS and Neumann BCs,
which is closer to what I want.

If it has Neumann conditions, then it has a null space. Have you included this in
your solver? That can cause a residual offset.


Now, when I run these two programs I get the following:

   Residual, L2 norm         1.007312
   Error, sup norm         0.020941
   Error, L1 norm        10.687882
   Error, L2 norm         0.340425

   Residual, L2 norm 1.07124e-05
   Error, sup norm 0.0209405
   Error, L1 norm 0.00618512
   Error, L2 norm 0.000197005

but when I MatView/VecView the matrix and RHS for each example (write
them to file), there is no difference. I have attached ex22f_mod.F90,
any suggestions on what the error is?

Once this example works, you can of course include it with PETSc.


Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/


What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140403/70ef8050/attachment.html>

More information about the petsc-users mailing list