<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Is there a way I can use this and other mesh routines from Fortran?
The manual doesn't say much on this.<br>
<br>
Tabrez<br>
<br>
On 05/01/2011 09:53 AM, Matthew Knepley wrote:
<blockquote
cite="mid:BANLkTikxukjkC7+mh4ja_0X5hutnJHuVdA@mail.gmail.com"
type="cite">On Sat, Apr 30, 2011 at 12:58 PM, Tabrez Ali <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:stali@geology.wisc.edu">stali@geology.wisc.edu</a>></span>
wrote:<br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
Petsc Developers/Users<br>
<br>
I having some performance issues with preallocation in a fully
unstructured FE code. It would be very helpful if those using
FE codes can comment.<br>
<br>
For a problem of size 100K nodes and 600K tet elements (on 1
cpu)<br>
<br>
1. If I calculate the _exact_ number of non-zeros per row
(using a running list in Fortran) by looping over nodes &
elements, the code takes 17 mins (to calculate nnz's/per row,
assemble and solve).<br>
2. If I dont use a running list and simply get the average of
the max number of nodes a node might be connected to (again by
looping over nodes & elements but not using a running
list) then it takes 8 mins<br>
3. If I just magically guess the right value calculated in 2
and use that as average nnz per row then it only takes 25
secs.<br>
<br>
Basically in all cases Assembly and Solve are very fast (few
seconds) but the nnz calculation itself (in 2 and 3) takes a
long time. How can this be cut down? Is there a heuristic way
to estimate the number (as done in 3) even if it slightly
overestimates the nnz's per row or are efficient ways to do
step 1 or 2. Right now I have do i=1,num_nodes; do
j=1,num_elements ... which obviously is slow for large number
of nodes/elements.<br>
</blockquote>
<div><br>
</div>
<div>If you want to see my code doing this, look at</div>
<div><br>
</div>
<div> include/petscdmmesh.hh:preallocateOperatorNew()</div>
<div><br>
</div>
<div>which handles the determination of nonzero structure for a
FEM operator. It should look mostly</div>
<div>like your own code.</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
Thanks in advance<br>
<font color="#888888">
Tabrez<br>
</font></blockquote>
</div>
<br>
<br clear="all">
<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>
</blockquote>
<br>
</body>
</html>