gmsh merge requestshttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests2023-04-04T15:40:14Zhttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/496New API function to get number of time steps of a view2023-04-04T15:40:14ZMattéo CoupletNew API function to get number of time steps of a viewThis is my first merge request, please be kind 🥺.
I wrote a tiny API function `gmsh::view::getNumTimeSteps` which returns the number of time steps of a given view, using the function `PViewData->getNumTimeSteps()`.
The motivation is th...This is my first merge request, please be kind 🥺.
I wrote a tiny API function `gmsh::view::getNumTimeSteps` which returns the number of time steps of a given view, using the function `PViewData->getNumTimeSteps()`.
The motivation is that there is no API function that gives information about the time steps in a given view.
For example, it is impossible to get the data of the last time step without throwing an error.
With this addition one can now iterate on the existing time steps.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/481Speed up Domain creation with physical name2023-02-03T09:51:25ZAnthony RoyerSpeed up Domain creation with physical namehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/482Fix python lib import2022-12-09T18:20:42ZSteven MasfaraudFix python lib importSolves #2224.
I hope requesting to merge on master complies with the process.Solves #2224.
I hope requesting to merge on master complies with the process.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/480fix(symbols): removing leaking MPI symbols2022-11-15T12:54:20ZRomin Tomasettifix(symbols): removing leaking MPI symbolsThis MR addresses #2173.
1. Adds a check for SDK jobs of the CI that `libgmsh.so` does not expose MPI symbols :symbols:
2. Patches `MUMPS.py` to ensure `fvisibility=hidden` is passed to it when compiled using `awk` (that will fail if th...This MR addresses #2173.
1. Adds a check for SDK jobs of the CI that `libgmsh.so` does not expose MPI symbols :symbols:
2. Patches `MUMPS.py` to ensure `fvisibility=hidden` is passed to it when compiled using `awk` (that will fail if the patch cannot be applied) :package:
@geuzaine The patch could also be a real `patch` file, that would need to be stored somewhere in your repository. If the current approach is okay for you, just let me know :smile:
To do before merging:
- [ ] Rebuild the `onelab` image for the CI to pass :whale:
- [ ] Ensure the CI is now OK -> this will ensure the bug is fixed :white_check_mark:
- [ ] Uncomment `scp` line and remove `fix-mpi-symbols-leak@romin.tomasetti/gmsh` only rule in the CI :x:https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/421Fix windows build failure with FLTK and Opencascade2022-04-18T08:41:55ZIsuru FernandoFix windows build failure with FLTK and Opencascadehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/211Cenaero partition2022-03-16T20:52:15ZKoen HillewaertCenaero partitionThese modifications include two fixes for large scale partitions
- a rapid verification of the partition quality, listing balance per element and interface type
- the use of int for counting partitions and ghosts to avoid overflow for pa...These modifications include two fixes for large scale partitions
- a rapid verification of the partition quality, listing balance per element and interface type
- the use of int for counting partitions and ghosts to avoid overflow for partition counts > 32768https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/236Prevent some endless loops in Tetgen by taking counter into account and...2022-03-16T20:51:30ZWendy Merks-SwolfsPrevent some endless loops in Tetgen by taking counter into account and...Prevent some endless loops in Tetgen by taking counter into account and terminate if the value of the counter becomes too high. We've experienced within our testsuite the maximum value encountered for the counter and now terminate when t...Prevent some endless loops in Tetgen by taking counter into account and terminate if the value of the counter becomes too high. We've experienced within our testsuite the maximum value encountered for the counter and now terminate when the counter becomes much higher than this maximum value.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/397Api quality mesure2022-03-16T20:50:38ZAlexandre CheminApi quality mesureAdded a function in API to get elements quality mesureAdded a function in API to get elements quality mesurehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/420WIP: new transfinite algorithm for nicer meshes of 3-sided surfaces2022-02-04T13:19:25ZChristophe GeuzaineWIP: new transfinite algorithm for nicer meshes of 3-sided surfacesNew transfinite algorithm from @ermakov for nicer meshes of 3-sided surfaces; initial implementation (#1094)
IMO before merging in master we should remove the significant amount of duplicate code between the two paths (`transfinite_stan...New transfinite algorithm from @ermakov for nicer meshes of 3-sided surfaces; initial implementation (#1094)
IMO before merging in master we should remove the significant amount of duplicate code between the two paths (`transfinite_standard` true or false), and probably add an option to restore the old behavior if needed (i.e. to force `transfinite_standard` to true).Christophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/451Resolve "PythonOCC and Gmsh API integration"2021-11-06T10:19:26ZIgor MaurellResolve "PythonOCC and Gmsh API integration"Closes #1618Closes #1618Igor MaurellIgor Maurellhttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/446doc General.DetachedProcess2021-10-22T08:48:47ZNicolas Marsicdoc General.DetachedProcessHere's the doc!Here's the doc!https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/441Bug in SetString?2021-10-13T08:23:19ZNicolas MarsicBug in SetString?Hi Christophe,
I tried the following example from the [ONELAB wiki](https://gitlab.onelab.info/doc/tutorials/-/wikis/Onelab-syntax-for-gmsh-and-getdp): `SetString[ "a string", "hello" ]; s = GetString["a string"];`
I unfortunately ran ...Hi Christophe,
I tried the following example from the [ONELAB wiki](https://gitlab.onelab.info/doc/tutorials/-/wikis/Onelab-syntax-for-gmsh-and-getdp): `SetString[ "a string", "hello" ]; s = GetString["a string"];`
I unfortunately ran into a syntax error...
I looked in the bison code, and found this for the `tSetString`: `tSetString LP String__Index ',' StringExpr RP tEND`.
I don't see why the first argument is a `String__Index` and not a `StringExpr` (like the second one).
I tried to change this (i.e. to replace `String__Index` with `StringExpr`), and it worked as expected...
Could it be that there's a little bug, or am I missing something?
I wish you a nice weekend,
Nicolas.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/357Improve Python Packaging2021-09-03T12:25:39ZAlex KaszynskiImprove Python PackagingThe current python packaging approach installs `gmsh` into the wrong directory when using the `--user` flag, which is default in the current `pip`. Fixing this was non-trivial, and the changes made the setup better suited for wheel dist...The current python packaging approach installs `gmsh` into the wrong directory when using the `--user` flag, which is default in the current `pip`. Fixing this was non-trivial, and the changes made the setup better suited for wheel distribution.
The CI now builds both the source and the wheel for 64-bit Linux, and installing from the wheel is much faster than the current `sdist` install as the wheel does not need to be built when installing, and the PyPi servers seem to have better bandwidth.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/431Draft: Eigen fix2021-07-09T09:31:36ZVan Dung NGUYENDraft: Eigen fixthe code works without using EIGENthe code works without using EIGENhttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/392Listen custom socket cl: going back to old basename + clientID system2021-02-03T17:18:43ZNicolas MarsicListen custom socket cl: going back to old basename + clientID systemFix for !391Fix for !391https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/389Update meshRefine.cpp2021-01-22T06:10:50Zsamy mukadiUpdate meshRefine.cppChanging the Subdivision scheme of 2nd order triangle. The previous one was computing parametric coordinates from all the 6-nodes, internally making 6-nonlinear calculations, instead we get the **closestPoint()** of the barycenter allow ...Changing the Subdivision scheme of 2nd order triangle. The previous one was computing parametric coordinates from all the 6-nodes, internally making 6-nonlinear calculations, instead we get the **closestPoint()** of the barycenter allow to do the same calculation once and obtain the parametric coordinates, besides, with a test on spherical surface, a primary node (1-3) may lie upon the end-point, which happen to be the start and the end as well having 2 valid values, as (2PI and 0). The previous approach cannot distinguish the two. Hence, obtaining the parametric value from the projection of the cartesian barycenter, is less expensive and more reliable for periodic surfaces.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/247Clang tidy2021-01-16T10:04:50ZDarcy BeurleClang tidySee #498.See #498.https://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/387Automatic isotropic size field2021-01-12T17:11:12ZArthur BawinAutomatic isotropic size fieldAutomatic isotropic size field, computed from a uniform mesh of the CAD model. Based on curvature and surfaces proximity. Requires p4est and HXT.Automatic isotropic size field, computed from a uniform mesh of the CAD model. Based on curvature and surfaces proximity. Requires p4est and HXT.Christophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/375Python binary wheels2020-10-21T16:40:15ZJonathan LambrechtsPython binary wheelsThis is branch is not ready for merging (but almost). I submit the merge request to open the discussion and get your input.
This is a rewrite of the setup.py file in orther to
- install the files in standard unix location lib/, includ...This is branch is not ready for merging (but almost). I submit the merge request to open the discussion and get your input.
This is a rewrite of the setup.py file in orther to
- install the files in standard unix location lib/, include/, bin/, share, ... without the gmsh-xxx-sdk prefix, and the gmsh.py in standard python package location so that the (unreliable) gmsh.pth file is not necessary anymore
- create binary wheels (i.e. pip python packages) from gitlab-ci to be uploaded un pypi.
Remarks :
- The maximum size of a wheel allowed on pypi is 60M, the maximum total size of all files uploaded to pypi under "gmsh" is 10G. Currently each wheel is approximately 33M.
- I keep the "gmsh" bash script wrapper which sets the LD_LIBRARY_PATH (or equivalent on other platforms) before launching the real binary file which is installed in /lib. This may not be necessary, we could assume that if the user can put PREFIX/bin in PATH, he can also put PREFIX/lib in LD_LIBRARY_PATH.
- I don't know where to put "onelab.py". I would say it should go at the same location as gmsh.py but in the sdk, onelab.py is in /bin/. For now, onelab.py is not included in the wheels.
- I only tested the linux64 wheel, the other wheels should be tested before pushing them to pypi.
- For now, the wheels are uploaded to test.pypi.org instead of pypi.org
- The xxxx-tmp_wheel jobs in the gitlab_ci are copy of the xxx_skd_official_snapshot jobs except that I removed the scp to gmsh.info (and the "only master" filter). Before merging, those jobs should be removed and the sdk_official_snapshot jobs can be used instead (after adding the small artifacts sections).
- Despite being linked with the static glibc (and co), the libgmsh.so library still depends on the standard shared libraries :
```
$ ldd gmsh-git-Linux64-sdk/lib/libgmsh.so
linux-vdso.so.1 (0x00007ffe7ff8b000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007fb53a056000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fb53a03c000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fb53a036000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fb53a014000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fb539e37000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fb539cef000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fb539cd5000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fb539b0c000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fb53f626000)
```
- The manylinux1 tag on the gmsh linux wheels is a plain lie. Pypi will only accept wheels tagged as manylinux1, manylinux2010 and manylinux2014 which correspond to the gcc versions of centos 5, 6, and 7 respectively. But it does not check that the wheels actually satisfies the tag requirements. None of those standards include a graphic stack, there is no way the full gmsh library could fulfill them. The nox version almost satisfies manylinux2014 but it depends on a few libstdc++ symbols with a too recent ABI. My suggestion would be to rebuild the gmsh sdk used too build the linux wheels in a centos 7 docker and to not link it with the static glibc. Then include, both the full and nox library in the python wheel and at runtime try to load the full library and if it fails, fallback to the nox.
- older pip versions do not recognise the 'manylinux2014' tag. If we decide to use it, on some distributions it will be necessary to upgrade pip (`pip install --upgrade pip`) before installing gmsh.
- The whl format does not allow for symlinks, so only the libgmsh-X.Y.so is included in the packages.
- The setup-whl.py file is simple but not standard. It is not intended to be used outside the gitlab-ci build process.
- I noticed that the SSH_TOKEN and PYPI_TOKEN variable are not protected, this may constitute a security risk.
- I noticed that all cmake commands in the gitlab-ci defines a BLAS_LAPACK_LIBRARIES variable which is ignored by cmake.
- The docker I use to create the wheels comes from another project but that's only because the gmsh docker does not include the setuptools python package.Christophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/gmsh/-/merge_requests/368Draft: Resolve "how to change color's type from unit16_t to uint_32_t ?"2020-09-02T20:12:28ZCélestin Marotmarotcelestin@gmail.comDraft: Resolve "how to change color's type from unit16_t to uint_32_t ?"Closes #883Closes #883