<div dir="ltr"><div><div><div>Okay so i think there's no need for this in my case.<br><br></div>Doing a standard NewtonLS and using the same SNES was no issue at all. My original issue was dealing with the Variational Inequality at each grid point which seemed to break down unless I "reset" the SNES. But when I use these options: -snes_fd -ksp_type preonly -pc_type lu, it works perfectly if I use the same snes for all N grid points. Yes I sacrifice some time forming a FD, but it's not as great as creating new SNES objects each time.<br><br></div>Strange<br><br></div>Justin<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 5, 2016 at 9:30 PM, Patrick Sanan <span dir="ltr"><<a href="mailto:patrick.sanan@gmail.com" target="_blank">patrick.sanan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Do all the SNES's need to be constructed at the same time? It will<br>
obviously require a lot of memory to store N SNES objects (or perhaps<br>
your N is small), and if they don't all need to exist simultaneously, then do you have the option to<br>
create and destroy one at a time as you loop over your grid points?<br>
<div class="HOEnZb"><div class="h5">On Tue, Jan 05, 2016 at 09:24:11PM -0700, Justin Chang wrote:<br>
> Timothee,<br>
><br>
> No i haven't tried, mainly because I don't know how. Btw I am not doing<br>
> this in C or FORTRAN, I want to do this in python (via petsc4py) since I am<br>
> trying to make this compatible with Firedrake (which is also python-based).<br>
><br>
> Thanks,<br>
> Justin<br>
><br>
> On Tue, Jan 5, 2016 at 8:57 PM, Timothée Nicolas <<a href="mailto:timothee.nicolas@gmail.com">timothee.nicolas@gmail.com</a><br>
> > wrote:<br>
><br>
> > Hello and happy new year,<br>
> ><br>
> > Have you actually tried ? I just declared an array of 10 snes and created<br>
> > them, and there is no complaint whatsoever. Also, something I do usually is<br>
> > that I declare a derived type which contains some Petsc Objects (like SNES,<br>
> > KSP, matrices, vectors, whatever), and create arrays of this derived types.<br>
> > This works perfectly fine in my case (I use FORTRAN btw).<br>
> ><br>
> > Best wishes<br>
> ><br>
> > Timothee<br>
> ><br>
> ><br>
> > 2016-01-06 11:53 GMT+09:00 Justin Chang <<a href="mailto:jychang48@gmail.com">jychang48@gmail.com</a>>:<br>
> ><br>
> >> Hi all,<br>
> >><br>
> >> Is it possible to create an array of SNES's? If I have a problem size N<br>
> >> degrees of freedom, I want each dof to have its own SNES solver (basically<br>
> >> a pointer to N SNES's). Reason for this is because I am performing a<br>
> >> "post-processing" step where after my global solve, each entry of my<br>
> >> solution vector of size N will go through some algebraic manipulation.<br>
> >><br>
> >> If I did a standard LU solve for these individual SNES's, I could use the<br>
> >> same snes and this issue would be moot. But i am using the Variational<br>
> >> Inequality, which basically requires a fresh SNES for each problem.<br>
> >><br>
> >> Thanks,<br>
> >> Justin<br>
> >><br>
> ><br>
> ><br>
</div></div></blockquote></div><br></div>