<html><head></head><body><div class="ydpa67452f6yahoo-style-wrap" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 10px;"><span>Hello,<br><br>I want to solve many symmetric linear systems one after another in parallel using boomerAMG + KSPCG  and need to make the matrix transfer more efficient. Matrices are symmetric in structure and values. boomerAMG + KSPCG work fine.<br><br></span><div><span>So far I have been loading the entire matrices but I read in a paper, that it's sufficient to load the upper part only and tell petsc that the matrix is symmetric using MatSetOption(A,MAT_SYMMETRIC,PETSC_TRUE); Unfortunately all computations fail if I load only the upper values and use MatSetOption(A,MAT_SYMMETRIC,PETSC_TRUE);</span></div><div><span></span><br></div><div>The idea is:</div><div><br></div><div><span>    if (matrix_.symmetric())<br>    {<br>        MatSetOption(A,MAT_SYMMETRIC,PETSC_TRUE);<br></span><div><span>       //load only upper part of the matrix MatSetValues(...)<br></span></div><div><span></span><br></div><div>   }else //asymmetric matrix<br></div><div>           {</div><div>               //load the entire matrix <span><span>MatSetValues(...)</span></span><br></div><div>           }<br></div></div><span><br>Is it possible at all? <br><br>Klaus</span></div></body></html>