<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>Hello</div>
<div><br>
</div>
<div>Suppose I have four vectors A,B, C and D  with the same number of components. I would like to do the following component wise vector operation:</div>
<div><br>
</div>
<div>(A – B)  / (C + D)</div>
<div><br>
</div>
<div>I could calculate A-B and C+D  and store the results in temporary PETSc vector temp_result1 and temp_result2 (I need to keep A,B, C and D unchanged) and then call VecPointwiseDivide(temp_result1,temp_result1,temp_result2) and get my result in temp_result1.</div>
<div><br>
</div>
<div>On the other hand, to avoid creating two temporary PETSc vectors, I could call VecGetArray()/VecRestoreArray() on the four vectors, iterate over the local indices and perform the same operations at once and store the result in another vector. What is the
 best way and why? I think that VecGetArray() creates temporary sequential vectors as well. I’m not sure if this is what the above mentioned PETSc routines internally do.</div>
<div><br>
</div>
<div>Thanks</div>
<div>Miguel</div>
<div><br>
</div>
<div><br>
</div>
</body>
</html>