<div class="gmail_quote">On Mon, Apr 11, 2011 at 18:06, Lisandro Dalcin <span dir="ltr"><<a href="mailto:dalcinl@gmail.com">dalcinl@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 id=":22i">Hey!... Isn't that the model of DA's in petsc-dev? My current issues<br>
in petsc4py are more realted to backward compatibility than anything.<br>
But even if I manage to remove the #define DA DM, petsc4py will still<br>
use DA for the class name (unless there is some strong arguments from<br>
any of you).<br></div></blockquote><div><br></div><div>There is no such thing as a DA in petsc-dev. As far as the C type system is concerned, there is only DM. The dynamic type may be DMDA, but that is not revealed to the type system. I'm not saying I agree with this choice, but that's the way it is. This difference in object model is the impedance mismatch that "typedef DM DA" is covering. Petsc4py does not have GMRES as a visible subtype of KSP, nor ASM as a subtype of PC, etc.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":22i">
<div class="im"><br>
> It is not useful to C callers without also having<br>
> petsc4py/src/include/custom.h.<br>
<br>
</div>I you use the new DMDAxxx API' from petsc-dev, you should not need<br>
petsc4py/src/include/custom.h at all... It is just the #define DA DM,<br>
and that is required only for the case of using "cimport" in Cython<br>
code (I mean, SWIG wrappers or hand-written C should not suffer from<br>
this issue).</div></blockquote></div><br><div>This means that you have to update your code to the new interface. Matt seemed to be asserting that petsccompat.h was for backward compatibility (a way to build your old 3.1 code using petsc-dev/3.2) which is something PETSc has never supported. I would not immediately object to maintaining one version of backward compatibility when a macro is activated, but it's a slippery slope. In any case, include/petsccompat.h does not currently provide backward compatibility in any meaningful sense.</div>