<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: black;" class="elementToProof">
Thank you so much for your ultra fast answer Pierre!</div>
<div class="elementToProof" id="Signature">
<p class="elementToProof"><span style="color: black;">Nicolas</span></p>
<p class="elementToProof"> </p>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>De :</b> pierre@joliv.et <pierre@joliv.et><br>
<b>Envoyé :</b> mardi 1 juillet 2025 18:58<br>
<b>À :</b> TARDIEU Nicolas <nicolas.tardieu@edf.fr><br>
<b>Cc :</b> petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov><br>
<b>Objet :</b> Re: [petsc-users] New Fortran API to PCFieldSplitGetSubKSP</font>
<div> </div>
</div>
<div dir="auto">
<table bgcolor="#F1DDA5" style="border:1px solid red; width:100%">
<tbody>
<tr>
<td>
<center><font style="color:red; font-size:12px; font-size:14px"><strong>Expéditeur externe :</strong></font>
<font style="font-size:12px">Vérifier l’expéditeur avant de cliquer sur les liens ou pièces-jointes<br>
</font></center>
</td>
</tr>
<tr>
<td>
<center><font style="color:red; font-size:14px"><strong>External Sender : </strong>
</font><font style="font-size:12px">Check the sender before clicking any links or attachments</font></center>
</td>
</tr>
</tbody>
</table>
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr"></div>
<div dir="ltr">Dear Nicolas,</div>
<div dir="ltr"><br>
<blockquote type="cite">On 1 Jul 2025, at 6:31 PM, TARDIEU Nicolas via petsc-users <petsc-users@mcs.anl.gov> wrote:<br>
<br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Dear PETSc team, </div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
I am having hard time upgrading our code's interface to the new Fortran API...</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
For instance, I lack a Fortran example of the use of PCFieldSplitGetSubKSP. The doc says "You must pass in a KSP array that is large enough to contain all the KSPs" but the interface file is :</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
subroutine PCFieldSplitGetSubKSP(a,b,c, z)</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
import tPC,tKSP</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
PC :: a</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
PetscInt :: b</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
KSP, pointer :: c(:)</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
PetscErrorCode z</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
end subroutine</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
end interface</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Does it mean that I have to allocate an array of KSP before calling the routine ?</div>
</div>
</blockquote>
<div><br>
</div>
<div>Yes.</div>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="x_elementToProof" style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
It seems to me that the other new interfaces take care of allocating the output object. PCBJacobiGetSubKSP does it.</div>
</div>
</blockquote>
<div><br>
</div>
<div>They do not work the same behind the scene (because for fieldsplit, in the internal structure, the sub KSP are not necessarily stored in a contiguous array), and so they are not strictly equivalent.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Pierre</div>
<blockquote type="cite">
<div dir="ltr">
<div class="x_elementToProof" id="x_Signature">
<p class="x_elementToProof"><span style="color:black">Thanks in advance,</span></p>
<p class="x_elementToProof"><span style="color:black">Nicolas</span><span style="font-size:12pt; color:black"><br>
</span><span style="color:black">--</span><span style="font-size:12pt; color:black"><br>
</span><span style="font-family:Arial,sans-serif; font-size:9pt; color:rgb(255,129,0)"><b>Nicolas Tardieu</b></span></p>
<p class="x_elementToProof"><span style="font-family:Arial,sans-serif; font-size:8pt; color:rgb(255,129,0)"><b>Ing PhD Computational Mechanics</b></span></p>
<p class="x_elementToProof"><span style="font-family:Arial,sans-serif; font-size:8pt; color:rgb(0,98,225)">EDF - R&D Dpt ERMES</span></p>
<p class="x_elementToProof"><span style="font-family:Arial,sans-serif; font-size:8pt; color:rgb(0,98,225)">PARIS-SACLAY, FRANCE</span></p>
<p class="x_elementToProof"> </p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p><br>
Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires et les informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa destination, toute
diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse.</p>
<p>Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre système, ainsi que toutes ses
copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous remercions également d'en avertir immédiatement l'expéditeur par retour du message.</p>
<p>Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont sécurisées ou dénuées de toute erreur ou virus.<br>
____________________________________________________</p>
<p>This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in this Message is confidential. Any use of information contained in this Message not in accord with its purpose, any dissemination or disclosure,
either whole or partial, is prohibited except formal approval.</p>
<p>If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this message in error, please delete it and all copies from your system and notify the sender immediately by return message.</p>
<p>E-mail communication cannot be guaranteed to be timely secure, error or virus-free.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
<div><div><div><div><div><div><div><p><br>
Ce message et toutes les pièces jointes (ci-après le 'Message') sont
établis à l'intention exclusive des destinataires et les informations
qui y figurent sont strictement confidentielles. Toute utilisation de ce
Message non conforme à sa destination, toute diffusion ou toute
publication totale ou partielle, est interdite sauf autorisation
expresse.</p>
<p>Si vous n'êtes pas le destinataire de ce Message, il vous est
interdit de le copier, de le faire suivre, de le divulguer ou d'en
utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci
de le supprimer de votre système, ainsi que toutes ses copies, et de
n'en garder aucune trace sur quelque support que ce soit. Nous vous
remercions également d'en avertir immédiatement l'expéditeur par retour
du message.</p>
<p>Il est impossible de garantir que les communications par messagerie
électronique arrivent en temps utile, sont sécurisées ou dénuées de
toute erreur ou virus.<br>
____________________________________________________</p>
<p>This message and any attachments (the 'Message') are intended solely
for the addressees. The information contained in this Message is
confidential. Any use of information contained in this Message not in
accord with its purpose, any dissemination or disclosure, either whole
or partial, is prohibited except formal approval.</p>
<p>If you are not the addressee, you may not copy, forward, disclose or
use any part of it. If you have received this message in error, please
delete it and all copies from your system and notify the sender
immediately by return message.</p>
<p>E-mail communication cannot be guaranteed to be timely secure, error or virus-free.</p></body>
</html>