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. 

  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.

  Barry


> On Jun 23, 2023, at 6:12 AM, Karin&NiKo <[email protected]> wrote:
> 
> 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.
> 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.
> Nevertheless I do not find the function iarray_p which (I think) is required 
> to transfer a list of Scatter when calling SNESNASMSetSubdomains.
> Am I right ?
> 
> Le ven. 23 juin 2023 à 09:40, Karin&NiKo <[email protected] 
> <mailto:[email protected]>> a écrit :
>> Dear Barry,
>> 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.
>> Could someone provide me with an example ?
>> Thanks,
>> Nicolas
>> 
>> Le ven. 23 juin 2023 à 02:17, Barry Smith <[email protected] 
>> <mailto:[email protected]>> a écrit :
>>> 
>>>   A test would be great.
>>> 
>>>> On Jun 22, 2023, at 3:20 PM, Karin&NiKo <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> Thank you Barry. I will try this.
>>>> Should I provide a test in src/binding/petsc4py/test/test_snes.py ?
>>>> 
>>>> Le jeu. 22 juin 2023 à 20:41, Barry Smith <[email protected] 
>>>> <mailto:[email protected]>> a écrit :
>>>>> 
>>>>>   You are not missing anything. The petsc4py stub for 
>>>>> SNESNASMSetSubdomains() has not been written. You could add it by adding 
>>>>> to
>>>>> src/petsc4py/PETSc/SNES.pyx and src/petsc4py/PETSc/petscsnes.pxi and then 
>>>>> make a merge request  https://petsc.org/release/developers/contributing/ 
>>>>> to get it into PETSc.
>>>>> 
>>>>>> On Jun 22, 2023, at 1:54 PM, Karin&NiKo <[email protected] 
>>>>>> <mailto:[email protected]>> wrote:
>>>>>> 
>>>>>> Dear PETSc team,
>>>>>> 
>>>>>> 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.
>>>>>> Then, I started looking at petsc4py/demo/ode/heat.py and tried to set up 
>>>>>> things.
>>>>>> Unfortunately, I get the error "DM has no default decomposition defined. 
>>>>>>  Set subsolves manually with SNESNASMSetSubdomains()" which, I think, I 
>>>>>> do understand.
>>>>>> But I do not find any implementation of the SNESNASMSetSubdomains in 
>>>>>> petsc4py. 
>>>>>> Am I missing something ? 
>>>>>> Thanks,
>>>>>> Nicolas
>>>>> 
>>> 

Reply via email to