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 <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