<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, May 22, 2014 at 1:58 PM, Danyang Su <span dir="ltr"><<a href="mailto:danyang.su@gmail.com" target="_blank">danyang.su@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Hi All,<br>
<br>
I have a 1D transient flow problem (1 dof) coupled with energy
balance (1 dof), so the total dof per node is 2.<br>
<br>
The whole domain has 10 nodes in z direction. <br>
<br>
The program runs well with 1 processor but failed in 2 processors.
The matrix is the same for 1 processor and 2 processor but the rhs
are different. <br>
<br>
The following is used to set the rhs value.<br>
<br>
call VecGetArrayF90(x_vec_loc, vecpointer, ierr)<br>
vecpointer = (calculate the rhs value here)<br>
call VecRestoreArrayF90(x_vec_loc,vecpointer,ierr)<br>
call DMLocalToGlobalBegin(da,x_vec_loc,INSERT_VALUES,
x_vec_gbl,ierr)<br>
call DMLocalToGlobalEnd(da,x_vec_loc,INSERT_VALUES, x_vec_gbl,ierr)<br>
<br>
<b>Vecview Correct </b> <b><font color="#ff0000">Vecview
Wrong</font></b><br>
dof local node Process [0]
<u>Process [0] </u>
<i> <u>Process [0] </u></i><br>
1 1 1.395982780116148E-021
1.39598e-021 1.39598e-021<br>
1 2 0.000000000000000E+000
0 0<br>
1 3 0.000000000000000E+000
0 0<br>
1 4 5.642372883946980E-037
5.64237e-037 5.64237e-037<br>
1 5 0.000000000000000E+000
0 0<br>
<font color="#ff0000">1 6
-1.395982780116148E-021 </font> <font color="#3366ff">
-7.52316e-037 </font> -1.39598e-021
Line A<br>
2 1 <font color="#33ff33">0.000000000000000E+000</font>
<font color="#3366ff">7.52316e-037</font> 0<br>
2 2 <font color="#33ff33">0.000000000000000E+000</font>
<font color="#3366ff">0 </font>
0<br>
2 3 <font color="#33ff33">
0.000000000000000E+000</font> <font color="#3366ff">1.68459e-016 </font>
0<br>
2 4 <font color="#33ff33">4.814824860968090E-035</font>
<font color="#3366ff">0.1296 </font>
4.81482e-035<br>
2 5 <font color="#33ff33">0.000000000000000E+000</font>
<u><i>Process [1]</i></u>
Line B<br>
<font color="#ff0000">2 6
-1.371273884908092E-019</font> <font color="#33ff33">0</font>
7.52316e-037 Line C<br>
<font color="#33ff33">0</font>
0<br>
Process [1]
<font color="#33ff33">0</font>
1.68459e-016<br>
<font color="#ff0000">1 1
1.395982780116148E-021</font> <font color="#33ff33">4.81482e-035</font>
0.1296 Line D<br>
1 2 <font color="#3366ff">-7.523163845262640E-037</font>
<font color="#33ff33">0</font>
1.37127e-019 Line E <br>
1 3 <font color="#3366ff">7.523163845262640E-037</font>
-7.22224e-035 -7.22224e-035<br>
1 4 <font color="#3366ff">0.000000000000000E+000</font>
7.22224e-035 7.22224e-035<br>
1 5 <font color="#3366ff">1.684590875336239E-016</font>
0 0<br>
1 6 <font color="#3366ff">0.129600000000000</font>
128623 128623<br>
<font color="#ff0000">2 1
1.371273884908092E-019</font>
0 0
Line F<br>
2 2 -7.222237291452134E-035 <br>
2 3 7.222237291452134E-035 <br>
2 4 0.000000000000000E+000 <br>
2 5 128623.169844761 <br>
2 6 0.000000000000000E+000 <br>
<br>
The red line (Line A, C, D and F) is the ghost values for 2
subdomains, but when run with 2 processor, the program treates Line
B, C, D, and E as ghost values.<br>
<b>How can I handle this kind of local vector to global vector
assembly?</b></div></blockquote><div><br></div><div>Why are you not using DMDAVecGetArrayF90()? This is exactly what it is for.</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 bgcolor="#FFFFFF" text="#000000"><br>
<b>In fact, the codes can work if the dof and local node is as
follows.</b><br>
dof local node <br>
1 1 <br>
2 1 <br>
1 2 <br>
2 2 <br>
1 3 <br>
2 3 <br>
<br>
Thanks and regards,<br>
<br>
Danyang<br>
</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
</div></div>