[petsc-users] SNES update solution vector

Matthew Knepley knepley at gmail.com
Fri Nov 3 19:04:39 CDT 2017


On Fri, Nov 3, 2017 at 7:42 PM, zakaryah . <zakaryah at gmail.com> wrote:

> Hi Bikash,
>
> I agree with Barry.  If your function changes, quasi Newton methods build
> up the approximation to the Jacobian from sequential evaluations of the
> function.  If your Jacobian doesn't change too much when the boundary
> conditions change, just keep the last approximation and update it with the
> new function.  Otherwise I don't see what you want to do.
>
> I don't think you need to call SNESGetSolution, you should be able to just
> access the vector that you pass to SNESSolve.
>

This is one situation where my method of enforcing Dirichlet conditions,
namely to eliminate them completely from the system
being solved, is clearly superior. I would eliminate those constrained
variables.

   Matt


> On Nov 3, 2017 6:34 PM, "Bikash Kanungo" <bikash at umich.edu> wrote:
>
> Hi Barry,
>
> So for Newton solvers that would work by explicitly setting the boundary
> conditions in my gradient(function) and Jacobian vectors. But in
> quasi-Newton solvers where the Jacobian is built from a history of previous
> Jacobians and current gradient vector, I can't enforce a new boundary
> condition. I can change the current gradient vector appropriately but I
> don't see a way handle the the Jacobian.
>
> Thanks,
> Bikash
>
>
>
> On Fri, Nov 3, 2017 at 6:20 PM, Smith, Barry F. <bsmith at mcs.anl.gov>
> wrote:
>
>>
>>
>>   You should not need to "tamper" with the solution process to achieve
>> this.
>>
>>   I would just change how my FormFunction and FormJacobian behave to
>> implement the different boundary conditions. Why would that not work?
>>
>>    Barry
>>
>> > On Nov 3, 2017, at 4:39 PM, Bikash Kanungo <bikash at umich.edu> wrote:
>> >
>> > Hi Matt,
>> >
>> > I want to update the Dirichlet boundary condition on the solution
>> vector on-the-fly. One way to do it is to destroy the current snes solver
>> and create a new one with the new Dirichlet boundary condition (which means
>> setting a new solution vector with a different size, size  = # of
>> non-Dirichlet rows). But is it possible to work with the current snes and
>> instead enforce the new Dirichlet boundary condition on the current
>> solution vector?
>> >
>> > Thanks,
>> > Bikash
>> >
>> > On Fri, Nov 3, 2017 at 5:19 PM, Matthew Knepley <knepley at gmail.com>
>> wrote:
>> > What do you want to do to it?
>> >
>> >   Matt
>> >
>> > On Fri, Nov 3, 2017 at 5:14 PM, Bikash Kanungo <bikash at umich.edu>
>> wrote:
>> > Hi,
>> >
>> > I'm trying to solve a nonlinear problem using BFGS Quasi-Newton solver.
>> I would like to tamper the solution vector x on-the-fly, based on some
>> criterion. Is there a way to do so? Will SNESGetSolution(SNES snes, Vec *
>> x) allow me to do so for each SNES iteration?
>> >
>> > Thanks,
>> > Bikash
>> >
>> > --
>> > Bikash S. Kanungo
>> > PhD Student
>> > Computational Materials Physics Group
>> > Mechanical Engineering
>> > University of Michigan
>> >
>> >
>> >
>> >
>> > --
>> > 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
>> >
>> > https://www.cse.buffalo.edu/~knepley/
>> >
>> >
>> >
>> > --
>> > Bikash S. Kanungo
>> > PhD Student
>> > Computational Materials Physics Group
>> > Mechanical Engineering
>> > University of Michigan
>> >
>>
>>
>
>
> --
> Bikash S. Kanungo
> PhD Student
> Computational Materials Physics Group
> Mechanical Engineering
> University of Michigan
>
>
>


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

https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20171103/bfabc230/attachment.html>


More information about the petsc-users mailing list