Ok thanks. Miguel
On Fri, Sep 26, 2014 at 10:28 AM, Matthew Knepley <knep...@gmail.com> wrote: > On Fri, Sep 26, 2014 at 10:26 AM, Miguel Angel Salazar de Troya < > salazardetr...@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 <knep...@gmail.com> >> wrote: >> >>> On Fri, Sep 26, 2014 at 10:06 AM, Miguel Angel Salazar de Troya < >>> salazardetr...@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 <knep...@gmail.com> >>>> wrote: >>>> >>>>> On Fri, Sep 26, 2014 at 9:31 AM, Miguel Angel Salazar de Troya < >>>>> salazardetr...@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 <knep...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> On Thu, Sep 25, 2014 at 5:15 PM, Miguel Angel Salazar de Troya < >>>>>>> salazardetr...@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 <j...@jedbrown.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Matthew Knepley <knep...@gmail.com> writes: >>>>>>>>> >>>>>>>>> > On Thu, Sep 25, 2014 at 1:46 PM, Abhyankar, Shrirang G. < >>>>>>>>> abhy...@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 >>>>>>>> salaz...@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 >>>>>> salaz...@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 >>>> salaz...@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 >> salaz...@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 salaz...@illinois.edu