Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (1028)
Showing
with 2276 additions and 2232 deletions
......@@ -61,48 +61,54 @@ IncludeCategories:
Priority: 3
- Regex: '^"core/'
Priority: 4
- Regex: '^"cuda/'
Priority: 5
- Regex: '^"domain_decomposition/'
Priority: 6
Priority: 5
- Regex: '^"executiontree/'
Priority: 7
Priority: 6
- Regex: '^"fft/'
Priority: 8
Priority: 7
- Regex: '^"field/'
Priority: 9
Priority: 8
- Regex: '^"gather/'
Priority: 10
Priority: 9
- Regex: '^"geometry/'
Priority: 10
- Regex: '^"gpu/'
Priority: 11
- Regex: '^"gui/'
- Regex: '^"gpu/'
Priority: 12
- Regex: '^"lbm/'
Priority: 13
- Regex: '^"mesh/'
- Regex: '^"lbm_mesapd_coupling/'
Priority: 14
- Regex: '^"pde/'
- Regex: '^"mesh/'
Priority: 15
- Regex: '^"pe/'
- Regex: '^"mesa_pd/'
Priority: 16
- Regex: '^"pe_coupling/'
- Regex: '^"pde/'
Priority: 17
- Regex: '^"postprocessing/'
- Regex: '^"pe/'
Priority: 18
- Regex: '^"python_coupling/'
- Regex: '^"pe_coupling/'
Priority: 19
- Regex: '^"simd/'
- Regex: '^"postprocessing/'
Priority: 20
- Regex: '^"stencil/'
- Regex: '^"python_coupling/'
Priority: 21
- Regex: '^"timeloop/'
- Regex: '^"simd/'
Priority: 22
- Regex: '^"vtk/'
- Regex: '^"sqlite/'
Priority: 23
- Regex: '^<boost/'
- Regex: '^"stencil/'
Priority: 24
- Regex: '^<'
- Regex: '^"timeloop/'
Priority: 25
- Regex: '^"vtk/'
Priority: 26
- Regex: '^<boost/'
Priority: 27
- Regex: '^<'
Priority: 28
IndentCaseLabels: false
IndentPPDirectives: AfterHash
IndentWidth: 3
......
......@@ -4,45 +4,61 @@ Checks: '
-*,
boost-*,
-boost-use-ranges,
bugprone-*,
-bugprone-branch-clone,
-bugprone-exception-escape,
-bugprone-easily-swappable-parameters,
-bugprone-crtp-constructor-accessibility,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-macro-parentheses,
-bugprone-narrowing-conversions,
-bugprone-switch-missing-default-case,
-bugprone-assignment-in-if-condition,
-bugprone-reserved-identifier,
misc-*,
-misc-misplaced-const,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-include-cleaner,
-misc-header-include-cycle,
-misc-use-internal-linkage,
-misc-use-anonymous-namespace,
-misc-const-correctness,
-misc-misplaced-const
modernize-*,
-modernize-use-auto,
-modernize-loop-convert,
-modernize-pass-by-value,
-modernize-raw-string-literal,
-modernize-use-using,
-modernize-avoid-bind,
-modernize-return-braced-init-list,
-modernize-use-transparent-functors,
-modernize-redundant-void-arg,
-modernize-use-trailing-return-type,
-modernize-avoid-c-arrays,
-modernize-use-nodiscard,
-modernize-macro-to-enum,
-modernize-concat-nested-namespaces,
mpi-*,
-mpi-type-mismatch,
openmp-*,
-openmp-exception-escape,
-openmp-use-default-none,
performance-*,
-performance-enum-size,
-performance-noexcept-swap,
-performance-unnecessary-value-param,
-performance-avoid-endl,
-performance-no-int-to-ptr,
portability-*,
readability-const-return-type,
readability-container-size-empty,
readability-delete-null-pointer,
readability-deleted-default,
readability-isolate-declaration,
readability-misleading-indentation,
readability-misplaced-array-index,
readability-non-const-parameter,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
......@@ -53,11 +69,11 @@ readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
readability-static-definition-in-anonymous-namespace,
readability-string-compare,
readability-uniqueptr-delete-release
readability-uniqueptr-delete-release,
readability-use-anyofallof
'
WarningsAsErrors: '*'
HeaderFilterRegex: ''
AnalyzeTemporaryDtors: false
HeaderFilterRegex: '.*'
...
# See https://editorconfig.org/
root = true # top-most .editorconfig-file
# top-most .editorconfig-file
root = true
[*]
tab_width = 3
......@@ -7,4 +8,9 @@ indent_style = space
indent_size = 3
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false
\ No newline at end of file
insert_final_newline = false
[*.py]
tab_width = 4
indent_size = 4
insert_final_newline = true
\ No newline at end of file
[flake8]
max-line-length=120
exclude=apps/showcases/Mixer/GenerateModule.py, # contains only statements
apps/benchmarks/FieldCommunication/config.py # just a config file
utilities/bashhelper/createShortcuts.py # contains a lot of really long strings
ignore = W503 C901 E741
name: waLBerla Tests
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: create build directory
run: mkdir build
- name: CMake
run: cmake -S . -B build -DWALBERLA_BUILD_WITH_MPI=OFF -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_WITH_OPENMP=ON
- name: make
run: cmake --build build -j 2
- name: ctest
run: cd build; ctest
......@@ -8,6 +8,10 @@ qrc_*
# macOS
**/.DS_Store
# CLion indexing
*.uuid
.fleet
# Generated files
*.out
......@@ -26,10 +30,15 @@ qrc_*
/CMakeSettings.json
/.vs
# Visual Studio Code
/.vscode
# Zed
/.cache*
# CLion
*.idea
*.clion*
# QtCreator
CMakeLists.txt.user.*
......@@ -39,23 +48,28 @@ CMakeLists.txt.user.*
/bin/
/lib/
*.a
/build
/build*
# Logfiles
logfile*.txt
*TestLog_p*.txt
# Python venv
.venv
# Compiled python
*.pyc
# Jupyter Notebook
**/.ipynb_checkpoints
# Blockforest saves
*.sav
# CMake
CMakeUserPresets.json
/CMakeLists.txt.user
# CMake build files
......@@ -68,5 +82,11 @@ cmake_install.cmake
CMakeDefs.h
/moduleStatistics.json
/walberla-config.cmake
/cmake-build-debug/
/cmake-build-release/
cmake-build-*
# Virtual environments
.venv/
env/
venv/
ENV/
......@@ -6,18 +6,22 @@
stages:
- pretest
- "Code Quality"
- test
- deploy
- benchmark
###############################################################################
## ##
## Build templates ##
## ##
###############################################################################
.build_template: &build_definition
.build_template:
script:
- source /entrypoint.sh
- pip install -I cmake==3.16.3 jinja2
- export NUM_CORES=$(nproc --all)
- export MAX_BUILD_CORES=$(( $(awk '( $1 == "MemTotal:" ) { print $2 }' /proc/meminfo) / ( 4 * 1024 * 1024 ) ))
- "[[ $MAX_BUILD_CORES -lt $NUM_CORES ]] && export NUM_BUILD_CORES=$MAX_BUILD_CORES || export NUM_BUILD_CORES=$NUM_CORES"
......@@ -25,113 +29,64 @@ stages:
- cmake --version
- ccache --version
- mpirun --version
- python3 --version
- python3 python/mesa_pd.py -y .
- export CCACHE_BASEDIR=$CI_PROJECT_DIR
- mkdir $CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/build
- if dpkg --compare-versions `ompi_info | head -2 | tail -1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` ge 1.10; then export MPIEXEC_PREFLAGS="--allow-run-as-root" ; fi
- cmake .. -DWALBERLA_BUFFER_DEBUG=$WALBERLA_BUFFER_DEBUG -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=ON -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS -DWALBERLA_DOUBLE_ACCURACY=$WALBERLA_DOUBLE_ACCURACY -DWARNING_ERROR=ON -DWALBERLA_BUILD_WITH_METIS=$WALBERLA_BUILD_WITH_METIS -DWALBERLA_BUILD_WITH_PARMETIS=$WALBERLA_BUILD_WITH_PARMETIS -DWALBERLA_ENABLE_GUI=$WALBERLA_ENABLE_GUI -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
- cmake . -LAH
- if command -v ompi_info && dpkg --compare-versions `ompi_info | head -2 | tail -1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` ge 1.10; then export MPIEXEC_PREFLAGS="--allow-run-as-root" ; fi
- cmake ..
-DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS
-DWALBERLA_BUFFER_DEBUG=$WALBERLA_BUFFER_DEBUG
-DWALBERLA_BUILD_TESTS=ON
-DWALBERLA_BUILD_BENCHMARKS=ON
-DWALBERLA_BUILD_TUTORIALS=ON
-DWALBERLA_BUILD_TOOLS=ON
-DWALBERLA_BUILD_SHOWCASES=ON
-DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI
-DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA
-DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON
-DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP
-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS
-DWALBERLA_DOUBLE_ACCURACY=$WALBERLA_DOUBLE_ACCURACY
-DWARNING_ERROR=$WARNING_ERROR
-DWALBERLA_BUILD_WITH_METIS=$WALBERLA_BUILD_WITH_METIS
-DWALBERLA_BUILD_WITH_PARMETIS=$WALBERLA_BUILD_WITH_PARMETIS
-DWALBERLA_BUILD_WITH_FFTW=$WALBERLA_BUILD_WITH_FFTW
-DWALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT=$WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT
-DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
-DWALBERLA_STL_BOUNDS_CHECKS=$WALBERLA_STL_BOUNDS_CHECKS
-DWALBERLA_LOGLEVEL=$WALBERLA_LOGLEVEL
-DCMAKE_CUDA_ARCHITECTURES=60
- cmake . -LA
- make -j $NUM_BUILD_CORES -l $NUM_CORES
- ctest -LE $CTEST_EXCLUDE_LABELS -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES
tags:
- docker
.variables: &build_serial_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
CMAKE_BUILD_TYPE: "Release"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
.variables: &build_mpionly_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
CMAKE_BUILD_TYPE: "Release"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
.variables: &build_hybrid_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
OMP_NUM_THREADS: "4"
OMP_WAIT_POLICY: "PASSIVE"
CMAKE_BUILD_TYPE: "Release"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "ON"
WALBERLA_BUILD_WITH_PARMETIS: "ON"
.variables: &build_serial_dbg_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
.variables: &build_mpionly_dbg_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
.variables: &build_hybrid_dbg_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
OMP_NUM_THREADS: "4"
OMP_WAIT_POLICY: "PASSIVE"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "ON"
WALBERLA_BUILD_WITH_PARMETIS: "ON"
.variables: &build_hybrid_dbg_sp_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
OMP_NUM_THREADS: "4"
OMP_WAIT_POLICY: "PASSIVE"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
.variables: &build_stl_debug_variables
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
OMP_NUM_THREADS: "4"
OMP_WAIT_POLICY: "PASSIVE"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "OFF"
- ctest -LE $CTEST_EXCLUDE_LABELS -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES -T Test
after_script:
- pip3 install lxml
- python3 cmake/ctest2junit.py build > report.xml
tags:
- docker
variables:
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
OMP_NUM_THREADS: "4"
OMP_WAIT_POLICY: "PASSIVE"
CMAKE_BUILD_TYPE: "Release"
WALBERLA_BUFFER_DEBUG: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
WALBERLA_BUILD_WITH_METIS: "ON"
WALBERLA_BUILD_WITH_PARMETIS: "ON"
WALBERLA_BUILD_WITH_FFTW: "ON"
WALBERLA_LOGLEVEL: "DETAIL"
WARNING_ERROR: "ON"
artifacts:
when: always
reports:
junit:
- report.xml
- python/report.xml
###############################################################################
## ##
......@@ -141,1406 +96,1911 @@ stages:
intel_17_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WARNING_ERROR: "OFF"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_17_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WARNING_ERROR: "OFF"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_17_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
WARNING_ERROR: "OFF"
tags:
- cuda11
- docker
- intel
intel_17_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WARNING_ERROR: "OFF"
tags:
- cuda11
- docker
- intel
intel_17_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WARNING_ERROR: "OFF"
tags:
- cuda11
- docker
- intel
intel_17_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WARNING_ERROR: "OFF"
tags:
- cuda11
- docker
- intel
intel_17_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:17
icc_2022_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icc-2022:32
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WARNING_ERROR: "OFF"
tags:
- cuda11
- docker
- intel
intel_18_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
- intel
intel_18_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_OPENMP: "OFF"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
- intel
intel_18_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 1
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- cuda
- cuda11
- docker
- intel
intel_18_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
tags:
- cuda
- cuda11
- docker
- intel
intel_18_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
tags:
- cuda
- cuda11
- docker
- intel
intel_18_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
tags:
- cuda
- cuda11
- docker
- intel
intel_18_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:18
icx_2024_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/icx-2024:32
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
tags:
- cuda
- cuda11
- docker
- intel
intel_19_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_19_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_19_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_19_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_19_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
intel_19_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
- intel
intel_19_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
gcc_10_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-10:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
- intel
gcc_5_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
except:
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_5_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:5
gcc_11_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-11:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_6_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_6_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:6
gcc_12_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-12:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_7_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_7_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
gcc_7_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
stage: pretest
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
tags:
- cuda
- cuda11
- docker
gcc_7_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 1
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
tags:
- cuda
- cuda11
- docker
gcc_7_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
tags:
- cuda
- cuda11
- docker
gcc_7_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
tags:
- cuda
- cuda11
- docker
gcc_7_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:7
gcc_13_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=gcc CXX=g++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT: "ON"
tags:
- cuda
- cuda11
- docker
gcc_8_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
clang_14_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
gcc_8_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_9_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
clang_14_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_9_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
clang_14_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_9_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
stage: pretest
clang_14_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_9_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
clang_14_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
gcc_9_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
clang_14_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
gcc_9_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
clang_14_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-14:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
gcc_9_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_4.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_4.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_4.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_4.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_4.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_4.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
clang_4.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:4.0
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_5.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:5.0
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_6.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- cuda11
- docker
clang_6.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:6.0
clang_15_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-15:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda
- docker
clang_7.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_7.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
clang_7.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_7.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
clang_16_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_7.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
clang_16_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_7.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
clang_16_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_7.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:7.0
clang_16_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_16_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_16_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_16_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-16:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_17_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_17_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_8.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_17_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_8.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
clang_17_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_9.0_serial:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
clang_17_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_9.0_mpionly:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
clang_17_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_9.0_hybrid:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
clang_17_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17:32
stage: pretest
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_9.0_serial_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
aocc_4_serial:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_serial_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_9.0_mpionly_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
aocc_4_mpionly:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_mpionly_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
only:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- $ENABLE_NIGHTLY_BUILDS
tags:
- cuda11
- docker
clang_9.0_hybrid_dbg:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
aocc_4_hybrid:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- pip3 install lbmpy
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
clang_9.0_hybrid_dbg_sp:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
stage: pretest
aocc_4_serial_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_sp_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: 0
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
gcc_8_hybrid_dbg_noboost:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
aocc_4_mpionly_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- rm -rf /opt/boost /usr/include/boost
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_hybrid_dbg_variables
WALBERLA_BUILD_WITH_CUDA: "OFF"
WALBERLA_ENABLE_GUI: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "OFF"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
###############################################################################
## ##
## STL Debug Build ##
## ##
###############################################################################
gcc_9_stl_debug:
<<: *build_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9
aocc_4_hybrid_dbg:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- rm -rf /opt/boost /usr/include/boost
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
<<: *build_stl_debug_variables
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
aocc_4_hybrid_dbg_sp:
extends: .build_template
image: i10git.cs.fau.de:5005/walberla/buildenvs/aocc-4:32
before_script:
- python3 -m venv ci-venv
- source ci-venv/bin/activate
- python3 -m pip install lbmpy==1.3.7 jinja2 pytest
- cd python
- python3 -m pytest --junitxml=report.xml pystencils_walberla lbmpy_walberla
- python3 -m pip list
- deactivate
- python3 -m pip install numpy
- cd ..
- CC=clang CXX=clang++ ci-venv/bin/python -m pip install cupy-cuda11x
variables:
WALBERLA_BUILD_WITH_CUDA: "ON"
CMAKE_BUILD_TYPE: "DebugOptimized"
WALBERLA_DOUBLE_ACCURACY: "OFF"
WALBERLA_BUILD_WITH_PARMETIS: "OFF"
WALBERLA_BUILD_WITH_METIS: "OFF"
WALBERLA_BUILD_WITH_CODEGEN: "ON"
WALBERLA_BUILD_WITH_PYTHON: "ON"
Python_ROOT_DIR: "./ci-venv"
tags:
- cuda11
- docker
###############################################################################
......@@ -1550,18 +2010,15 @@ gcc_9_stl_debug:
###############################################################################
doc:
image: i10git.cs.fau.de:5005/walberla/buildenvs/ubuntu:18.04
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13
script:
- cmake --version
- doxygen --version
- mkdir $CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/build
- cmake ..
- cmake . -LAH
- cmake . -LA
- make doc
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
tags:
- docker
artifacts:
......@@ -1578,23 +2035,27 @@ doc:
###############################################################################
clang-tidy:
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:9.0
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-18
stage: "Code Quality"
needs: []
before_script:
- pip install pyyaml
script:
- $CXX --version
- clang-tidy -version
- cmake --version
- mkdir $CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/build
- cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWALBERLA_BUFFER_DEBUG=ON -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=ON -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_OPENMP=ON -DCMAKE_BUILD_TYPE=Debug -DWALBERLA_BUILD_WITH_METIS=ON -DWALBERLA_BUILD_WITH_PARMETIS=ON -DWALBERLA_BUILD_WITH_OPENMESH=ON -DWALBERLA_DOUBLE_ACCURACY=ON
- cmake . -LAH
- utilities/filterCompileCommands.py compile_commands.json
- run-clang-tidy.py -quiet | tee clang-tidy-output.txt
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
- cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DWALBERLA_BUFFER_DEBUG=ON -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=ON -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_OPENMP=ON -DCMAKE_BUILD_TYPE=Debug -DWALBERLA_BUILD_WITH_METIS=ON -DWALBERLA_BUILD_WITH_PARMETIS=ON -DWALBERLA_BUILD_WITH_OPENMESH=ON -DWALBERLA_DOUBLE_ACCURACY=ON -DWALBERLA_LOGLEVEL=DETAIL
- cmake . -LA
- python3 utilities/clang-tidy/analyze.py -p utilities/clang-tidy/analyze.yml -r $CI_PROJECT_DIR -c compile_commands.json -o clang-tidy-output
after_script:
- mkdir -p $CI_PROJECT_DIR/artifacts
- mv $CI_PROJECT_DIR/build/clang-tidy-output $CI_PROJECT_DIR/artifacts/clang-tidy-output
artifacts:
when: always
paths:
- $CI_PROJECT_DIR/build/clang-tidy-output.txt
- $CI_PROJECT_DIR/artifacts/clang-tidy-output
tags:
- docker
......@@ -1603,7 +2064,7 @@ cppcheck:
image: i10git.cs.fau.de:5005/walberla/buildenvs/cppcheck
script:
- cppcheck --version
- cppcheck . --max-configs=10 --enable=warning --enable=style --enable=performance --enable=portability -i src/gui/extern -i src/geometry/structured/extern -i sqlite3.c -i StackWalker.cpp -I src/ -I tests/ -I apps/ -D WALBERLA_BUILD_WITH_MPI -D WALBERLA_BUILD_WITH_METIS -D WALBERLA_BUILD_WITH_BOOST_THREAD -D WALBERLA_BUILD_WITH_PYTHON --xml 2> report.xml
- cppcheck . --max-configs=10 --enable=warning --enable=style --enable=performance --enable=portability -i src/geometry/structured/extern -i sqlite3.c -i StackWalker.cpp -I src/ -I tests/ -I apps/ -D WALBERLA_BUILD_WITH_MPI -D WALBERLA_BUILD_WITH_METIS -D WALBERLA_BUILD_WITH_PYTHON --xml 2> report.xml
- cppcheck-htmlreport --file=report.xml --report-dir=html_report --source-dir=.
artifacts:
untracked: true
......@@ -1615,241 +2076,38 @@ cppcheck:
coverage:
image: walberla/coverage
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13
script:
- pip3 install gcovr
- export NUM_CORES=$(nproc --all)
- export MAX_BUILD_CORES=$(( $(awk '( $1 == "MemTotal:" ) { print $2 }' /proc/meminfo) / ( 4 * 1024 * 1024 ) ))
- $CXX --version
- cmake --version
- gcovr --version
- mkdir build
- cd build
- if dpkg --compare-versions `ompi_info | head -2 | tail -1 | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` ge 1.10; then export MPIEXEC_PREFLAGS="--allow-run-as-root" ; fi
- cmake .. -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_OPENMP=OFF -DCMAKE_BUILD_TYPE=Debug -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN
- cmake . -LAH
- make -j 8
- ctest -LE longrun --output-on-failure -j 8_Hybrid
- cmake .. -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_OPENMP=OFF -DCMAKE_BUILD_TYPE=DebugOptimized -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS -DWALBERLA_BUILD_WITH_CODEGEN=OFF -DWALBERLA_BUILD_WITH_GCOV=ON -DWALBERLA_LOGLEVEL=DETAIL
- cmake . -LA
- make -j $NUM_BUILD_CORES -l $NUM_CORES
- ctest -LE longrun --output-on-failure -j $NUM_CORES --timeout 3000
- cd ..
- mkdir coverage
- cd coverage
- pwd
- gcovr -r $CI_PROJECT_DIR -f ".*\\/src\\/.*" -k
- gcovr -r $CI_PROJECT_DIR -f ".*\\/src\\/.*" --html --html-details -o coverage.html -g
- gcovr -r $CI_PROJECT_DIR -k build -f "src" --print-summary --html coverage/coverage.html --html-details --xml coverage/coverage.xml
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
paths:
- coverage/
reports:
coverage_report:
coverage_format: cobertura
path: coverage/coverage.xml
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
tags:
- docker
variables:
CXXFLAGS: "-fprofile-arcs -ftest-coverage -fPIC -O0"
LDFLAGS: "-fprofile-arcs -ftest-coverage -fPIC -O0"
###############################################################################
## ##
## Windows Builds ##
## ##
###############################################################################
.win_build_template: &win_build_definition
tags:
- win
script:
- export PreferredToolArchitecture=x64
- export OMP_NUM_THREADS=4
- export OMP_WAIT_POLICY="PASSIVE"
- export MSMPI_DISABLE_SHM=1
- cmake --version
- mkdir build
- cd build
- cmake -LAH -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP -DWALBERLA_DOUBLE_ACCURACY=$WALBERLA_DOUBLE_ACCURACY -DWARNING_ERROR=ON -G "$CMAKE_GENERATOR" ..
- MSBuild.exe walberla.sln /property:Configuration=$BUILD_CONFIGURATION /verbosity:minimal /maxcpucount:4
- ctest -LE $CTEST_EXCLUDE_LABELS -C $BUILD_CONFIGURATION --output-on-failure -j 4
msvc-14.1_Hybrid_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_Hybrid_SP_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "OFF"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_Hybrid:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_Serial_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_Serial:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_MpiOnly_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.1_MpiOnly:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.2_Hybrid_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.2_Hybrid_SP_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "OFF"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.2_Hybrid:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "ON"
WALBERLA_DOUBLE_ACCURACY: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.2_Serial_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.2_Serial:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
msvc-14.2_MpiOnly_Dbg:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
msvc-14.2_MpiOnly:
<<: *win_build_definition
variables:
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_CONFIGURATION: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_DOUBLE_ACCURACY: "ON"
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
###############################################################################
......@@ -1869,65 +2127,77 @@ msvc-14.2_MpiOnly:
- mpirun --version
- mkdir build
- cd build
- cmake .. -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=ON -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DWARNING_ERROR=ON
- cmake . -LAH
- cmake .. -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=ON -DWALBERLA_BUILD_WITH_MPI=$WALBERLA_BUILD_WITH_MPI -DWALBERLA_BUILD_WITH_PYTHON=$WALBERLA_BUILD_WITH_PYTHON -DWALBERLA_BUILD_WITH_CODEGEN=$WALBERLA_BUILD_WITH_CODEGEN -DWALBERLA_BUILD_WITH_OPENMP=$WALBERLA_BUILD_WITH_OPENMP -DWALBERLA_BUILD_WITH_CUDA=$WALBERLA_BUILD_WITH_CUDA -DWALBERLA_LOGLEVEL=$WALBERLA_LOGLEVEL -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DWARNING_ERROR=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- cmake . -LA
- make -j $NUM_BUILD_CORES -l $NUM_CORES
- ctest -LE "$CTEST_EXCLUDE_LABELS|cuda" -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES
- ctest -LE "$CTEST_EXCLUDE_LABELS|cuda" -C $CMAKE_BUILD_TYPE --output-on-failure -j $NUM_CORES -T Test
after_script:
- pip3 install lxml
- python3 cmake/ctest2junit.py build > report.xml
variables:
WALBERLA_LOGLEVEL: "DETAIL"
tags:
- mac
- macmini
artifacts:
when: always
reports:
junit:
- report.xml
- python/report.xml
mac_Serial_Dbg:
<<: *mac_build_definition
extends: .mac_build_template
before_script:
- pip3 install pystencils==1.3.6
- pip3 install lbmpy==1.3.7
variables:
CMAKE_BUILD_TYPE: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "ON"
WALBERLA_BUILD_WITH_CUDA: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CODEGEN: "ON"
mac_Serial:
<<: *mac_build_definition
extends: .mac_build_template
before_script:
- pip3 install pystencils==1.3.6
- pip3 install lbmpy==1.3.7
variables:
CMAKE_BUILD_TYPE: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "OFF"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "ON"
WALBERLA_BUILD_WITH_CUDA: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CODEGEN: "ON"
mac_MpiOnly_Dbg:
<<: *mac_build_definition
extends: .mac_build_template
before_script:
- pip3 install pystencils==1.3.6
- pip3 install lbmpy==1.3.7
variables:
CMAKE_BUILD_TYPE: "DebugOptimized"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "ON"
WALBERLA_BUILD_WITH_CUDA: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CODEGEN: "ON"
OMPI_MCA_btl: "self,tcp"
mac_MpiOnly:
<<: *mac_build_definition
extends: .mac_build_template
before_script:
- pip3 install pystencils==1.3.6
- pip3 install lbmpy==1.3.7
variables:
CMAKE_BUILD_TYPE: "Release"
CTEST_EXCLUDE_LABELS: "longrun"
WALBERLA_BUILD_WITH_MPI: "ON"
WALBERLA_BUILD_WITH_OPENMP: "OFF"
WALBERLA_BUILD_WITH_PYTHON: "ON"
WALBERLA_BUILD_WITH_CUDA: "ON"
except:
variables:
- $DISABLE_PER_COMMIT_BUILDS
WALBERLA_BUILD_WITH_CODEGEN: "ON"
OMPI_MCA_btl: "self,tcp"
###############################################################################
## ##
......@@ -1947,7 +2217,7 @@ mac_MpiOnly:
dependencies: []
when: manual
only:
- master@walberla/walberla
- master@walberla/walberla
- tags@walberla/walberla
conda-py36-win:
......@@ -1956,7 +2226,7 @@ conda-py36-win:
- win
script:
- conda build --python=3.6 --user=lssfau utilities\\conda\\walberla
conda-py37-win:
<<: *conda_deploy_definition
tags:
......@@ -1973,7 +2243,7 @@ conda-py37-linux:
- apt-get update
- apt-get install -y build-essential
- conda build --python=3.7 --user=lssfau utilities/conda/walberla
conda-py36-linux:
<<: *conda_deploy_definition
tags:
......@@ -2003,7 +2273,7 @@ conda-py36-linux:
- mkdir $CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/build
- cmake .. -DWALBERLA_BUFFER_DEBUG=OFF -DWALBERLA_BUILD_TESTS=OFF -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=OFF -DWALBERLA_BUILD_TOOLS=OFF -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_CUDA=OFF -DWALBERLA_BUILD_WITH_PYTHON=OFF -DWALBERLA_BUILD_WITH_OPENMP=OFF -DCMAKE_BUILD_TYPE=RELEASE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS -DWALBERLA_DOUBLE_ACCURACY=ON -DWARNING_ERROR=ON -DWALBERLA_BUILD_WITH_METIS=OFF -DWALBERLA_BUILD_WITH_PARMETIS=OFF -DWALBERLA_OPTIMIZE_FOR_LOCALHOST=ON -DWALBERLA_BUILD_WITH_FASTMATH=ON -DWALBERLA_BUILD_WITH_LTO=ON
- cmake . -LAH
- cmake . -LA
- cd apps/benchmarks/GranularGas
- make -j 20
- export PATH=$PATH:/usr/local/likwid/bin
......@@ -2020,9 +2290,9 @@ conda-py36-linux:
- python3 pe_upload.py
- mpirun --allow-run-as-root -np 8 --map-by core --bind-to core --report-bindings ./MESA_PD_KernelBenchmark MESA_PD_Benchmark.cfg | tee mesa_pd.txt
- python3 mesa_pd_upload.py
only:
variables:
- $ENABLE_BENCHMARKS
when: manual
needs: [ ]
stage: benchmark
tags:
- docker-benchmark
artifacts:
......@@ -2032,12 +2302,64 @@ conda-py36-linux:
benchmark_intel19:
<<: *benchmark_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel:19
image: i10git.cs.fau.de:5005/walberla/buildenvs/intel-2022
benchmark_gcc8:
<<: *benchmark_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:8
image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13
benchmark_clang8:
<<: *benchmark_definition
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang:8.0
\ No newline at end of file
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17
benchmark_ClangBuildAnalyzer:
script:
- cmake --version
- ccache --version
- mpirun --version
- export CC=clang
- export CXX=clang++
- $CXX --version
- cd /tmp
- git clone https://github.com/aras-p/ClangBuildAnalyzer.git
- cd ClangBuildAnalyzer
- cmake .
- make
- export PATH+=:$(pwd)
- mkdir $CI_PROJECT_DIR/build
- cd $CI_PROJECT_DIR/build
- cmake .. -DWALBERLA_BUFFER_DEBUG=OFF -DWALBERLA_BUILD_TESTS=ON -DWALBERLA_BUILD_BENCHMARKS=ON -DWALBERLA_BUILD_TUTORIALS=ON -DWALBERLA_BUILD_TOOLS=OFF -DWALBERLA_BUILD_WITH_MPI=ON -DWALBERLA_BUILD_WITH_CUDA=OFF -DWALBERLA_BUILD_WITH_PYTHON=OFF -DWALBERLA_BUILD_WITH_OPENMP=OFF -DCMAKE_BUILD_TYPE=RELEASE -DMPIEXEC_PREFLAGS=$MPIEXEC_PREFLAGS -DWALBERLA_DOUBLE_ACCURACY=ON -DWARNING_ERROR=ON -DWALBERLA_BUILD_WITH_METIS=OFF -DWALBERLA_BUILD_WITH_PARMETIS=OFF -DWALBERLA_OPTIMIZE_FOR_LOCALHOST=ON -DWALBERLA_BUILD_WITH_FASTMATH=ON -DWALBERLA_BUILD_WITH_LTO=ON -DCMAKE_CXX_FLAGS=-ftime-trace -G Ninja
- cmake . -LA
- ClangBuildAnalyzer --start .
- ninja all
- ClangBuildAnalyzer --stop . CBA
- ClangBuildAnalyzer --analyze CBA
image: i10git.cs.fau.de:5005/walberla/buildenvs/clang-17
tags:
- docker-benchmark
only:
variables:
- $ENABLE_NIGHTLY_BUILDS
continuous_benchmark_trigger:
stage: benchmark
image: curlimages/curl
tags:
- docker
script:
- curl
--fail
--request POST
--form "token=$CB_TRIGGER_TOKEN"
--form "ref=master"
--form "variables[WALBERLA_GITLAB_INSTANCE]=https://$CI_SERVER_HOST"
--form "variables[WALBERLA_PROJECT_ID]=$CI_PROJECT_PATH"
--form "variables[WALBERLA_BRANCH]=$CI_COMMIT_BRANCH"
--form "variables[WALBERLA_COMMIT]=$CI_COMMIT_SHA"
"$CB_TRIGGER_API_URL"
rules:
- if: '$CI_PROJECT_PATH == "walberla/walberla" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: on_success
- if: $CI_PIPELINE_SOURCE != "merge_request_event"
when: manual
allow_failure: true
\ No newline at end of file
File moved
[settings]
line_length=100
balanced_wrapping=True
multi_line_output=4
known_third_party=sympy
List of contributors
====================
Cameron Stewart
Christian Feichtinger
Christian Godenschwager
Christoph Rettinger
......@@ -12,22 +13,34 @@ Dominik Bartuschat
Ehsan Fattahi
Felix Winterhalter
Florian Schornbaum
Frederik Hennig
Grigorii Drozdov
Helen Schottenhamml
Igor Ostanin
Jan Götz
Jan Hönig
João Victor Tozatti Risso
Johannes Habich
Klaus Iglberger
Kristina Pickl
Lorenz Hufnagel
Lukas Werner
Markus Holzer
Martin Bauer
Matthias Markl
Michael Kuron
Nils Kohl
Paulo Carvalho
Philipp Suffa
Regina Ammer
Sagar Dolas
Sebastian Eibl
Silke Bergler
Simon Bogner
Stefan Donath
Stephan Seitz
Sunil Kontham
Tobias Leemann
Tobias Preclik
Tobias Scharpff
Tobias Schruff
# Changelog
## [Unreleased]
## [6.1] - 2022-07-25
### Added
- Free-surface LBM extension:
- Add implementation
- Add several showcases
- Add several tests
- LBM - MESA_PD coupling:
- Add partially saturated cells method (PSM)
- Add fluidized bed showcase
- Add virtual mass stabilization technique for light particles
- Add support for more shapes, e.g., convex polyhedron
- MESA_PD:
- Add extensive application for dense particle packing generation
- AMD - HIP support
- Support of the ROCm Toolchain and thus AMD HIP as second GPU language
- All CUDA related files, namespaces, folders etc are renamed to gpu.
- Include "GPUWrapper.h" to use general GPU functions cudaMalloc -> gpuMalloc
- WALBERLA_BUILD_WITH_HIP and WALBERLA_BUILD_WITH_GPU_SUPPORT as new CMake variables introduced
### Changed
- Update and extend phase-field LBM showcases
- Allow access to PDF centering information (for being used in generated LBM kernels)
- Adapt code generation backend to be compatible with pystencils 1.0 and lbmpy 1.0
- Required minimum dependencies:
- C++17-compliant compiler
- CMake 3.14
- pybind 2.6.2
- lbmpy 1.0
- pystencils 1.0
### Deprecated
- GUI
## [5.1] - 2020-04-09
### Added
- Add new tutorials and showcases
- Extend MESA-PD functionalities, including several molecular dynamics models
- Fluid-particle coupling with MESA-PD: functionalities, tests, benchmark scenarios
### Changed
- Update to C++17
- Update CUDA compiler support
- Extend Clang-Tidy coverage
- Add closer integration of code generation using pystencils and lbmpy
- Python Coupling now build upon pybind11. Boost.Python is no longer supported
- lbm module dropped from python coupling due to deprecation for a long time
- geometry, postprocessing and timeloop dropped from python coupling due to its low usage
- PEP8-ification of Python API. This means all keyword arguments are now in snake_case and not in CamelCase as before.
### Fixed
- Guo force model for non-SRT, may change simulation results
## [4.1] - 2019-04-19
### Added
......@@ -54,4 +104,3 @@
### Deprecated
- all dynamic level-wise balance functions (use the more general ones, without "level-wise")
......@@ -5,7 +5,7 @@
## Contents:
## - definition of build options
## - compiler variables ( c++ standard, warnings etc. )
## - Finding of service libraries. Required: boost, Optional: MPI, PE, METIS
## - Finding of service libraries. Required: none, Optional: MPI, FFTW3, METIS, OpenMesh, Python
## the include paths are set, and the libraries are added to variable SERVICE_LIBS
## - Subdirectory cmake lists are called
## -> src/ this folder contains all modules, each module (that contains c or cpp files) is linked to a
......@@ -25,16 +25,16 @@
##
############################################################################################################################
CMAKE_MINIMUM_REQUIRED (VERSION 3.1)
CMAKE_MINIMUM_REQUIRED (VERSION 3.24)
PROJECT ( walberla )
set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${walberla_SOURCE_DIR}/cmake )
set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${walberla_SOURCE_DIR}/cmake ${walberla_SOURCE_DIR}/cmake/compileroptions )
include ( waLBerlaFunctions )
set_version( 5 0 )
set_version( 7 0 )
include( CMakeParseArguments )
......@@ -57,32 +57,31 @@ include( CTest )
# Build options
option ( WALBERLA_DOUBLE_ACCURACY "Floating point accuracy, defaults to double" ON )
option ( WALBERLA_ENABLE_GUI "Compile with GUI" )
option ( WALBERLA_BUILD_TESTS "Build Testcases" )
option ( WALBERLA_BUILD_TESTS "Build Testcases" ON )
option ( WALBERLA_BUILD_BENCHMARKS "Build Benchmarks" ON )
option ( WALBERLA_BUILD_TOOLS "Build Tools" )
option ( WALBERLA_BUILD_TOOLS "Build Tools" ON )
option ( WALBERLA_BUILD_TUTORIALS "Build Tutorials" ON )
option ( WALBERLA_BUILD_SHOWCASES "Build Showcases" OFF )
option ( WALBERLA_BUILD_SHOWCASES "Build Showcases" ON )
option ( WALBERLA_BUILD_DOC "Build Documentation" ON )
option ( WALBERLA_BUILD_WITH_MPI "Build with MPI" ON )
option ( WALBERLA_BUILD_WITH_METIS "Build with metis graph partitioner" OFF )
option ( WALBERLA_BUILD_WITH_PARMETIS "Build with ParMetis graph partitioner" OFF )
option ( WALBERLA_BUILD_WITH_FFTW "Build with FFTW Fourier Transform library" OFF )
option ( WALBERLA_BUILD_WITH_GPROF "Enables gprof" )
option ( WALBERLA_BUILD_WITH_GCOV "Enables gcov" )
option ( WALBERLA_BUILD_WITH_LTO "Enable link time optimizations" )
option ( WALBERLA_BUILD_WITH_OPENMP "Enable OpenMP support" )
option ( WALBERLA_BUILD_WITH_PYTHON "Support for embedding Python" )
option ( WALBERLA_BUILD_WITH_PYTHON_MODULE "Build waLBerla python module" )
option ( WALBERLA_BUILD_WITH_PYTHON_LBM "Include LBM module into python module" OFF )
option ( WALBERLA_BUILD_WITH_CODEGEN "Enable pystencils code generation" OFF )
option ( WALBERLA_BUILD_WITH_LIKWID_MARKERS "Compile in markers for likwid-perfctr" )
option ( WALBERLA_BUILD_WITH_CUDA "Enable CUDA support" )
option ( WALBERLA_BUILD_WITH_HIP "Enable ROCm HIP support" )
option ( WALBERLA_BUILD_WITH_FASTMATH "Fast math" )
......@@ -91,9 +90,6 @@ option ( WALBERLA_SIMD_FORCE_SCALAR "Do not use SIMD operations even whe
option ( WALBERLA_BUFFER_DEBUG "Type checking for BufferSystem ( slow )" OFF )
option ( WALBERLA_NO_OUTDATED_FEATURES "Show warning/errors when outdated features "
"(i.e. features that will be deprecated) are used" )
# Profile guided optimization
option ( WALBERLA_PROFILE_GENERATE "Generates Profile for Optimization" )
option ( WALBERLA_PROFILE_USE "Uses Profile to optimize" )
......@@ -102,6 +98,11 @@ option ( WALBERLA_PROFILE_USE "Uses Profile to optimize"
option ( WALBERLA_OPTIMIZE_FOR_LOCALHOST "Enable compiler optimizations spcific to localhost" )
option ( WALBERLA_LOG_SKIPPED "Log skipped cmake targets" ON )
option ( WALBERLA_DEPS_ERROR "Fail if module dependencies are not met" OFF )
option ( WALBERLA_GIT_SUBMODULE_AUTO "Check submodules during cmake run" ON )
option ( WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT "Experimental half precision support" OFF )
# Installation Directory
set ( CMAKE_INSTALL_PREFIX /usr/local/waLBerla CACHE STRING "The default installation directory." )
......@@ -111,6 +112,7 @@ if ( NOT CMAKE_BUILD_TYPE )
set ( CMAKE_BUILD_TYPE Release CACHE STRING "Build Types: Debug Release DebugOptimized RelWithDebInfo MinSizeRel." FORCE )
endif()
SET_PROPERTY( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release DebugOptimized RelWithDebInfo MinSizeRel )
set( CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE} )
# Debugging options )
option ( WALBERLA_STL_BOUNDS_CHECKS "Use debug capabilites of libstd++: iterator and bounds checks" )
......@@ -139,7 +141,7 @@ endif()
############################################################################################################################
set( CMAKE_CXX_STANDARD 14 )
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_CXX_EXTENSIONS OFF )
......@@ -173,9 +175,10 @@ if( CMAKE_CXX_COMPILER MATCHES "icpc" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "icpc"
SET(CMAKE_LINKER "${XILD}")
ENDIF(XILD)
MARK_AS_ADVANCED(XILD)
if( CMAKE_VERSION VERSION_LESS 3.6.0 )
set( CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14" )
add_flag ( CMAKE_CXX_FLAGS ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.0.5" )
# std::filesystem uses ABI tags, which don't work 19.0.2 but do in 19.0.5
add_flag ( CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0" )
endif()
else()
option ( WALBERLA_CXX_COMPILER_IS_INTEL "Use Intel compiler" OFF )
......@@ -185,6 +188,7 @@ mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_INTEL )
# Check for Gnu compiler
if ( CMAKE_COMPILER_IS_GNUCXX AND NOT WALBERLA_CXX_COMPILER_IS_INTEL )
option ( WALBERLA_CXX_COMPILER_IS_GNU "Use gnu compiler" ON )
include(GNU)
else()
option ( WALBERLA_CXX_COMPILER_IS_GNU "Use gnu compiler" OFF )
endif()
......@@ -193,6 +197,7 @@ mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_GNU )
# Check for Visual Studio
if ( MSVC )
option ( WALBERLA_CXX_COMPILER_IS_MSVC "Use Visual Studio compiler" ON )
include( MSVC )
else()
option ( WALBERLA_CXX_COMPILER_IS_MSVC "Use Visual Studio compiler" OFF )
endif()
......@@ -201,37 +206,38 @@ mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_MSVC )
# Check for IBM compiler
if( CMAKE_CXX_COMPILER MATCHES "xlc" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "xlc" )
option ( WALBERLA_CXX_COMPILER_IS_IBM "Use IBM compiler" ON )
include(IBM)
else()
option ( WALBERLA_CXX_COMPILER_IS_IBM "Use IBM compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_IBM )
# Check for NEC SX compiler
if( CMAKE_CXX_COMPILER MATCHES "sxc" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "sxc" OR CMAKE_CXX_COMPILER MATCHES "sxmpic" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "sxmpic" )
option ( WALBERLA_CXX_COMPILER_IS_NEC "Use NEC compiler" ON )
else()
option ( WALBERLA_CXX_COMPILER_IS_NEC "Use NEC compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_NEC )
# Check for Clang compiler
if( CMAKE_CXX_COMPILER MATCHES "clang" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
if( CMAKE_CXX_COMPILER MATCHES "clang" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "clang" OR CMAKE_CXX_COMPILER MATCHES "hipcc" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
option ( WALBERLA_CXX_COMPILER_IS_CLANG "Use clang compiler" ON )
include(Clang)
else()
option ( WALBERLA_CXX_COMPILER_IS_CLANG "Use clang compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_CLANG )
# Check for Cray compiler
if( CMAKE_CXX_COMPILER_ID MATCHES Cray )
option ( WALBERLA_CXX_COMPILER_IS_CRAY "Use Cray compiler" ON )
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.4)
message( FATAL_ERROR "Insufficient Cray Compiler Environment version" )
endif()
include(Cray)
else()
option ( WALBERLA_CXX_COMPILER_IS_CRAY "Use Cray compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_CRAY )
# Check for Fujitsu compiler
if( CMAKE_CXX_COMPILER_ID MATCHES FujitsuClang )
option ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG "Use FujitsuClang compiler" ON )
include(FujitsuClang)
else()
option ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG "Use FujitsuClang compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
# Check for MPI wrapper
get_filename_component( CXX_COMPILER_WITHOUT_PATH ${CMAKE_CXX_COMPILER} NAME )
if( CXX_COMPILER_WITHOUT_PATH MATCHES "mpi" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "mpi" )
......@@ -241,6 +247,15 @@ else()
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_MPI_WRAPPER )
# Check for intel llvm compiler
if( CMAKE_CXX_COMPILER MATCHES "icpx" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "icpx" )
option ( WALBERLA_CXX_COMPILER_IS_INTELLLVM "Use Intel LLVM compiler" ON )
include(IntelLLVM)
else()
option ( WALBERLA_CXX_COMPILER_IS_INTELLLVM "Use Intel LLVM compiler" OFF )
endif()
mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_INTELLLVM )
############################################################################################################################
......@@ -251,149 +266,7 @@ mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_MPI_WRAPPER )
##
############################################################################################################################
# Profile guided optimization
if ( WALBERLA_PROFILE_GENERATE )
if( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag( CMAKE_CXX_FLAGS "-prof-gen" )
file( MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/profile" )
add_flag( CMAKE_CXX_FLAGS "-prof-dir${CMAKE_BINARY_DIR}/profile" )
elseif( WALBERLA_CXX_COMPILER_IS_GNU )
add_flag( CMAKE_CXX_FLAGS "-fprofile-generate" )
elseif( WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag ( CMAKE_CXX_FLAGS "/GL" )
add_flag ( CMAKE_MODULE_LINKER_FLAGS "/LTCG:PGINSTRUMENT" )
add_flag ( CMAKE_SHARED_LINKER_FLAGS "/LTCG:PGINSTRUMENT" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "/LTCG:PGINSTRUMENT" )
endif()
endif()
if ( WALBERLA_PROFILE_USE )
if( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag( CMAKE_CXX_FLAGS "-prof-use" )
add_flag( CMAKE_CXX_FLAGS "-prof-dir${CMAKE_BINARY_DIR}/profile" )
elseif( WALBERLA_CXX_COMPILER_IS_GNU )
add_flag( CMAKE_CXX_FLAGS "-fprofile-use" )
elseif( WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag ( CMAKE_CXX_FLAGS "/GL" )
add_flag ( CMAKE_MODULE_LINKER_FLAGS "/LTCG:PGOPTIMIZE" )
add_flag ( CMAKE_SHARED_LINKER_FLAGS "/LTCG:PGOPTIMIZE" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "/LTCG:PGOPTIMIZE" )
endif()
endif()
# common flags for intel and g++
if ( NOT WARNING_DISABLE AND ( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL ) )
add_flag ( CMAKE_CXX_FLAGS "-Wall -Wconversion -Wshadow" )
endif()
# C++ language features for NEC compiler
if( WALBERLA_CXX_COMPILER_IS_NEC )
set( CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Kcpp14" )
add_flag ( CMAKE_CXX_FLAGS "${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} -Krtti -Kexceptions -size_t64 -Kgcc" )
add_flag ( CMAKE_CXX_FLAGS "-D__BIG_ENDIAN -D__BYTE_ORDER=__BIG_ENDIAN" )
add_flag ( CMAKE_CXX_FLAGS "-Tnoauto,used" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "-Wl,-h,muldefs" )
add_flag ( CMAKE_C_FLAGS "-size_t64 -Kgcc" )
add_flag ( CMAKE_C_FLAGS "-D__BIG_ENDIAN -D__BYTE_ORDER=__BIG_ENDIAN" )
add_flag ( CMAKE_C_FLAGS "-DSQLITE_OMIT_WAL -DHAVE_UTIME -DTHREADSAFE=0" )
set( CMAKE_RANLIB /bin/true )
set( CMAKE_SKIP_BUILD_RPATH TRUE )
set( CMAKE_C_FLAGS_DEBUGOPTIMIZED "-Chopt -g" )
set( CMAKE_C_FLAGS_DEBUG "-Cdebug -g" )
set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "-Chopt -g" )
set( CMAKE_CXX_FLAGS_DEBUG "-Cdebug -g" )
endif()
# Fixes linker errors with IBM compiler
if( WALBERLA_CXX_COMPILER_IS_IBM )
add_flag ( CMAKE_CXX_FLAGS "-qpic=large" )
endif()
# Fixes linker errors with Cray compiler
if( WALBERLA_CXX_COMPILER_IS_CRAY )
add_flag ( CMAKE_EXE_LINKER_FLAGS "-dynamic -L/opt/gcc/4.9.3/snos/lib64" )
endif()
# Silences compiler and linker warnings and information with the IBM compiler
if( WALBERLA_CXX_COMPILER_IS_IBM )
add_flag ( CMAKE_CXX_FLAGS "-qsuppress=1586-267" ) # 1586-267 (I) Inlining of specified subprogram failed due to the presence of a C++ exception handler
add_flag ( CMAKE_CXX_FLAGS "-qsuppress=1586-266" ) # 1586-266 (I) Inlining of specified subprogram failed due to the presence of a global label
add_flag ( CMAKE_CXX_FLAGS "-qsuppress=1540-0724" ) # 1540-0724 (W) The non-type template argument "2147483648" of type "T" has wrapped [coming from boost/integer_traits.hpp]
add_flag ( CMAKE_CXX_FLAGS "-qsuppress=1540-0095" ) # 1540-0095 (W) The friend function declaration ... [coming from boost/mpl/map/aux_/map0.hpp]
add_flag ( CMAKE_CXX_FLAGS "-qsuppress=1500-030" ) # 1500-030: (I) INFORMATION: [...] Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.
add_flag ( CMAKE_C_FLAGS "-qsuppress=1500-030" ) # 1500-030: (I) INFORMATION: [...] Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.
endif()
# Silences compiler and linker warnings and information with the Cray compiler
if( WALBERLA_CXX_COMPILER_IS_CRAY )
set( CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem " )
add_flag ( CMAKE_CXX_FLAGS "-h nomessage=1" ) # CC-1 The source file does not end with a new-line character.
add_flag ( CMAKE_C_FLAGS "-DSQLITE_HAVE_ISNAN" ) # SQLite will not work correctly with the -ffast-math option of GCC.
add_flag ( CMAKE_CXX_FLAGS "-DSQLITE_HAVE_ISNAN" ) # SQLite will not work correctly with the -ffast-math option of GCC.
endif()
# architecture optimization
if( WALBERLA_OPTIMIZE_FOR_LOCALHOST )
if( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag ( CMAKE_CXX_FLAGS "-march=native" )
add_flag ( CMAKE_C_FLAGS "-march=native" )
if( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag ( CMAKE_CXX_FLAGS "-xhost" )
add_flag ( CMAKE_C_FLAGS "-xhost" )
endif()
endif()
endif()
# warning flags
if( WALBERLA_CXX_COMPILER_IS_INTEL )
# system headers are also supported by intel, but cmake does not recognize that
set( CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem " )
add_flag ( CMAKE_CXX_FLAGS "-wd2928,2504,2259,1682,597" )
elseif( WALBERLA_CXX_COMPILER_IS_GNU )
add_flag ( CMAKE_CXX_FLAGS "-Wfloat-equal -Wextra" )
elseif( WALBERLA_CXX_COMPILER_IS_NEC )
add_flag ( CMAKE_CXX_FLAGS "-wall" )
endif()
if ( WARNING_PEDANTIC AND WALBERLA_CXX_COMPILER_IS_GNU )
add_flag ( CMAKE_CXX_FLAGS "-pedantic" )
endif ( )
# omit deprecated warnings
if( NOT WARNING_DEPRECATED)
if( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag( CMAKE_CXX_FLAGS "-wd1478" ) # Disable compiler warning # 1478: "declared as deprecated"
elseif( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag ( CMAKE_CXX_FLAGS "-Wno-deprecated-declarations")
endif()
endif()
if ( WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag ( CMAKE_CXX_FLAGS "-Wall -Wconversion -Wshadow -Wno-c++11-extensions -Qunused-arguments" )
add_flag ( CMAKE_CXX_FLAGS "-D'_LIBCPP_EXTERN_TEMPLATE(...)='")
endif ( )
if( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
if ( WALBERLA_STL_BOUNDS_CHECKS )
add_definitions ( "-D_GLIBCXX_DEBUG" )
endif()
endif()
#fastmath
if ( WALBERLA_BUILD_WITH_FASTMATH )
if ( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag( CMAKE_CXX_FLAGS "-fp-model fast=2 -no-prec-sqrt -no-prec-div" )
endif()
if ( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag( CMAKE_CXX_FLAGS "-ffast-math")
endif()
if( WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag( CMAKE_CXX_FLAGS "/fp:fast" )
endif()
endif()
# Xcode generator disables -isystem flag, even though current versions of Xcode support it
if(CMAKE_GENERATOR STREQUAL "Xcode")
......@@ -402,156 +275,35 @@ if(CMAKE_GENERATOR STREQUAL "Xcode")
endif()
#GCC 5+ ABI selection
if( WALBERLA_CXX_COMPILER_IS_GNU )
if( NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0.0 )
option ( WALBERLA_USE_CPP11_ABI "On GCC 5+ use the C++11 ABI" ON )
if( WALBERLA_USE_CPP11_ABI )
add_flag( CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=1" )
else()
add_flag( CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0" )
endif()
endif()
endif()
# disable Xcode 7.3+ linker deduplication pass to speed up linking in debug mode
if ( APPLE )
execute_process( COMMAND ${CMAKE_LINKER} -v OUTPUT_VARIABLE LINKER_VERSION ERROR_VARIABLE LINKER_VERSION )
string( REGEX MATCH "ld64-[0-9\\.\\-]+" LINKER_VERSION ${LINKER_VERSION} )
string( REGEX MATCHALL "[^\\-]+" LINKER_VERSION ${LINKER_VERSION} )
list( GET LINKER_VERSION 0 LINKER_TYPE )
list( GET LINKER_VERSION 1 LINKER_VERSION )
if( LINKER_TYPE STREQUAL "ld64" AND LINKER_VERSION VERSION_GREATER 264.3.101 )
add_flag( CMAKE_EXE_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
add_flag( CMAKE_MODULE_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
add_flag( CMAKE_SHARED_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
endif()
endif()
############################################################################################################################
#if ( APPLE )
# execute_process( COMMAND ${CMAKE_LINKER} -v OUTPUT_VARIABLE LINKER_VERSION ERROR_VARIABLE LINKER_VERSION )
# string( REGEX MATCH "ld64-[0-9\\.\\-]+" LINKER_VERSION ${LINKER_VERSION} )
# string( REGEX MATCHALL "[^\\-]+" LINKER_VERSION ${LINKER_VERSION} )
# list( GET LINKER_VERSION 0 LINKER_TYPE )
# list( GET LINKER_VERSION 1 LINKER_VERSION )
# if( LINKER_TYPE STREQUAL "ld64" AND LINKER_VERSION VERSION_GREATER 264.3.101 )
# add_flag( CMAKE_EXE_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
# add_flag( CMAKE_MODULE_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
# add_flag( CMAKE_SHARED_LINKER_FLAGS_DEBUG "-Wl,-no_deduplicate")
# endif()
#endif()
############################################################################################################################
##
## Find optional C++ libraries
##
############################################################################################################################
try_compile( WALBERLA_USE_STD_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_FILESYSTEM ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_FILESYSTEM )
message( STATUS "Found std::filesystem")
else()
try_compile( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
message( STATUS "Found std::experimental::filesystem")
endif()
if( NOT WALBERLA_CXX_COMPILER_IS_MSVC AND NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
unset( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM CACHE )
try_compile( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION}
LINK_LIBRARIES stdc++fs )
if( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
message( STATUS "Found std::experimental::filesystem in libstdc++fs")
list ( APPEND SERVICE_LIBS -lstdc++fs )
endif()
endif()
if( NOT WALBERLA_CXX_COMPILER_IS_MSVC AND NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
unset( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM CACHE )
try_compile( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION}
LINK_LIBRARIES c++experimental )
if( WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
message( STATUS "Found std::experimental::filesystem in libc++experimental")
list ( APPEND SERVICE_LIBS -lc++experimental )
endif()
endif()
endif()
try_compile( WALBERLA_USE_STD_ANY "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdAny.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_ANY ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_ANY )
message( STATUS "Found std::any")
else()
try_compile( WALBERLA_USE_STD_EXPERIMENTAL_ANY "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdAny.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_ANY ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_EXPERIMENTAL_ANY )
message( STATUS "Found std::experimental::any")
endif()
endif()
try_compile( WALBERLA_USE_STD_OPTIONAL "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdOptional.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_OPTIONAL ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_OPTIONAL )
message( STATUS "Found std::optional")
else()
try_compile( WALBERLA_USE_STD_EXPERIMENTAL_OPTIONAL "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdOptional.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_OPTIONAL ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_EXPERIMENTAL_OPTIONAL )
message( STATUS "Found std::experimental::optional")
endif()
endif()
try_compile( WALBERLA_USE_STD_VARIANT "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestStdVariant.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_VARIANT ${CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION} )
if( WALBERLA_USE_STD_VARIANT )
message( STATUS "Found std::variant")
endif()
############################################################################################################################
##
## Visual Studio Setup
## Python
##
############################################################################################################################
if ( WALBERLA_CXX_COMPILER_IS_MSVC )
string( REGEX REPLACE "[/-]W[0-4]" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ) # remove default warning flags
option ( WALBERLA_GROUP_PROJECTS "Flag if the projects are grouped or in a flat hierarchy" ON )
option ( WALBERLA_GROUP_FILES "Flag if the files are grouped or in a flat hierarchy" ON )
set_property ( GLOBAL PROPERTY USE_FOLDERS ${WALBERLA_GROUP_PROJECTS} )
option ( WALBERLA_VS_MULTI_PROCESS_BUILD "Use the /mp option for VS builds" ON )
if( WALBERLA_VS_MULTI_PROCESS_BUILD )
add_flag ( CMAKE_CXX_FLAGS "-MP" ) # enable multi-threaded compiling
endif()
add_definitions ( "-DNOMINMAX" ) # Disable Min/Max-Macros
add_definitions ( "-D_WIN32_WINNT=0x501" ) # Minimum Windows versions is Windows XP
add_definitions ( "-DWINVER=0x501" ) # Minimum Windows versions is Windows XP
add_definitions ( "-D_CRT_SECURE_NO_WARNINGS" ) # disable warnings promoting Microsoft's security enhanced CRT
add_definitions ( "-D_SCL_SECURE_NO_WARNINGS" ) # disable warnings triggered by Microsoft's checked iterators
add_flag ( CMAKE_CXX_FLAGS "-W4" ) # set warning level to maximum
add_flag ( CMAKE_CXX_FLAGS "-bigobj" ) # enable big object files
add_flag ( CMAKE_CXX_FLAGS "-wd4127" ) # disable compiler warning C4127: "conditional expression is constant"
add_flag ( CMAKE_CXX_FLAGS "-wd4512" ) # disable compiler warning C4512: "assignment operator could not be generated"
add_flag ( CMAKE_CXX_FLAGS "-wd4913" ) # disable compiler warning C4512: "user defined binary operator ',' exists but
# no overload could convert all operands, default built-in binary operator ','
# used"
add_flag ( CMAKE_CXX_FLAGS "-wd4702" ) # disable compiler warning C4702: "unreachable code"
add_flag ( CMAKE_CXX_FLAGS "-wd4505" ) # disable compiler warning C4505: "unreferenced local function has been removed"
add_flag ( CMAKE_CXX_FLAGS "-wd4503" ) # disable compiler warning C4503: "'identifier' : decorated name length exceeded, name was truncated"
if ( WARNING_ERROR )
add_flag ( CMAKE_CXX_FLAGS "-WX" ) # Treat warnings as errors
endif ( )
if( NOT WARNING_DEPRECATED)
add_definitions( "-D_CRT_SECURE_NO_DEPRECATE" )
add_definitions( "-D_SCL_SECURE_NO_DEPRECATE" )
add_flag ( CMAKE_CXX_FLAGS "-wd4996" ) # Disable compiler warning C4996: "declared as deprecated"
endif()
endif ( )
############################################################################################################################
#############################################################################################################################
if ( WALBERLA_BUILD_WITH_CODEGEN OR WALBERLA_BUILD_WITH_PYTHON )
cmake_policy( SET CMP0094 NEW )
set( Python_FIND_FRAMEWORK LAST )
find_package( Python COMPONENTS Interpreter Development )
endif ()
############################################################################################################################
##
......@@ -559,14 +311,28 @@ endif ( )
##
#############################################################################################################################
if ( WALBERLA_BUILD_WITH_CODEGEN )
find_package( PythonInterp 3 QUIET REQUIRED)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from pystencils.include import get_pystencils_include_path; print(get_pystencils_include_path())"
RESULT_VARIABLE PYTHON_RET_CODE
OUTPUT_VARIABLE PYSTENCILS_INCLUDE_PATH)
if(NOT PYTHON_RET_CODE EQUAL 0)
message(FATAL_ERROR "WALBERLA_BUILD_WITH_CODEGEN activated and pystencils_walberla package not found")
set(LBMPY_MIN_VERSION 1.3.7)
execute_process(COMMAND ${Python_EXECUTABLE} -c "import lbmpy; print(lbmpy.__version__)"
RESULT_VARIABLE LBMPY_FOUND OUTPUT_VARIABLE LBMPY_VERSION)
if(NOT LBMPY_FOUND EQUAL 0)
message(FATAL_ERROR "WALBERLA_BUILD_WITH_CODEGEN activated but pystencils or lbmpy package not found.
Please install lbmpy e.g.: 'pip3 install lbmpy'")
elseif(LBMPY_VERSION VERSION_LESS LBMPY_MIN_VERSION)
string(STRIP ${LBMPY_VERSION} LBMPY_VERSION_STRIP)
message(WARNING
"lbmpy version ${LBMPY_VERSION_STRIP} was found.\n"
"We recommend to use at least version ${LBMPY_MIN_VERSION}.")
endif()
execute_process(COMMAND ${Python_EXECUTABLE} -c "from pystencils.include import get_pystencils_include_path; print(get_pystencils_include_path())"
OUTPUT_VARIABLE PYSTENCILS_INCLUDE_PATH)
include_directories( ${PYSTENCILS_INCLUDE_PATH} )
execute_process(COMMAND ${Python_EXECUTABLE} -c "import jinja2"
RESULT_VARIABLE JINJA2_FOUND )
if(NOT JINJA2_FOUND EQUAL 0)
message(FATAL_ERROR "WALBERLA_BUILD_WITH_CODEGEN activated and jinja2 package not found.
Please install jinja2 e.g.: 'pip3 install jinja2'")
endif()
endif()
############################################################################################################################
......@@ -580,52 +346,19 @@ endif()
#############################################################################################################################
if ( WALBERLA_BUILD_WITH_PYTHON )
set ( waLBerla_REQUIRED_MIN_PYTHON_VERSION "2.7")
include(FetchContent)
find_package( PythonInterp 3 QUIET) # search for Python3 first
find_package( PythonInterp QUIET) # fallback to any Python version
FetchContent_Declare(
pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11.git
GIT_TAG v2.13.6
)
find_package( PythonLibs QUIET REQUIRED)
FetchContent_MakeAvailable(pybind11)
if( PYTHONLIBS_VERSION_STRING VERSION_LESS ${waLBerla_REQUIRED_MIN_PYTHON_VERSION} )
message( FATAL_ERROR "Found old python library: ${PYTHONLIBS_VERSION_STRING} need at least ${waLBerla_REQUIRED_MIN_PYTHON_VERSION}" )
endif()
option( WALBERLA_USE_PYTHON_DEBUG_LIBRARY "Make use of the python debug library" OFF )
if( WALBERLA_USE_PYTHON_DEBUG_LIBRARY )
# you have to make sure this matches the settings you compiled boost with!
add_definitions( "-DBOOST_DEBUG_PYTHON" )
endif()
if( NOT (PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR ) )
message( FATAL_ERROR "Couldn't find any python library" )
endif()
SET( WALBERLA_BUILD_WITH_PYTHON 1 )
include_directories( ${PYTHON_INCLUDE_DIR} )
list ( APPEND SERVICE_LIBS ${PYTHON_LIBRARY} )
if( NOT WALBERLA_CXX_COMPILER_IS_MSVC )
list ( APPEND SERVICE_LIBS -lutil )
endif()
if ( WALBERLA_BUILD_WITH_PYTHON_MODULE )
# a python module is a shared library - so everything has to be compiled to position independent code
# otherwise linking the static libs into the shared lib will result in errors
if( NOT WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag ( CMAKE_CXX_FLAGS "-fPIC" )
add_flag ( CMAKE_C_FLAGS "-fPIC" )
endif()
endif()
if( MSVC10 )
include(CMakeDependentOption)
CMAKE_DEPENDENT_OPTION( PYTHON_FIXED_HYPOT_REDEFINITION "fixed _hypot redefinition by python" OFF "WALBERLA_BUILD_WITH_PYTHON" OFF )
if( NOT PYTHON_FIXED_HYPOT_REDEFINITION )
message( WARNING "Make sure you modified your pyconfig.h that _hypot is not redefined -> see: http://connect.microsoft.com/VisualStudio/feedback/details/633988/warning-in-math-h-line-162-re-nonstandard-extensions-used" )
endif()
endif()
# a python module is a shared library - so everything has to be compiled to position independent code
# otherwise linking the static libs into the shared lib will result in errors
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(WALBERLA_BUILD_DOC)
......@@ -638,138 +371,6 @@ if ( WALBERLA_BUILD_WITH_PYTHON )
endif()
############################################################################################################################
##
## BOOST Libraries
##
#############################################################################################################################
set ( waLBerla_REQUIRED_MIN_BOOST_VERSION "1.48")
set ( Boost_NO_BOOST_CMAKE ON)
if ( NOT WALBERLA_USE_STD_FILESYSTEM AND NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM )
list ( APPEND waLBerla_REQUIRED_BOOST_COMPONENTS filesystem system )
else()
list ( APPEND waLBerla_OPTIONAL_BOOST_COMPONENTS system )
endif()
if ( WALBERLA_BUILD_WITH_PYTHON AND WALBERLA_CXX_COMPILER_IS_MSVC )
get_filename_component(PYTHON_REQUIRED_LIB ${PYTHON_LIBRARY} NAME_WE)
list( APPEND waLBerla_REQUIRED_BOOST_COMPONENTS ${PYTHON_REQUIRED_LIB} )
endif()
# This variable is necessary, if the CMAKE version used is not aware of a more recent boost version (keep this up to date!)
set ( Boost_ADDITIONAL_VERSIONS
"1.45" "1.45.0" "1.46" "1.46.0" "1.46.1" "1.47" "1.47.0" "1.48" "1.48.0" "1.49" "1.49.0"
"1.50" "1.50.0" "1.51" "1.51.0" "1.52" "1.52.0" "1.53" "1.53.0" "1.54" "1.54.0" "1.55" "1.55.0"
"1.56" "1.56.0" "1.57" "1.57.0" "1.58" "1.58.0" "1.59" "1.59.0" "1.60" "1.60.0" "1.61" "1.61.0" "1.62" "1.62.0" "1.63" "1.63.0"
"1.64.0" "1.65.0" "1.65.1" "1.66.0" "1.67.0" "1.68.0" "1.69.0" "1.70.0" "1.71.0")
set ( Boost_USE_STATIC_LIBS OFF CACHE BOOL "Use boost static libraries" )
set ( Boost_USE_MULTITHREADED OFF CACHE BOOL "Use boost multithreaded libraries" )
set ( Boost_USE_STATIC_RUNTIME OFF CACHE BOOL "Use boost libraries statically linked to runtime libs" )
# if you defined BOOST_ROOT or BOOST_BASE in your environment use it here to find boost too
if ( NOT BOOST_ROOT )
foreach ( var BOOST_ROOT BOOST_BASE )
if ( NOT "$ENV{${var}}" STREQUAL "" )
message ( STATUS "Use environment boost directory: $ENV{${var}}" )
set ( BOOST_ROOT $ENV{${var}} CACHE INTERNAL "")
break ( )
endif ( )
endforeach ( )
endif ( )
find_package ( Boost ${waLBerla_REQUIRED_MIN_BOOST_VERSION} COMPONENTS ${waLBerla_REQUIRED_BOOST_COMPONENTS} OPTIONAL_COMPONENTS ${waLBerla_OPTIONAL_BOOST_COMPONENTS} QUIET )
if( NOT Boost_FOUND )
message ( WARNING
"The specified configuration of the BOOST libraries was not found on your system! Now trying some other configuration..." )
foreach ( Boost_USE_STATIC_LIBS ON OFF )
foreach ( Boost_USE_MULTITHREADED ON OFF )
find_package ( Boost ${waLBerla_REQUIRED_MIN_BOOST_VERSION} COMPONENTS ${waLBerla_REQUIRED_BOOST_COMPONENTS} OPTIONAL_COMPONENTS ${waLBerla_OPTIONAL_BOOST_COMPONENTS} QUIET )
if ( Boost_FOUND )
set ( Boost_USE_STATIC_LIBS ${Boost_USE_STATIC_LIBS} CACHE BOOL "Use boost static libraries" FORCE )
set ( Boost_USE_MULTITHREADED ${Boost_USE_MULTITHREADED} CACHE BOOL "Use boost multithreaded libraries" FORCE )
set ( Boost_USE_MULTITHREADED_LIBRARY ${Boost_USE_MULTITHREADED} )
message ( STATUS "Working configuration of the BOOST libraries was found :o)!" )
message ( STATUS "Boost_USE_STATIC_LIBS and Boost_USE_MULTITHREADED was adapted accordingly." )
BREAK ( )
endif ( Boost_FOUND )
endforeach ( Boost_USE_MULTITHREADED )
if ( Boost_FOUND )
BREAK ( )
endif ( Boost_FOUND )
endforeach ( Boost_USE_STATIC_LIBS )
endif ( NOT Boost_FOUND )
if ( Boost_FOUND )
if(CMAKE_GENERATOR STREQUAL "Xcode")
# this is needed because the SYSTEM flag to include_directories does not work
add_flag ( CMAKE_CXX_FLAGS "-isystem ${Boost_INCLUDE_DIRS}" )
else()
include_directories ( SYSTEM ${Boost_INCLUDE_DIRS} )
endif()
if( waLBerla_REQUIRED_BOOST_COMPONENTS )
link_directories ( ${Boost_LIBRARY_DIRS} )
list ( APPEND SERVICE_LIBS ${Boost_LIBRARIES} )
endif()
add_definitions ( -DBOOST_ALL_NO_LIB ) # Disable Boost auto-linking (CMAKE does that for us...)
#fix for static lib usage: http://stackoverflow.com/questions/11812463/boost-python-link-errors-under-windows-msvc10
if( PYTHONLIBS_FOUND AND Boost_USE_STATIC_LIBS)
add_definitions( -DBOOST_PYTHON_STATIC_LIB )
endif()
#fix for strange link behaviour of boost to python: boost only links to 'pyhton*.lib' and not to the absolute path
if( WIN32 AND PYTHONLIBS_FOUND )
get_filename_component( PYTHON_LIBRARY_DIR ${PYTHON_INCLUDE_DIR} PATH )
link_directories( ${PYTHON_LIBRARY_DIR}/libs )
list( APPEND LINK_DIRS ${PYTHON_LIBRARY_DIR}/libs )
endif()
set( WALBERLA_BUILD_WITH_BOOST TRUE CACHE INTERNAL "Build with Boost" )
else( Boost_FOUND )
if( (WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM OR WALBERLA_USE_STD_FILESYSTEM) AND (WALBERLA_USE_STD_EXPERIMENTAL_ANY OR WALBERLA_USE_STD_ANY) AND (WALBERLA_USE_STD_EXPERIMENTAL_OPTIONAL OR WALBERLA_USE_STD_OPTIONAL) AND NOT WALBERLA_BUILD_WITH_PYTHON)
# we don't really need Boost
set( WALBERLA_BUILD_WITH_BOOST FALSE CACHE INTERNAL "Build with Boost" )
else()
# Search again, this time with the REQUIRED option. This will give a CMAKE error and a detailed error message for the user
find_package ( Boost ${waLBerla_REQUIRED_MIN_BOOST_VERSION} REQUIRED ${waLBerla_REQUIRED_BOOST_COMPONENTS} OPTIONAL_COMPONENTS ${waLBerla_OPTIONAL_BOOST_COMPONENTS} )
if( (WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM OR WALBERLA_USE_STD_FILESYSTEM) AND (WALBERLA_USE_STD_EXPERIMENTAL_ANY OR WALBERLA_USE_STD_ANY) AND (WALBERLA_USE_STD_EXPERIMENTAL_OPTIONAL OR WALBERLA_USE_STD_OPTIONAL) )
message(WARNING "If you set WALBERLA_BUILD_WITH_PYTHON=OFF, you can build without the Boost library.")
endif()
endif()
endif( Boost_FOUND )
# Check if Python3 found and look for according boost python library
if ( WALBERLA_BUILD_WITH_PYTHON AND NOT WALBERLA_CXX_COMPILER_IS_MSVC)
SET(_boost_MULTITHREADED "")
if (Boost_USE_MULTITHREADED OR Boost_USE_MULTITHREADED_LIBRARY)
SET(_boost_MULTITHREADED "-mt")
endif()
if( PYTHON_LIBRARY MATCHES "python3" )
find_library( BOOST_PYTHON_LIBRARY NAMES
boost_python37${_boost_MULTITHREADED} boost_python36${_boost_MULTITHREADED} boost_python35${_boost_MULTITHREADED}
boost_python-py37${_boost_MULTITHREADED} boost_python-py36${_boost_MULTITHREADED} boost_python-py35${_boost_MULTITHREADED}
boost_python-py34${_boost_MULTITHREADED} boost_python-py33${_boost_MULTITHREADED}
boost_python3${_boost_MULTITHREADED}
boost_python${_boost_MULTITHREADED}
PATHS ${Boost_LIBRARY_DIRS} NO_DEFAULT_PATH )
else()
find_library( BOOST_PYTHON_LIBRARY NAMES boost_python${_boost_MULTITHREADED}
PATHS ${Boost_LIBRARY_DIRS} NO_DEFAULT_PATH )
endif()
message(STATUS "Using Boost Python Library ${BOOST_PYTHON_LIBRARY}" )
list ( APPEND SERVICE_LIBS ${BOOST_PYTHON_LIBRARY} )
endif()
############################################################################################################################
############################################################################################################################
##
......@@ -777,29 +378,17 @@ endif()
##
############################################################################################################################
if ( NOT WIN32 )
add_flag( CMAKE_CXX_FLAGS "-pthread" )
endif()
############################################################################################################################
##
## backtrace may be in a separate library
##
############################################################################################################################
if ( NOT WIN32 AND (WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG))
find_package ( Backtrace QUIET )
if ( Backtrace_FOUND )
list ( APPEND SERVICE_LIBS ${Backtrace_LIBRARIES} )
set ( WALBERLA_BUILD_WITH_BACKTRACE ON )
set ( WALBERLA_BACKTRACE_HEADER ${Backtrace_HEADER} )
endif ( Backtrace_FOUND )
set( THREADS_PREFER_PTHREAD_FLAG TRUE )
find_package(Threads)
if ( Threads_FOUND )
if( CMAKE_USE_PTHREADS_INIT )
add_flag( CMAKE_CXX_FLAGS "-pthread" )
else()
add_flag( CMAKE_CXX_FLAGS "${CMAKE_THREAD_LIBS_INIT}" )
endif()
endif()
############################################################################################################################
##
## MPI
......@@ -879,73 +468,30 @@ endif()
############################################################################################################################
##
## Qt
##
############################################################################################################################
option (WALBERLA_ENABLE_GUI "This flag builds the graphical user interface, depends on Qt Libraries")
if ( WALBERLA_ENABLE_GUI )
find_package( Qt4 COMPONENTS QtCore QtGui QtOpenGL QtXml REQUIRED )
set( OpenGL_GL_PREFERENCE LEGACY )
find_package( OpenGL REQUIRED )
INCLUDE( ${QT_USE_FILE} )
list ( APPEND SERVICE_LIBS ${OPENGL_LIBRARIES} ${QT_LIBRARIES} )
# Workaround for Qt4 moc and newer boost versions - moc cannot parse BOOST_JOIN
# so additional defines are passed to the moc compiler that prevent the problematic header to be parsed
set( QT_MOC_EXECUTABLE ${QT_MOC_EXECUTABLE} -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED )
endif(WALBERLA_ENABLE_GUI)
############################################################################################################################
############################################################################################################################
##
## METIS
##
############################################################################################################################
if ( WALBERLA_BUILD_WITH_PARMETIS )
# metis is required for parmetis
set( WALBERLA_BUILD_WITH_METIS TRUE FORCE )
endif ()
if ( WALBERLA_BUILD_WITH_METIS )
find_package ( Metis QUIET )
find_package( Metis REQUIRED )
if ( METIS_FOUND )
include_directories( ${METIS_INCLUDE_DIRS} )
link_directories ( ${METIS_LIBRARY_DIR} )
list ( APPEND SERVICE_LIBS ${METIS_LIBRARIES} )
set ( WALBERLA_BUILD_WITH_METIS TRUE )
else()
set ( WALBERLA_BUILD_WITH_METIS OFF CACHE BOOL "Build with metis graph partitioner" FORCE )
endif()
else()
set ( METIS_FOUND OFF CACHE BOOL "Metis found" FORCE )
endif()
include_directories( ${METIS_INCLUDE_DIRS} )
list( APPEND SERVICE_LIBS ${METIS_LIBRARIES} )
endif()
if ( WALBERLA_BUILD_WITH_PARMETIS )
find_path(PARMETIS_INCLUDE_DIR parmetis.h
/usr/local/include
/usr/include
${PARMETIS_ROOT}/include
$ENV{PARMETIS_ROOT}/include
)
find_library(PARMETIS_LIBRARY parmetis
/usr/local/lib
/usr/lib
${PARMETIS_ROOT}/lib
$ENV{PARMETIS_ROOT}/lib
)
if( PARMETIS_INCLUDE_DIR AND PARMETIS_LIBRARY AND METIS_LIBRARY )
include_directories( ${PARMETIS_INCLUDE_DIR} )
list ( APPEND SERVICE_LIBS ${PARMETIS_LIBRARY} ${METIS_LIBRARY} )
endif()
find_package( Parmetis REQUIRED )
include_directories( ${PARMETIS_INCLUDE_DIR} )
list( APPEND SERVICE_LIBS ${PARMETIS_LIBRARY} )
endif()
############################################################################################################################
......@@ -958,22 +504,24 @@ endif()
##
############################################################################################################################
if( WALBERLA_BUILD_WITH_MPI )
find_package( PFFT )
find_package( FFTW3 )
set( FFT_REQUIRED_LIBRARIES pfft fftw3_mpi fftw3 )
if( PFFT_FOUND AND FFTW3_MPI_FOUND )
set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
include_directories( SYSTEM ${PFFT_INCLUDE_DIR} ${FFTW3_MPI_INCLUDE_DIR} )
list( APPEND SERVICE_LIBS ${PFFT_LIBRARIES} ${FFTW3_LIBRARIES} ${FFTW3_MPI_LIBRARIES} )
endif()
else()
find_package( FFTW3 )
set( FFT_REQUIRED_LIBRARIES fftw3 )
if ( FFTW3_FOUND )
set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
include_directories( SYSTEM ${FFTW3_INCLUDE_DIR} )
list( APPEND SERVICE_LIBS ${FFTW3_LIBRARIES} )
if ( WALBERLA_BUILD_WITH_FFTW )
if( WALBERLA_BUILD_WITH_MPI )
find_package( PFFT )
find_package( FFTW3 )
set( FFT_REQUIRED_LIBRARIES pfft fftw3_mpi fftw3 )
if( PFFT_FOUND AND FFTW3_MPI_FOUND )
set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
include_directories( SYSTEM ${PFFT_INCLUDE_DIR} ${FFTW3_MPI_INCLUDE_DIR} )
list( APPEND SERVICE_LIBS ${PFFT_LIBRARIES} ${FFTW3_LIBRARIES} ${FFTW3_MPI_LIBRARIES} )
endif()
else()
find_package( FFTW3 )
set( FFT_REQUIRED_LIBRARIES fftw3 )
if ( FFTW3_FOUND )
set( WALBERLA_BUILD_WITH_FFT TRUE CACHE INTERNAL "Build with FFT" )
include_directories( SYSTEM ${FFTW3_INCLUDE_DIR} )
list( APPEND SERVICE_LIBS ${FFTW3_LIBRARIES} )
endif()
endif()
endif()
......@@ -994,6 +542,7 @@ if( (NOT DEFINED WALBERLA_BUILD_WITH_OPENMESH) OR WALBERLA_BUILD_WITH_OPENMESH )
add_definitions(-D_USE_MATH_DEFINES )
endif()
else()
message(" If OpenMesh required, set OPENMESH_LIBRARY_DIR to the OpenMesh directory.")
set( WALBERLA_BUILD_WITH_OPENMESH OFF CACHE BOOL "Build with OpenMesh support" FORCE )
endif()
endif()
......@@ -1012,18 +561,6 @@ set( CMAKE_MODULE_LINKER_FLAGS_DEBUGOPTIMIZED ${CMAKE_MODULE_LINKER_FLAGS_DEBUG}
set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS Debug DebugOptimized)
if ( WALBERLA_CXX_COMPILER_IS_MSVC )
string(REPLACE "/Od" "/O2" CMAKE_C_FLAGS_DEBUGOPTIMIZED ${CMAKE_C_FLAGS_DEBUGOPTIMIZED})
string(REPLACE "/Ob0" "/Ob2" CMAKE_C_FLAGS_DEBUGOPTIMIZED ${CMAKE_C_FLAGS_DEBUGOPTIMIZED})
string(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUGOPTIMIZED ${CMAKE_C_FLAGS_DEBUGOPTIMIZED})
string(REPLACE "/Od" "/O2" CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
string(REPLACE "/Ob0" "/Ob2" CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED})
elseif( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
set( CMAKE_C_FLAGS_DEBUGOPTIMIZED "${CMAKE_C_FLAGS_DEBUGOPTIMIZED} -O3" )
set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} -O3" )
endif()
set(CMAKE_C_FLAGS_DEBUGOPTIMIZED ${CMAKE_C_FLAGS_DEBUGOPTIMIZED} CACHE STRING
"Flags used by the compiler during DebugOptimized builds")
set(CMAKE_CXX_FLAGS_DEBUGOPTIMIZED ${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} CACHE STRING
......@@ -1065,23 +602,21 @@ endif()
option ( WALBERLA_THREAD_SAFE_LOGGING "Enables/Disables thread-safe logging" ON )
if ( WALBERLA_BUILD_WITH_OPENMP )
if ( WALBERLA_CXX_COMPILER_IS_INTEL AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "16.0.3" )
add_flag ( CMAKE_C_FLAGS "-openmp" )
add_flag ( CMAKE_CXX_FLAGS "-openmp" )
elseif ( WALBERLA_CXX_COMPILER_IS_NEC )
add_flag ( CMAKE_C_FLAGS "-Popenmp" )
add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
else()
find_package( OpenMP )
add_flag ( CMAKE_C_FLAGS "${OpenMP_C_FLAGS}" )
add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
if ( WALBERLA_BUILD_WITH_OPENMP AND NOT OpenMP_FOUND )
if( APPLE AND EXISTS /opt/local/lib/libomp AND EXISTS /opt/local/include/libomp ) # find libomp from MacPorts
set( CMAKE_FRAMEWORK_PATH /opt/local/lib/libomp )
set( CMAKE_INCLUDE_PATH /opt/local/include/libomp )
endif()
else()
if ( WALBERLA_CXX_COMPILER_IS_CRAY )
add_flag ( CMAKE_C_FLAGS "-h noomp" )
add_flag ( CMAKE_CXX_FLAGS "-h noomp" )
find_package( OpenMP )
if (OpenMP_FOUND)
add_flag ( CMAKE_C_FLAGS "${OpenMP_C_FLAGS}" )
add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
if( OpenMP_CXX_INCLUDE_DIRS )
include_directories( ${OpenMP_CXX_INCLUDE_DIRS} )
endif()
else()
message(FATAL_ERROR "Could NOT enable OpenMP")
endif()
endif()
############################################################################################################################
......@@ -1094,79 +629,49 @@ endif()
##
############################################################################################################################
if ( WALBERLA_BUILD_WITH_CUDA )
get_directory_property(COMPILE_DEFINITIONS_SAVED_STATE DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMPILE_DEFINITIONS)
# cleanup compile definitions for CUDA (remove generator expression and empty elements which lead to warnings)
set(CLEANED_COMPILE_DEFINITIONS )
foreach( element ${COMPILE_DEFINITIONS_SAVED_STATE})
if(NOT ${element} MATCHES "^\\$")
list(APPEND CLEANED_COMPILE_DEFINITIONS ${element})
endif()
endforeach()
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS CLEANED_COMPILE_DEFINITIONS)
# set ( BUILD_SHARED_LIBS ON )
set ( CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON )
if( NOT WALBERLA_CXX_COMPILER_IS_MSVC )
set ( CUDA_PROPAGATE_HOST_FLAGS OFF CACHE BOOL "" )
if (WALBERLA_BUILD_WITH_HIP)
message(FATAL_ERROR "For GPU support either use CUDA or HIP. Both simultaneously is not supported.")
endif()
if ( (NOT DEFINED CUDA_HOST_COMPILER) AND (${CMAKE_C_COMPILER} MATCHES "ccache") )
string ( STRIP "${CMAKE_C_COMPILER_ARG1}" stripped_compiler_string )
find_program ( CUDA_HOST_COMPILER ${stripped_compiler_string} )
endif ()
find_package ( CUDA REQUIRED )
if ( CUDA_FOUND )
include_directories ( ${CUDA_INCLUDE_DIRS} )
list ( APPEND SERVICE_LIBS ${CUDA_LIBRARIES} )
include(CheckLanguage)
check_language(CUDA)
if( CMAKE_CUDA_COMPILER )
list( APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets")
find_library( NVTX_LIBRARY nvToolsExt PATHS ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 )
if( NVTX_LIBRARY )
set( WALBERLA_CUDA_NVTX_AVAILABLE 1)
list ( APPEND SERVICE_LIBS ${NVTX_LIBRARY} )
if(${CMAKE_VERSION} VERSION_GREATER "3.18.0" AND NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
set(CMAKE_CUDA_ARCHITECTURES OFF)
message(WARNING "CMAKE_CUDA_ARCHITECTURES was not set. It is automatically set to: ${CMAKE_CUDA_ARCHITECTURES}")
endif()
if ( NOT "${CUDA_NVCC_FLAGS}" MATCHES "-std=" AND NOT WALBERLA_CXX_COMPILER_IS_MSVC )
list ( APPEND CUDA_NVCC_FLAGS "-std=c++${CMAKE_CXX_STANDARD}" )
endif ()
if(CMAKE_BUILD_TYPE MATCHES Debug)
list ( APPEND CUDA_NVCC_FLAGS "-g -G" )
endif()
enable_language(CUDA)
if( WALBERLA_BUILD_WITH_FASTMATH )
list ( APPEND CUDA_NVCC_FLAGS "-use_fast_math" )
endif()
#include directories and cudart lib is needed for cpp files that use cuda headers/libs
include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
find_library(CUDART_LIBRARY cudart ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
list ( APPEND SERVICE_LIBS ${CUDART_LIBRARY} )
# Bug with gcc5 and cuda7.5:
#list( APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED -D_FORCE_INLINES -D__STRICT_ANSI__")
find_library( NVTX_LIBRARY nvToolsExt ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES} )
list ( APPEND SERVICE_LIBS ${NVTX_LIBRARY} )
# NOTICE: exisiting cuda flags are overwritten
#set ( CUDA_NVCC_FLAGS "--compiler-bindir=/usr/bin/g++-4.3" )
#set ( CUDA_NVCC_FLAGS "-arch sm_20" )
#CUDA_FOUND is need for our cmake mechanism
set ( CUDA_FOUND TRUE )
set (WALBERLA_BUILD_WITH_GPU_SUPPORT TRUE)
else()
message( WARNING "CUDA could not be enabled. The host compiler might not be compatible. Check CMakeFiles/CMakeError.log for more information" )
set ( WALBERLA_BUILD_WITH_CUDA FALSE )
endif ( )
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS_SAVED_STATE}" )
endif ( )
############################################################################################################################
if (WALBERLA_BUILD_WITH_CUDA AND (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "11.0" OR CMAKE_VERSION VERSION_LESS 3.18.0))
# CUDA < 11 does not support C++17. std::experimental::any works with C++14, unlike std::any.
set(CMAKE_CUDA_STANDARD 14)
set(WALBERLA_USE_STD_EXPERIMENTAL_ANY 1)
endif()
############################################################################################################################
##
## Testing Coverage
##
############################################################################################################################
if (WALBERLA_BUILD_WITH_GCOV AND CMAKE_COMPILER_IS_GNUCXX )
add_flag ( CMAKE_CXX_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" )
add_flag ( LD_FLAGS "-fprofile-arcs -ftest-coverage" )
# Can be used in CMake files containing generated files where the file suffix is dependent on the target
if (WALBERLA_BUILD_WITH_CUDA AND CUDA_FOUND)
set(CODEGEN_FILE_SUFFIX "cu")
else()
set(CODEGEN_FILE_SUFFIX "cpp")
endif()
############################################################################################################################
......@@ -1174,21 +679,36 @@ endif()
############################################################################################################################
##
## Profiling with gprof
## ROCm HIP
##
############################################################################################################################
if ( WALBERLA_BUILD_WITH_GPROF )
if ( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag ( CMAKE_CXX_FLAGS "-pg" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "-pg" )
elseif ( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag ( CMAKE_CXX_FLAGS "-pg" )
if ( WALBERLA_BUILD_WITH_HIP )
if (WALBERLA_BUILD_WITH_CUDA)
message(FATAL_ERROR "For GPU support either use CUDA or HIP. Both simultaneously is not supported.")
endif()
endif()
if (${CMAKE_VERSION} VERSION_LESS "3.21.0")
message(FATAL_ERROR "For HIP support CMake > 3.21.0 is needed. Please install a newer version")
endif()
include(CheckLanguage)
check_language(HIP)
if( CMAKE_HIP_COMPILER )
enable_language(HIP)
# since waLBerla also supports CUDA we only use HIP on an AMD platform
add_compile_definitions(__HIP_PLATFORM_AMD__)
# include_directories(${HSA_HEADER})
set (WALBERLA_BUILD_WITH_GPU_SUPPORT TRUE)
else()
message("HIP compiler not found. HIP support is not possible")
set ( WALBERLA_BUILD_WITH_HIP FALSE )
endif ( )
endif ( )
############################################################################################################################
############################################################################################################################
##
## Likwid Marker API
......@@ -1196,7 +716,7 @@ endif()
############################################################################################################################
if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS )
if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS AND NOT LIKWID_FOUND )
find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
find_path( LIKWID_INCLUDE_DIR likwid.h HINTS $ENV{LIKWID_INCDIR} $ENV{LIKWID_ROOT}/include )
......@@ -1219,66 +739,54 @@ endif()
##
############################################################################################################################
if ( WALBERLA_BUILD_WITH_LTO )
if( WALBERLA_CXX_COMPILER_IS_INTEL )
add_flag( CMAKE_CXX_FLAGS_RELEASE "-ip -ipo3" )
add_flag( CMAKE_C_FLAGS_RELEASE "-ip -ipo3" )
endif()
if ( CMAKE_COMPILER_IS_GNUCXX )
add_flag ( CMAKE_C_FLAGS_RELEASE "-flto=3" )
add_flag ( CMAKE_CXX_FLAGS_RELEASE "-flto=3" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "-fuse-linker-plugin" )
endif ( )
if( WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag ( CMAKE_CXX_FLAGS_RELEASE "/GL" )
add_flag ( CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG" )
add_flag ( CMAKE_SHARED_LINKER_FLAGS_RELEASE "/LTCG" )
add_flag ( CMAKE_MODULE_LINKER_FLAGS_RELEASE "/LTCG" )
endif ( )
if( WALBERLA_CXX_COMPILER_IS_IBM )
add_flag ( CMAKE_C_FLAGS_RELEASE "-qipa" )
add_flag ( CMAKE_CXX_FLAGS_RELEASE "-qipa" )
add_flag ( CMAKE_EXE_LINKER_FLAGS "-qipa" )
endif( )
cmake_policy( SET CMP0069 NEW )
include( CheckIPOSupported )
check_ipo_supported( RESULT LTO_SUPPORTED LANGUAGES CXX )
if( LTO_SUPPORTED )
set( CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE )
else()
message( WARNING "Link-time optimization is not supported with this compiler" )
endif()
endif ( )
############################################################################################################################
##
## Some more compiler flags that need to happen after any try_compile (e.g. inside FindMPI)
## Some more compiler flags that need to happen after any try_compile (e.g. inside FindMPI) (not sure if still true)
##
############################################################################################################################
# Treat warnings as errors
if ( WARNING_ERROR )
if( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag ( CMAKE_CXX_FLAGS "-pedantic-errors -Werror" )
elseif( WALBERLA_CXX_COMPILER_IS_MSVC )
add_flag ( CMAKE_CXX_FLAGS "/WX" )
elseif ( WALBERLA_CXX_COMPILER_IS_CRAY )
add_flag ( CMAKE_CXX_FLAGS "-h error_on_warning" )
endif()
set (CMAKE_COMPILE_WARNING_AS_ERROR ON)
endif ( )
############################################################################################################################
##
## Sanitizer
## Half precision
##
############################################################################################################################
if ( WALBERLA_SANITIZE_ADDRESS )
if ( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag( CMAKE_CXX_FLAGS "-fsanitize=address")
endif()
endif()
if ( WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT )
### Compiler requirements:
### Within this project, there are several checks to ensure that the template parameter 'ValueType'
### is a floating point number. The check is_floating_point<ValueType> is done primarily in our MPI implementation.
### The IEE 754 floating type format _Float16, evaluates to true only if your compiler supports the
### open C++23 standard P1467R9 (Extended floating-point types and standard names).
### Compare:
### https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html
###
### Right now (18.12.2023) this is the case only for gcc13.
### For more information see:
### https://gcc.gnu.org/projects/cxx-status.html#:~:text=Extended%20floating%2Dpoint%20types%20and%20standard%20names
### https://clang.llvm.org/cxx_status.html#:~:text=Extended%20floating%2Dpoint%20types%20and%20standard%20names
if ( WALBERLA_SANITIZE_UNDEFINED )
if ( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_CLANG )
add_flag( CMAKE_CXX_FLAGS "-fsanitize=undefined")
endif()
endif()
try_compile( WALBERLA_SUPPORT_HALF_PRECISION "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestFloat16.cpp"
CXX_STANDARD 23 OUTPUT_VARIABLE TRY_COMPILE_OUTPUT )
## message( STATUS ${TRY_COMPILE_OUTPUT} )
if ( NOT WALBERLA_SUPPORT_HALF_PRECISION )
message( FATAL_ERROR "Compiler: ${CMAKE_CXX_COMPILER} Version: ${CMAKE_CXX_COMPILER_VERSION} does not support half precision" )
endif ()
endif () # Check if WALBERLA_BUILD_WITH_HALF_PRECISION_SUPPORT is set
############################################################################################################################
# Documentation Generation
......@@ -1288,18 +796,18 @@ if (WALBERLA_BUILD_DOC)
############################################################################################################################
find_package ( Doxygen )
find_package ( HTMLHelp )
if ( HTML_HELP_COMPILER EQUAL "" )
set ( HTML_HELP_FOUND "NO" )
else ( )
set ( HTML_HELP_FOUND "YES" )
endif ( )
if ( DOXYGEN_FOUND )
set ( DOXYGEN_HTML_HEADER ${walberla_SOURCE_DIR}/doc/header.html )
set ( DOXYGEN_HTML_FOOTER ${walberla_SOURCE_DIR}/doc/footer.html )
set ( DOXYGEN_HTML_OUTPUT "html" )
configure_file ( ${walberla_SOURCE_DIR}/doc/doxygen.in ${walberla_BINARY_DIR}/doc/doxygen.cfg @ONLY )
add_custom_target ( doc ${DOXYGEN_EXECUTABLE} ${walberla_BINARY_DIR}/doc/doxygen.cfg
......@@ -1313,33 +821,6 @@ endif()
############################################################################################################################
#
# Fix compiler bugs
#
############################################################################################################################
# The NEC SX has a few issues in its standard library headers
if( WALBERLA_CXX_COMPILER_IS_NEC )
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/math.h "#include_next <math.h>\n#undef fpclassify\n#undef signbit\n#undef isfinite\n#undef isinf\n#undef isnan\n#undef isnormal\n#undef isgreater\n#undef isgreaterequal\n#undef isless\n#undef islessequal\n#undef islessgreater\n#undef isunordered\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/types.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/types.h\" \n#undef uint_t\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/acl.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/acl.h\" \n#undef uint_t\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/if_ehcpl.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/if_ehcpl.h\"\n#undef uint_t\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/ptms.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/ptms.h\" \n#undef uint_t\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/stream.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/stream.h\" \n#undef uint_t\n")
file( WRITE ${walberla_BINARY_DIR}/CMakeFiles/src/sys/strsubr.h "#define uint_t SX_UINT_T\n#include \"/SX/usr/include/sys/strsubr.h\" \n#undef uint_t\n")
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/math.h ${walberla_BINARY_DIR}/src/math.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/types.h ${walberla_BINARY_DIR}/src/sys/types.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/acl.h ${walberla_BINARY_DIR}/src/sys/acl.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/if_ehcpl.h ${walberla_BINARY_DIR}/src/sys/if_ehcpl.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/ptms.h ${walberla_BINARY_DIR}/src/sys/ptms.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/stream.h ${walberla_BINARY_DIR}/src/sys/stream.h COPYONLY )
configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/strsubr.h ${walberla_BINARY_DIR}/src/sys/strsubr.h COPYONLY )
endif()
############################################################################################################################
#
# Subdirectories
......@@ -1351,6 +832,11 @@ include_directories ( ${CMAKE_CURRENT_BINARY_DIR}/src )
# All include paths are specified relative to src/ directory
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/src )
# external
add_subdirectory( extern )
# sources
add_subdirectory ( src )
# Generate file with compile options, and add install rule for it
configure_file ( src/waLBerlaDefinitions.in.h
......@@ -1358,14 +844,10 @@ configure_file ( src/waLBerlaDefinitions.in.h
install( FILES ${walberla_BINARY_DIR}/src/waLBerlaDefinitions.h DESTINATION walberla/ )
# sources
add_subdirectory ( src )
# test
if ( WALBERLA_BUILD_TESTS )
add_subdirectory ( tests )
else()
add_subdirectory( tests EXCLUDE_FROM_ALL )
endif()
......@@ -1382,4 +864,4 @@ waLBerla_export()
############################################################################################################################
waLBerla_link_files_to_builddir( .clang-tidy )
add_subdirectory( utilities )
add_subdirectory( utilities )
\ No newline at end of file
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 23,
"patch": 0
},
"configurePresets": [
{
"name": "clang-tidy",
"generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/build/clang-tidy",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": true,
"WALBERLA_BUFFER_DEBUG": true,
"WALBERLA_BUILD_TESTS": true,
"WALBERLA_BUILD_BENCHMARKS": true,
"WALBERLA_BUILD_TUTORIALS": true,
"WALBERLA_BUILD_TOOLS": true,
"WALBERLA_BUILD_WITH_MPI": true,
"WALBERLA_BUILD_WITH_OPENMP": true,
"CMAKE_BUILD_TYPE": "Debug",
"WALBERLA_BUILD_WITH_METIS": true,
"WALBERLA_BUILD_WITH_PARMETIS": true,
"WALBERLA_BUILD_WITH_OPENMESH": true,
"WALBERLA_DOUBLE_ACCURACY": true,
"WALBERLA_LOGLEVEL": "DETAIL"
}
}
]
}
\ No newline at end of file
# waLBerla
waLBerla (widely applicable Lattice Boltzmann from Erlangen) is a massively
parallel framework for multi physics applications. Besides its original
objective, Lattice Boltzmann solvers for hydrodynamics, it now contains
modules for other applications like Multigrid and rigid body dynamics
as well. Great emphasis is placed on the interoperability between the modules
in particular the fluid-particle coupling.
It scales from laptops to current and future supercomputers while maintaining
waLBerla (widely applicable Lattice Boltzmann from Erlangen) is a massively
parallel framework for multi physics applications. Besides its original
objective, Lattice Boltzmann solvers for hydrodynamics, it now contains
modules for other applications like Multigrid and rigid body dynamics
as well. Great emphasis is placed on the interoperability between the modules
in particular the fluid-particle coupling.
It scales from laptops to current and future supercomputers while maintaining
near-perfect efficiency.
See https://www.walberla.net/ for more information and a showcase of applications.
......@@ -19,13 +19,45 @@ is documented in [Sphinx](http://walberla.net/sphinx/index.html).
## Getting started
The minimum requirements are a C++14-compliant compiler (e.g. GCC or Clang),
the [Boost](http://www.boost.org) library and the [CMake](http://www.cmake.org)
The minimum requirements are a C++17-compliant compiler (e.g. GCC or Clang)
and the [CMake](http://www.cmake.org)
build system. Furthermore, you need an MPI library (like
[Open MPI](http://www.open-mpi.org)) if you want to make use of parallel
processing capabilities. All of these dependencies are typically available in
your operating system's package manager.
### CMake
The typical steps, assuming your are in the waLBerla source directory, are:
- `mkdir build; cd build` create a build directory and change into it
- `cmake ..` call CMake with the waLBerla source directory as an argument
- `make` build waLBerla
To specify a CMake option you need to use `-D(Option)=(Value)`. For example to set the C++ compiler one can use:
`cmake -DCMAKE_CXX_COMILER=clang++`
To list and modify the CMake options the `ccmake` tool can be used. Just call `ccmake .` in your **build** directory to see and change the
CMake options and variables.
Some important CMake variables:
- `WALBERLA_BUILD_WITH_CODEGEN` Enable pystencils code generation"
- `Python_ROOT_DIR` Specify the directory of the `python` executable. e.g. `~/miniconda/bin/`
- `MPI_HOME` Specify the base directory of the MPI installation.
- `WALBERLA_BUILD_WITH_PYTHON` Support for embedding Python
- `WALBERLA_BUILD_WITH_CUDA` Enable CUDA support
For a full list of CMake Option see the [CMakeLists.txt](CMakeLists.txt) file or use `ccmake` as described above.
### Codegen and Python
To use the `lbmpy`/`pystencils` code generation please install the packages with e.g. `pip3 install lbmpy` and specify the correct python
environment when calling CMake.
In previous versions of CMake one could use `PYTHON_EXECUTABLE` or `PYTHON_ROOT_DIR` (all upper case) to specify the python executable or
the directory. This does **NOT** work anymore. Please use `Python_ROOT_DIR`.
## Get involved
### Contributing
......@@ -45,12 +77,42 @@ Many thanks go to waLBerla's [contributors](AUTHORS.txt)
### Please cite us
If you use waLBerla in a publication, please cite the following article:
- C. Godenschwager, F. Schornbaum, M. Bauer, H. Köstler, and U. Rüde. A
framework for hybrid parallel flow simulations with a trillion cells in complex
geometries. In: Proceedings of the International Conference on High Performance
Computing, Networking, Storage and Analysis, page 35. ACM, 2013.
If you use waLBerla in a publication, please cite the following articles:
Overview:
- M. Bauer et al., *waLBerla: A block-structured high-performance framework for
multiphysics simulations*. Computers & Mathematics with Applications, 2020.
https://doi.org/10.1016/j.camwa.2020.01.007.
Grid Refinement:
- F. Schornbaum and U. Rüde, *Massively parallel algorithms for the lattice boltzmann
method on nonuniform grids*. SIAM Journal on Scientific Computing, 2016.
https://doi.org/10.1137/15M1035240
LBM - Particle Coupling:
- C. Rettinger and U. Rüde, *A comparative study of fluid-particle coupling methods for
fully resolved lattice Boltzmann simulations*. Computers & Fluids, 2017.
https://doi.org/10.1016/j.compfluid.2017.05.033
Free-surface LBM:
- C. Schwarzmeier et al., *Comparison of free-surface and conservative Allen-Cahn phase-field
lattice Boltzmann method*. Journal of Computational Physics, 2023.
https://doi.org/10.1016/j.jcp.2022.111753
Allen-Cahn phase-field LBM
- M. Holzer et al., *Highly efficient lattice Boltzmann multiphase simulations of immiscible
fluids at high-density ratios on CPUs and GPUs through code generation*. The International Journal of High Performance Computing Applications, 2021.
https://doi.org/10.1177/10943420211016525
MESA-PD:
- S. Eibl and U. Rüde, *A Modular and Extensible Software Architecture for Particle Dynamics*.
Proceedings Of The 8Th International Conference On Discrete Element Methods.
https://mercurylab.co.uk/dem8/full-papers/#page-content
Carbon Nanotubes:
- G. Drozdov et al., *Densification of single-walled carbon nanotube films:
Mesoscopic distinct element method simulations and experimental validation*.
Journal of Applied Physics, 2020. https://doi.org/10.1063/5.0025505
## License
......
......@@ -2,37 +2,26 @@
# Benchmarks
if ( WALBERLA_BUILD_BENCHMARKS )
add_subdirectory ( benchmarks )
else ()
add_subdirectory ( benchmarks EXCLUDE_FROM_ALL )
endif()
# Tools
if ( WALBERLA_BUILD_TOOLS )
add_subdirectory ( tools )
else ()
add_subdirectory ( tools EXCLUDE_FROM_ALL )
endif()
# Tutorials
if ( WALBERLA_BUILD_TUTORIALS )
add_subdirectory ( tutorials )
else ()
add_subdirectory ( tutorials EXCLUDE_FROM_ALL )
endif()
# Showcases
if ( WALBERLA_BUILD_SHOWCASES )
add_subdirectory ( showcases )
else ()
add_subdirectory ( showcases EXCLUDE_FROM_ALL )
endif()
# Python module
if ( WALBERLA_BUILD_WITH_PYTHON )
add_subdirectory( pythonmodule )
# no else with "EXLUDE_FROM_ALL" here, since if WALBERLA_BUILD_WITH_PYTHON_MODULE is not activated
# waLBerla was build without -fPIC , so no linking into shared library is possible
endif()
......@@ -20,8 +20,14 @@
//======================================================================================================================
#include "blockforest/Initialization.h"
#include "blockforest/communication/UniformBufferedScheme.h"
#include "blockforest/loadbalancing/all.h"
#include "blockforest/loadbalancing/InfoCollection.h"
#include "blockforest/loadbalancing/DynamicCurve.h"
#include "blockforest/loadbalancing/DynamicDiffusive.h"
#include "blockforest/loadbalancing/DynamicParMetis.h"
#include "blockforest/loadbalancing/StaticCurve.h"
#include "blockforest/loadbalancing/StaticParMetis.h"
#include "blockforest/loadbalancing/weight_assignment/MetisAssignmentFunctor.h"
#include "blockforest/loadbalancing/weight_assignment/WeightAssignmentFunctor.h"
#include "blockforest/AABBRefinementSelection.h"
#include "boundary/all.h"
......@@ -35,7 +41,6 @@
#include "core/timing/RemainingTimeLogger.h"
#include "core/mpi/Broadcast.h"
#include "domain_decomposition/SharedSweep.h"
#include "domain_decomposition/BlockSweepWrapper.h"
#include "field/AddToStorage.h"
......@@ -43,26 +48,21 @@
#include "field/communication/PackInfo.h"
#include "lbm/boundary/all.h"
#include "lbm/communication/PdfFieldPackInfo.h"
#include "lbm/field/AddToStorage.h"
#include "lbm/field/PdfField.h"
#include "lbm/field/VelocityFieldWriter.h"
#include "lbm/lattice_model/D3Q19.h"
#include "lbm/refinement/all.h"
#include "lbm/sweeps/CellwiseSweep.h"
#include "lbm/sweeps/SweepWrappers.h"
#include "pe/basic.h"
#include "pe/Types.h"
#include "pe/fcd/GJKEPACollideFunctor.h"
#include "pe/vtk/BodyVtkOutput.h"
#include "pe/vtk/SphereVtkOutput.h"
#include "pe/vtk/EllipsoidVtkOutput.h"
#include "pe/cr/ICR.h"
#include "pe/synchronization/ClearSynchronization.h"
#include "pe/amr/InfoCollection.h"
#include "pe/amr/weight_assignment/WeightAssignmentFunctor.h"
#include "pe/amr/weight_assignment/MetisAssignmentFunctor.h"
#include "pe_coupling/amr/all.h"
#include "pe_coupling/mapping/all.h"
......@@ -90,25 +90,25 @@ using walberla::uint_t;
//////////////
// PDF field, flag field & body field
typedef lbm::D3Q19< lbm::collision_model::TRT, false> LatticeModel_T;
typedef LatticeModel_T::Stencil Stencil_T;
typedef lbm::PdfField< LatticeModel_T > PdfField_T;
using LatticeModel_T = lbm::D3Q19<lbm::collision_model::TRT, false>;
using Stencil_T = LatticeModel_T::Stencil;
using PdfField_T = lbm::PdfField<LatticeModel_T>;
typedef walberla::uint8_t flag_t;
typedef FlagField< flag_t > FlagField_T;
typedef GhostLayerField< pe::BodyID, 1 > BodyField_T;
typedef GhostLayerField< Vector3<real_t>, 1 > VelocityField_T;
using flag_t = walberla::uint8_t;
using FlagField_T = FlagField<flag_t>;
using BodyField_T = GhostLayerField<pe::BodyID, 1>;
using VelocityField_T = GhostLayerField<Vector3<real_t>, 1>;
const uint_t FieldGhostLayers = 4;
// boundary handling
typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T;
using NoSlip_T = lbm::NoSlip<LatticeModel_T, flag_t>;
typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T;
using MO_T = pe_coupling::CurvedLinear<LatticeModel_T, FlagField_T>;
typedef BoundaryHandling< FlagField_T, Stencil_T, NoSlip_T, MO_T > BoundaryHandling_T;
using BoundaryHandling_T = BoundaryHandling<FlagField_T, Stencil_T, NoSlip_T, MO_T>;
typedef std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple;
using BodyTypeTuple = std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane>;
///////////
// FLAGS //
......@@ -135,8 +135,8 @@ template< typename LatticeModel_T, typename Filter_T >
class VectorGradientRefinement
{
public:
typedef GhostLayerField< Vector3<real_t>, 1 > VectorField_T;
typedef typename LatticeModel_T::Stencil Stencil_T;
using VectorField_T = GhostLayerField<Vector3<real_t>, 1>;
using Stencil_T = typename LatticeModel_T::Stencil;
VectorGradientRefinement( const ConstBlockDataID & fieldID, const Filter_T & filter,
const real_t upperLimit, const real_t lowerLimit, const uint_t maxLevel ) :
......@@ -165,9 +165,9 @@ template< typename LatticeModel_T, typename Filter_T >
void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vector< std::pair< const Block *, uint_t > > & minTargetLevels,
std::vector< const Block * > &, const BlockForest & )
{
for( auto it = minTargetLevels.begin(); it != minTargetLevels.end(); ++it )
for(auto & minTargetLevel : minTargetLevels)
{
const Block * const block = it->first;
const Block * const block = minTargetLevel.first;
const uint_t currentLevelOfBlock = block->getLevel();
......@@ -175,7 +175,7 @@ void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vect
if( uField == nullptr )
{
it->second = uint_t(0);
minTargetLevel.second = uint_t(0);
continue;
}
......@@ -253,12 +253,12 @@ void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vect
if( refine && currentLevelOfBlock < maxLevel_ )
{
WALBERLA_ASSERT( !coarsen );
it->second = currentLevelOfBlock + uint_t(1);
minTargetLevel.second = currentLevelOfBlock + uint_t(1);
}
if( coarsen && currentLevelOfBlock > uint_t(0) )
{
WALBERLA_ASSERT( !refine );
it->second = currentLevelOfBlock - uint_t(1);
minTargetLevel.second = currentLevelOfBlock - uint_t(1);
}
}
}
......@@ -500,7 +500,7 @@ static shared_ptr< StructuredBlockForest > createBlockStructure( const AABB & do
MPIManager::instance()->useWorldComm();
sforest.addRefinementSelectionFunction( std::bind( refinementSelection, std::placeholders::_1, numberOfLevels, refinementBox ) );
sforest.addRefinementSelectionFunction( [numberOfLevels, refinementBox](auto && PH1) { refinementSelection(std::forward<decltype(PH1)>(PH1), numberOfLevels, refinementBox); } );
sforest.addWorkloadMemorySUIDAssignmentFunction( workloadAndMemoryAssignment );
Vector3<bool> periodicity( true, true, false);
......@@ -1375,7 +1375,7 @@ int main( int argc, char **argv )
cr.setRelaxationModel( pe::cr::HardContactSemiImplicitTimesteppingSolvers::ApproximateInelasticCoulombContactByDecoupling );
// set up synchronization procedure
std::function<void(void)> syncCall = std::bind( pe::syncNextNeighbors<BodyTypeTuple>, std::ref(blocks->getBlockForest()), bodyStorageID, &(*timingTreePE), overlap, false );
std::function<void(void)> syncCall = [&capture0 = blocks->getBlockForest(), bodyStorageID, capture1 = &(*timingTreePE), overlap] { pe::syncNextNeighbors<BodyTypeTuple>(capture0, bodyStorageID, capture1, overlap, false); };
// create pe bodies
......@@ -1452,7 +1452,7 @@ int main( int argc, char **argv )
WALBERLA_LOG_INFO_ON_ROOT("Refreshing blockforest...")
// check refinement criterions and refine/coarsen if necessary
// check refinement criteria and refine/coarsen if necessary
uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
blocks->refresh();
uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
......@@ -1492,19 +1492,19 @@ int main( int argc, char **argv )
LatticeModel_T latticeModel = LatticeModel_T( lbm::collision_model::TRT::constructWithMagicNumber( omega, lbm::collision_model::TRT::threeSixteenth, finestLevel ) );
// add PDF field
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (zyxf)", latticeModel,
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (fzyx)", latticeModel,
Vector3< real_t >( real_t(0) ), real_t(1),
FieldGhostLayers, field::zyxf );
FieldGhostLayers, field::fzyx );
// add flag field
BlockDataID flagFieldID = field::addFlagFieldToStorage<FlagField_T>( blocks, "flag field", FieldGhostLayers );
// add body field
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::zyxf, FieldGhostLayers );
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::fzyx, FieldGhostLayers );
// add velocity field and utility
BlockDataID velocityFieldID = field::addToStorage<VelocityField_T>( blocks, "velocity field", Vector3<real_t>(real_t(0)), field::zyxf, uint_t(2) );
BlockDataID velocityFieldID = field::addToStorage<VelocityField_T>( blocks, "velocity field", Vector3<real_t>(real_t(0)), field::fzyx, uint_t(2) );
typedef lbm::VelocityFieldWriter< PdfField_T, VelocityField_T > VelocityFieldWriter_T;
using VelocityFieldWriter_T = lbm::VelocityFieldWriter<PdfField_T, VelocityField_T>;
BlockSweepWrapper< VelocityFieldWriter_T > velocityFieldWriter( blocks, VelocityFieldWriter_T( pdfFieldID, velocityFieldID ) );
......@@ -1525,14 +1525,14 @@ int main( int argc, char **argv )
// force averaging functionality
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer1 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> storeForceTorqueInCont1 = std::bind(&pe_coupling::BodiesForceTorqueContainer::store, bodiesFTContainer1);
std::function<void(void)> storeForceTorqueInCont1 = [bodiesFTContainer1] { bodiesFTContainer1->store(); };
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer2 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = std::bind(&pe_coupling::BodiesForceTorqueContainer::setOnBodies, bodiesFTContainer2);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = [bodiesFTContainer2] { bodiesFTContainer2->setOnBodies(); };
shared_ptr<pe_coupling::ForceTorqueOnBodiesScaler> forceScaler = make_shared<pe_coupling::ForceTorqueOnBodiesScaler>(blocks, bodyStorageID, real_t(0.5));
std::function<void(void)> setForceScalingFactorToOne = std::bind(&pe_coupling::ForceTorqueOnBodiesScaler::resetScalingFactor,forceScaler,real_t(1));
std::function<void(void)> setForceScalingFactorToHalf = std::bind(&pe_coupling::ForceTorqueOnBodiesScaler::resetScalingFactor,forceScaler,real_t(0.5));
std::function<void(void)> setForceScalingFactorToOne = [forceScaler] { forceScaler->resetScalingFactor(real_t(1)); };
std::function<void(void)> setForceScalingFactorToHalf = [forceScaler] { forceScaler->resetScalingFactor(real_t(0.5)); };
if( averageForceTorqueOverTwoTimSteps ) {
bodiesFTContainer2->store();
......@@ -1616,7 +1616,7 @@ int main( int argc, char **argv )
}
else if( loadEvaluationStrategy == "PE" )
{
pe::amr::WeightAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest::WeightAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest.setRefreshPhantomBlockDataAssignmentFunction(weightAssignmentFunctor);
}
else if( loadEvaluationStrategy == "LBM" )
......@@ -1700,7 +1700,7 @@ int main( int argc, char **argv )
}
else if( loadEvaluationStrategy == "PE" )
{
pe::amr::MetisAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest::MetisAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest.setRefreshPhantomBlockDataAssignmentFunction(weightAssignmentFunctor);
}
else if( loadEvaluationStrategy == "LBM" )
......@@ -1743,7 +1743,7 @@ int main( int argc, char **argv )
}
else if( loadEvaluationStrategy == "PE" )
{
pe::amr::WeightAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest::WeightAssignmentFunctor weightAssignmentFunctor(peInfoCollection, peBlockBaseWeight );
blockforest.setRefreshPhantomBlockDataAssignmentFunction(weightAssignmentFunctor);
}
else if( loadEvaluationStrategy == "LBM" )
......@@ -1847,7 +1847,7 @@ int main( int argc, char **argv )
"Body Mapping", finestLevel );
// add sweep for restoring PDFs in cells previously occupied by pe bodies
typedef pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T > Reconstructor_T;
using Reconstructor_T = pe_coupling::EquilibriumReconstructor<LatticeModel_T, BoundaryHandling_T>;
Reconstructor_T reconstructor( blocks, boundaryHandlingID, bodyFieldID );
refinementTimestep->addPostStreamVoidFunction(lbm::refinement::SweepAsFunctorWrapper( pe_coupling::PDFReconstruction< LatticeModel_T, BoundaryHandling_T, Reconstructor_T > ( blocks, pdfFieldID,
boundaryHandlingID, bodyStorageID, globalBodyStorage, bodyFieldID, reconstructor, FormerMO_Flag, Fluid_Flag ), blocks ),
......@@ -2090,7 +2090,7 @@ int main( int argc, char **argv )
WALBERLA_LOG_INFO_ON_ROOT("Refreshing blockforest...")
// check refinement criterions and refine/coarsen if necessary
// check refinement criteria and refine/coarsen if necessary
uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
blocks->refresh();
uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
......@@ -2244,4 +2244,4 @@ int main( int argc, char **argv )
int main( int argc, char **argv ){
amr_sediment_settling::main(argc, argv);
}
}
\ No newline at end of file
......@@ -84,25 +84,25 @@ using walberla::uint_t;
//////////////
// PDF field, flag field & body field
typedef lbm::D3Q19< lbm::collision_model::TRT, false > LatticeModel_T;
typedef LatticeModel_T::Stencil Stencil_T;
typedef lbm::PdfField< LatticeModel_T > PdfField_T;
using LatticeModel_T = lbm::D3Q19<lbm::collision_model::TRT, false>;
using Stencil_T = LatticeModel_T::Stencil;
using PdfField_T = lbm::PdfField<LatticeModel_T>;
typedef walberla::uint8_t flag_t;
typedef FlagField< flag_t > FlagField_T;
typedef GhostLayerField< pe::BodyID, 1 > BodyField_T;
typedef GhostLayerField< Vector3<real_t>, 1 > VelocityField_T;
using flag_t = walberla::uint8_t;
using FlagField_T = FlagField<flag_t>;
using BodyField_T = GhostLayerField<pe::BodyID, 1>;
using VelocityField_T = GhostLayerField<Vector3<real_t>, 1>;
const uint_t FieldGhostLayers = 4;
// boundary handling
typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T;
using NoSlip_T = lbm::NoSlip<LatticeModel_T, flag_t>;
typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T;
using MO_T = pe_coupling::CurvedLinear<LatticeModel_T, FlagField_T>;
typedef BoundaryHandling< FlagField_T, Stencil_T, NoSlip_T, MO_T > BoundaryHandling_T;
using BoundaryHandling_T = BoundaryHandling<FlagField_T, Stencil_T, NoSlip_T, MO_T>;
typedef std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple;
using BodyTypeTuple = std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane>;
///////////
// FLAGS //
......@@ -128,8 +128,8 @@ template< typename LatticeModel_T, typename Filter_T >
class VectorGradientRefinement
{
public:
typedef GhostLayerField< Vector3<real_t>, 1 > VectorField_T;
typedef typename LatticeModel_T::Stencil Stencil_T;
using VectorField_T = GhostLayerField<Vector3<real_t>, 1>;
using Stencil_T = typename LatticeModel_T::Stencil;
VectorGradientRefinement( const ConstBlockDataID & fieldID, const Filter_T & filter,
const real_t upperLimit, const real_t lowerLimit, const uint_t maxLevel ) :
......@@ -158,9 +158,9 @@ template< typename LatticeModel_T, typename Filter_T >
void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vector< std::pair< const Block *, uint_t > > & minTargetLevels,
std::vector< const Block * > &, const BlockForest & )
{
for( auto it = minTargetLevels.begin(); it != minTargetLevels.end(); ++it )
for(auto & minTargetLevel : minTargetLevels)
{
const Block * const block = it->first;
const Block * const block = minTargetLevel.first;
const uint_t currentLevelOfBlock = block->getLevel();
......@@ -168,7 +168,7 @@ void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vect
if( uField == nullptr )
{
it->second = uint_t(0);
minTargetLevel.second = uint_t(0);
continue;
}
......@@ -246,12 +246,12 @@ void VectorGradientRefinement< LatticeModel_T, Filter_T >::operator()( std::vect
if( refine && currentLevelOfBlock < maxLevel_ )
{
WALBERLA_ASSERT( !coarsen );
it->second = currentLevelOfBlock + uint_t(1);
minTargetLevel.second = currentLevelOfBlock + uint_t(1);
}
if( coarsen && currentLevelOfBlock > uint_t(0) )
{
WALBERLA_ASSERT( !refine );
it->second = currentLevelOfBlock - uint_t(1);
minTargetLevel.second = currentLevelOfBlock - uint_t(1);
}
}
}
......@@ -307,28 +307,28 @@ private:
static void refinementSelection( SetupBlockForest& forest, uint_t levels, const AABB & refinementBox )
{
real_t dx = real_t(1); // dx on finest level
for( auto block = forest.begin(); block != forest.end(); ++block )
for(auto & block : forest)
{
uint_t blockLevel = block->getLevel();
uint_t blockLevel = block.getLevel();
uint_t levelScalingFactor = ( uint_t(1) << (levels - uint_t(1) - blockLevel) );
real_t dxOnLevel = dx * real_c(levelScalingFactor);
AABB blockAABB = block->getAABB();
AABB blockAABB = block.getAABB();
// extend block AABB by ghostlayers
AABB extendedBlockAABB = blockAABB.getExtended( dxOnLevel * real_c(FieldGhostLayers) );
if( extendedBlockAABB.intersects( refinementBox ) )
if( blockLevel < ( levels - uint_t(1) ) )
block->setMarker( true );
block.setMarker( true );
}
}
static void workloadAndMemoryAssignment( SetupBlockForest& forest )
{
for( auto block = forest.begin(); block != forest.end(); ++block )
for(auto & block : forest)
{
block->setWorkload( numeric_cast< workload_t >( uint_t(1) << block->getLevel() ) );
block->setMemory( numeric_cast< memory_t >(1) );
block.setWorkload( numeric_cast< workload_t >( uint_t(1) << block.getLevel() ) );
block.setMemory( numeric_cast< memory_t >(1) );
}
}
......@@ -378,7 +378,7 @@ static shared_ptr< StructuredBlockForest > createBlockStructure( const AABB & do
WALBERLA_LOG_INFO_ON_ROOT(" - refinement box: " << refinementBox);
sforest.addRefinementSelectionFunction( std::bind( refinementSelection, std::placeholders::_1, numberOfLevels, refinementBox ) );
sforest.addRefinementSelectionFunction( [numberOfLevels, refinementBox](auto && PH1) { refinementSelection(std::forward<decltype(PH1)>(PH1), numberOfLevels, refinementBox); } );
sforest.addWorkloadMemorySUIDAssignmentFunction( workloadAndMemoryAssignment );
sforest.init( domainAABB, numberOfCoarseBlocksPerDirection[0], numberOfCoarseBlocksPerDirection[1], numberOfCoarseBlocksPerDirection[2], true, true, true );
......@@ -498,13 +498,8 @@ public:
WALBERLA_MPI_SECTION()
{
mpi::allReduceInplace( pos[0], mpi::SUM );
mpi::allReduceInplace( pos[1], mpi::SUM );
mpi::allReduceInplace( pos[2], mpi::SUM );
mpi::allReduceInplace( transVel[0], mpi::SUM );
mpi::allReduceInplace( transVel[1], mpi::SUM );
mpi::allReduceInplace( transVel[2], mpi::SUM );
mpi::allReduceInplace( pos, mpi::SUM );
mpi::allReduceInplace( transVel, mpi::SUM );
}
position_ = pos[2];
......@@ -625,9 +620,9 @@ public:
for( uint_t level = 0; level < numberOfLevels_; ++level)
{
real_t timeOnLevelProcessLocal = real_t(0);
for( auto timerIt = timerOnEachLevel_.begin(); timerIt != timerOnEachLevel_.end(); ++timerIt )
for(auto const & timerIt : timerOnEachLevel_)
{
std::string timerName = *timerIt + " (" + std::to_string(level) + ")";
std::string timerName = timerIt + " (" + std::to_string(level) + ")";
timeOnLevelProcessLocal += real_c((*levelwiseTimingPool_)[timerName].total());
}
......@@ -635,15 +630,14 @@ public:
{
// evaluate more timers on finest level
for( auto timerIt = timerOnFinestLevel_.begin(); timerIt != timerOnFinestLevel_.end(); ++timerIt )
for(auto const & timerIt : timerOnFinestLevel_)
{
std::string timerName = *timerIt + " (" + std::to_string(level) + ")";
std::string timerName = timerIt + " (" + std::to_string(level) + ")";
timeOnLevelProcessLocal += real_c((*levelwiseTimingPool_)[timerName].total());
}
for( auto timerIt = timerInPE_.begin(); timerIt != timerInPE_.end(); ++timerIt )
for(auto const & timerName : timerInPE_)
{
std::string timerName = *timerIt;
timeOnLevelProcessLocal += real_c((*peTimingTree_)[timerName].total());
timeOnLevelProcessLocal += real_c((*peTimingTree_)[timerName].total());
}
}
......@@ -929,7 +923,7 @@ int main( int argc, char **argv )
if( !useStaticRefinement && refinementCheckFrequency == 0 && numberOfLevels != 1 )
{
// determine check frequency automatically based on maximum admissable velocity and block sizes
// determine check frequency automatically based on maximum admissible velocity and block sizes
real_t uMax = real_t(0.1);
real_t refinementCheckFrequencyFinestLevel = ( overlap + real_c(blockSize) - real_t(2) * real_t(FieldGhostLayers) * dx) / uMax;
refinementCheckFrequency = uint_c( refinementCheckFrequencyFinestLevel / real_t(lbmTimeStepsPerTimeLoopIteration));
......@@ -955,7 +949,7 @@ int main( int argc, char **argv )
pe::cr::DEM cr(globalBodyStorage, blocks->getBlockStoragePointer(), bodyStorageID, ccdID, fcdID, &(*timingTreePE));
// set up synchronization procedure
std::function<void(void)> syncCall = std::bind( pe::syncShadowOwners<BodyTypeTuple>, std::ref(blocks->getBlockForest()), bodyStorageID, &(*timingTreePE), overlap, false );
std::function<void(void)> syncCall = [&capture0 = blocks->getBlockForest(), bodyStorageID, capture1 = &(*timingTreePE), overlap] { pe::syncShadowOwners<BodyTypeTuple>(capture0, bodyStorageID, capture1, overlap, false); };
// create pe bodies
......@@ -982,19 +976,19 @@ int main( int argc, char **argv )
LatticeModel_T latticeModel = LatticeModel_T( lbm::collision_model::TRT::constructWithMagicNumber( omega, lbm::collision_model::TRT::threeSixteenth, finestLevel ) );
// add PDF field
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (zyxf)", latticeModel,
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (fzyx)", latticeModel,
Vector3< real_t >( real_t(0) ), real_t(1),
FieldGhostLayers, field::zyxf );
FieldGhostLayers, field::fzyx );
// add flag field
BlockDataID flagFieldID = field::addFlagFieldToStorage<FlagField_T>( blocks, "flag field", FieldGhostLayers );
// add body field
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::zyxf, FieldGhostLayers );
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::fzyx, FieldGhostLayers );
// add velocity field and utility
BlockDataID velocityFieldID = field::addToStorage<VelocityField_T>( blocks, "velocity field", Vector3<real_t>(real_t(0)), field::zyxf, uint_t(2) );
BlockDataID velocityFieldID = field::addToStorage<VelocityField_T>( blocks, "velocity field", Vector3<real_t>(real_t(0)), field::fzyx, uint_t(2) );
typedef lbm::VelocityFieldWriter< PdfField_T, VelocityField_T > VelocityFieldWriter_T;
using VelocityFieldWriter_T = lbm::VelocityFieldWriter<PdfField_T, VelocityField_T>;
BlockSweepWrapper< VelocityFieldWriter_T > velocityFieldWriter( blocks, VelocityFieldWriter_T( pdfFieldID, velocityFieldID ) );
......@@ -1014,12 +1008,12 @@ int main( int argc, char **argv )
// force averaging functionality
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer1 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> storeForceTorqueInCont1 = std::bind(&pe_coupling::BodiesForceTorqueContainer::store, bodiesFTContainer1);
std::function<void(void)> storeForceTorqueInCont1 = [bodiesFTContainer1] { bodiesFTContainer1->store(); };
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer2 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = std::bind(&pe_coupling::BodiesForceTorqueContainer::setOnBodies, bodiesFTContainer2);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = [bodiesFTContainer2] { bodiesFTContainer2->setOnBodies(); };
shared_ptr<pe_coupling::ForceTorqueOnBodiesScaler> forceScaler = make_shared<pe_coupling::ForceTorqueOnBodiesScaler>(blocks, bodyStorageID, real_t(0.5));
std::function<void(void)> setForceScalingFactorToOne = std::bind(&pe_coupling::ForceTorqueOnBodiesScaler::resetScalingFactor,forceScaler,real_t(1));
std::function<void(void)> setForceScalingFactorToHalf = std::bind(&pe_coupling::ForceTorqueOnBodiesScaler::resetScalingFactor,forceScaler,real_t(0.5));
std::function<void(void)> setForceScalingFactorToOne = [forceScaler] { forceScaler->resetScalingFactor(real_t(1)); };
std::function<void(void)> setForceScalingFactorToHalf = [forceScaler] { forceScaler->resetScalingFactor(real_t(0.5)); };
if( averageForceTorqueOverTwoTimSteps ) {
bodiesFTContainer2->store();
......@@ -1177,7 +1171,7 @@ int main( int argc, char **argv )
"Body Mapping", finestLevel );
// add sweep for restoring PDFs in cells previously occupied by pe bodies
typedef pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T > Reconstructor_T;
using Reconstructor_T = pe_coupling::EquilibriumReconstructor<LatticeModel_T, BoundaryHandling_T>;
Reconstructor_T reconstructor( blocks, boundaryHandlingID, bodyFieldID );
refinementTimestep->addPostStreamVoidFunction(lbm::refinement::SweepAsFunctorWrapper( pe_coupling::PDFReconstruction< LatticeModel_T, BoundaryHandling_T, Reconstructor_T > ( blocks, pdfFieldID,
boundaryHandlingID, bodyStorageID, globalBodyStorage, bodyFieldID, reconstructor, FormerMO_Flag, Fluid_Flag ), blocks ),
......@@ -1252,7 +1246,7 @@ int main( int argc, char **argv )
(*velocityCommunicationScheme)();
}
// check refinement criterions and refine/coarsen if necessary
// check refinement criteria and refine/coarsen if necessary
uint_t stampBefore = blocks->getBlockForest().getModificationStamp();
blocks->refresh();
uint_t stampAfter = blocks->getBlockForest().getModificationStamp();
......@@ -1336,4 +1330,4 @@ int main( int argc, char **argv )
int main( int argc, char **argv ){
amr_settling_sphere::main(argc, argv);
}
}
\ No newline at end of file
waLBerla_add_executable( NAME WorkloadEvaluation FILES WorkloadEvaluation.cpp DEPENDS blockforest boundary core field lbm pe pe_coupling postprocessing stencil timeloop vtk )
waLBerla_add_executable( NAME WorkloadEvaluation FILES WorkloadEvaluation.cpp DEPENDS walberla::blockforest walberla::boundary walberla::core walberla::field walberla::lbm walberla::pe walberla::pe_coupling walberla::postprocessing walberla::stencil walberla::timeloop walberla::vtk )
waLBerla_add_executable( NAME AMRSedimentSettling FILES AMRSedimentSettling.cpp DEPENDS blockforest boundary core field lbm pe pe_coupling postprocessing stencil timeloop vtk )
waLBerla_add_executable( NAME AMRSedimentSettling FILES AMRSedimentSettling.cpp DEPENDS walberla::blockforest walberla::boundary walberla::core walberla::field walberla::lbm walberla::pe walberla::pe_coupling walberla::postprocessing walberla::stencil walberla::timeloop walberla::vtk )
waLBerla_add_executable( NAME AMRSettlingSphere FILES AMRSettlingSphere.cpp DEPENDS blockforest boundary core field lbm pe pe_coupling postprocessing stencil timeloop vtk )
waLBerla_add_executable( NAME AMRSettlingSphere FILES AMRSettlingSphere.cpp DEPENDS walberla::blockforest walberla::boundary walberla::core walberla::field walberla::lbm walberla::pe walberla::pe_coupling walberla::postprocessing walberla::stencil walberla::timeloop walberla::vtk )
......@@ -86,23 +86,23 @@ using namespace walberla;
using walberla::uint_t;
// PDF field, flag field & body field
typedef lbm::D3Q19< lbm::collision_model::TRT, false> LatticeModel_T;
using LatticeModel_T = lbm::D3Q19<lbm::collision_model::TRT, false>;
typedef LatticeModel_T::Stencil Stencil_T;
typedef lbm::PdfField< LatticeModel_T > PdfField_T;
using Stencil_T = LatticeModel_T::Stencil;
using PdfField_T = lbm::PdfField<LatticeModel_T>;
typedef walberla::uint8_t flag_t;
typedef FlagField< flag_t > FlagField_T;
typedef GhostLayerField< pe::BodyID, 1 > BodyField_T;
using flag_t = walberla::uint8_t;
using FlagField_T = FlagField<flag_t>;
using BodyField_T = GhostLayerField<pe::BodyID, 1>;
const uint_t FieldGhostLayers = 1;
// boundary handling
typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_CLI_T;
using MO_CLI_T = pe_coupling::CurvedLinear<LatticeModel_T, FlagField_T>;
typedef BoundaryHandling< FlagField_T, Stencil_T, MO_CLI_T > BoundaryHandling_T;
using BoundaryHandling_T = BoundaryHandling<FlagField_T, Stencil_T, MO_CLI_T>;
typedef std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple;
using BodyTypeTuple = std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane>;
///////////
// FLAGS //
......@@ -540,7 +540,7 @@ int main( int argc, char **argv )
// connect to pe
const real_t overlap = real_c( 1.5 ) * dx;
std::function<void(void)> syncCall = std::bind( pe::syncNextNeighbors<BodyTypeTuple>, std::ref(blocks->getBlockForest()), bodyStorageID, &timingTreePE, overlap, false );
std::function<void(void)> syncCall = [&capture0 = blocks->getBlockForest(), bodyStorageID, capture1 = &timingTreePE, overlap] { pe::syncNextNeighbors<BodyTypeTuple>(capture0, bodyStorageID, capture1, overlap, false); };
auto generationDomain = AABB( real_t(0), real_t(0), real_t(0), real_c(XCells), real_c(YCells), real_c(ZCells) - topWallOffset);
auto peMaterial = pe::createMaterial( "mat", densityRatio, real_t(1), real_t(0.25), real_t(0.25), real_t(0), real_t(200), real_t(100), real_t(100), real_t(100) );
......@@ -682,15 +682,15 @@ int main( int argc, char **argv )
LatticeModel_T latticeModel = LatticeModel_T( lbm::collision_model::TRT::constructWithMagicNumber( omega ) );
// add PDF field
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (zyxf)", latticeModel,
BlockDataID pdfFieldID = lbm::addPdfFieldToStorage< LatticeModel_T >( blocks, "pdf field (fzyx)", latticeModel,
Vector3< real_t >( real_t(0) ), real_t(1),
uint_t(1), field::zyxf );
uint_t(1), field::fzyx );
// add flag field
BlockDataID flagFieldID = field::addFlagFieldToStorage<FlagField_T>( blocks, "flag field" );
// add body field
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::zyxf );
BlockDataID bodyFieldID = field::addToStorage<BodyField_T>( blocks, "body field", nullptr, field::fzyx );
// add boundary handling & initialize outer domain boundaries
BlockDataID boundaryHandlingID = blocks->addStructuredBlockData< BoundaryHandling_T >(
......@@ -754,18 +754,18 @@ int main( int argc, char **argv )
<< Sweep( pe_coupling::BodyMapping< LatticeModel_T, BoundaryHandling_T >( blocks, pdfFieldID, boundaryHandlingID, bodyStorageID, globalBodyStorage, bodyFieldID, MO_CLI_Flag, FormerMO_Flag, pe_coupling::selectRegularBodies ), "Body Mapping" );
// sweep for restoring PDFs in cells previously occupied by pe bodies
typedef pe_coupling::EquilibriumReconstructor< LatticeModel_T, BoundaryHandling_T > Reconstructor_T;
using Reconstructor_T = pe_coupling::EquilibriumReconstructor<LatticeModel_T, BoundaryHandling_T>;
Reconstructor_T reconstructor( blocks, boundaryHandlingID, bodyFieldID);
timeloop.add()
<< Sweep( pe_coupling::PDFReconstruction< LatticeModel_T, BoundaryHandling_T, Reconstructor_T >
( blocks, pdfFieldID, boundaryHandlingID, bodyStorageID, globalBodyStorage, bodyFieldID, reconstructor, FormerMO_Flag, Fluid_Flag, pe_coupling::selectRegularBodies, optimizeForSmallObstacleFraction ), "PDF Restore" );
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer1 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> storeForceTorqueInCont1 = std::bind(&pe_coupling::BodiesForceTorqueContainer::store, bodiesFTContainer1);
std::function<void(void)> storeForceTorqueInCont1 = [bodiesFTContainer1] { bodiesFTContainer1->store(); };
shared_ptr<pe_coupling::BodiesForceTorqueContainer> bodiesFTContainer2 = make_shared<pe_coupling::BodiesForceTorqueContainer>(blocks, bodyStorageID);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = std::bind(&pe_coupling::BodiesForceTorqueContainer::setOnBodies, bodiesFTContainer2);
std::function<void(void)> setForceTorqueOnBodiesFromCont2 = [bodiesFTContainer2] { bodiesFTContainer2->setOnBodies(); };
shared_ptr<pe_coupling::ForceTorqueOnBodiesScaler> forceScaler = make_shared<pe_coupling::ForceTorqueOnBodiesScaler>(blocks, bodyStorageID, real_t(1));
std::function<void(void)> setForceScalingFactorToHalf = std::bind(&pe_coupling::ForceTorqueOnBodiesScaler::resetScalingFactor,forceScaler,real_t(0.5));
std::function<void(void)> setForceScalingFactorToHalf = [forceScaler] { forceScaler->resetScalingFactor(real_t(0.5)); };
if( averageForceTorqueOverTwoTimSteps ) {
bodiesFTContainer2->store();
......@@ -981,4 +981,4 @@ int main( int argc, char **argv )
int main( int argc, char **argv ){
workload_evaluation::main(argc, argv);
}
}
\ No newline at end of file
add_subdirectory( AdaptiveMeshRefinementFluidParticleCoupling )
add_subdirectory( CNT )
add_subdirectory( ComplexGeometry )
add_subdirectory( DEM )
add_subdirectory( FieldCommunication )
add_subdirectory( MeshDistance )
add_subdirectory( CouetteFlow )
add_subdirectory( FreeSurfaceAdvection )
add_subdirectory( FluidizedBed )
add_subdirectory( FluidParticleCoupling )
add_subdirectory( FluidParticleCouplingWithLoadBalancing )
add_subdirectory( ForcesOnSphereNearPlaneInShearFlow )
add_subdirectory(Percolation)
add_subdirectory( GranularGas )
add_subdirectory( IntegratorAccuracy )
add_subdirectory( LennardJones )
add_subdirectory( NonUniformGrid )
add_subdirectory( MotionSingleHeavySphere )
......@@ -14,5 +19,23 @@ add_subdirectory( PoiseuilleChannel )
add_subdirectory( ProbeVsExtraMessage )
add_subdirectory( SchaeferTurek )
add_subdirectory( UniformGrid )
add_subdirectory( UniformGridGPU )
add_subdirectory( UniformGridGenerated )
if ( WALBERLA_BUILD_WITH_PYTHON )
add_subdirectory( FieldCommunication )
if ( WALBERLA_BUILD_WITH_CODEGEN )
add_subdirectory( UniformGridCPU )
add_subdirectory( PhaseFieldAllenCahn )
add_subdirectory( NonUniformGridCPU )
add_subdirectory( TurbulentChannel )
endif()
if ( WALBERLA_BUILD_WITH_CODEGEN AND WALBERLA_BUILD_WITH_GPU_SUPPORT )
add_subdirectory( UniformGridGPU )
add_subdirectory( NonUniformGridGPU )
endif()
endif()