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: DOCUMENTATION.md
+33Lines changed: 33 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -313,6 +313,39 @@
313
313
}
314
314
```
315
315
- To find suitable camera placement, run the simulation at low resolution in [`INTERACTIVE_GRAPHICS`](src/defines.hpp) mode, rotate/move the camera to the desired position, click the <kbd>Mouse</kbd> to disable mouse rotation, and press <kbd>G</kbd> to print the current camera settings as a copy-paste commandin the console. <kbd>Alt</kbd>+<kbd>Tab</kbd> to the console and copy the camera placement command by selecting it with the mouse and right-clicking, then paste it into the [`main_setup()`](src/setup.cpp) function.
316
+
- To fly the camera along a smooth path through a list of provided keyframe camera placements, use `catmull_rom` splines:
317
+
```c
318
+
while(lbm.get_t()<=lbm_T) { // main simulation loop
- The visualization mode(s) can be specified as `lbm.graphics.visualization_modes` with the [`VIS_...`](src/defines.hpp) macros. You can also set the `lbm.graphics.slice_mode` (`0`=no slice, `1`=x, `2`=y, `3`=z, `4`=xz, `5`=xyz, `6`=yz, `7`=xy) and reposition the slices with `lbm.graphics.slice_x`/`lbm.graphics.slice_y`/`lbm.graphics.slice_z`.
317
350
- Exported frames will automatically be assigned the current simulation time step in their name, in the format `bin/export/image-123456789.png`.
318
351
- To convert the rendered `.png` images to video, use [FFmpeg](https://ffmpeg.org/):
- the camera can now fly along a smooth path through a list of provided keyframe camera placements, [using Catmull-Rom splines](https://github.com/ProjectPhysX/FluidX3D/blob/master/DOCUMENTATION.md#video-rendering)
187
+
- more accurate remaining runtime estimation that includes time spent on rendering
188
+
- enabled FP16S memory compression by default
189
+
- printed camera placement using key <kbd>G</kbd> is now formatted for easier copy/paste
190
+
- added benchmark chart in Readme using mermaid gantt chart
191
+
- placed memory allocation info during simulation startup at better location
192
+
- fixed threading conflict between `INTERACTIVE_GRAPHICS` and `lbm.graphics.write_frame();`
193
+
- fixed maximum buffer allocation size limit for AMD GPUs and in Intel CPU Runtime for OpenCL
194
+
- fixed wrong `Re<Re_max` info printout for 2D simulations
195
+
- minor fix in `bandwidth_bytes_per_cell_device()`
//#define TRT // choose two-relaxation-time LBM collision operator
12
12
13
-
//#define FP16S // compress LBM DDFs to range-shifted IEEE-754 FP16; number conversion is done in hardware; all arithmetic is still done in FP32
14
-
//#define FP16C // compress LBM DDFs to more accurate custom FP16C format; number conversion is emulated in software; all arithmetic is still done in FP32
13
+
#defineFP16S// optional for 2x speedup and 2x VRAM footprint reduction: compress LBM DDFs to range-shifted IEEE-754 FP16; number conversion is done in hardware; all arithmetic is still done in FP32
14
+
//#define FP16C // optional for 2x speedup and 2x VRAM footprint reduction: compress LBM DDFs to more accurate custom FP16C format; number conversion is emulated in software; all arithmetic is still done in FP32
15
15
16
16
#defineBENCHMARK// disable all extensions and setups and run benchmark setup instead
doubleInfo::time() const { // returns either elapsed time or remaining time
40
-
return steps==max_ulong ? runtime_lbm : ((double)steps/(double)(lbm->get_t()-steps_last)-1.0)*(runtime_lbm-runtime_lbm_last); // time estimation on average so far
23
+
if(lbm==nullptr) return0.0;
24
+
return steps==max_ulong ? runtime_total : ((double)steps/(double)(lbm->get_t()-steps_last)-1.0)*(runtime_total-runtime_total_last); // time estimation on average so far
41
25
//return steps==max_ulong ? runtime_lbm : ((double)steps-(double)(lbm->get_t()-steps_last))*runtime_lbm_timestep_smooth; // instantaneous time estimation
0 commit comments