On Thu, Aug 25, 2011 at 11:11 AM, Marek Schmitt <span dir="ltr">&lt;<a href="mailto:marek.schmitt@yahoo.com">marek.schmitt@yahoo.com</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;">
Thanks to all of you for your suggestions. I&#39;ll give Sieve a try.<br>
<br>
I do understand that PETSc is neither a FEM nor a FVM framework. What I expect from PETSc is that it helps with the parallel communication across mesh partition boundaries. I don&#39;t think there is a better toolkit for this? On the contrary, I would like to<br>

implement the matrix coefficients myself for learning purposes. For this reason projects like libmesh don&#39;t help (besides, it is for FEM, not FVM). By the way, why does libmesh reinvent their own mesh classes instead of using PETSc&#39;s?<br>
</blockquote><div><br></div><div>libmesh has been doing this for a long time, much longer than PETSc had anything about meshes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

While the PETSc pdf manual has several pages on working with distributed arrays, I don&#39;t find anything on distributed meshes except for a description of index sets. Is the use of DMMesh documented somewhere?</blockquote>
<div><br></div><div>No, not yet. I will write something soon. I did write something about dealing with values over</div><div>meshes, but it only applies to the C++ interface, so I want to rewrite it for people who only</div>
<div>want to use C. You can also read the first paper (Knepley Karpeev 2009). We have another</div><div>paper which is nearly ready which I can send you when we finish.</div><div><br></div><div>  Thanks,</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 class="im">
Marek<br>
<br>
<br>
________________________________<br>
From: Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;<br>
</div>To: Marek Schmitt &lt;<a href="mailto:marek.schmitt@yahoo.com">marek.schmitt@yahoo.com</a>&gt;; PETSc users list &lt;<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>&gt;<br>
<div class="im">Sent: Wednesday, August 24, 2011 3:45 PM<br>
Subject: Re: [petsc-users] PETSc on unstructured meshes / Sieve<br>
<br>
<br>
</div><div><div></div><div class="h5">On Wed, Aug 24, 2011 at 1:25 PM, Marek Schmitt &lt;<a href="mailto:marek.schmitt@yahoo.com">marek.schmitt@yahoo.com</a>&gt; wrote:<br>
<br>
I would like to experiment with PETSc for learning FVM on unstructured grids. I get the impression that PETSc is primarily developed for structured grids with cartesian topology, is this true?<br>
&gt;<br>
<br>
PETSc is not primarily developed for discretization and topology. It solves systems of nonlinear algebraic equations. It does have<br>
some extensions that handle structured (DMDA) and unstructured (DMMesh) under the recently developed DM interface.<br>
<br>
Pylith and Fenics seem to use Sieve for unstructured grids. Is Sieve part of PETSc?<br>
&gt;<br>
<br>
Sieve is both the name of an interface (implemented by FEniCS) and an implementation of that interface (in PETSc).<br>
<br>
Why is it so much hidden? The very silent sieve-dev mailing list exists since four years, but there is a recent post:<br>
&gt;<br>
<br>
I am not sure its hidden. I answer all the questions on the list. Its a big project for one person to support. I put most of<br>
my time into supporting PyLith (<a href="http://geodynamics.org/cig/software/pylith" target="_blank">http://geodynamics.org/cig/software/pylith</a>) which uses it for parallel FEM simulation.<br>
PETSc is 20 years old, so we have had time to make some components more robust.<br>
<br>
&quot;2) Unstructured meshes. This is not well-documented. There is a tutorial presentation and a repository of code for it. A few people have used this, but it is nowhere near the level of clarity and robustness that the rest of PETSc has.&quot; (from <a href="http://lists.mcs.anl.gov/pipermail/sieve-dev/2010-October/000098.html" target="_blank">http://lists.mcs.anl.gov/pipermail/sieve-dev/2010-October/000098.html</a>)<br>

&gt;Is the sieve-dev list about a different sieve than what is used by Pylith and Fenics?<br>
&gt;<br>
<br>
They are two different implementations.<br>
<br>
There is a PETSc FAQ &quot;Do you have examples of doing unstructured grid finite element computations (FEM) with PETSc?&quot;. It mentions Sieve but no further links or documentation.<br>
&gt;<br>
&gt;Is the directory petsc-3.1-p8/include/sieve all that is needed to work with Sieve? Or are these only header files, and I have to link to the Sieve library from somewhere else (then where can I find Sieve)?<br>
&gt;<br>
<br>
You must use petsc-dev in order for the examples to work, like SNES ex12.<br>
<br>
  Thanks,<br>
<br>
      Matt<br>
<br>
Please shine some light into the mysterious Sieve.<br>
&gt;Marek<br>
&gt;<br>
<br>
<br>
--<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></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>