forked from moebiusband/NuSiF-Solver
		
	Update README.md
This commit is contained in:
		
							
								
								
									
										68
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								README.md
									
									
									
									
									
								
							@@ -1,3 +1,69 @@
 | 
				
			|||||||
# NuSiF-Solver
 | 
					# NuSiF-Solver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A fluid simulator toolbox for teaching purposes
 | 
					This is a broad collection of C implementations of Navier-Stokes Fluid simulator as
 | 
				
			||||||
 | 
					described in [this
 | 
				
			||||||
 | 
					book](https://epubs.siam.org/doi/book/10.1137/1.9780898719703) by Michael
 | 
				
			||||||
 | 
					Griebel et al.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Every variant comes with a makefile. First configure the toolchain by editing
 | 
				
			||||||
 | 
					the variabel `TAG` in `config.mk`. For the Intel tool chain set it to `ICC`, for
 | 
				
			||||||
 | 
					LLVM clang using Open MPI set it to `CLANG`. If required adapt the respective
 | 
				
			||||||
 | 
					flags and include and library paths in `include_[CLANG|ICC].mk`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can uncomment the `-DVERBOSE` line for additional dignostic output.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Build the code with:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ make
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clean intermediate build products with:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ make clean
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clean all build products with:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ make distclean
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The makefile provides the additional build targets:
 | 
				
			||||||
 | 
					* `$ make info`: Output CFLAGS and the compiler version for documentation
 | 
				
			||||||
 | 
					purposes.
 | 
				
			||||||
 | 
					* `$ make tags`: Run `ctags -R`.
 | 
				
			||||||
 | 
					* `$ make format`: Run `clang-format` on all source files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All examples come with two test cases:
 | 
				
			||||||
 | 
					* dcavity: Lid driven cavity.
 | 
				
			||||||
 | 
					* canal: Channel flow with inflow on one side.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To start a simulation for sequential implementations execute (here for CLANG toolchain):
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ ./exe-CLANG dcavity.par|canal.par
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To start a simulation for parallel implementations execute (here for CLANG toolchain):
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ mpirun -np <NUMPROC> ./exe-CLANG dcavity.par|canal.par
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Configuration options 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Important option in the test case parameter files:
 | 
				
			||||||
 | 
					* `re`: Desired reynolds number. Higher for a less viscous fluid and lower for a
 | 
				
			||||||
 | 
					more viscous fluid.
 | 
				
			||||||
 | 
					* `imax`, `jmax`, `kmax`: The resolution of the grid. Increase resolution for
 | 
				
			||||||
 | 
					higher Reynolds numbers.
 | 
				
			||||||
 | 
					* `te`: The final simulation time.
 | 
				
			||||||
 | 
					* `itermax`: The number of maximum iterations performed in every Poisson
 | 
				
			||||||
 | 
					pressure equation step.
 | 
				
			||||||
 | 
					* `eps`: Stopping tolerance for the pressure equation solver.
 | 
				
			||||||
 | 
					* `omg`: Relaxation parameter for SOR solver. Default is 1.7 to 1.9. For MPI
 | 
				
			||||||
 | 
					parallel runs omega needs to be reduced to 1.3 to guarantee convergence.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The other parameter should not be changed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user