You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: LICENSE.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -11,4 +11,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
11
11
12
12
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13
13
14
-
German [Act on Copyright and Related Rights](https://www.gesetze-im-internet.de/englisch_urhg/englisch_urhg.html) (Urheberrechtsgesetz - UrhG) - Copyright Act of 9 September 1965 (Federal Law Gazette I, p. 1273), as last amended by Article 25 of the Act of 23 June 2021 (Federal Law Gazette I, p. 1858) - applies, in particular also [§ 97 (2) UrhG](https://www.gesetze-im-internet.de/englisch_urhg/englisch_urhg.html#p0881).
14
+
German [Act on Copyright and Related Rights](https://www.gesetze-im-internet.de/englisch_urhg/englisch_urhg.html) (Urheberrechtsgesetz - UrhG) - Copyright Act of 9 September 1965 (Federal Law Gazette I, p. 1273), as last amended by Article 25 of the Act of 23 June 2021 (Federal Law Gazette I, p. 1858) - applies, in particular also [§ 97 (2) UrhG](https://www.gesetze-im-internet.de/englisch_urhg/englisch_urhg.html#p0881). The name "FluidX3D" is protected by German Werktitelschutz, [§ 5 (3) MarkenG](https://www.gesetze-im-internet.de/markeng/__5.html).
@@ -57,6 +58,17 @@ The fastest and most memory efficient lattice Boltzmann CFD software, running on
57
58
- fixed bug where moving objects during re-voxelization would leave an erroneous trail of solid grid cells behind
58
59
- v2.6 (16.04.2023)
59
60
- patched OpenCL issues of Intel Arc GPUs: now VRAM allocations >4GB are possible and correct VRAM capacity is reported
61
+
- v2.7 (29.05.2023)
62
+
- added slice visualization (key <kbd>2</kbd> / key <kbd>3</kbd> modes, then switch through slice modes with key <kbd>T</kbd>, move slice with keys <kbd>Q</kbd>/<kbd>E</kbd>)
63
+
- made flag wireframe / solid surface visualization kernels toggleable with key <kbd>1</kbd>
64
+
- added surface pressure visualization (key <kbd>1</kbd> when `FORCE_FIELD` is enabled and `lbm.calculate_force_on_boundaries();` is called)
65
+
- added binary `.vtk` export function for meshes with `lbm.write_mesh_to_vtk(Mesh* mesh);`
66
+
- added `time_step_multiplicator` for `integrate_particles()` function in PARTICLES extension
67
+
- made correction of wrong memory reporting on Intel Arc more robust
68
+
- fixed bug in `write_file()` template functions
69
+
- reverted back to separate `cl::Context` for each OpenCL device, as the shared Context otherwise would allocate extra VRAM on all other unused Nvidia GPUs
70
+
- removed Debug and x86 configurations from Visual Studio solution file (one less complication for compiling)
71
+
- fixed bug that particles could get too close to walls and get stuck, or leave the fluid phase (added boundary force)
- rendering is fully multi-GPU-parallelized via seamless domain decomposition rasterization
248
260
- with interactive graphics mode disabled, image resolution can be as large as VRAM allows for (4K/8K/16K and above)
249
261
- (interacitive) visualization modes:
250
-
- flags (and force vectors on solid boundary cells if the extension is used)
251
-
- velocity field
252
-
- streamlines
262
+
- flag wireframe / solid surface (and force vectors on solid cells or surface pressure if the extension is used)
263
+
- velocity field (with slice mode)
264
+
- streamlines (with slice mode)
253
265
- velocity-colored Q-criterion isosurface
254
266
- rasterized free surface with [marching-cubes](http://paulbourke.net/geometry/polygonise/)
255
267
- [raytraced free surface](https://www.researchgate.net/publication/360501260_Combined_scientific_CFD_simulation_and_interactive_raytracing_with_OpenCL) with fast ray-grid traversal and marching-cubes, either 1-4 rays/pixel or 1-10 rays/pixel
- Set the initial condition in a loop that iterates over the entire lattice by writing to `lbm.rho[n]`/`lbm.u.x[n]`/`lbm.u.y[n]`/`lbm.u.z[n]`/`lbm.flags[n]`.
284
296
- Call `lbm.run();` to initialize and execute the setup (infinite time steps) or `lbm.run(time_steps);` to execute only a specific number of time steps.
285
297
- As long as the `lbm` object is in scope, you can access the memory. As soon as it goes out of scope, all memory associated to the current simulation is freed again.
286
-
3. On Windows in Visual Studio Community and click compile+run, or on Linux run `chmod +x make.sh` and `./make.sh`; this will automatically select the fastest installed GPU(s). Alternatively, you can add the device ID(s) as command-line arguments, for example `./make.sh 2` to compile+run on device 2, or `bin/FluidX3D 1 3` to run the executable on devices 1 and 3. Compile time for the entire code is about 10 seconds. If you use `INTERACTIVE_GRAPHICS` on Linux, change to the "compile on Linux with X11" command in `make.sh`.
298
+
3. On Windows in Visual Studio Community click compile+run, or on Linux run `chmod +x make.sh` and `./make.sh`; this will automatically select the fastest installed GPU(s). Alternatively, you can add the device ID(s) as command-line arguments, for example `./make.sh 2` to compile+run on device 2, or `bin/FluidX3D 1 3` to run the executable on devices 1 and 3. Compile time for the entire code is about 10 seconds. If you use `INTERACTIVE_GRAPHICS` on Linux, change to the "compile on Linux with X11" command in `make.sh`.
287
299
4. Keyboard/mouse controls with `INTERACTIVE_GRAPHICS`/`INTERACTIVE_GRAPHICS_ASCII` enabled:
288
300
- <kbd>P</kbd>: start/pause the simulation
289
301
- <kbd>H</kbd>: show/hide help
290
-
- <kbd>1</kbd>: flags (and force vectors on solid boundary cells if the extension is used)
302
+
- <kbd>1</kbd>: flag wireframe / solid surface (and force vectors on solid cells or surface pressure if the extension is used)
- <kbd>Q</kbd>/<kbd>E</kbd>: move slice in slice visualization mode
297
311
- <kbd>Mouse</kbd> or <kbd>I</kbd>/<kbd>J</kbd>/<kbd>K</kbd>/<kbd>L</kbd>: rotate camera
298
312
- <kbd>Scrollwheel</kbd> or <kbd>+</kbd>/<kbd>-</kbd>: zoom (centered camera mode) or camera movement speed (free camera mode)
299
313
- <kbd>Mouseclick</kbd> or <kbd>U</kbd>: toggle rotation with <kbd>Mouse</kbd> and angle snap rotation with <kbd>I</kbd>/<kbd>J</kbd>/<kbd>K</kbd>/<kbd>L</kbd>
Copy file name to clipboardExpand all lines: src/defines.hpp
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@
33
33
#defineGRAPHICS_BACKGROUND_COLOR0x000000// set background color; black background (default) = 0x000000, white background = 0xFFFFFF
34
34
#defineGRAPHICS_U_MAX0.2f// maximum velocity for velocity coloring in units of LBM lattice speed of sound (c=1/sqrt(3)) (default: 0.2f)
35
35
#defineGRAPHICS_Q_CRITERION0.0001f// Q-criterion value for Q-criterion isosurface visualization (default: 0.0001f)
36
-
#defineGRAPHICS_BOUNDARY_FORCE_SCALE100.0f//scaling factor for visualization of forces on solid boundaries if VOLUME_FORCE is enabled and lbm.calculate_force_on_boundaries(); is called (default: 100.0f)
36
+
#defineGRAPHICS_F_MAX0.002f//maximum force in LBM units for visualization of forces on solid boundaries if VOLUME_FORCE is enabled and lbm.calculate_force_on_boundaries(); is called (default: 0.002f)
37
37
#defineGRAPHICS_STREAMLINE_SPARSE4// set how many streamlines there are every x lattice points
38
38
#defineGRAPHICS_STREAMLINE_LENGTH128// set maximum length of streamlines
39
39
#defineGRAPHICS_RAYTRACING_TRANSMITTANCE0.25f// transmitted light fraction in raytracing graphics ("0.25f" = 1/4 of light is transmitted and 3/4 is absorbed along longest box side length, "1.0f" = no absorption)
0 commit comments