[petsc-users] DMPlex with spring elements
Miguel Angel Salazar de Troya
salazardetroya at gmail.com
Fri Sep 26 10:06:26 CDT 2014
That means that if we call SNESSetFunction() we don't build the residual
vector in parallel? In the pflow example (
http://www.mcs.anl.gov/petsc/petsc-as/petsc-current/src/snes/examples/tutorials/network/pflow/pf.c.html)
the function FormFunction() (Input for SNESSetFunction() works with the
local vectors. I don't understand this.
Thanks
Miguel
On Fri, Sep 26, 2014 at 9:34 AM, Matthew Knepley <knepley at gmail.com> wrote:
> 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
>
--
*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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140926/032989ef/attachment-0001.html>
More information about the petsc-users
mailing list