Skip to content
Snippets Groups Projects
Commit 9bb5b391 authored by Soeren Peters's avatar Soeren Peters
Browse files

Merge branch 'feature/update_readme' into develop

* feature/update_readme:
  Extend the output part. Chang gpu and cpu to upper cases.
  Remove redundant -DNOMINMAX definition. Adds syscall include on unix systems.
  Set BUILD_VF_CPU default state to off.
  Fix typos.
  Change the default output path in the gpu app to <build>/bin/output according to the cpu app. Adds authors and contributing file. Clean up the readme file. Set the minimum cmake version to 3.13 according to the readme entry. Set the options BUILD_VF_CPU, BUILD_VF_GPU and BUILD_VF_UNIT_TEST to OFF by default.
  Adapt top level cmake list.

# Conflicts:
#	CMakeLists.txt
#	apps/gpu/LidDrivenCavity/LidDrivenCavity.cpp
#	src/basics/basics/utilities/UbSystem.h
parents 9110c281 56a0f2c1
No related branches found
No related tags found
No related merge requests found
AUTHORS
============
VF has been developed essentially over the last fifteen years by various researchers at IRMB including (in alphabetical order):
Dr. Benjamin Ahrenholz
M. Sc. Hussein Alihussein
Dr. Sebastian Bindick
J.Prof. Dr. Martin Geier
Dr. Sebastian Geller
Dr. Ehsan Goraki Fard
Dr. Jan Hegewald
Dr. Christian Janßen
M. Sc. Konstantin Kutscher
M. Sc. Stephan Lenz
Dr. Jan Linxweiler
M. Sc. Sören Peters
Dr. Hesameddin Safari
Dr. Martin Schönherr
Dipl.-Ing. Maik Stiebler
Dr. Sören Textor (aka Freudiger)
PD Dr. Jonas Tölke
Dr. Sonja Uphoff
......@@ -9,11 +9,7 @@
# required cmake versions
# CMAKE 3.9: CUDA support
#################################################################################
cmake_minimum_required(VERSION 3.9..3.17 FATAL_ERROR)
if(${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
endif()
cmake_minimum_required(VERSION 3.13..3.17 FATAL_ERROR)
project(VirtualFluids CXX)
......@@ -31,7 +27,7 @@ set(thirdFolder "3rd")
#################################################################################
option(BUILD_VF_CPU "Build VirtualFluids cpu variant" OFF)
option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF)
option(BUILD_VF_UNIT_TESTS "Build VirtualFluids unit tests" ON)
option(BUILD_VF_UNIT_TESTS "Build VirtualFluids unit tests" OFF)
option(BUILD_SHARED_LIBS "" ON)
......
Contributing
============
If you want to contribute to VirtualFluids, your help is very welcome.
To contribute use a pull request as follows:
### How to make a clean pull request
- Create a personal fork of VirtualFluids.
- Clone the fork on your local machine. Your remote repo on gitea is called `origin`.
- Add the original repository as a remote called `upstream`.
- If you created your fork a while ago be sure to pull upstream changes into your local repository.
- Create a new branch to work on! Branch from `develop` or `open_source`.
- Implement/fix your feature, comment your code.
- Follow the code style of the project, including indentation.
- Run the tests.
- Write or adapt tests as needed.
- Add or change the documentation as needed.
- Push your branch to your fork on gitea, the remote `origin`.
- From your fork open a pull request in the correct branch. Target the project's `develop` or `open_source` branch
-
- If we requests further changes just push them to your branch. The PR will be updated automatically.
- Once the pull request is approved and merged you can pull the changes from `upstream` to your local repo and delete
your extra branch(es).
And last but not least: Always write your commit messages in the present tense. Your commit message should describe what the commit, when applied, does to the code – not what you did to the code.
![VirtualFluids](docs/img/VF_logo.png)
VirtualFluids (VF) is a research code developed at the Institute for Computational Modeling in Civil Engineering (iRMB). The code is a Computational Fluid Dynamics (CFD) solver based on the Lattice Boltzmann Method (LBM) for turbulent, thermal, multiphase and multicomponent flow problems as well as for multi-field problems such as Fluid-Structure-interaction including distributed pre- and postprocessing capabilities for simulations with more than 100 billion degrees of freedom.
## Getting Start
### Suported Platforms
VirtualFluids has been used on a variety of platforms:
- Linux
- Mac OS X
- Windows
- Cygwin
### Software Requirements
- [CMake](https://cmake.org/) (minimum version 3.13)
- C++ compiler with C++11 support, for example gcc 6.3 or Visual C++ 14.0
- [Paraview](https://www.paraview.org/) (most recent version)
with usage of the GPU:
- CUDA [developer.nvidia.com/cuda-zone](https://developer.nvidia.com/cuda-zone):
* Minimum CUDA Version 9.0
* Minimum Compute Capability 3.0, because of maximal number of Blocks in x direction
* Recommended Compute Capability 6.0, because of atomics for double precision floating point data (GKS only)
### Contributing
To contribute to VirtualFluids please follow these [instructions](CONTRIBUTING.md).
### Build VirtualFluids
```shell
$ mkdir build
$ cd build
```
Pass the relevant [options](#options) to cmake.
E.g. for the CPU part:
```shell
$ cmake .. -DBUILD_VF_CPU=ON
$ make
```
Alternatively enable the options via the cmake-gui.
### <a id="options"></a> Options
- BUILD_VF_CPU
- Build VirtualFluids CPU variant
- BUILD_VF_GPU
- Build VirtualFluids GPU variant
- BUILD_VF_UNIT_TESTS
- Build VirtualFluids unit tests
- VF_DOUBLE_ACCURACY
- GPU change between Double and Single Precision
### Result Files
The output files can be found in `<build directory>/bin/output`. As there is an usually high amount of data, you might want to change the output path in the main function.
The CPU part generates a set of multiple output directories in the prescribed output path. The flow fields can be found in the _mq_ directory. To view the flow fields, it is most conveniant to open the _mq_collection.pvd_ file in Paraview. The _bc_ directory contains the boundary condition information, the _geo_ directory contains information on the geometry of the flow domain and the _blocks_ directory contains the block grid.
A GPU computation generates a the time series of output files directly in the output path. In Paraview these time series can be read directly.
## Documentation
The doxygen generated documentation can be found [here](https://git.irmb.bau.tu-bs.de/doku/CPU).
## Known Issues
If CMake does not find CUDA_CUT_INCLUDE_DIR use and set the correct CUDA Pathes in gpu.cmake in the base directory in lines 35, 36.
If you notice any problems on your platform, please report an gitea issue.
## Authors
A list of the developers of VirtualFluids is available [here](AUTHORS.md).
docs/img/VF_logo.png

13 KiB

Software Requirements:
======================
CMake [cmake.org](https://cmake.org/):
* minimum version 3.13
Paraview [www.paraview.org](https://www.paraview.org/):
* any version, for example the most recent
C++ Compiler:
* with C++11 support, for example gcc6.3 or Visual C++ 14.0
How to get VirtualFluidsCPU:
==========================
Option 1: use git
1. checkout out https://git.irmb.bau.tu-bs.de/VirtualFluids/VirtualFluidsCPU.git with your credentials
Option 2: without git
1. go to git.irmb.tu-bs.de
2. Log in with your credentials
3. click on VirtualFluids/VirtualFluidsCPU
4. click on the download symbol on the top right and download zip/tar.gz file
How to build VirtualFluidsCPU:
============================
1. CMake the project
2. set the output path in Applications/LidDrivenCavity/LidDrivenCavity.cpp
3. build the project ("compile")
4. run the generated executable (usually in <build directory>/Applications/LidDrivenCavity)
VirtualFluidsCPU results files:
===============================
VirtualFluidsCPU generates a set of multiple output directories in the prescribed output path. The flow fields can be found in the _mq_ directory. To view the flow fields, it is most conveniant to open the _mq_collection.pvd_ file in Paraview. The _bc_ directory contains the boundary condition information, the _geo_ directory contains information on the geometry of the flow domain and the _blocks_ directory contains the block grid.
Documentation:
==============
The doxygen generated documentation can be found [here](https://git.irmb.bau.tu-bs.de/doku/CPU).
......@@ -44,6 +44,12 @@
#endif
#if defined(__unix__) && defined(__CYGWIN__)
#define UBSYSTEM_CYGWIN
#include <windows.h>
#elif defined(__unix__)
#include <sys/syscall.h>
#endif
#if defined(min) || defined(max) //daruch kann man sich spaeter #undef min; #undef max erparen
# error add NOMINMAX to preprocessor defines
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment