-
Notifications
You must be signed in to change notification settings - Fork 13
/
debian_trilinos_py3
80 lines (76 loc) · 3.45 KB
/
debian_trilinos_py3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
FROM debian:buster-slim
LABEL maintainer="a.ellery@uq.edu.au"
WORKDIR /app
COPY . /app
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y cmake gcc g++ git gfortran make scons wget libsuitesparse-dev libmetis-dev liblapack-dev libblas-dev python3-dev python3-numpy python3-pyproj python3-gdal python3-sympy python3-matplotlib python3-scipy scons lsb-release libnetcdf-dev libnetcdf-cxx-legacy-dev libnetcdf-c++4-dev libopenmpi-dev libboost-all-dev libpython3.7
# Trilinos
RUN wget https://github.com/trilinos/Trilinos/archive/trilinos-release-13-0-1.tar.gz
RUN tar zxvf trilinos-release-13-0-1.tar.gz
RUN mkdir trilinos_build
RUN cd trilinos_build && \
cmake \
-D CMAKE_C_COMPILER=/usr/bin/gcc \
-D CMAKE_CXX_COMPILER=/usr/bin/g++ \
-D CMAKE_Fortran_COMPILER=/usr/bin/gfortran \
-D PYTHON_EXECUTABLE=/usr/bin/python3 \
-D CMAKE_INSTALL_PREFIX=/app/trilinos/ \
-D Trilinos_ENABLE_CXX11=ON \
-D CMAKE_C_FLAGS=' -w -fopenmp' \
-D CMAKE_CXX_FLAGS=' -w -fopenmp'\
-D Trilinos_ENABLE_Fortran=ON \
-D BUILD_SHARED_LIBS=ON \
-D TPL_ENABLE_BLAS=ON \
-D TPL_ENABLE_Boost=ON \
-D TPL_ENABLE_Cholmod=ON \
-D TPL_ENABLE_LAPACK=ON \
-D TPL_ENABLE_METIS=ON \
-D TPL_ENABLE_SuperLU=OFF \
-D TPL_ENABLE_UMFPACK=ON \
-D TPL_BLAS_INCLUDE_DIRS=/usr/include/suitesparse \
-D TPL_Cholmod_INCLUDE_DIRS=/usr/include/suitesparse \
-D TPL_Cholmod_LIBRARIES='libcholmod.so;libamd.so;libcolamd.so' \
-D TPL_UMFPACK_INCLUDE_DIRS=/usr/include/suitesparse \
-D TPL_Boost_LIBRARY_DIRS=lib \
-D Trilinos_ENABLE_Amesos=ON \
-D Trilinos_ENABLE_Amesos2=ON \
-D Trilinos_ENABLE_AztecOO=ON \
-D Trilinos_ENABLE_Belos=ON \
-D Trilinos_ENABLE_Ifpack=ON \
-D Trilinos_ENABLE_Ifpack2=ON \
-D Trilinos_ENABLE_Kokkos=ON \
-D Trilinos_ENABLE_Komplex=ON \
-D Trilinos_ENABLE_ML=ON \
-D Trilinos_ENABLE_MueLu=ON \
-D Trilinos_ENABLE_Teuchos=ON \
-D Trilinos_ENABLE_Tpetra=ON \
-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES=ON \
-D Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON \
-D Tpetra_INST_COMPLEX_DOUBLE=ON \
-D Trilinos_ENABLE_COMPLEX_DOUBLE=ON \
-D Teuchos_ENABLE_COMPLEX=ON \
-D Tpetra_INST_INT_INT=ON \
-D Tpetra_ENABLE_DEPRECATED_CODE=ON \
-D Trilinos_ENABLE_OpenMP=ON \
-D Trilinos_ENABLE_MPI=OFF \
-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION=ON \
-D Kokkos_ENABLE_COMPILER_WARNINGS=ON \
-D Amesos2_ENABLE_Basker=ON \
-D Tpetra_INST_SERIAL:BOOL=ON \
-D Trilinos_ENABLE_TESTS=OFF \
/app/Trilinos-trilinos-release-13-0-1 && make -j`nproc` install
RUN rm -rf /app/Trilinos-trilinos-release-13-0-1 /app/trilinos_build
RUN rm -rf /app/oxley
#escript
RUN git clone https://github.com/esys-escript/esys-escript.github.io --depth 1 -b oxley /app/oxley
RUN cd /app/oxley && scons -j`nproc` options_file=/app/oxley/scons/testing.py openmp=1 werror=0 trilinos=1 paso=0 verbose=1 prefix=/app build_full || cat config.log
ENV LD_LIBRARY_PATH=/app/oxley/lib:/app/trilinos/lib:/usr/lib/:/usr/lib64:/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
ENV PYTHONPATH=/app/oxley:$PYTHONPATH
ENV PATH=/app/oxley/bin:$PATH
# RUN find / -iname libpython3.9* 2>/dev/null ; echo done ; sleep 600
RUN cd /app/oxley && sh /app/oxley/utest.sh /app/oxley/build '-t15'
RUN useradd -ms /bin/bash appuser
# RUN run-escript /app/escript/scripts/release_sanity.py
# RUN rm -rf *
CMD ["/bin/bash"]