diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index c1b34e87..a7b8ba91 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -9,8 +9,6 @@ # terms of the BSD-3 license. We welcome feedback and contributions, see file # CONTRIBUTING.md for details. -# GLVis - an OpenGL visualization server based on the MFEM library - name: builds on: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 21ad65d4..94fe8edb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,8 +9,6 @@ # terms of the BSD-3 license. We welcome feedback and contributions, see file # CONTRIBUTING.md for details. -# GLVis - an OpenGL visualization server based on the MFEM library - name: release on: diff --git a/CHANGELOG b/CHANGELOG index 67f4af1c..f343c8e2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,48 +9,51 @@ https://glvis.org -Version 4.4.1 (development) +Version 4.5 released on Feb X, 2026 =================================== Unlike previous GLVis releases, this version requires a C++17 compiler. +- Added visualization of the finite element DOF numbering in 2D scalar mode, + with the 'n'/'N' keys that now cycles through: None → Elements → Edges → + Vertices → DOFs. In parallel, the default numbering is the "local" one for + each rank. This can be switched to the "global" parallel numbering with + 'Alt+n' (the former numbering method). + +- Added visualization of complex data for grid functions from MFEM's class + (Par)ComplexGridFunction. The complex values are represented by their + magnitude, phase, real part or imaginary part, which can be cycled with the + 'Q' key. Additionally, complex functions can be animated by an added harmonic + phase. The phase frequency can be increased/decreased with keys ';'/':'. + +- Added the option to choose palettes by name using the command line argument + -pname or --palette-name. This option is also available in scripts and streams + using the keyword "palette_name". + +- Color palettes defined in an external file can now also be specified in + scripts and streams using the keyword 'palette_file'. + - Added headless (no GUI) visualization, relying on the EGL (Linux) or CGL - (MacOS) interface. It is available through '-hl' command-line option or - 'headless' script command (before the visualization commands). The end of the - loaded stream or script file ends the visualization in this mode. Note GLVis - must be compiled with with EGL/CGL (see INSTALL). - -- Added non-persistent mode of the server, when the server terminates after all - visualization windows are closed. - -- Added visualization of complex function data originating from - '(Par)ComplexGridFunction' class in MFEM. The complex values are represented - by their magnitude, phase, real part or imaginary part, which can be switched - by 'Q' key. Additionally, the complex function can be animated by an added - harmonic phase. To increase or decrease the phase frequency, use ';' or ':', - respectively. - -- Implemented DOF numbering in 2D scalar mode, pressing the `n` or `N` key cycles - through: None → Elements → Edges → Vertices → DOFs. Parallel numbering is now by - default 'local' to each rank; 'global' vs. 'local' numbering can be toggled with - 'Alt+n'. - -- Refactored code base enabling automatic generation of the script and stream - command lists (shown as help when an unrecognized option is entered). Other - improvements include: - * Unified window initialization between the app and GLVis-js. + (macOS) interface. It is available through '-hl' command-line option or the + 'headless' script command (before the visualization commands). In this mode, + visualization ends at the end of the stream or script file. Note that GLVis + must be compiled with EGL/CGL (see INSTALL). + +- Refactored the code base to enable automatic generation of the script and + stream command lists. Other improvements include: + * Unified window initialization between the app and glvis-js. * Unified handling of streams and improved data storage, enabling animation of all data types. * Fixed the flag for real attributes of distributed meshes. * Fixed setting of padding digits for data collections. * Fixed cycling of the vector-to-scalar function in 2D with raw data. -- Added the option to choose palettes by name using the command line argument - '-pname' or '--palette-name'. This option is also available in scripts and - streams using the keyword 'palette_name'. +- Added non-persistent mode for the GLVis server, where the server terminates + after all visualization windows are closed. + +- Added single-color palettes with a linear gradient of opacity to + share/palettes-variable-opacity.txt. -- Color palettes defined in an external file can now also be specified in - scripts and streams using the keyword 'palette_file'. - Generalized and unified processing of stream commands for glvis-js to support all commands. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 623a34a9..a40ae44b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,10 +3,9 @@
@@ -89,8 +88,10 @@ The GLVis source code has the following structure: ``` . ├── lib - │ └── gl - │ └── shaders + │ ├── egl + │ ├── gl + │ │ └── shaders + │ └── sdl ├── share └── tests ``` @@ -202,8 +203,8 @@ Before you can start, you need a GitHub account, here are a few suggestions: change the code by default. - Code specifics - - All significant new classes, methods and functions have Doxygen-style - documentation in source comments. + - All significant new classes, methods and functions have (preferably + Doxygen-style) documentation in source comments. - Consistent code styling is enforced with `make style` in the top-level directory. This requires [Artistic Style](http://astyle.sourceforge.net) version 3.1 and MFEM's style configuration file, typically located in @@ -265,10 +266,9 @@ Before a PR can be merged, it should satisfy the following: - [ ] Check if `make distclean; git status` shows any files that were generated from the source by the project (not an IDE) but we don't want to track in the repository. - [ ] Add new patterns (just for the new files above) and re-run the above test. - [ ] New capability: - - [ ] All significant new classes, methods and functions have Doxygen-style documentation in source comments. + - [ ] All significant new classes, methods and functions have (preferably Doxygen-style) documentation in source comments. - [ ] Consider saving cool simulation pictures with the new capability in the Confluence gallery (LLNL only) or submitting them, via pull request, to the gallery section of the `glvis/web` repo. - [ ] If this is a major new feature, consider mentioning it in the short summary inside `README` *(rare)*. - - [ ] List major new classes in `doc/CodeDocumentation.dox` *(rare)*. - [ ] Update this checklist, if the new pull request affects it. @@ -310,7 +310,6 @@ Before a PR can be merged, it should satisfy the following: ``` - [ ] Create the release tarball and push to `glvis/releases`. - [ ] Recreate the `next` branch as described in previous section. -- [ ] Update and push documentation to `glvis/doxygen`. - [ ] Update URL shortlinks: - [ ] Create a shortlink at [http://bit.ly/](http://bit.ly/) for the release tarball, e.g. https://glvis.github.io/releases/glvis-3.1.tgz. - [ ] (LLNL only) Add and commit the new shortlink in the `links` and `links-glvis` files of the internal `glvis/downloads` repo. diff --git a/INSTALL b/INSTALL index 10b6198c..e9db6c8b 100644 --- a/INSTALL +++ b/INSTALL @@ -11,7 +11,7 @@ GLVis is a multiplatform OpenGL application and can be built on Linux/Unix systems, including Mac OS X, and under Windows. -Besides a C++ compiler, GLVis depends on the following external packages: +Besides a C++17 compiler, GLVis depends on the following external packages: - the MFEM library (use the latest release) plus any libraries that MFEM was built to depend on diff --git a/README.md b/README.md index ec95b1ea..2a78818e 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,9 @@ https://glvis.org -