[petsc-users] DMPlex with spring elements

Miguel Angel Salazar de Troya salazardetroya at gmail.com
Fri Sep 26 10:26:31 CDT 2014


Yeah, but doesn't it only work with the local vectors localX and localF?

Miguel

On Fri, Sep 26, 2014 at 10:10 AM, Matthew Knepley <knepley at gmail.com> wrote:

> On Fri, Sep 26, 2014 at 10:06 AM, Miguel Angel Salazar de Troya <
> salazardetroya at gmail.com> wrote:
>
>> 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.
>>
>
> FormFunction() in that link clearly takes in a global vector X and returns
> a global vector F. Inside, it
> converts them to local vectors. This is exactly what you would do for a
> function given to SNESSetFunction().
>
>   Matt
>
>
>>
>> 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
>>
>>
>
>
> --
> 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/0a127d87/attachment.html>


More information about the petsc-users mailing list