<div dir="ltr">Thanks Barry, I'll check it out. <br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 23 juin 2023 à 18:57, Barry Smith <<a href="mailto:bsmith@petsc.dev">bsmith@petsc.dev</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br></div>  Take a look at setNestSubVecs() in /src/binding/petsc4py/src/petsc4py/PETSc/Vec.pyx it seems to deal with passing an array of PETSc objects. Likely there are additional instances where arrays of objects are passed between Python and C. <div><br></div><div>  I do not understand this code, but the Python experts will. Perhaps this type of construct can be hoisted up into a petsc4py implementation utility useful for any place in PETSc where arrays of objects must be passed back and forth.</div><div><br></div><div>  Barry</div><div><br><div><br><blockquote type="cite"><div>On Jun 23, 2023, at 6:12 AM, Karin&NiKo <<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>> wrote:</div><br><div><div dir="ltr">In order to transfer from Python to C a list of int, real or bool as an input, there are the functions iarray_i, iarray_r and iarray_b.<div>In order to transfer from C to Python a list of int, real, bool or pointers as an output, there are the functions oarray_i, oarray_r, oarray_b and oarray_p.<br></div><div>Nevertheless I do not find the function iarray_p which (I think) is required to transfer a list of Scatter when calling SNESNASMSetSubdomains.</div><div>Am I right ?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 23 juin 2023 à 09:40, Karin&NiKo <<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear Barry,<div>I have started looking at the code but I miss an example using SNESNASMSetSubdomains. In fact I do not even find a single use of the function in PETSc.</div><div>Could someone provide me with an example ?</div><div>Thanks,</div><div>Nicolas</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 23 juin 2023 à 02:17, Barry Smith <<a href="mailto:bsmith@petsc.dev" target="_blank">bsmith@petsc.dev</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br></div>  A test would be great.<br><div><br><blockquote type="cite"><div>On Jun 22, 2023, at 3:20 PM, Karin&NiKo <<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Thank you Barry. I will try this.<div>Should I provide a test in src/binding/petsc4py/test/test_snes.py ?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 22 juin 2023 à 20:41, Barry Smith <<a href="mailto:bsmith@petsc.dev" target="_blank">bsmith@petsc.dev</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><br></div>  You are not missing anything. The petsc4py stub for SNESNASMSetSubdomains() has not been written. You could add it by adding to<div><div style="margin:0px;font-style:normal;font-variant:normal;font-stretch:normal;line-height:normal;font-kerning:auto;font-feature-settings:normal"><span style="font-variant-ligatures:no-common-ligatures">src/petsc4py/PETSc/SNES.pyx and </span>src/petsc4py/PETSc/petscsnes.pxi and then make a merge request  <a href="https://petsc.org/release/developers/contributing/" target="_blank">https://petsc.org/release/developers/contributing/</a> to get it into PETSc.</div><div><br><blockquote type="cite"><div>On Jun 22, 2023, at 1:54 PM, Karin&NiKo <<a href="mailto:niko.karin@gmail.com" target="_blank">niko.karin@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Dear PETSc team,<div><br></div><div>I would like to play with aspin-type nonlinear solvers. I have found several tests like snes/tutorials/ex19.c but they all use DA, which I don't want to use since I need to stick at the algebraic level.</div><div>Then, I started looking at petsc4py/demo/ode/heat.py and tried to set up things.</div><div>Unfortunately, I get the error "DM has no default decomposition defined.  Set subsolves manually with SNESNASMSetSubdomains()" which, I think, I do understand.</div><div>But I do not find any implementation of the SNESNASMSetSubdomains in petsc4py. </div><div>Am I missing something ? </div><div>Thanks,</div><div>Nicolas</div></div>
</div></blockquote></div><br></div></div></blockquote></div>
</div></blockquote></div><br></div></blockquote></div>
</blockquote></div>
</div></blockquote></div><br></div></div></blockquote></div>