[petsc-users] DMPlex with spring elements

Matthew Knepley knepley at gmail.com
Fri Sep 26 09:34:21 CDT 2014


On Fri, Sep 26, 2014 at 9:31 AM, Miguel Angel Salazar de Troya <
salazardetroya at gmail.com> wrote:

> Thanks. I had another question about the DM and SNES and TS. There are
> similar routines to assign the residual and jacobian evaluation to both
> objects. For the SNES case are:
>
> DMSNESSetFunctionLocal
> DMSNESSetJacobianLocal
>
> What are the differences of these with:
>
> SNESSetFunction
> SNESSetJacobian
>

SNESSetFunction() expects the user to construct the entire parallel
residual vector. DMSNESSetFunctionLocal()
expects the user to construct the local pieces of the residual, and then it
automatically calls DMLocalToGlobal()
to assembly the full residual. It also converts the input from global
vectors to local vectors, and in the case of
DMDA multidimensional arrays.

  Thanks,

    Matt


> and when should we use each? With "Local", it is meant to evaluate the
> function/jacobian for the elements in the local processor? I could get the
> local edges in DMNetwork by calling DMNetworkGetEdgeRange?
>
> Miguel
>
> On Thu, Sep 25, 2014 at 5:17 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Thu, Sep 25, 2014 at 5:15 PM, Miguel Angel Salazar de Troya <
>> salazardetroya at gmail.com> wrote:
>>
>>> > If you need a symmetric Jacobian, you can use the BC facility in
>>> > PetscSection, which eliminates the
>>> > variables completely. This is how the FEM examples, like ex12, work.
>>>
>>> Would that be with PetscSectionSetConstraintDof ? For that I will need
>>> the PetscSection, DofSection, within DMNetwork, how can I obtain it? I
>>> could cast it to DM_Network from the dm, networkdm,  declared in the main
>>> program, maybe something like this:
>>>
>>> DM_Network     *network = (DM_Network*) networkdm->data;
>>>
>>> Then I would loop over the vertices and call PetscSectionSetConstraintDof if it's a boundary node (by checking the corresponding component)
>>>
>>> I admit to not completely understanding DMNetwork. However, it
>> eventually builds a PetscSection for data layout, which
>> you could get from DMGetDefaultSection(). The right thing to do is find
>> where it builds the Section, and put in your BC
>> there, but that sounds like it would entail coding.
>>
>>   Thanks,
>>
>>      Matt
>>
>>
>>> Thanks for your responses.
>>>
>>> Miguel
>>>
>>>
>>>
>>> On Thu, Sep 25, 2014 at 2:42 PM, Jed Brown <jed at jedbrown.org> wrote:
>>>
>>>> Matthew Knepley <knepley at gmail.com> writes:
>>>>
>>>> > On Thu, Sep 25, 2014 at 1:46 PM, Abhyankar, Shrirang G. <
>>>> abhyshr at mcs.anl.gov
>>>> >> wrote:
>>>> >
>>>> >> You are right. The Jacobian for the power grid application is indeed
>>>> >> non-symmetric. Is that a problem for your application?
>>>> >>
>>>> >
>>>> > If you need a symmetric Jacobian, you can use the BC facility in
>>>> > PetscSection, which eliminates the
>>>> > variables completely. This is how the FEM examples, like ex12, work.
>>>>
>>>> You can also use MatZeroRowsColumns() or do the equivalent
>>>> transformation during assembly (my preference).
>>>>
>>>
>>>
>>>
>>> --
>>> *Miguel Angel Salazar de Troya*
>>> Graduate Research Assistant
>>> Department of Mechanical Science and Engineering
>>> University of Illinois at Urbana-Champaign
>>> (217) 550-2360
>>> salaza11 at illinois.edu
>>>
>>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to which their
>> experiments lead.
>> -- Norbert Wiener
>>
>
>
>
> --
> *Miguel Angel Salazar de Troya*
> Graduate Research Assistant
> Department of Mechanical Science and Engineering
> University of Illinois at Urbana-Champaign
> (217) 550-2360
> salaza11 at illinois.edu
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140926/22d02988/attachment.html>


More information about the petsc-users mailing list