[petsc-dev] Inquiry about contributing to MMG interface
neil liu
liufield at gmail.com
Sun Feb 16 09:52:05 CST 2025
Please take a review ,
If you have any questions, please let me know.
https://urldefense.us/v3/__https://gitlab.com/xiaodongspace/petsc__;!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhhGBzyIg$
On Sun, Feb 16, 2025 at 8:40 AM Matthew Knepley <knepley at gmail.com> wrote:
> On Sat, Feb 15, 2025 at 11:05 PM neil liu <liufield at gmail.com> wrote:
>
>> Hi, Matt,
>>
>> I just finished testing the 3D cases. Currently, the internal boundary is
>> enabled through hardcoding in the code. It might be a good idea for you to
>> review the implementation before I proceed with the 2D case and incorporate
>> the internal boundary feature into dmplex->metricCtx. Please let me know
>> what do you prefer.
>>
>
> Hi Xiaodong,
>
> I have misplaced the branch ref. Can you mail me the URL and I will review?
>
>
>> Test it with Valgrind. There are no memory leaks, but some memory is
>> still reachable. I checked the details. Some of these still reachable
>> memories come from DMPlexCreateGmsh.
>> ==1270244== HEAP SUMMARY:
>> ==1270244== in use at exit: 701,196 bytes in 473 blocks
>> ==1270244== total heap usage: 9,775 allocs, 9,263 frees, 10,553,085
>> bytes allocated
>> ==1270244==
>> ==1270244== LEAK SUMMARY:
>> ==1270244== definitely lost: 0 bytes in 0 blocks
>> ==1270244== indirectly lost: 0 bytes in 0 blocks
>> ==1270244== possibly lost: 0 bytes in 0 blocks
>> ==1270244== still reachable: 701,196 bytes in 473 blocks
>> ==1270244== suppressed: 0 bytes in 0 blocks
>> ==1270244== Reachable blocks (those to which a pointer was found) are not
>> shown.
>> ==1270244== To see them, rerun with: --leak-check=full
>> --show-leak-kinds=all
>>
>
> Yes, that is GMsh memory. We tag all our allocs and check at the end, so
> it is not malloced by PETSc.
>
> Thanks!
>
> Matt
>
>
>> Thansk,
>> Xiaodong
>>
>> On Sun, Feb 9, 2025 at 11:28 AM Matthew Knepley <knepley at gmail.com>
>> wrote:
>>
>>> On Sun, Feb 9, 2025 at 10:02 AM neil liu <liufield at gmail.com> wrote:
>>>
>>>> Hi, Matt,
>>>>
>>>> I am working on extending the interface. So far so good. Almost
>>>> finished that for all related functions.
>>>> I have a question about the lines inside DMAdaptMetric_Mmg_Plex(),
>>>>
>>>> * if (rgLabel) {*
>>>> * PetscCall(PetscObjectGetName((PetscObject)rgLabel, &rgLabelName));*
>>>> * PetscCall(PetscStrcmp(rgLabelName, rgName, &flg));*
>>>> * PetscCheck(!flg, comm, PETSC_ERR_ARG_WRONG, "\"%s\" cannot be used
>>>> as label for element tags", rgLabelName);*
>>>> * }*
>>>>
>>>> My confusion,
>>>> *Here, rdgLabelName is "Cell_Sets", rgName is "_regions_". Then flg is
>>>> also petsc_false. *
>>>> *So what is the purpose to add these lines? *
>>>>
>>>
>>> This is the name I use internally for Plex regions. The user can choose
>>> another name if they want to control things, but
>>> not overwrite my name.
>>>
>>> Thanks,
>>>
>>> Matt
>>>
>>>
>>>> Thanks,
>>>>
>>>> Xiaodong
>>>>
>>>> On Wed, Feb 5, 2025 at 3:12 PM neil liu <liufield at gmail.com> wrote:
>>>>
>>>>> Theoretically, the edges of the open boundary surface can be extracted
>>>>> outside this subroutine. (I am wondering if this can be effectively
>>>>> delivered outside this subroutine.)_
>>>>>
>>>>> It might be more convenient to assign edge labels and set these edges
>>>>> in MMG using MMG3D_Set_edges. This way, after refinement, the labeled
>>>>> edges can be easily identified.
>>>>>
>>>>> I would appreciate your insights on this.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Xiaodong
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Feb 5, 2025 at 2:43 PM Matthew Knepley <knepley at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> On Wed, Feb 5, 2025 at 2:06 PM neil liu <liufield at gmail.com> wrote:
>>>>>>
>>>>>>> For open boundaries, MMG sets a reference for the internal open
>>>>>>> boundary surface and then runs in opnbdy mode after we define the corners
>>>>>>> using MMG3D_Set_corner.
>>>>>>>
>>>>>>> The edges are only desired for my own case. We need to know the
>>>>>>> edges delimiting the open boundary surface after refinement to extract some
>>>>>>> physical data.
>>>>>>>
>>>>>>
>>>>>> Okay, so it seems that we need to extend the interface to MMG to
>>>>>> allow corners to be labeled. You can label edges on your own without
>>>>>> extending the interface I think. Let me know if this is wrong.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Matt
>>>>>>
>>>>>>
>>>>>>> On Wed, Feb 5, 2025 at 1:56 PM Matthew Knepley <knepley at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> On Wed, Feb 5, 2025 at 1:24 PM neil liu <liufield at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> The corners can be set with MMG's own API
>>>>>>>>> function, LIBMMG3D_EXPORT int MMG3D_Set_corner(MMG5_pMesh mesh, MMG5_int
>>>>>>>>> k);
>>>>>>>>>
>>>>>>>>
>>>>>>>> This definitely sets a corner attribute on a vertex.
>>>>>>>>
>>>>>>>>
>>>>>>>>> The edges can be set with MMG's own API function,
>>>>>>>>> LIBMMG3D_EXPORT int MMG3D_Set_edges(MMG5_pMesh mesh, MMG5_int *edges,
>>>>>>>>> MMG5_int* refs);
>>>>>>>>>
>>>>>>>>
>>>>>>>> This seems to define all the edges in the mesh. Are you saying that
>>>>>>>> MMG only uses these edge definitions for open boundaries?
>>>>>>>>
>>>>>>>>
>>>>>>>>> MMG doesn't have a very detailed documentation. The above API
>>>>>>>>> subroutines can be found,
>>>>>>>>> mmg/src/mmg3d/libmmg3d.h at master · MmgTools/mmg · GitHub
>>>>>>>>> <https://urldefense.us/v3/__https://github.com/MmgTools/mmg/blob/master/src/mmg3d/libmmg3d.h__;!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRjAmEXNzQ$ >
>>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Matt
>>>>>>>>
>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> Xiaodong
>>>>>>>>>
>>>>>>>>> On Wed, Feb 5, 2025 at 1:16 PM Matthew Knepley <knepley at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> On Wed, Feb 5, 2025 at 1:06 PM neil liu <liufield at gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi, Matt,
>>>>>>>>>>>
>>>>>>>>>>> It is not enough to only turn on -the open boundary.
>>>>>>>>>>> For the above example, the 4 physical corner vertices (0D) for
>>>>>>>>>>> this internal quadrilateral surface have to be set, otherwise the shape can
>>>>>>>>>>> not be kept.
>>>>>>>>>>> In addition, for my present case, the boundary edges (1D)
>>>>>>>>>>> consisting of this quadrilateral surface need to be tagged.
>>>>>>>>>>> The present bdLabel seems to only work for 2D shapes for 3D
>>>>>>>>>>> cases.
>>>>>>>>>>> Please correct me if I am wrong.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Are you saying that this is the interface published by MMG? Can
>>>>>>>>>> you point me toward the piece of MMG documentation? I just want to
>>>>>>>>>> understand the interface requirements before we make any changes to PETSc.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Matt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>>
>>>>>>>>>>> Xiaodong
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Feb 5, 2025 at 12:05 PM Matthew Knepley <
>>>>>>>>>>> knepley at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> This is a really poor name. The boundary is not open in any
>>>>>>>>>>>> sense. It should be called an internal boundary, and what they call
>>>>>>>>>>>> internal boundaries should be called interdomain boundaries, but it seems
>>>>>>>>>>>> too late to fix this.
>>>>>>>>>>>>
>>>>>>>>>>>> Turning on open boundaries is just a flag, so that is easy, and
>>>>>>>>>>>> one can see the usefulness of this mode.
>>>>>>>>>>>>
>>>>>>>>>>>> My understanding from the documentation link below is that MMG
>>>>>>>>>>>> does not change anything about parts of the mesh marked
>>>>>>>>>>>> as internal boundaries, so we can read them right back out from
>>>>>>>>>>>> the boundary label. Why would we need a new label for this?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>
>>>>>>>>>>>> Matt
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Feb 5, 2025 at 11:22 AM Pierre Jolivet <pierre at joliv.et>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> See also:
>>>>>>>>>>>>> https://urldefense.us/v3/__https://www.mmgtools.org/mmg-remesher-try-mmg/mmg-remesher-tutorials/mmg-remesher-mmg3d/open-boundary-remeshing__;!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRg-t7ueyQ$
>>>>>>>>>>>>> .
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Pierre
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 5 Feb 2025, at 4:39 PM, neil liu <liufield at gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> It seems the figures were broken. Please see the following
>>>>>>>>>>>>> attached.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Feb 5, 2025 at 10:36 AM neil liu <liufield at gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi, Mark,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> For example, in the left figure, the yellow rectangular face
>>>>>>>>>>>>>> needs to be preserved during mesh refinement. However, without specifying
>>>>>>>>>>>>>> its four corner points, the rectangle cannot be maintained, as shown in the
>>>>>>>>>>>>>> right figure. Additionally, the four edges of this face must be recorded
>>>>>>>>>>>>>> and retrieved for post-processing.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This yellow face is an *open boundary*, meaning it is not an
>>>>>>>>>>>>>> interface between different materials. To ensure its preservation during
>>>>>>>>>>>>>> mesh refinement, MMG must be run in *opnbdy* (open boundary)
>>>>>>>>>>>>>> mode.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks a lot,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Xiaodong
>>>>>>>>>>>>>> [image: image.png] [image: image.png]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wed, Feb 5, 2025 at 10:05 AM Matthew Knepley <
>>>>>>>>>>>>>> knepley at gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Feb 5, 2025 at 9:52 AM neil liu <liufield at gmail.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Dear developers,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am currently working with MMG in the context of PETSc and
>>>>>>>>>>>>>>>> have identified a need to modify the existing MMG interface,
>>>>>>>>>>>>>>>> DMAdaptMetric_Mmg_Plex(), for our use case. Given these
>>>>>>>>>>>>>>>> requirements, I would like to explore the feasibility of contributing to
>>>>>>>>>>>>>>>> PETSc to enhance this interface, which has been verified and validated in
>>>>>>>>>>>>>>>> our research code.
>>>>>>>>>>>>>>>> *Proposed Modifications:*
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 1.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> *Additional Labels for Physical Entities:*
>>>>>>>>>>>>>>>> - In addition to the existing bdLabel and rgLabel, our
>>>>>>>>>>>>>>>> case requires two additional labels to represent physical vertices and
>>>>>>>>>>>>>>>> edges within the computational domain (3D).
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am open to this. Can you be more specific about what it
>>>>>>>>>>>>>>> means?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 1.
>>>>>>>>>>>>>>>> - One approach is to introduce two new parameters in
>>>>>>>>>>>>>>>> the subroutine’s input list. However, this may require modifications across
>>>>>>>>>>>>>>>> related components, such as Pragmatic.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> This is not a problem. I can modify those.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> 1.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> *Support for Open Boundaries:*
>>>>>>>>>>>>>>>> - The current interface does not support open
>>>>>>>>>>>>>>>> boundaries, a feature available in MMG.
>>>>>>>>>>>>>>>> - As a result, several MMG benchmark cases involving
>>>>>>>>>>>>>>>> open boundary remeshing cannot be executed within PETSc.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Can you explain what this means? What is an open boundary
>>>>>>>>>>>>>>> exactly?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Would this be a viable contribution to PETSc? If so, I
>>>>>>>>>>>>>>>> would appreciate any guidance on the best approach to implementing these
>>>>>>>>>>>>>>>> changes while maintaining compatibility with existing features.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yes. Please make a fork of the petsc repo, make a branch
>>>>>>>>>>>>>>> with the proposed changes, make an MR for that branch, and add me to your
>>>>>>>>>>>>>>> fork (I am knepley on GitLab). I can help you get it going.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Matt
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Looking forward to your thoughts.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Xiaodong
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>>>>>>>>>>>>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!anvbtQDqn57whvgg2qc1Dix0Izm9kxNlvUkeyYkcfknnt6VmqbCE0mlGSj6O1DLJx6qR7-7UsHv48zbaqVDECw$>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <The right figure.png><The left figure.png>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>>>>>>>>>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>>>>>>>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>>>>>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>>>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>>>>>>
>>>>>
>>>
>>> --
>>> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
>>> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>>>
>>
>
> --
> 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://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRh4Mqb8bg$
> <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!ax17nsgt3n5EQgX8v3FEpsoJRo0GP05wvQeo8O5mNSNHP3bPlFowbFxDCYGTBy-B8nHhaYJfgHF4WRhXK_3eIQ$ >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20250216/3c2566a8/attachment-0001.html>
More information about the petsc-dev
mailing list