Skip to content

Commit 0ebb5c9

Browse files
committed
Update README.md
1 parent a85ab95 commit 0ebb5c9

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

apps/lbmMultiRes/README.md

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,25 @@ Neon runs on all major systems that support running Nvidia GPUs. We have tested
1414

1515
## Build
1616

17-
To build and compile the grid refinement LBM application:
18-
17+
To build and compile the grid refinement LBM application, first, make sure to be connected to the internet for Neon to download its dependencies. Then, run:
1918

2019
```
2120
git clone -b v0.5 https://github.com/Autodesk/Neon
2221
cd Neon
2322
mkdir build
2423
cd build
2524
cmake ../
26-
cmake --build . --target app-lbmMultiRes --config Release -j 99
25+
cmake --build . --target app-lbmMultiRes --config Release -j 10
2726
```
2827

2928
# Grid Refinement LBM
3029

3130
`app-lbmMultiRes` comes with two main problem setup
3231

3332
1. Virtual wind tunnel where we simulate a flow over an input geometry defined by a triangle mesh
34-
2. Lid-driven cavity which is a classical test case for measuring the accuracy of the simulation
33+
2. Lid-driven cavity which is a classical CFD test case for measuring the accuracy of the simulation
3534

36-
Both problem setups can be run on either GPU (for fast high-performance simulation) or CPU (for debugging). The executable comes with a set of input users. To display them, run
35+
Both problem setups can be run on either GPU (for fast high-performance simulation) or CPU (for debugging). The executable comes with a set of input user-defined parameters. To display them, run
3736

3837
```bash
3938
./bin/app-lbmMultiRes -h
@@ -79,16 +78,40 @@ By default, we run the best possible configuration as presented in our [paper](h
7978
| `--streamFuseAll` | | Fuse Stream with Coalescence and Explosion (Figure 4.f) |
8079
| `--fusedFinest` | | Fuse all operations on the finest level, i.e., Collision, Accumulate, Explosion, Stream (Figure 4.f) |
8180

82-
Finally, to switch between the `KBC` and `BGK` collision model, change the #define directive parameter at the top of the [`lbmMultiRes.cu`](/lbmMultiRes.cu).
81+
Finally, to switch between LBM collision models (`KBC` and `BGK`), change the `#define` directive parameter at the top of the [`Neon/apps/lbmMultiRes/lbmMultiRes.cu`](https://github.com/Autodesk/Neon/blob/v0.5.0/apps/lbmMultiRes/lbmMultiRes.cu).
8382

8483
## Lid-driven cavity
85-
After running the lid-drive cavity problem, the simulation will output two files (`NeonMultiResLBM_####_Y.dat`, `NeonMultiResLBM_####_X.dat`) which can be used to reproduce Figure 7 in the paper. To reproduce the figure, pass these two files to this [python script](/scripts/plot.py).
84+
Once the execution of the lid-driven cavity problem is completed, the simulation will output two files (`NeonMultiResLBM_####_Y.dat`, `NeonMultiResLBM_####_X.dat`) which can be used to reproduce Figure 7 in the paper. To reproduce the figure, pass these two files to the python script under [`Neon/apps/lbmMultiRes/scripts/plot.py`](https://github.com/Autodesk/Neon/blob/v0.5.0/apps/lbmMultiRes/scripts/plot.py).
85+
86+
Example (without visualization):
87+
88+
`bin/app-lbmMultiRes --deviceType gpu --deviceId 0 --numIter 1000 --problemType lid --scale 2 --benchmark`
8689

8790
## Virtual Wind Tunnel
8891

89-
The `flowOverMesh` method in [`flowOverShape.h`](/flowOverShape.h) defined various geometric properties to run a fluid simulation over a shape. The method is fully documented to facilitate customization.
92+
The `flowOverMesh` method in [`Neon/apps/lbmMultiRes/flowOverShape.h`](https://github.com/Autodesk/Neon/blob/v0.5.0/apps/lbmMultiRes/flowOverShape.h) defined various geometric properties to run a fluid simulation over a shape. The method is fully documented to facilitate customization.
93+
94+
The airplane input mesh used in Figure 1 can be found at [`Neon/apps/lbmMultiRes/practice_v28.obj`](https://github.com/Autodesk/Neon/blob/v0.5.0/apps/lbmMultiRes/practice_v28.obj).
95+
96+
Example (with visualization):
97+
98+
`bin/app-lbmMultiRes --deviceType gpu --deviceId 0 --problemType mesh --vtk --visual --binary --re 2000 --thetaZ 30 --freq 10000 --numIter 10000 --scale 84 --meshFile ../apps/lbmMultiRes/practice_v28.obj`
99+
100+
---
90101

91-
The airplane input mesh used in Figure 1 can be found [here](/practice_v28.obj).
102+
After the simulation is complete, we output a JSON file that outlines the following
103+
- Github SHA
104+
- CPU and GPU system specs
105+
- Backend (CPU vs. GPU)
106+
- Command line used
107+
- Gird size and active voxels at each level
108+
- Data type (float vs. double)
109+
- Algorithm
110+
- LBM Million Lattice Updates per Second (MLUPS)
111+
- Number of iterations
112+
- Collision model
113+
- Input velocity
114+
- Problem scale
92115

93116

94117
# Citation

apps/lbmMultiRes/lbmMultiRes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ void runNonUniformLBM(Neon::domain::mGrid& grid,
486486
report.addMember("ENumVoxels", gridDim.rMul());
487487

488488
//output
489-
//report.write("MultiResLBM_" + reportSuffix(), true);
489+
report.write("MultiResLBM_" + reportSuffix(), true);
490490

491491
//post process
492492
if (!params.benchmark) {

apps/lbmMultiRes/postProcess.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ void verifyLidDrivenCavity(Neon::domain::mGrid& grid,
447447
});
448448

449449

450-
NEON_INFO("Max difference = {0:.8f}", verifyGhia1982(Re, xPosVal, yPosVal));
450+
//NEON_INFO("Max difference = {0:.8f}", verifyGhia1982(Re, xPosVal, yPosVal));
451451

452452

453453
auto writeToFile = [](const std::vector<std::pair<T, T>>& posVal, std::string filename) {

0 commit comments

Comments
 (0)