[petsc-users] SNES update solution vector

Smith, Barry F. bsmith at mcs.anl.gov
Fri Nov 3 17:20:41 CDT 2017



  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
> 



More information about the petsc-users mailing list