<div dir="ltr">On Wed, Apr 3, 2013 at 11:04 PM, Dharmendar Reddy <span dir="ltr"><<a href="mailto:dharmareddy84@gmail.com" target="_blank">dharmareddy84@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello,<br></div>        I see that in DMPlexComputeResidualFEM boundary conditions are applied using DMPlexProjectFunctionLocal. I was wondering why is there a loop over all local vertex Ids and a call to <br clear="all">

<div><div>evaluation function on line 241 below. If i am not wrong, i can see that VecSetValuesSection is only to the points indicated as boundary points in DMPlexCreatSection.  Should one call lines 235:242 only if v is constrained node ? Also, should the user provide functions for all components of all fields, is there a way to update add value of only the field that is constrained ?<br>

</div><div><br><pre width="80"><a name="13dcfc8b9f9a255c_line234">234: </a>  <font color="#4169E1">for</font> (v = vStart; v < vEnd; ++v) {
<a name="13dcfc8b9f9a255c_line235">235: </a>    <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/PetscInt.html#PetscInt" target="_blank">PetscInt</a> dof, off;

<a name="13dcfc8b9f9a255c_line237">237: </a>    <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/IS/PetscSectionGetDof.html#PetscSectionGetDof" target="_blank">PetscSectionGetDof</a>(cSection, v, &dof);
<a name="13dcfc8b9f9a255c_line238">238: </a>    <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/IS/PetscSectionGetOffset.html#PetscSectionGetOffset" target="_blank">PetscSectionGetOffset</a>(cSection, v, &off);
<a name="13dcfc8b9f9a255c_line239">239: </a>    <font color="#4169E1">if</font> (dof > dim) <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/SETERRQ2.html#SETERRQ2" target="_blank">SETERRQ2</a>(<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/PetscObjectComm.html#PetscObjectComm" target="_blank">PetscObjectComm</a>((<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Sys/PetscObject.html#PetscObject" target="_blank">PetscObject</a>)dm), PETSC_ERR_ARG_WRONG, <font color="#666666">"Cannot have more coordinates %d then dimensions %d"</font>, dof, dim);
<a name="13dcfc8b9f9a255c_line240">240: </a>    <font color="#4169E1">for</font> (d = 0; d < dof; ++d) coords[d] = PetscRealPart(cArray[off+d]);
<a name="13dcfc8b9f9a255c_line241">241: </a>    <font color="#4169E1">for</font> (c = 0; c < numComp; ++c) values[c] = (*funcs[c])(coords);
<a name="13dcfc8b9f9a255c_line242">242: </a>    <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Vec/VecSetValuesSection.html#VecSetValuesSection" target="_blank">VecSetValuesSection</a>(localX, section, v, values, mode);
<a name="13dcfc8b9f9a255c_line243">243: </a>  }</pre></div></div></div></blockquote><div style>ProjectFunction() just implements \int_\Omega v f(x). If you really don't want to add a no-op function, I can</div><div style>
check for NULL, but I think that is slower in the inner loop.</div><div style><br></div><div style>   Matt</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><span class="HOEnZb"><font color="#888888">-- <br>-----------------------------------------------------<br>Dharmendar Reddy Palle<br>Graduate Student<br>Microelectronics Research center,<br>University of Texas at Austin,<br>
10100 Burnet Road, Bldg. 160<br>
MER 2.608F, TX 78758-4445<br>e-mail: <a href="mailto:dharmareddy84@gmail.com" target="_blank">dharmareddy84@gmail.com</a><br>Phone: <a href="tel:%2B1-512-350-9082" value="+15123509082" target="_blank">+1-512-350-9082</a><br>
United States of America.<br>Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>

</font></span></div></div></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>