<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="gmail_quote"><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><br>
</div></div>Create u,b with DAGetGlobalVector() and A with DAGetMatrix() and they<br>
will match the DA. For eg: check: src/snes/examples/tutorials/ex5.c<br>
[or some of the examples in src/dm/da/examples]<br>
<br>
Satish<br>
<div><br></div></blockquote></div></div></div></div></blockquote><div><br></div><div>Hello again!</div><div><br></div><div>1. Please tell me, what&#39;s the principal difference between procedures DAGetGlobalVector and DACreateGlobalVector? I cant catch it from man pages.</div>
<div><br></div><div>2. As I can read from DAGetMatrix man page, this procedure:</div></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div class="gmail_quote"><div>
<span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; ">Creates a matrix with the correct parallel layout and nonzero structure required for computing the Jacobian on a function defined using the stencil set in the</span></div>
<span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "> DA</span></div><div class="gmail_quote"><div><span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "><p>
Notes: This properly preallocates the number of nonzeros in the sparse matrix so you do not need to do it yourself.</p></span></div></div><div class="gmail_quote"><div><span class="Apple-style-span" style="font-family: &#39;Times New Roman&#39;; font-size: medium; "><p>
By default it also sets the nonzero structure and puts in the zero entries. To prevent setting the nonzero pattern call <a href="../DA/DASetMatPreallocateOnly.html#DASetMatPreallocateOnly">DASetMatPreallocateOnly</a>()</p>
</span></div></div></blockquote><div class="gmail_quote"><div>So I use DASetMatPreallocateOnly. But I dont need a Jacobian. I need a matrix of my linear system with its original number of nonzeros per row and its original nonzero pattern. So I use MatSetValues and MatAsseblyBegin/End to assemble it. And -info key on runtime tells me that there were additional mallocs during runtime. As it said in manual, this is very expensive to allocate memory dynamically. MatMPIAIJSetPreallocation doesnt help me. How should I preallocate memory for DAMatrix?</div>
<div><br></div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "><div>
<div><div>Thank you!</div></div></div><div><br></div><div>Alexey Ryazanov</div><div>______________________________________</div><div><span style="color: rgb(51, 51, 51); font-family: Arial, Helvetica, sans-serif; "><a href="http://www.ibrae.ac.ru/" target="_blank" style="color: black !important; text-decoration: none; text-align: left; padding-left: 0px; "><font size="1">Nuclear Safety Institute of Russian Academy of Sciences </font></a></span></div>
</span></div></div>