Unpaired Faces in Higher Order Mesh

Hello,
I have encountered a problem. When I am trying to export my Pointwise mesh in higher order, I cannot import it to PyFR anymore. I have tried many settings and simplified meshes, but cannot get anything higher order imported to PyFR. I would really appreciate some help.

A bit more specific:
When I export any mesh in Pointwise with Export → CAE, I can import and run it in PyFR without a problem. But even though ‘Higher Order Solver Attributes’ are set to Q2, it is still just a linear mesh.
In order to get a Q2 mesh, I have to use Grid → Elevate → Elevate/Export, but after that I get the following Error when trying to import:

Traceback (most recent call last):
  File "/home/beilowne/.conda/envs/h5pytest/bin/pyfr", line 33, in <module>
    sys.exit(load_entry_point('pyfr==1.15.0', 'console_scripts', 'pyfr')())
  File "/home/beilowne/.conda/envs/h5pytest/lib/python3.9/site-packages/pyfr-1.15.0-py3.9.egg/pyfr/__main__.py", line 116, in main
  File "/home/beilowne/.conda/envs/h5pytest/lib/python3.9/site-packages/pyfr-1.15.0-py3.9.egg/pyfr/__main__.py", line 130, in process_import
  File "/home/beilowne/.conda/envs/h5pytest/lib/python3.9/site-packages/pyfr-1.15.0-py3.9.egg/pyfr/readers/base.py", line 21, in to_pyfrm
  File "/home/beilowne/.conda/envs/h5pytest/lib/python3.9/site-packages/pyfr-1.15.0-py3.9.egg/pyfr/readers/gmsh.py", line 411, in _to_raw_pyfrm
  File "/home/beilowne/.conda/envs/h5pytest/lib/python3.9/site-packages/pyfr-1.15.0-py3.9.egg/pyfr/readers/base.py", line 189, in get_connectivity
ValueError: Unpaired faces in mesh

Here are the files for a basic example: https://tubcloud.tu-berlin.de/s/zjJBPKY6FkiXJJC
pw_3d_direct_export.msh is created with Export → CAE and does import.
pw_3d_problem.msh is created with Grid → Elevate → Elevate/Export and does not export.

For the example mesh I had the following workflow in Pointwise:
Version: Fidelity Pointwise 2022.2

  • New File
  • Draw Shape → Cylinder (centered 0 0 0, radius 1, length 1)
  • Select Block → Solve → Initialize
  • Select Solver (gmsh), set Boundary Conditions (all ‘a’), set Volume Conditions (‘fluid’)
  • Grid → Elevate → Elevate/Export

For the import into pyfr, I am trying the following command:
Version: PyFR 1.15.0
pyfr import pw_3d_problem.msh mesh.pyfrm

Best regards,
Pablo

Can you post the mesh file in question?

Regards, Freddie.

Hello Freddie,

I did not see an option to upload non-image files, but the meshes are in the cloud link posted in the main text. (https://tubcloud.tu-berlin.de/s/zjJBPKY6FkiXJJC)

Looking at the high order output:

$PhysicalNames
2
3 1 "fluid"
2 1 "a"
$EndPhysicalNames

where we note that the “fluid” and “a” both have the same physical entity number (1).

Regards, Freddie.

This is a recent change in the GMSH output for Pointwise. Beforehand, when exporting either low-order or high-order meshes (through Export CAE), Pointwise will offset the physical entity IDs of the surfaces by the number of volumes (e.g., volume 1 = ID 1, volume 2 = ID 2, surface 1 = ID 3, surface 2 = ID 4).

For some reason, now when the high-order GMSH grid is written using Elevate, it doesn’t do the offsetting (e.g., volume 1 = ID 1, volume 2 = ID 2, surface 1 = ID 1, surface 2 = ID 2). PyFR only reads the IDs, so it mixes up the surfaces and volumes with the same IDs.

A simple fix for this is to ensure that the volumes and surfaces have different IDs. You can do this by using Set Volume Conditions and setting the volume ID number to be some number greater than the number of boundary surfaces you have.

Ah yes, that was the problem and setting different IDs works. Thank you both so much!