[petsc-users] DMPlex with spring elements

Miguel Angel Salazar de Troya salazardetroya at gmail.com
Thu Sep 25 08:55:25 CDT 2014


Thanks. I think the term "Component" was confusing me, I thought it was
related to the components of a field. I think this would be useful to me if
I wanted to assign coordinates to the vertices, wouldn't it?

Also, I was wondering how to set up dirichlet boundary conditions,
basically fixing certain nodes position. Could I do it as the function
*SetInitialValues *does it in the pflow example? These values are used to
eliminate the zeroth-order energy modes of the stiffness matrix?

Last question, in my case I have two degrees of freedom per node, when I
grab the offset with DMNetworkVariableOffset, that's for the first degree
of freedom in that node and the second degree of freedom would just be
offset+1?

Miguel

On Wed, Sep 24, 2014 at 9:52 PM, Abhyankar, Shrirang G. <abhyshr at mcs.anl.gov
> wrote:

>  If you have equations only at the nodes, with a part of it contributed
> by the edges (springs),  then you can use DMNetwork. If you are planning to
> have equations for the beads in the future, or other higher layers, then
> DMPlex has better functionality to manage that.
>
>  Shri
>
>   From: Miguel Angel Salazar de Troya <salazardetroya at gmail.com>
> Date: Wed, 24 Sep 2014 17:38:11 -0500
> To: Shri <abhyshr at mcs.anl.gov>
>
> Cc: "petsc-users at mcs.anl.gov" <petsc-users at mcs.anl.gov>
> Subject: Re: [petsc-users] DMPlex with spring elements
>
>  Thanks for your response. I'm attaching a pdf with a description of the
> model. The description of the PetscSection is necessary for the DMNetwork?
> It looks like DMNetwork does not use a PetscSection.
>
>
>  Miguel
>
> On Wed, Sep 24, 2014 at 1:43 PM, Abhyankar, Shrirang G. <
> abhyshr at mcs.anl.gov> wrote:
>
>>
>> >Thanks for your response. My discretization is based on spring elements.
>> >For the linear one dimensional case in which each spring has a
>> >coefficient k, their jacobian would be this two by two matrix.
>> >[  k    -k ]
>> >[ -k     k ]
>> >
>> >and the internal force
>> >
>> >[ k ( Ui - Uj) ]
>> >[ k ( Uj - Ui) ]
>> >
>> >where Ui and Uj are the node displacements (just one displacement per
>> >node because it's one dimensional)
>> >
>> >For the two dimensional case, assuming small deformations, we have a
>> >four-by-four matrix. Each node has two degrees of freedom. We obtain it
>> >by performing the outer product of the vector (t , -t) where "t" is the
>> >vector that connects both nodes in a spring. This is for the case of
>> >small deformations. I would need to assemble each spring contribution to
>> >the jacobian and the residual like they were finite elements. The springs
>> >share nodes, that's how they are connected. This example is just the
>> >linear case, I will have to implement a nonlinear case in a similar
>> >fashion.
>> >
>> >Seeing the DMNetwork example, I think it's what I need, although I don't
>> >know much of power electric grids and it's hard for me to understand
>> >what's going on. Do you have a good reference to be able to follow the
>> >code?
>>
>> >
>> Please see the attached document which has more description of DMNetwork
>> and the equations for the power grid example. I don't have anything that
>> describes how the power grid example is implemented.
>>
>> >For example, why are they adding components to the edges?
>> >
>> >475:     DMNetworkAddComponent
>> ><
>> http://www.mcs.anl.gov/petsc/petsc-as/petsc-current/docs/manualpages/DM/D
>>
>> >MNetworkAddComponent.html#DMNetworkAddComponent>(networkdm,i,componentkey[
>> >0],&pfdata.branch[i-eStart]);Miguel
>>
>> Each edge or node can have several components (limited to 10) attached to
>> it. The term components, taken from the circuit terminology, refers to the
>> elements of a network. For example, a component could be a resistor,
>> inductor, spring, or even edge/vertex weights (for graph problems). For
>> code implementation, component is a data structure that holds the data
>> needed for the residual, Jacobian, or any other function evaluation. In
>> the case of power grid, there are 4 components: branches or transmission
>> lines connecting nodes, buses or nodes, generators that are incident at a
>> subset of the nodes, and loads that are also incident at a subset of the
>> nodes. Each of the these components are defined by their data structures
>> given in pf.h.
>>
>> DMNetwork is a wrapper class of DMPlex specifically for network
>> applications that can be solely described using nodes, edges, and their
>> associated components. If you have a PDE, or need FEM, or need other
>> advanced features then DMPlex would be suitable. Please send us a write-up
>> of your equations so that we can assist you better.
>>
>> Shri
>>
>>
>> >
>> >
>> >On Tue, Sep 23, 2014 at 11:13 PM, Abhyankar, Shrirang G.
>> ><abhyshr at mcs.anl.gov> wrote:
>> >
>> >You may also want to take a look at the DMNetwork framework that can be
>> >used for general unstructured networks that don't use PDEs. Its
>> >description is given in the manual and an example is in
>> >src/snes/examples/tutorials/network/pflow.
>> >
>> >Shri
>> >
>> >From:  Matthew Knepley <knepley at gmail.com>
>> >Date:  Tue, 23 Sep 2014 22:40:52 -0400
>> >To:  Miguel Angel Salazar de Troya <salazardetroya at gmail.com>
>> >Cc:  "petsc-users at mcs.anl.gov" <petsc-users at mcs.anl.gov>
>> >Subject:  Re: [petsc-users] DMPlex with spring elements
>> >
>> >
>> >>On Tue, Sep 23, 2014 at 4:01 PM, Miguel Angel Salazar de Troya
>> >><salazardetroya at gmail.com> wrote:
>> >>
>> >>Hi all
>> >>I was wondering if it could be possible to build a model similar to the
>> >>example snes/ex12.c, but with spring elements (for elasticity) instead
>> of
>> >>simplicial elements. Spring elements in a grid, therefore each element
>> >>would have two nodes and each node two components. There would be more
>> >>differences, because instead of calling the functions f0,f1,g0,g1,g2 and
>> >>g3 to build the residual and the jacobian, I would call a routine that
>> >>would build the residual vector and the jacobian matrix directly. I
>> would
>> >>not have shape functions whatsoever. My problem is discrete, I don't
>> have
>> >>a PDE and my equations are algebraic. What is the best way in petsc to
>> >>solve this problem? Is there any example that I can follow? Thanks in
>> >>advance
>> >>
>> >>
>> >>
>> >>
>> >>Yes, ex12 is fairly specific to FEM. However, I think the right tools
>> for
>> >>what you want are
>> >>DMPlex and PetscSection. Here is how I would proceed:
>> >>
>> >>  1) Make a DMPlex that encodes a simple network that you wish to
>> >>simulate
>> >>
>> >>  2) Make a PetscSection that gets the data layout right. Its hard from
>> >>the above
>> >>      for me to understand where you degrees of freedom actually are.
>> >>This is usually
>> >>      the hard part.
>> >>
>> >>  3) Calculate the residual, so you can check an exact solution. Here
>> you
>> >>use the
>> >>      PetscSectionGetDof/Offset() for each mesh piece that you are
>> >>interested in. Again,
>> >>      its hard to be more specific when I do not understand your
>> >>discretization.
>> >>
>> >>  Thanks,
>> >>
>> >>    Matt
>> >>
>> >>
>> >>Miguel
>> >>
>> >>
>> >>
>> >>--
>> >>Miguel Angel Salazar de Troya
>> >>Graduate Research Assistant
>> >>Department of Mechanical Science and Engineering
>> >>University of Illinois at Urbana-Champaign
>> >
>> >
>> >>(217) 550-2360 <tel:%28217%29%20550-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
>>
>>
>
>
>  --
> *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
>
>


-- 
*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/20140925/4f56e90c/attachment-0001.html>


More information about the petsc-users mailing list