From 104d5bd41daa4f82fd7a36fffc8aa9e869042b91 Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Sat, 7 Nov 2020 18:37:42 +0000 Subject: [PATCH] added moab and dagmc optional builds --- Dockerfile | 77 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4d3fdb1e9..8dc19325a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,8 @@ FROM ubuntu:latest +# By default this Dockerfile builds OpenMC without dagmc +ARG include_dagmc=false + # Setup environment variables for Docker image ENV CC=/usr/bin/mpicc CXX=/usr/bin/mpicxx \ PATH=/opt/openmc/bin:/opt/NJOY2016/build:$PATH \ @@ -26,12 +29,74 @@ RUN git clone https://github.com/njoy/NJOY2016 /opt/NJOY2016 && \ mkdir build && cd build && \ cmake -Dstatic=on .. && make 2>/dev/null && make install -# Clone and install OpenMC -RUN git clone --recurse-submodules https://github.com/openmc-dev/openmc.git \ - /opt/openmc && cd /opt/openmc && mkdir -p build && cd build && \ - cmake -Doptimize=on -DHDF5_PREFER_PARALLEL=on .. && \ - make && make install && \ - cd .. && pip install -e .[test] +# Clone and install OpenMC without DAGMC +RUN if [ "$include_dagmc" = "false" ] ; \ + then git clone --recurse-submodules https://github.com/openmc-dev/openmc.git \ + /opt/openmc ; \ + cd /opt/openmc ; \ + mkdir -p build ; \ + cd build ; \ + cmake -Doptimize=on -DHDF5_PREFER_PARALLEL=on .. ; \ + make ; \ + make install ; \ + cd .. ; \ + pip install -e .[test] ; \ + fi + +# Clone and install MOAB +RUN if [ "$include_dagmc" = "true" ] ; \ + then mkdir -p MOAB/bld ; \ + cd MOAB ; \ + git clone --depth 1 https://bitbucket.org/fathomteam/moab -b Version5.1.0 ; \ + cd bld ; \ + cmake ../moab -DBUILD_SHARED_LIBS=OFF ; \ + -DENABLE_HDF5=ON ; \ + -DENABLE_BLASLAPACK=OFF ; \ + -DENABLE_FORTRAN=OFF ; \ + -DCMAKE_INSTALL_PREFIX=$HOME/MOAB ; \ + -DCMAKE_C_COMPILER=${CC} ; \ + -DCMAKE_CXX_COMPILER=${CXX} ; \ + -DCMAKE_INSTALL_RPATH=${hdf5_install_dir}:$HOME/MOAB ; \ + make ; \ + make install ; \ + rm -rf * ; \ + cmake ../moab -DBUILD_SHARED_LIBS=ON ; \ + -DENABLE_HDF5=ON ; \ + -DENABLE_PYMOAB=ON ; \ + -DENABLE_BLASLAPACK=OFF ; \ + -DENABLE_FORTRAN=OFF ; \ + -DCMAKE_INSTALL_PREFIX=$HOME/MOAB ; \ + -DCMAKE_C_COMPILER=${CC} ; \ + -DCMAKE_CXX_COMPILER=${CXX} ; \ + -DCMAKE_INSTALL_RPATH=${hdf5_install_dir}:$HOME/MOAB ; \ + make ; \ + make install ; \ + +# Clone and install DAGMC +RUN if [ "$include_dagmc" = "true" ] ; \ + then DAGMC && \ + cd DAGMC && \ + git clone -b develop https://github.com/svalinn/dagmc && \ + mkdir build && \ + cd build && \ + cmake ../dagmc -DBUILD_TALLY=ON -DCMAKE_INSTALL_PREFIX=$DAGMC_INSTALL_DIR -DMOAB_DIR=$MOAB_INSTALL_DIR -DBUILD_STATIC_LIBS=OFF -DBUILD_STATIC_EXE=OFF && \ + make -j install && \ + rm -rf $HOME/DAGMC/dagmc $HOME/DAGMC/build ; \ + fi + +# Clone and install OpenMC with DAGMC +RUN if [ "$include_dagmc" = "true" ] ; \ + then git clone --recurse-submodules https://github.com/openmc-dev/openmc.git \ + /opt/openmc ; \ + cd /opt/openmc ; \ + mkdir -p build ; \ + cd build ; \ + cmake -Doptimize=on -Ddagmc=ON -DDAGMC_ROOT=$DAGMC_INSTALL_DIR -DHDF5_PREFER_PARALLEL=on .. && \ + make ; \ + make install ; \ + cd .. ; \ + pip install -e .[test] ; \ + fi # Download cross sections (NNDC and WMP) and ENDF data needed by test suite RUN /opt/openmc/tools/ci/download-xs.sh