[petsc-users] DMPlex with spring elements

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


Ok thanks.

Miguel

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

> On Fri, Sep 26, 2014 at 10:26 AM, Miguel Angel Salazar de Troya <
> salazardetroya at gmail.com> wrote:
>
>> Yeah, but doesn't it only work with the local vectors localX and localF?
>>
>
> I am telling you what the interface for the functions is. You can do
> whatever you want inside.
>
>   Matt
>
>
>> 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
>>
>>
>
>
> --
> 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/aeea6f3b/attachment.html>


More information about the petsc-users mailing list