gmsh issueshttps://gitlab.onelab.info/gmsh/gmsh/-/issues2024-01-02T16:30:58Zhttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2752Trying to split meshes, not using Metis, but manually for now.2024-01-02T16:30:58ZTodd DoehringTrying to split meshes, not using Metis, but manually for now.Hi! Apologies, I'm new to gitlab issue system, so I just assigned to defaults.
My question is:
Can, in the GUI, I select and 'split'; or in other words, select a subset of elements of a tetrahedral mesh into regions, by manual selection?...Hi! Apologies, I'm new to gitlab issue system, so I just assigned to defaults.
My question is:
Can, in the GUI, I select and 'split'; or in other words, select a subset of elements of a tetrahedral mesh into regions, by manual selection?
I understand the Metis approach, and will use that too, but I need to be able to manually select major regions first.
I see that I can select elements when I 'delete' them, but I don't want to delete them; just partition and keep them.
But since element selection during 'deletion' works... I'm guessing that I might be missing something obvious about the ability to select elements via a **lasso-type** method.
Or maybe not! I hope this question makes sense.
All suggestions are much appreciated.
Thanks! -ToddChristophe GeuzaineChristophe Geuzaine2024-01-03https://gitlab.onelab.info/gmsh/gmsh/-/issues/2860Line{} In Surface {} from .geo - EQUVALENT ?? in .py gmsh.model.mesh.embed no...2024-03-28T15:20:28ZDomagoj UremovicLine{} In Surface {} from .geo - EQUVALENT ?? in .py gmsh.model.mesh.embed not having the same performanceDear prof. Geuzaine,
I'm trying to lavarge direct Py scripting to produce mesh. I found a difficulty understanding what is .py equivalent for .geo command Line{} In Surface {};.
Could you help me understanding how to achieve the same...Dear prof. Geuzaine,
I'm trying to lavarge direct Py scripting to produce mesh. I found a difficulty understanding what is .py equivalent for .geo command Line{} In Surface {};.
Could you help me understanding how to achieve the same command in Python?
I've tried >> gmsh.model.mesh.embed(1, [10], 2, 1) but following error keeps popping up "Exception: 1D mesh cannot be divided by 2" on the step >> gmsh.model.mesh.generate().
# .geo script
lc=1.00;
//Points
Point(1) = {0,0,0, lc};
Point(2) = {20,0,0, lc/2};
Point(3) = {40,0,0, lc};
Point(4) = {40,15,0, lc};
Point(5) = {0,15,0, lc};
Point(6) = {20.1,0.45,0, lc/2};
Point(7) = {19.9,0.89,0, lc/2};
Point(8) = {20,1.35,0, lc/2};
Point(9) = {20,5,0, lc/2};
//Lines
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,5};
Line(5) = {5,1};
//Lines for Line in surface
Line(6) = {2,6};
Line(7) = {6,7};
Line(8) = {7,8};
Line(9) = {8,9};
//Line Loops
Line Loop(10) = {1,2,3,4,5};
Plane Surface(1) = {10};
Line{6,7,8,9} In Surface{1};
Physical Surface(10)={1};
//Mesh properties
Mesh.Algorithm = 8;
Mesh.RecombinationAlgorithm = 2;
Mesh.MeshSizeExtendFromBoundary = 1;
Mesh.MeshSizeFromPoints = 1;
Mesh 2;
RecombineMesh;
//Save
Save "Mesh.msh";
//
# Py script
import gmsh
import sys
gmsh.initialize()
lc = 1.00
points = {
1: [0, 0, 0, lc],
2: [20, 0, 0, lc/2],
3: [40, 0, 0, lc],
4: [40, 15, 0, lc],
5: [0, 15, 0, lc],
6: [20.1, 0.45, 0, lc/2],
7: [19.9, 0.89, 0, lc],
8: [20, 1.35, 0, lc],
9: [20, 5, 0, lc],
}
lines = {
1: [1, 2],
2: [2, 3],
3: [3, 4],
4: [4, 5],
5: [5, 1],
6: [2, 6],
7: [6, 7],
8: [7, 8],
9: [8, 9],
}
for i, (x, y, z, lc) in points.items():
gmsh.model.geo.addPoint(x, y, z, meshSize=lc, tag=i)
for i, (p1, p2) in lines.items():
gmsh.model.geo.addLine(p1, p2, tag=i)
gmsh.model.geo.synchronize()
gmsh.model.geo.addCurveLoop([1, 2, 3, 4, 5], tag=10)
gmsh.model.geo.synchronize()
gmsh.model.geo.addPlaneSurface([10], tag=1)
gmsh.model.geo.synchronize()
gmsh.model.addPhysicalGroup(2, [1], 10)
gmsh.model.geo.synchronize()
gmsh.model.mesh.embed(1, [6,7,8,9], 2, 1)
gmsh.model.geo.synchronize()
gmsh.option.setNumber("Mesh.Algorithm", 8)
gmsh.option.setNumber("Mesh.RecombinationAlgorithm", 2)
gmsh.option.setNumber("Mesh.MeshSizeExtendFromBoundary", 1)
gmsh.option.setNumber("Mesh.MeshSizeFromPoints", 1)
gmsh.option.setNumber("Mesh.RecombineAll", 1)
gmsh.model.geo.synchronize()
gmsh.model.mesh.generate()
gmsh.write("MEsh.msh")
if 'close' not in sys.argv:
gmsh.fltk.run()
gmsh.finalize()
If you uncomment "gmsh.model.mesh.embed(1, [6,7,8,9], 2, 1)" it works otherwise it returns the error.
# Question:
I'm aware of the following from gmsh.py API: "The embedded entities should not intersect each other or be part of the boundary of the entity `inTag', whose mesh will conform to the mesh of the embedded entities." The confusion comes - how so that Line In Surface work while python equivalent code doesn't?
I'm looking forward to your answer!
Best regards,
Domagoj Uremovichttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2859STL remeshing and embedding a point in the new mesh2024-03-28T10:42:22ZDeepak GargSTL remeshing and embedding a point in the new meshHello,
I have a data file in STL format ("data.stl"). I need to remesh the surface and embed a point in the new mesh. Here is what I tried in the trial.py script. It seems that the embedded point is not part of the new mesh. How can I m...Hello,
I have a data file in STL format ("data.stl"). I need to remesh the surface and embed a point in the new mesh. Here is what I tried in the trial.py script. It seems that the embedded point is not part of the new mesh. How can I make it work?
[trial.py](/uploads/1e1874e6b04f4b3ddf38ba2cb66b4a87/trial.py)
[data.stl](/uploads/564641f33f384b7cd19c8cf2a9c413be/data.stl)
thanks,
Deepakhttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2858Structured hexahedral 3D mesh as the 2D mesh from Quasi-Structured Quad2024-03-27T09:00:13ZTeresa DíazStructured hexahedral 3D mesh as the 2D mesh from Quasi-Structured QuadHello,
I am new to GMSH and I am still trying to understand the differences between meshing algorithms and parameters to be defined.
I want to mesh this ellipsoid section with structured hexaedra, which would cause an expected issue in ...Hello,
I am new to GMSH and I am still trying to understand the differences between meshing algorithms and parameters to be defined.
I want to mesh this ellipsoid section with structured hexaedra, which would cause an expected issue in the apex. While this mesh can be exported, the software I work with next cannot process this singularity.
Once I have extruded the shape, when I perform meshing using the Quasi-Structured Quad algorithm for 2D, I get a beautiful solution. However, the 3D algorithm (Frontal) does not reach that same solution, and it is the mesh that I need to export. I tried all other 3D algorithms as well with the same results.
Is there any way to define nodes on the surface that can create a similar bending of the hexahedra around them in the 3D meshing?
![ellipsoid_section_gmsh](/uploads/ba09f4c349e5b8b88490230735149fff/ellipsoid_section_gmsh.png)![meshing_parameters+](/uploads/e6c5e41639609a805c2b135d2f12d393/meshing_parameters+.png)https://gitlab.onelab.info/gmsh/gmsh/-/issues/2857Is it possible to use Gmsh Python API without OpenGL?2024-03-27T12:18:09ZPedro AugustoIs it possible to use Gmsh Python API without OpenGL?Is it possible to run Gmsh without OpenGL? Is there any option that forces Gmsh to run in batch mode (without any graphics and therefore, without calling OpenGL)? I have read the Gmsh reference manual and tried to call **`gmsh.initialize...Is it possible to run Gmsh without OpenGL? Is there any option that forces Gmsh to run in batch mode (without any graphics and therefore, without calling OpenGL)? I have read the Gmsh reference manual and tried to call **`gmsh.initialize(argv=["-n"], readConfigFiles=True, run=True)`** to run Gmsh in batch mode, but Gmsh didn't even run with these arguments. For context, I'm trying to run Gmsh on a supercomputer that doesn't have OpenGL installed.https://gitlab.onelab.info/gmsh/gmsh/-/issues/2856GEO or OCC dilemma (setTransfiniteCurve vs getCenterOfMass)2024-03-26T22:24:41ZSvenGEO or OCC dilemma (setTransfiniteCurve vs getCenterOfMass)I currently have a conflict between the GEO and OCC choices and I don't know exactly how to solve it. On the one hand, I need some lines with even subdivision. For this I normally use
`model.geo.mesh.setTransfiniteCurve(line, 4)`
As fa...I currently have a conflict between the GEO and OCC choices and I don't know exactly how to solve it. On the one hand, I need some lines with even subdivision. For this I normally use
`model.geo.mesh.setTransfiniteCurve(line, 4)`
As far as I know OCC does not support TransfiniteCurve. On the other hand, I would like to query the position of certain surfaces when modeling the geometry. I normally do this with
`sx,sy,sz = model.occ.getCenterOfMass(dim=2, tag=14)`
As far as I know there is no way to get the center of mass of GEO objects. Now I am faced with a dilemma. Either I use GEO and have no center of mass query, or I use OCC and have no transfinite curves.
Have I perhaps overlooked something and there is a workaround for this problem? Is there a general recommendation to use GEO over OCC or vice versa?https://gitlab.onelab.info/gmsh/gmsh/-/issues/2855File conversion from MED file format to msh GMSH file format2024-03-27T08:41:50Zuniv liamFile conversion from MED file format to msh GMSH file formatHello,
I'm trying to convert a MED file, generated by Salome 9.12, to the GMSH(4.12) .msh file format. The conversion itself runs without an error. The issue starts with the groups defined in the MED file. A group in MED is a collection...Hello,
I'm trying to convert a MED file, generated by Salome 9.12, to the GMSH(4.12) .msh file format. The conversion itself runs without an error. The issue starts with the groups defined in the MED file. A group in MED is a collection of equal geometric objects like a collection of solids, faces, lines or nodes. In MED, these are labeled by an unique ID. When I generate an example MED file with a solid, two face groups, one line group and one node group with Salome and look into the file with the MEDCoupling C++ libaray all groups are represented correctly. But when I execute GMSH open the MED file and save the mesh the node group is gone. I've attached the .med file and the resulting .msh. Am I doing something wrong? Could it be a bug during the conversion? Is this group tye not supported?
Best Regards
[test.med](/uploads/1eae1ea53fc0f63010599b11c4ff3d98/test.med)
[test.msh](/uploads/1d243a5904d68d664ca2cfd859b8d7e2/test.msh)https://gitlab.onelab.info/gmsh/gmsh/-/issues/2854[Transfinited to hex mesh] 'Error: Surface 7 is transfinite but has 5 holes'2024-03-25T14:45:03ZJoseph[Transfinited to hex mesh] 'Error: Surface 7 is transfinite but has 5 holes'Dear all,
I created a hex mesh file[Extrude_layers.geo](/uploads/245280f3f7e2ae16384379c02905edec/Extrude_layers.geo) for the following geometry (five cuboids intersected by 3 layers) as follows.
![image](/uploads/4c044ce6d52edac7355e...Dear all,
I created a hex mesh file[Extrude_layers.geo](/uploads/245280f3f7e2ae16384379c02905edec/Extrude_layers.geo) for the following geometry (five cuboids intersected by 3 layers) as follows.
![image](/uploads/4c044ce6d52edac7355e0ddcebcd6d3c/image.png)
Firstly, I created a surface intersected by 5 small rectangles at the model's top.
Secondly, I extruded these surfaces three times with different layer numbers to create the 3D mesh.
Thirdly, I limited the mesh size in different fields.
However, the mesh file size is super large ~57 MB.
So I want to extrude these surfaces [Extrude_error.geo](/uploads/1ccb607d920979d93ecfe807f93f0ed9/Extrude_error.geo) using Progression or something like this, not fixed layer numbers.
for example: Extrude {-200, 0, 0} { Surface{2,3,4,5,6,7}; Layers{{6,20},{0.8,1}}; Recombine;}
Transfinite Surface{7} = {1,2,3,4};
But I got the error message 'Error: Surface 7 is transfinite but has 5 holes'
Could you please help me with this? Thanks!
Guoqiang
'https://gitlab.onelab.info/gmsh/gmsh/-/issues/28533D boundary layer for complex OCC geometry2024-03-25T14:38:36ZOmar Najjar3D boundary layer for complex OCC geometryHello,
I am trying to create a terrain mesh, like in the example x2.py, by adding discrete surfaces to form one complete discrete surface. I have succeeded in doing so, as the figure illustrates.
![image](/uploads/3d241f9a92ead3c76339...Hello,
I am trying to create a terrain mesh, like in the example x2.py, by adding discrete surfaces to form one complete discrete surface. I have succeeded in doing so, as the figure illustrates.
![image](/uploads/3d241f9a92ead3c7633946aed657a847/image.png)
If the photo does not appear, here is an online link to see it:
https://ibb.co/WWbQbdM
My problem is that I want to make circle holes in this geometry, but it is not as simple as I thought in OCC. So, I did the same geometry but this time with OCC, and it is working very well, as you can see in the following figure:
![MicrosoftTeams-image__4_](/uploads/c2daae05b14f1a1c57934dab588c1443/MicrosoftTeams-image__4_.png)
https://ibb.co/XyQskG6
The idea is to generate points, then lines connecting points and curve loops forming a closed small surface and then the small surface. After that, I created connections between the two surfaces to form a closed volume. Finally, I made the volume with a fragment of three cylinders.
Following the title of this ticket, I have two main questions:
1- How can I make a 3D boundary layer for such geometry in the thickness direction?
2- How can I make the small surfaces that form the complete upper/lower surface behave as one surface as in a discrete surface?
I appreciate any help you can provide.
Omarhttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2852Python gmsh import causes CI failure (process crash?)2024-03-23T15:29:20ZLeon BiltonPython gmsh import causes CI failure (process crash?)#### Problem Description
My pdoc runner is failing ever since I added the [gmsh](https://pypi.org/project/gmsh/) package as a dependency. Initially I thought I tracked down the failure to an `import gmsh` statement, however I still obse...#### Problem Description
My pdoc runner is failing ever since I added the [gmsh](https://pypi.org/project/gmsh/) package as a dependency. Initially I thought I tracked down the failure to an `import gmsh` statement, however I still observe the behaviour after making gmsh an optional dependency and adding the necessary try/except statements.
#### Steps to reproduce the behavior:
I can't reproduce it locally, either on ubuntu or Arch Linux.
I can only reproduce in github using the following workflow:
```
name: GitHub Pages
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Build
run: |
sudo apt-get update
sudo apt-get install -y python3-pip
python3 -m pip install --upgrade pip
python3 -m venv .venv-gh-pages
source .venv-gh-pages/bin/activate
python3 -m pip install "$PWD"[doc,test]
pdoc -t docs/template -o html --math pydrex tests
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
# If you're changing the branch from main,
# also change the `main` in `refs/heads/main`
# below accordingly.
if: ${{ github.ref == 'refs/heads/main' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./html
```
#### System Information
It is installed via pip in the workflow, so that should get the latest version.
This is one of the log examples:
<details><summary>Click to expand</summary>
```
Run sudo apt-get update
17
Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [142 B]
18
Hit:2 http://azure.archive.ubuntu.com/ubuntu jammy InRelease
19
Get:3 http://azure.archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
20
Get:4 http://azure.archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
21
Get:5 http://azure.archive.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
22
Get:6 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease [3632 B]
23
Get:7 http://azure.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1502 kB]
24
Get:8 http://azure.archive.ubuntu.com/ubuntu jammy-updates/main Translation-en [289 kB]
25
Get:9 http://azure.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1619 kB]
26
Get:10 http://azure.archive.ubuntu.com/ubuntu jammy-updates/restricted Translation-en [271 kB]
27
Get:11 http://azure.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1059 kB]
28
Get:12 http://azure.archive.ubuntu.com/ubuntu jammy-updates/universe Translation-en [240 kB]
29
Hit:13 https://ppa.launchpadcontent.net/ubuntu-toolchain-r/test/ubuntu jammy InRelease
30
Get:14 http://azure.archive.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1286 kB]
31
Get:15 http://azure.archive.ubuntu.com/ubuntu jammy-security/main Translation-en [229 kB]
32
Get:16 http://azure.archive.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1591 kB]
33
Get:17 http://azure.archive.ubuntu.com/ubuntu jammy-security/restricted Translation-en [267 kB]
34
Get:18 http://azure.archive.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [851 kB]
35
Get:19 http://azure.archive.ubuntu.com/ubuntu jammy-security/universe Translation-en [162 kB]
36
Get:20 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main amd64 Packages [136 kB]
37
Get:21 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main armhf Packages [12.2 kB]
38
Get:22 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main arm64 Packages [34.5 kB]
39
Fetched 9891 kB in 1s (7386 kB/s)
40
Reading package lists...
41
Reading package lists...
42
Building dependency tree...
43
Reading state information...
44
python3-pip is already the newest version (22.0.2+dfsg-1ubuntu0.4).
45
0 upgraded, 0 newly installed, 0 to remove and 27 not upgraded.
46
Requirement already satisfied: pip in /opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/site-packages (24.0)
47
Processing /home/runner/work/PyDRex/PyDRex
48
Installing build dependencies: started
49
Installing build dependencies: finished with status 'done'
50
Getting requirements to build wheel: started
51
Getting requirements to build wheel: finished with status 'done'
52
Installing backend dependencies: started
53
Installing backend dependencies: finished with status 'done'
54
Preparing metadata (pyproject.toml): started
55
Preparing metadata (pyproject.toml): finished with status 'done'
56
Collecting numpy>=1.8 (from pydrex==0.1.dev1+g7d97d5e)
57
Downloading numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
58
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 3.8 MB/s eta 0:00:00
59
Collecting numba>=0.57 (from pydrex==0.1.dev1+g7d97d5e)
60
Downloading numba-0.59.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB)
61
Collecting scipy>=1.2 (from pydrex==0.1.dev1+g7d97d5e)
62
Downloading scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
63
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 11.4 MB/s eta 0:00:00
64
Collecting pyyaml (from pydrex==0.1.dev1+g7d97d5e)
65
Downloading PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
66
Collecting meshio (from pydrex==0.1.dev1+g7d97d5e)
67
Downloading meshio-5.3.5-py3-none-any.whl.metadata (11 kB)
68
Collecting cmcrameri (from pydrex==0.1.dev1+g7d97d5e)
69
Downloading cmcrameri-1.8-py3-none-any.whl.metadata (4.8 kB)
70
Collecting pdoc (from pydrex==0.1.dev1+g7d97d5e)
71
Downloading pdoc-14.4.0-py3-none-any.whl.metadata (7.5 kB)
72
Collecting pytest (from pydrex==0.1.dev1+g7d97d5e)
73
Downloading pytest-8.1.1-py3-none-any.whl.metadata (7.6 kB)
74
Collecting matplotlib (from pydrex==0.1.dev1+g7d97d5e)
75
Downloading matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)
76
Collecting llvmlite<0.43,>=0.42.0dev0 (from numba>=0.57->pydrex==0.1.dev1+g7d97d5e)
77
Downloading llvmlite-0.42.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.8 kB)
78
Collecting packaging (from cmcrameri->pydrex==0.1.dev1+g7d97d5e)
79
Using cached packaging-24.0-py3-none-any.whl.metadata (3.2 kB)
80
Collecting contourpy>=1.0.1 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
81
Downloading contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)
82
Collecting cycler>=0.10 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
83
Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
84
Collecting fonttools>=4.22.0 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
85
Downloading fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (159 kB)
86
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 159.4/159.4 kB 23.3 MB/s eta 0:00:00
87
Collecting kiwisolver>=1.3.1 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
88
Downloading kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
89
Collecting pillow>=8 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
90
Downloading pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (9.7 kB)
91
Collecting pyparsing>=2.3.1 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
92
Downloading pyparsing-3.1.2-py3-none-any.whl.metadata (5.1 kB)
93
Collecting python-dateutil>=2.7 (from matplotlib->pydrex==0.1.dev1+g7d97d5e)
94
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
95
Collecting rich (from meshio->pydrex==0.1.dev1+g7d97d5e)
96
Downloading rich-13.7.1-py3-none-any.whl.metadata (18 kB)
97
Collecting Jinja2>=2.11.0 (from pdoc->pydrex==0.1.dev1+g7d97d5e)
98
Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)
99
Collecting pygments>=2.12.0 (from pdoc->pydrex==0.1.dev1+g7d97d5e)
100
Downloading pygments-2.17.2-py3-none-any.whl.metadata (2.6 kB)
101
Collecting MarkupSafe (from pdoc->pydrex==0.1.dev1+g7d97d5e)
102
Downloading MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
103
Collecting iniconfig (from pytest->pydrex==0.1.dev1+g7d97d5e)
104
Downloading iniconfig-2.0.0-py3-none-any.whl.metadata (2.6 kB)
105
Collecting pluggy<2.0,>=1.4 (from pytest->pydrex==0.1.dev1+g7d97d5e)
106
Downloading pluggy-1.4.0-py3-none-any.whl.metadata (4.3 kB)
107
Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib->pydrex==0.1.dev1+g7d97d5e)
108
Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
109
Collecting markdown-it-py>=2.2.0 (from rich->meshio->pydrex==0.1.dev1+g7d97d5e)
110
Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
111
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->meshio->pydrex==0.1.dev1+g7d97d5e)
112
Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
113
Downloading numba-0.59.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.7 MB)
114
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.7/3.7 MB 113.8 MB/s eta 0:00:00
115
Downloading numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.0 MB)
116
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.0/18.0 MB 107.5 MB/s eta 0:00:00
117
Downloading scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.8 MB)
118
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.8/37.8 MB 50.3 MB/s eta 0:00:00
119
Downloading cmcrameri-1.8-py3-none-any.whl (277 kB)
120
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 277.4/277.4 kB 63.6 MB/s eta 0:00:00
121
Downloading matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)
122
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 82.2 MB/s eta 0:00:00
123
Downloading meshio-5.3.5-py3-none-any.whl (166 kB)
124
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.2/166.2 kB 47.4 MB/s eta 0:00:00
125
Downloading pdoc-14.4.0-py3-none-any.whl (133 kB)
126
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.9/133.9 kB 37.3 MB/s eta 0:00:00
127
Downloading pytest-8.1.1-py3-none-any.whl (337 kB)
128
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 337.4/337.4 kB 41.3 MB/s eta 0:00:00
129
Downloading PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724 kB)
130
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 725.0/725.0 kB 65.8 MB/s eta 0:00:00
131
Downloading contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (303 kB)
132
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 303.9/303.9 kB 54.8 MB/s eta 0:00:00
133
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
134
Downloading fonttools-4.50.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)
135
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 112.7 MB/s eta 0:00:00
136
Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)
137
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.2/133.2 kB 31.0 MB/s eta 0:00:00
138
Downloading kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB)
139
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 109.1 MB/s eta 0:00:00
140
Downloading llvmlite-0.42.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.8 MB)
141
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.8/43.8 MB 29.9 MB/s eta 0:00:00
142
Downloading MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB)
143
Using cached packaging-24.0-py3-none-any.whl (53 kB)
144
Downloading pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (4.5 MB)
145
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 71.5 MB/s eta 0:00:00
146
Downloading pluggy-1.4.0-py3-none-any.whl (20 kB)
147
Downloading pygments-2.17.2-py3-none-any.whl (1.2 MB)
148
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 60.8 MB/s eta 0:00:00
149
Downloading pyparsing-3.1.2-py3-none-any.whl (103 kB)
150
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.2/103.2 kB 25.9 MB/s eta 0:00:00
151
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
152
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 36.5 MB/s eta 0:00:00
153
Downloading iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
154
Downloading rich-13.7.1-py3-none-any.whl (240 kB)
155
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 240.7/240.7 kB 38.7 MB/s eta 0:00:00
156
Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
157
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 19.4 MB/s eta 0:00:00
158
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
159
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
160
Building wheels for collected packages: pydrex
161
Building wheel for pydrex (pyproject.toml): started
162
Building wheel for pydrex (pyproject.toml): finished with status 'done'
163
Created wheel for pydrex: filename=pydrex-0.1.dev1+g7d97d5e-py3-none-any.whl size=338174 sha256=731b12a15b3438755d37339f4653dbd21e6aa88e5776158de9f1ca045b3da941
164
Stored in directory: /tmp/pip-ephem-wheel-cache-i8p6akr0/wheels/10/e2/9b/83dc9a40653e818ab608edc1d4276de93ea79b4ec7b5c4e654
165
Successfully built pydrex
166
Installing collected packages: six, pyyaml, pyparsing, pygments, pluggy, pillow, packaging, numpy, mdurl, MarkupSafe, llvmlite, kiwisolver, iniconfig, fonttools, cycler, scipy, python-dateutil, pytest, numba, markdown-it-py, Jinja2, contourpy, rich, pdoc, matplotlib, meshio, cmcrameri, pydrex
167
Successfully installed Jinja2-3.1.3 MarkupSafe-2.1.5 cmcrameri-1.8 contourpy-1.2.0 cycler-0.12.1 fonttools-4.50.0 iniconfig-2.0.0 kiwisolver-1.4.5 llvmlite-0.42.0 markdown-it-py-3.0.0 matplotlib-3.8.3 mdurl-0.1.2 meshio-5.3.5 numba-0.59.1 numpy-1.26.4 packaging-24.0 pdoc-14.4.0 pillow-10.2.0 pluggy-1.4.0 pydrex-0.1.dev1+g7d97d5e pygments-2.17.2 pyparsing-3.1.2 pytest-8.1.1 python-dateutil-2.9.0.post0 pyyaml-6.0.1 rich-13.7.1 scipy-1.12.0 six-1.16.0
168
Warn: Suppressed execution of ['fc-list', '--help'] during import. Set PDOC_ALLOW_EXEC=1 as an environment variable to allow subprocess execution. (/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/subprocess.py:548)
169
Warn: Suppressed execution of 'lscpu' during import. Set PDOC_ALLOW_EXEC=1 as an environment variable to allow subprocess execution. (/opt/hostedtoolcache/Python/3.12.2/x64/lib/python3.12/subprocess.py:548)
170
Error: Process completed with exit code 1.
```
</details>
Initially it may look like it is caused by the subprocess issue discussed in https://github.com/mitmproxy/pdoc/issues/450 and I indeed thought so at first, however adding the flag as per the warning message [doesn't help](https://github.com/seismic-anisotropy/PyDRex/commit/2d30d913c1a90361df7806a12c1248a3d0b9751e).
I wonder if anyone has a chance to try and repro on an ubuntu machine or if there are any further ideas about what could cause this. Thankshttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2850It's possible create a entity tag for cut or intersect function?2024-03-25T19:42:51ZKleiton SchneiderIt's possible create a entity tag for cut or intersect function?I would like to create a quarter of the difference between two cylinders. For example,
```
def createQuarterCylinder(xc,yc,x1,y1,rad_in,rad_out,z_out):
cyl_tag1 = gmsh.model.occ.addCylinder(xc,yc,0,0,0,z_out,rad_out) #max radius ...I would like to create a quarter of the difference between two cylinders. For example,
```
def createQuarterCylinder(xc,yc,x1,y1,rad_in,rad_out,z_out):
cyl_tag1 = gmsh.model.occ.addCylinder(xc,yc,0,0,0,z_out,rad_out) #max radius
cyl_tag2=gmsh.model.occ.addCylinder(xc,yc,0,0,0,z_out,rad_in) #min radius
cut1,_ = gmsh.model.occ.cut([(3, cyl_tag1)], [(3, cyl_tag2)]) # cut min radius
tbox_aux = gmsh.model.occ.addBox(xc,yc,0,x1,y1,zr_out) # auxiliar box
quarter,_ = gmsh.model.occ.intersect([(3, cut1)], [(3, tbox_aux)]) # quarter cylinder return quarter
```
However, cut or intersect function don't return a 3d entity and I have an error. I would like to generate a new 3d figure with a new tag "quarter".https://gitlab.onelab.info/gmsh/gmsh/-/issues/2849Elements containing nodes tagged with 02024-03-25T15:57:27ZPericles PhilippopoulosElements containing nodes tagged with 0I am working with gmsh 4.13 and am generating a mesh (.msh format) using a the data from a .pos file as a background field and a geometry defined using OpenCASCADE. Some elements in the .msh file reference a node with a 0 tag, even thoug...I am working with gmsh 4.13 and am generating a mesh (.msh format) using a the data from a .pos file as a background field and a geometry defined using OpenCASCADE. Some elements in the .msh file reference a node with a 0 tag, even though no such node exists in the list of nodes. Is there a particular significance attributed to nodes with the tag 0?https://gitlab.onelab.info/gmsh/gmsh/-/issues/2847OCC healshapes makesolids -> Could not create solid2024-03-20T11:01:31ZMattia FilippiniOCC healshapes makesolids -> Could not create solidHi,
the attached step file is a very simple one, where there are 3 solids. I use:
`gmsh::model::occ::importShapes(GmshLib0.stp", v)
gmsh::model::occ::removeAllDuplicates();
gmsh::model::occ::synchronize();
gmsh::model::mesh::generate(3);...Hi,
the attached step file is a very simple one, where there are 3 solids. I use:
`gmsh::model::occ::importShapes(GmshLib0.stp", v)
gmsh::model::occ::removeAllDuplicates();
gmsh::model::occ::synchronize();
gmsh::model::mesh::generate(3);`
With these commands I get a conformal mesh since the 2 common faces gets deleted. If instead I try to heal the shapes with "gmsh::model::occ::healShapes(outDimTags);" before removing the duplicates, I see that when the healing procedure tries to makesolid, it exits with "Could not make solid". The result is that the 3 original solids imported have been erased, and there are no more 3d entities left to mesh. Am I missing something or is this intentional?
[GmshLib0.stp](/uploads/d9ddf9d7b93916b05353388a83f42844/GmshLib0.stp)https://gitlab.onelab.info/gmsh/gmsh/-/issues/2846merge a STL surface with volumeric domain2024-03-19T02:12:58ZDuo Limerge a STL surface with volumeric domainHello GMSH,
I need some help with my model. I have a fault surface with curvature along both directions, which is in STL format. I first build a large box domain, and then merge this STL into GMSH, using gmsh.merge(stlFile). This STL sh...Hello GMSH,
I need some help with my model. I have a fault surface with curvature along both directions, which is in STL format. I first build a large box domain, and then merge this STL into GMSH, using gmsh.merge(stlFile). This STL should be an internal cut into the box. I am not sure how to do it. I used the following lines:
# Step 2: Load the STL surface file
gmsh.merge(stlFile)
gmsh.model.mesh.classifySurfaces(math.pi, curveAngle=math.pi)
# create a geometry for the discrete curves and surfaces
gmsh.model.mesh.createGeometry()
but I got error saying: Error : Wrong topology of boundary mesh for parametrization
for the createGeometry().
Any idea or suggestion would be appreciated:-)https://gitlab.onelab.info/gmsh/gmsh/-/issues/2844Retrieve the tags after fuse command2024-03-16T12:53:04ZGuido VallifuocoRetrieve the tags after fuse commandGood morning
through the process described in the following script, I do not get any outDimTagsMap from the fuse command. is there a method by which I can retrieve the tags of the child surfaces?
```python
# we have to obtain a wather...Good morning
through the process described in the following script, I do not get any outDimTagsMap from the fuse command. is there a method by which I can retrieve the tags of the child surfaces?
```python
# we have to obtain a wathertight volume
cut_map1, cut_map2 = gmsh.model.occ.cut(wings_volume_dimtags, fuselage_volume_dimtags, -1, True,False)
gmsh.model.occ.synchronize()
children_map3, children_map4 = gmsh.model.occ.fuse(wings_volume_dimtags, fuselage_volume_dimtags, -1, True, True)
gmsh.model.occ.synchronize()
```
if I used surfaces instead of volumes could anything change?https://gitlab.onelab.info/gmsh/gmsh/-/issues/2841Periodic Mesh: Impossible to mesh periodic surface 22024-03-15T08:03:09ZRaffael CasagrandePeriodic Mesh: Impossible to mesh periodic surface 2I try to create a mesh with the following .geo file:
```
SetFactory("OpenCASCADE");
Torus(1) = {0, -0, 0, 0.5, 0.2, 2*Pi};
// Create slice of cake:
Point(10) = {0,0,-2.5,1};
Point(11) = {5,0,-2.5,1};
Point(12) = {5/Sqrt(2),5/Sqrt(2),-2....I try to create a mesh with the following .geo file:
```
SetFactory("OpenCASCADE");
Torus(1) = {0, -0, 0, 0.5, 0.2, 2*Pi};
// Create slice of cake:
Point(10) = {0,0,-2.5,1};
Point(11) = {5,0,-2.5,1};
Point(12) = {5/Sqrt(2),5/Sqrt(2),-2.5,1};
Line(3) = {11, 10};
Line(4) = {10, 12};
Circle(5) = {11, 10, 12};
Curve Loop(2) = {5, -4, -3};
Plane Surface(2) = {2};
Extrude {0, 0, 5} {
Surface{2};
}
BooleanIntersection{ Volume{2}; Delete;}{ Volume{1}; Delete; }
a = 1./Sqrt(2);
Periodic Surface {3} = {1} Affine {a,-a,0,0, a,a,0,0, 0,0,1,0, 0,0,0,1};
```
I tried the `Automatic`, `Delauny` and `Frontal-Delauny Algorithm`, but I always get the error "Impossible to mesh periodic surface 2" plus a few more errors.
Any ideas?https://gitlab.onelab.info/gmsh/gmsh/-/issues/2836How to mesh several parts and export them in one mesh file2024-03-14T15:28:21ZJohannes ACKVAHow to mesh several parts and export them in one mesh filehello,
i wonder how to mesh several parts and export them in ONE mesh file.
I would like to create them in several models, thus
gmsh.model.add("model_1")
..
gmsh.model.add("model_2")
..
but when i export with
gmsh.write('trial_mesh.med')...hello,
i wonder how to mesh several parts and export them in ONE mesh file.
I would like to create them in several models, thus
gmsh.model.add("model_1")
..
gmsh.model.add("model_2")
..
but when i export with
gmsh.write('trial_mesh.med')
only the mesh of the actual model is exported.
What must i do in addition?
thank you
Johannes_ACKVAhttps://gitlab.onelab.info/gmsh/gmsh/-/issues/2834Extracting connectivities of the reference element2024-03-14T13:51:32ZIgor KuszczakExtracting connectivities of the reference elementHello,
I am trying to recreate the `basix.cell.sub_entity_connectivity` functionality from `fenics-basix` in Gmsh. The function returns the connectivities of a reference element type. Is this possible to using Gmsh Python API? I imagine ...Hello,
I am trying to recreate the `basix.cell.sub_entity_connectivity` functionality from `fenics-basix` in Gmsh. The function returns the connectivities of a reference element type. Is this possible to using Gmsh Python API? I imagine that this could be hardcoded quite easily too but I don't understand the convention used for face numbering.https://gitlab.onelab.info/gmsh/gmsh/-/issues/2833Polar Extrusion2024-03-15T12:00:30ZAxel ThomasPolar ExtrusionHi,
I have a question about geometry extrusion. I have a cylindrical surface on which I would like to add particular patterns (representing sensors) and then like to form a 3D hexahedral mesh from this geometry. Is it possible to extrud...Hi,
I have a question about geometry extrusion. I have a cylindrical surface on which I would like to add particular patterns (representing sensors) and then like to form a 3D hexahedral mesh from this geometry. Is it possible to extrude 2D geometry in the (r, theta) plane?
Thanks in advance,
Axel
![pipe_with_embeded_sensor\_.png](/uploads/9a2e28fe4a653bd7d87589d398cd6b67/pipe_with_embeded_sensor_.png)https://gitlab.onelab.info/gmsh/gmsh/-/issues/2831Intel-based Mac - MPICH - linking fails for libgmsh.dylib, missing _ompi_mpi_...2024-03-11T20:21:34ZTidbit SoftwareIntel-based Mac - MPICH - linking fails for libgmsh.dylib, missing _ompi_mpi_* symbolsI've successfully compiled/configured Gmsh for a number of platforms. I updated today from version 4.10.5 to 4.12.2. I am compiling on an Intel-based Mac running the latest version of macOS, using MPICH as provided by PETSc. Everything c...I've successfully compiled/configured Gmsh for a number of platforms. I updated today from version 4.10.5 to 4.12.2. I am compiling on an Intel-based Mac running the latest version of macOS, using MPICH as provided by PETSc. Everything compiles, but at linktime I get,
```
[ 94%] Linking CXX shared library libgmsh.dylib
ld: warning: -commons use_dylibs is no longer supported, using error treatment instead
Undefined symbols for architecture x86_64:
"_ompi_mpi_char", referenced from:
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
GmshRemote() in GmshRemote.cpp.o
...
```
and so on for many `_opmi` symbols. At configure time, MPICH libs and binaries were found, OpenMPI was not (which is expected, and good). I assume there's some section in the configuration that's broken, causing a conditional that makes GmshRemote.cpp use the OpenMPI implementation in every case or by mistake (given that MPICH was detected). I haven't started digging yet, but thought it was worth a bug report anyhow.