<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hi Matthew</div>
<div><br>
</div>
<div>We are now facing a related problem. When running on a single process everything works as intended, where the values of global stiffness matrix are between 0.0 and 2.0 (the number corresponds to the number of elements/cells which affects the relation between
 two dofs). </div>
<div><br>
</div>
<div>However if the program is using 2 (or more) processes, then the global stiffness matrix changes, such that the values is now between 0.0 and 1.0 (even though we are using ADD_VALUES in the <span style="font-family: Menlo; font-size: 9pt; background-color: rgb(255, 255, 255);">MatSetValuesLocal).</span></div>
<div><br>
</div>
<div>Any idea what could be wrong? I have attached a modified version of the code, where the program outputs the matrix to a file called ‘Kmat.m'.</div>
<div><br>
</div>
<div>Kind regards,</div>
<div>Morten</div>
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">Fra: </span>Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>><br>
<span style="font-weight:bold">Dato: </span>Tuesday 8 March 2016 at 19:47<br>
<span style="font-weight:bold">Til: </span>Morten Nobel-Jørgensen <<a href="mailto:mono@mek.dtu.dk">mono@mek.dtu.dk</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>" <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>><br>
<span style="font-weight:bold">Emne: </span>Re: [petsc-users] DMPlex : Assemble global stiffness matrix problem<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Mar 8, 2016 at 7:10 AM, Matthew Knepley <span dir="ltr">
<<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span class="">On Mon, Mar 7, 2016 at 1:28 PM, Morten Nobel-Jørgensen
<span dir="ltr"><<a href="mailto:mono@mek.dtu.dk" target="_blank">mono@mek.dtu.dk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:rgb(0,0,0);font-size:10pt">I have some problems using DMPlex on unstructured grids in 3D.
<div><br>
</div>
<div>After I have created the DMPlex and assigned dofs (3 dofs on each node), I run into some problems when assembling the global stiffness matrix. I have created a small example in the attached cc file. My problems are:</div>
<div>
<ul>
<li>It seems like the matrix (created using DMCreateMatrix) contains no non-zero elements. I was under the impression that the sparsity pattern of the matrix would be created automatically when the dofs has been assigned to the default section.</li><li>(Probably as a consequence of this) when assigning values to the matrix I get an: "Argument of of range. <span style="font-size:10pt">New nonzero at (0,0) caused a malloc. </span><span style="font-size:10pt">Use MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR,
 PETSC_FALSE) to turn off this check"</span></li><li><span style="font-size:10pt">Finally, I'm reading the nodes of each element using the get-transitive-clojure (where I test if each point is inside the node range), but I have a hard time understanding if the returned values are sorted. And if not, how to
 sort the values (e.g. using orientation which the get-transitive-clojure function also returns).</span></li></ul>
<div>I hope someone can guide me in the right direction :)</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>I will take a look today or tomorrow. The first thing to do is to look at the nonzero pattern of the Jacobian. I use -mat_view draw -draw_pause -1</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>I admit that this problem is counter-intuitive, and I will think about a good error check. The problem is that I allow "inconsistent"</div>
<div>sections, meaning that the dof for each field do not add up to the total dof. In your code, when you call</div>
<div><br>
</div>
<div>      ierr = PetscSectionSetDof(s, v, 3);CHKERRQ(ierr);</div>
<div><br>
</div>
<div>you should also call</div>
<div><br>
</div>
<div>      ierr = PetscSectionSetFieldDof(s, v, 0, 3);CHKERRQ(ierr);</div>
<div><br>
</div>
<div>Then everything works. I am attaching my slight rewrite of your code.</div>
<div><br>
</div>
<div>  Thanks,</div>
<div><br>
</div>
<div>    Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>  Thanks,</div>
<div><br>
</div>
<div>    Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-family:Tahoma;color:rgb(0,0,0);font-size:10pt">
<div>
<div>Kind regards,</div>
<div>Morten </div>
<span class=""><font color="#888888"></font></span></div>
<span class=""><font color="#888888"></font></span></div>
<span class=""><font color="#888888"></font></span></div>
<span class=""><font color="#888888"></font></span></blockquote>
</div>
<span class=""><font color="#888888"><br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>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</div>
</font></span></div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature">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</div>
</div>
</div>
</div>
</div>
</span>
</body>
</html>