<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>