On Mon, Jun 21, 2010 at 9:02 PM, Jed Brown <span dir="ltr">&lt;<a href="mailto:jed@59a2.org">jed@59a2.org</a>&gt;</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 class="im">On Mon, 21 Jun 2010 20:25:07 +0000, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>
&gt; On Mon, Jun 21, 2010 at 5:18 PM, Jed Brown &lt;<a href="mailto:jed@59a2.org">jed@59a2.org</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Heads up about this namespace collision, seems less appropriate for<br>
&gt; &gt; PETSc to claim Mesh:: than for libMesh.<br>
&gt;<br>
&gt;<br>
&gt; Crap, its the C side. I hate that anyway. I am cool with changing &#39;Mesh&#39;<br>
&gt; to &#39;PetscMesh&#39; since all these C symbols should be properly namespaced<br>
&gt; like my C++.<br>
<br>
</div>Certainly nobody would want to use &quot;ALE::&quot; for say, an Arbitrary<br>
Lagrange Eulerian code, or have a header named Field.hh, Generator.hh,<br>
Mesh.hh, Numbering.hh, etc [1].</blockquote><div><br></div><div>You can say that about any name.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">

&gt; The only reason that &#39;Vec&#39; and &#39;Mat&#39; are not is history and<br>
&gt; convenience. However, I do not buy the appropriateness argument at<br>
&gt; all.<br>
<br>
</div>One could certainly argue that libMesh is a bad (not sufficiently<br>
distinguished) name, but it does produce libmesh.so (not liblibmesh.so)<br>
which makes &quot;Mesh&quot; a reasonably appropriate namespace (not as good as<br>
&quot;libMesh&quot; only because &quot;Mesh&quot; is so common).  A PETSc component named<br>
Sieve claiming the namespace &quot;Mesh&quot; is far more of a stretch.<br></blockquote><div><br></div><div>We both do mesh stuff. I do not see why it is &quot;more legitimate&quot; for them to do it.</div><div>The idea is to make it easy to coexist.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Jed<br>
<br>
[1] I suggest #include &lt;sieve/Mesh.hh&gt; if you don&#39;t want these header<br>
names to include the PETSc name somehow, now you require that they<br>
-I$PETSC_DIR/include/sieve which makes those header names completely<br>
public.<br></blockquote><div><br></div><div>I thought this was changed for PETSc 3. Now it should be sieve/Mesh.hh. I agree</div><div>the other way is wrong.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

On this note, I don&#39;t like &quot;private/vecimpl.h&quot;, it is much more common<br>
(look at your /usr/include) and collision-free to do &quot;petsc/vecimpl.h&quot;<br>
or even &quot;petsc-private/vecimpl.h&quot;.</blockquote><div><br></div><div>I am cool with petsc-private.</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;">
<font color="#888888"><br>
Jed</font></blockquote></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>