Hi, I hope this email finds you well. I am currently working on importing an OpenFOAM PolyMesh into DMPlex, and I've encountered an issue. The PolyMesh format includes face owner cells/neighbor cells and face-to-vertex connectivity. I was using the "DMPlexCreateFromCellListPetsc()" function, which required cell-to-vertex connectivity. However, when attempting to create the cell connectivity using an edge loop [p_0, p_1, ..., p_7] (p_n and p_(n+1) are valid edges in my mesh), I encountered an error stating, "Could not find orientation for quadrilateral." (Actually at first, I generated the connectivity list by simply creating a cell-to-face list and then using that to create a cell-to-vertex list. (just map over the list and remove duplicates) This created a DMPlex successfully, however, resulted in a mesh that was incorrect when looking with ParaView. I think that was because of I stated wrong edge loop to create cells) I understand that I may need to follow a different format for connectivity, but I'm not sure what that format is. My current mesh is hexahedral, consisting of 8 corner elements(if important). I would appreciate any guidance on a general approach to address this issue. Thank you for your time and assistance. Best, Onur Sent with Proton Mail secure email.
On Tue, Dec 12, 2023 at 12:22 PM onur.notonur via petsc-users < [email protected]> wrote:
Hi,
I hope this email finds you well. I am currently working on importing an OpenFOAM PolyMesh into DMPlex, and I've encountered an issue. The PolyMesh format includes face owner cells/neighbor cells and face-to-vertex connectivity. I was using the "DMPlexCreateFromCellListPetsc()" function, which required cell-to-vertex connectivity. However, when attempting to create the cell connectivity using an edge loop [p_0, p_1, ..., p_7] (p_n and p_(n+1) are valid edges in my mesh), I encountered an error stating, "Could not find orientation for quadrilateral."
(Actually at first, I generated the connectivity list by simply creating a cell-to-face list and then using that to create a cell-to-vertex list. (just map over the list and remove duplicates) This created a DMPlex successfully, however, resulted in a mesh that was incorrect when looking with ParaView. I think that was because of I stated wrong edge loop to create cells)
I understand that I may need to follow a different format for connectivity, but I'm not sure what that format is. My current mesh is hexahedral, consisting of 8 corner elements(if important). I would appreciate any guidance on a general approach to address this issue.
Can you start by giving the PolyMesh format, or some URL with it documented? Thanks, Matt
Thank you for your time and assistance. Best, Onur Sent with Proton Mail secure email.
-- 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://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
Hi, This page explains polyMesh in the section 4.1.2: https://www.openfoam.com/documentation/user-guide/4-mesh-generation-and-conv... (Also I added my polyMesh files as attachment.) After my first email I generated valid mesh by finding 2 of the 6 faces which have no common vertex, then arranging them to look like this: 1-2-3-4 is my first face, 5-6-7-8 is my second face. But this approach isn't a general solution (but currently it works because my mesh consists of only hexahedral elements), If I could learn the true solution I'd be happy! Thank you again 1 2 +------+. |`. | `. | 4+--+---+3 | | | | 5+---+--+8 | `. | `.| 6+------+7 Sent with [Proton Mail](https://proton.me/) secure email. On Wednesday, December 13th, 2023 at 2:16 AM, Matthew Knepley <[email protected]> wrote:
On Tue, Dec 12, 2023 at 12:22 PM onur.notonur via petsc-users <[email protected]> wrote:
Hi,
I hope this email finds you well. I am currently working on importing an OpenFOAM PolyMesh into DMPlex, and I've encountered an issue. The PolyMesh format includes face owner cells/neighbor cells and face-to-vertex connectivity. I was using the "DMPlexCreateFromCellListPetsc()" function, which required cell-to-vertex connectivity. However, when attempting to create the cell connectivity using an edge loop [p_0, p_1, ..., p_7] (p_n and p_(n+1) are valid edges in my mesh), I encountered an error stating, "Could not find orientation for quadrilateral."
(Actually at first, I generated the connectivity list by simply creating a cell-to-face list and then using that to create a cell-to-vertex list. (just map over the list and remove duplicates) This created a DMPlex successfully, however, resulted in a mesh that was incorrect when looking with ParaView. I think that was because of I stated wrong edge loop to create cells)
I understand that I may need to follow a different format for connectivity, but I'm not sure what that format is. My current mesh is hexahedral, consisting of 8 corner elements(if important). I would appreciate any guidance on a general approach to address this issue.
Can you start by giving the PolyMesh format, or some URL with it documented?
Thanks,
Matt
Thank you for your time and assistance.
Best, Onur
Sent with Proton Mail secure email.
--
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://www.cse.buffalo.edu/~knepley/](http://www.cse.buffalo.edu/~knepley/)
participants (2)
-
Matthew Knepley -
onur.notonur