[StructApp] Adapting the StructuralMechanicsBossak scheme to rototational dofs #24263
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
# for cancelling redundant runs | |
concurrency: | |
group: ci-${{ github.head_ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
jobs: | |
changed-files: | |
runs-on: ubuntu-latest | |
# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-defining-outputs-for-a-job | |
outputs: | |
files: ${{ steps.get_files.outputs.changed_files }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: get_files | |
run: | | |
echo "changed_files=$(python3 .github/get_files_changed_in_pr.py)" >> $GITHUB_OUTPUT | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }} | |
ubuntu: | |
runs-on: ubuntu-latest | |
needs: changed-files | |
strategy: | |
fail-fast: false | |
matrix: | |
build-type: [Custom, FullDebug] | |
compiler: [gcc, clang] | |
env: | |
KRATOS_BUILD_TYPE: ${{ matrix.build-type }} | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_linux.json" | |
KRATOS_CI_CORES: 4 # Current limits are 4 CPU and 16 GB Ram | |
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0) | |
OMPI_MCA_btl_vader_single_copy_mechanism: none # Suppressing some annoying OpenMPI messages | |
container: | |
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest | |
options: --user 1001 | |
steps: | |
- uses: actions/checkout@v4 | |
# - name: Installing dependencies | |
# => must be added to the docker container to avoid reinstalling it in every CI run | |
- name: CI configuration | |
shell: bash | |
run: python3 kratos/python_scripts/testing/ci_utilities.py | |
- name: Build | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
export CC=/usr/bin/gcc-12 | |
export CXX=/usr/bin/g++-12 | |
export KRATOS_CMAKE_OPTIONS_FLAGS="-DUSE_EIGEN_MKL=ON -DUSE_EIGEN_FEAST=ON -DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF" | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers" | |
elif [ ${{ matrix.compiler }} = clang ]; then | |
export CC=/usr/bin/clang-14 | |
export CXX=/usr/bin/clang++-14 | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations" | |
export KRATOS_CMAKE_OPTIONS_FLAGS="-DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF" | |
else | |
echo 'Unsupported compiler: ${{ matrix.compiler }}' | |
exit 1 | |
fi | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/configure_core.sh configure.sh | |
python3 kratos/python_scripts/testing/ci_utilities.py | |
bash configure.sh | |
rm -r ${GITHUB_WORKSPACE}/build | |
- name: Build Dependencies | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
export CC=/usr/bin/gcc-12 | |
export CXX=/usr/bin/g++-12 | |
export KRATOS_CMAKE_OPTIONS_FLAGS="-DMMG_ROOT=/external_libraries/mmg/mmg_5_5_1/ -DPMMG_ROOT=/external_libraries/ParMmg_5ffc6ad -DINCLUDE_PMMG=ON" | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers" | |
elif [ ${{ matrix.compiler }} = clang ]; then | |
export CC=/usr/bin/clang-14 | |
export CXX=/usr/bin/clang++-14 | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations" | |
export KRATOS_CMAKE_OPTIONS_FLAGS="-DMMG_ROOT=/external_libraries/mmg/mmg_5_5_1/" | |
else | |
echo 'Unsupported compiler: ${{ matrix.compiler }}' | |
exit 1 | |
fi | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/configure_dependencies.sh configure.sh | |
bash configure.sh | |
rm -r ${GITHUB_WORKSPACE}/build | |
- name: Build Core Apps | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
export CC=/usr/bin/gcc-12 | |
export CXX=/usr/bin/g++-12 | |
export KRATOS_CMAKE_OPTIONS_FLAGS="" | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers" | |
elif [ ${{ matrix.compiler }} = clang ]; then | |
export CC=/usr/bin/clang-14 | |
export CXX=/usr/bin/clang++-14 | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations" | |
export KRATOS_CMAKE_OPTIONS_FLAGS="" | |
else | |
echo 'Unsupported compiler: ${{ matrix.compiler }}' | |
exit 1 | |
fi | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/configure_core_applications.sh configure.sh | |
bash configure.sh | |
rm -r ${GITHUB_WORKSPACE}/build | |
- name: Build Research Apps | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
export CC=/usr/bin/gcc-12 | |
export CXX=/usr/bin/g++-12 | |
export KRATOS_CMAKE_OPTIONS_FLAGS="" | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers" | |
elif [ ${{ matrix.compiler }} = clang ]; then | |
export CC=/usr/bin/clang-14 | |
export CXX=/usr/bin/clang++-14 | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations" | |
export KRATOS_CMAKE_OPTIONS_FLAGS="" | |
else | |
echo 'Unsupported compiler: ${{ matrix.compiler }}' | |
exit 1 | |
fi | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/configure_research_applications.sh configure.sh | |
bash configure.sh | |
rm -r ${GITHUB_WORKSPACE}/build | |
- name: Running C++ tests | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_python_tests.py -v 2 -l nightly -c python3 | |
- name: Prepare Parallel Env | |
shell: bash | |
run: | | |
echo "localhost slots=2" >> ${GITHUB_WORKSPACE}/ci_hostfile | |
- name: Running MPI C++ tests (2 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 2 | |
- name: Running MPI C++ tests (3 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 3 | |
- name: Running MPI C++ tests (4 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -n 4 | |
- name: Running Python MPI tests (2 Cores) | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 2 | |
- name: Running Python MPI tests (3 Cores) | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 3 | |
- name: Running Python MPI tests (4 Cores) | |
shell: bash | |
run: | | |
if [ ${{ matrix.compiler }} = gcc ]; then | |
source /opt/intel/oneapi/setvars.sh | |
fi | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }} | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py --mpi_flags "--hostfile ${GITHUB_WORKSPACE}/ci_hostfile" -l mpi_nightly -n 4 | |
windows: | |
runs-on: windows-2019 | |
needs: changed-files | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_windows.json" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.8' | |
- name: CI configuration | |
shell: bash | |
run: python3 kratos/python_scripts/testing/ci_utilities.py | |
- name: Download boost | |
run: | | |
$url = "https://archives.boost.io/release/1.74.0/source/boost_1_74_0.tar.gz" | |
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz") | |
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null | |
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null | |
- name: Installing dependencies | |
shell: cmd | |
run: | | |
pip install numpy | |
pip install sympy | |
pip install scipy | |
pip install h5py | |
pip install parameterized | |
- name: Build | |
shell: cmd | |
run: | | |
copy .\.github\workflows\configure.cmd | |
python kratos/python_scripts/testing/ci_utilities.py | |
configure.cmd | |
- name: Running C++ tests | |
shell: cmd | |
run: | | |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE% | |
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs | |
python kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: cmd | |
run: | | |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE% | |
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs | |
python kratos/python_scripts/testing/run_python_tests.py -l nightly -c python | |
centos: | |
runs-on: ubuntu-latest | |
needs: changed-files | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_centos.json" | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
container: | |
image: kratosmultiphysics/kratos-image-ci-centos7:latest | |
options: --user 1001 | |
steps: | |
- uses: actions/checkout@v3 | |
# - name: Installing dependencies | |
# => must be added to the docker container to avoid reinstalling it in every CI run | |
- name: CI configuration | |
shell: bash | |
run: python3.8 kratos/python_scripts/testing/ci_utilities.py | |
- name: Build | |
run: | | |
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations -Wignored-qualifiers" | |
cp .github/workflows/centos_configure.sh centos_configure.sh | |
bash centos_configure.sh | |
- name: Running C++ tests | |
run: | | |
export PYTHONPATH=${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3.8 kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
run: | | |
export PYTHONPATH=${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3.8 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3.8 | |
ubuntu-core-without-unity: | |
runs-on: ubuntu-latest | |
needs: changed-files | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: "ONLY_CORE" | |
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0) | |
container: | |
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest | |
options: --user 1001 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: CI configuration | |
shell: bash | |
run: python3 kratos/python_scripts/testing/ci_utilities.py | |
- name: Build | |
shell: bash | |
run: | | |
export CC=/usr/bin/clang-14 | |
export CXX=/usr/bin/clang++-14 | |
export KRATOS_SOURCE="${KRATOS_SOURCE:-${PWD}}" | |
export KRATOS_BUILD="${KRATOS_SOURCE}/build" | |
export KRATOS_APP_DIR="${KRATOS_SOURCE}/applications" | |
export PYTHON_EXECUTABLE="/usr/bin/python3" | |
export KRATOS_INSTALL_PYTHON_USING_LINKS=ON | |
add_app () { | |
export KRATOS_APPLICATIONS="${KRATOS_APPLICATIONS}$1;" | |
} | |
add_app ${KRATOS_APP_DIR}/LinearSolversApplication; | |
add_app ${KRATOS_APP_DIR}/MetisApplication; | |
add_app ${KRATOS_APP_DIR}/TrilinosApplication; | |
source /opt/intel/oneapi/setvars.sh | |
# Configure | |
cmake -H"${KRATOS_SOURCE}" -B"${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" \ | |
-DUSE_MPI=ON \ | |
-DTRILINOS_INCLUDE_DIR="/usr/include/trilinos" \ | |
-DTRILINOS_LIBRARY_DIR="/usr/lib/x86_64-linux-gnu" \ | |
-DTRILINOS_LIBRARY_PREFIX="trilinos_" \ | |
-DKRATOS_USE_PCH=ON | |
# Build | |
# Please do not use more than 2 cores or it will produce an out of heap memory error | |
cmake --build "${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" --target install -- -j2 | |
- name: Running C++ tests | |
shell: bash | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: bash | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3 | |
- name: Running MPI C++ tests (2 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2 | |
- name: Running MPI C++ tests (3 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3 | |
- name: Running MPI C++ tests (4 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4 | |
- name: Running Python MPI tests (2 Cores) | |
shell: bash | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2 | |
- name: Running Python MPI tests (3 Cores) | |
shell: bash | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3 | |
- name: Running Python MPI tests (4 Cores) | |
shell: bash | |
run: | | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4 | |
windows-core-without-unity: | |
runs-on: windows-2019 | |
needs: changed-files | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: "ONLY_CORE" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.8' | |
- name: CI configuration | |
shell: bash | |
run: python3 kratos/python_scripts/testing/ci_utilities.py | |
- name: Download boost | |
run: | | |
$url = "https://archives.boost.io/release/1.74.0/source/boost_1_74_0.tar.gz" | |
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz") | |
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null | |
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null | |
- name: Installing dependencies | |
shell: cmd | |
run: | | |
pip install numpy | |
pip install sympy | |
pip install scipy | |
- name: Build | |
shell: cmd | |
run: | | |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || goto :error | |
set CC=cl.exe | |
set CXX=cl.exe | |
set KRATOS_SOURCE=%cd% | |
set KRATOS_BUILD=%cd%\build | |
set KRATOS_APP_DIR=applications | |
set KRATOS_APPLICATIONS=%KRATOS_APP_DIR%\LinearSolversApplication; | |
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\cmake_install.cmake" | |
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeCache.txt" | |
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeFiles" | |
cmake ^ | |
-G"Visual Studio 16 2019" ^ | |
-H"%KRATOS_SOURCE%" ^ | |
-B"%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" ^ | |
-DBOOST_ROOT="%TEMP%\boost" ^ | |
-DCMAKE_CXX_FLAGS="/Od /we4661 /we4804 /WX /wd4996" ^ | |
-DKRATOS_USE_PCH=ON ^ | |
-DFORCE_LOCAL_ZLIB_COMPILATION=ON || goto :error | |
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target all_build -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error | |
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target install -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error | |
goto :EOF | |
:error | |
echo Failed with error #%errorlevel%. | |
exit /b %errorlevel% | |
- name: Running C++ tests | |
shell: cmd | |
run: | | |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE% | |
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs | |
python kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: cmd | |
run: | | |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE% | |
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs | |
python kratos/python_scripts/testing/run_python_tests.py -l nightly -c python | |
ubuntu-intel-legacy: | |
runs-on: ubuntu-latest | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0) | |
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages | |
OMPI_ALLOW_RUN_AS_ROOT: 1 # required since for now running as root | |
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 # required since for now running as root | |
container: | |
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest | |
# options: --user 1001 # must run as root to install the intel compiler | |
steps: | |
- uses: actions/checkout@v4 | |
# - name: Installing dependencies | |
# => must be added to the docker container to avoid reinstalling it in every CI run | |
- name: Install intel compiler | |
shell: bash | |
run: sudo apt-get install -y --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic | |
- name: Build | |
shell: bash | |
run: | | |
export CC=icc | |
export CXX=icpc | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/intel_configure.sh configure.sh | |
bash configure.sh | |
- name: Running C++ tests | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3 | |
- name: Running MPI C++ tests (2 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
export PYTHONPATH= | |
export LD_LIBRARY_PATH= | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2 | |
- name: Running MPI C++ tests (3 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3 | |
- name: Running MPI C++ tests (4 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4 | |
- name: Running Python MPI tests (2 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2 | |
- name: Running Python MPI tests (3 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3 | |
- name: Running Python MPI tests (4 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4 | |
ubuntu-intel: | |
runs-on: ubuntu-latest | |
needs: changed-files | |
env: | |
KRATOS_BUILD_TYPE: Custom | |
KRATOS_CI_CHANGED_FILES: ${{needs.changed-files.outputs.files}} | |
KRATOS_CI_APPLICATIONS: ".github/workflows/ci_apps_intel.json" | |
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0) | |
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages | |
container: | |
image: kratosmultiphysics/kratos-image-ci-ubuntu-22-04:latest | |
options: --user 1001 | |
steps: | |
- uses: actions/checkout@v4 | |
# - name: Installing dependencies | |
# => must be added to the docker container to avoid reinstalling it in every CI run | |
- name: CI configuration | |
shell: bash | |
run: python3 kratos/python_scripts/testing/ci_utilities.py | |
- name: Build | |
shell: bash | |
run: | | |
export CC=icx | |
export CXX=icpx | |
source /opt/intel/oneapi/setvars.sh | |
cp .github/workflows/intel_configure.sh configure.sh | |
bash configure.sh | |
- name: Running C++ tests | |
shell: bash | |
continue-on-error: true # TODO segfaults in cpp-tests | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_tests.py | |
- name: Running python tests | |
shell: bash | |
continue-on-error: true # TODO segfaults in cpp-tests | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_tests.py -l nightly -c python3 | |
- name: Running MPI C++ tests (2 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 2 | |
- name: Running MPI C++ tests (3 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 3 | |
- name: Running MPI C++ tests (4 Cores) | |
shell: bash | |
timeout-minutes : 10 | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_cpp_mpi_tests.py -n 4 | |
- name: Running Python MPI tests (2 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 2 | |
- name: Running Python MPI tests (3 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 3 | |
- name: Running Python MPI tests (4 Cores) | |
shell: bash | |
run: | | |
source /opt/intel/oneapi/setvars.sh | |
export OMP_NUM_THREADS=1 | |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs | |
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l mpi_nightly -n 4 |