<div dir="ltr"><div>Good morning,</div><div><br></div><div>I am developing an application for PETSC using the DMDA object. For my purposes, I need to create a few matrix operators and then apply them to the fields in my DMDA object.</div><div><br></div><div>I have so far successfully created and validated these matrices for a DMDA with one field using the DMCreateMatrix() and MatSetValuesStencil() very efficiently. However it is unclear to me what is the best way to useĀ  these matrices in a context with more than one field.</div><div><br></div><div>It would be easy for me to modify my routine slightly to include all fields on the stencil for when I call MatSetValuesStencil() since most of these operators will act on all fields. I do wonder what to do when I have an operator acting on one field only. Is it reasonable to only assign the values corresponding to that field and do the matrix-vector multiply? Or is that very wasteful in terms of efficiency? <br></div><div><br></div><div>On that note and for other applications (intermediate linear system solutions of lower order) what is the cleanest way to pull out a vector that has only one field from the dmda? The resulting vector from operations with this field vector can hopefully still maintain the i,j structure of the dmda. Is DMCreateFieldDecomposition() what I am looking for?</div><div><a name="m_3929880603289060923_DMCreateFieldDecomposition"></a></div><div><br></div><div>Thank you,</div><div><br></div><div>-Alfredo<br></div><div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font face="arial, sans-serif">Alfredo Duarte</font><div><font face="arial, sans-serif">Graduate Research Assistant</font></div><div><font face="arial, sans-serif">The University of Texas at Austin</font></div></div></div></div></div></div></div>