From bc3a5fa732e66e21e9be152662fd00edf55b3d3b Mon Sep 17 00:00:00 2001 From: Guytri KASTANE Date: Wed, 13 Mar 2024 15:32:30 +0100 Subject: [PATCH] Add config file and compilation script for petsc 3.19.4 --- products/compil_scripts/petsc-3.19.4.sh | 71 ++++++++++++++----------- products/petsc.pyconf | 8 ++- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/products/compil_scripts/petsc-3.19.4.sh b/products/compil_scripts/petsc-3.19.4.sh index 81c6565..34e2206 100755 --- a/products/compil_scripts/petsc-3.19.4.sh +++ b/products/compil_scripts/petsc-3.19.4.sh @@ -1,7 +1,7 @@ #!/bin/bash echo "##########################################################################" -echo "Petsc" $VERSION +echo "PETSc" $VERSION echo "##########################################################################" NATIVE_PATH="/usr" @@ -21,7 +21,7 @@ CONFIGURE_FLAGS= CONFIGURE_FLAGS+=" --download-slepc=ext/slepc-3.19.2.tar.gz" if [ -f "${NATIVE_PATH}/liblapack.a" ] && [ "${SAT_lapack_IS_NATIVE}" == "1" ]; then - CONFIGURE_FLAGS+=" --with-blaslapack-dir=${NATIVE_PATH}" + CONFIGURE_FLAGS+=" --with-blaslapack=1" elif [ -n "${LAPACK_ROOT_DIR}" ] && [ "${SAT_lapack_IS_NATIVE}" != "1" ]; then CONFIGURE_FLAGS+=" --with-blaslapack-dir=${LAPACK_ROOT_DIR}" else @@ -32,7 +32,7 @@ CONFIGURE_FLAGS+=" --with-python-dir=${PYTHON_ROOT_DIR}" CONFIGURE_FLAGS+=" --with-hdf5-dir=${HDF5_ROOT_DIR}" if [ -f "${NATIVE_PATH}/libfftw3.a" ] && [ "${SAT_fftw_IS_NATIVE}" == "1" ]; then - CONFIGURE_FLAGS+=" --with-fftw-dir=${NATIVE_PATH}" + CONFIGURE_FLAGS+=" --with-fftw=1" elif [ -n "${FFTW_ROOT_DIR}" ] && [ "${SAT_fftw_IS_NATIVE}" != "1" ]; then CONFIGURE_FLAGS+=" --with-fftw-dir=${FFTW_ROOT_DIR}" else @@ -44,29 +44,46 @@ CONFIGURE_FLAGS+=" --with-debugging=0" # by default Petsc is build in debug mode CONFIGURE_FLAGS+=" --with-petsc4py=yes" CONFIGURE_FLAGS+=" --download-slepc-configure-arguments=--with-slepc4py=yes " +if [ -f "${NATIVE_PATH}/libmetis.so" ] && [ "${SAT_metis_IS_NATIVE}" == "1" ]; then + CONFIGURE_FLAGS+=" --with-metis=1" +elif [ -n "${METIS_ROOT_DIR}" ] && [ "${SAT_metis_IS_NATIVE}" != "1" ]; then + CONFIGURE_FLAGS+=" --with-metis-dir=${METIS_ROOT_DIR}" +else + CONFIGURE_FLAGS+=" --download-metis=ext/metis-5.1.0-p11.tar.gz" +fi + echo -if [ -n "${SAT_HPC}" ] -then - CONFIGURE_FLAGS+=" --download-hypre=ext/hypre-2.28.0.tar.gz" - CONFIGURE_FLAGS+=" --download-metis=ext/metis-5.1.0-p11.tar.gz" - CONFIGURE_FLAGS+=" --download-ptscotch=ext/scotch_7.0.3.tar.gz" - - if [ -n "${MPI4PY_ROOT_DIR}" ] - then +if [ -n "${SAT_HPC}" ]; then + CONFIUGRE_FLAGS+=" --with-med-dir=${MEDFILE_ROOT_DIR}" + + if [ -f "${NATIVE_PATH}/libHYPRE_core.so" ]; then + CONFIGURE_FLAGS+=" --with-hypre=1" + else + CONFIGURE_FLAGS+=" --download-hypre=ext/hypre-2.28.0.tar.gz" + fi + + if [ -f "${NATIVE_PATH}/libptscotch.so" ] && [ "${SAT_ptscotch_IS_NATIVE}" == "1" ]; then + CONFIGURE_FLAGS+=" --with-ptscotch=1" + elif [ -n "${PTSCOTCH_ROOT_DIR}" ] && [ "${SAT_ptscotch_IS_NATIVE}" != "1" ]; then + CONFIGURE_FLAGS+=" --with-ptscoth=${PTSCOTCH_ROOT_DIR}" + else + CONFIGURE_FLAGS+=" --download-ptscotch=ext/scotch_7.0.3.tar.gz" + fi + + if [ -n "${MPI4PY_ROOT_DIR}" ]; then CONFIGURE_FLAGS+=" --with-mpi4py-dir=${MPI4PY_ROOT_DIR}" else CONFIGURE_FLAGS+=" --download-mpi4py=ext/mpi4py-3.1.4.tar.gz" fi - echo "*** configure --prefix=${PRODUCT_INSTALL} --with-mpi-dir=${MPI_ROOT_DIR} ${CONFIGURE_FLAGS}" - ./configure --prefix=${PRODUCT_INSTALL} --with-mpi-dir=${MPI_ROOT_DIR} ${CONFIGURE_FLAGS} + + CONFIGURE_FLAGS+=" --with-mpi-dir=${MPI_ROOT_DIR}" + else - CONFIGURE_FLAGS+=" --download-metis=ext/metis-5.1.0-p11.tar.gz" - echo "*** configure --prefix=${PRODUCT_INSTALL} --with-mpi=0 ${CONFIGURE_FLAGS}" - ./configure --prefix=${PRODUCT_INSTALL} --with-mpi=0 ${CONFIGURE_FLAGS} + CONFIGURE_FLAGS+=" --with-mpi=0" fi -if [ $? -ne 0 ] -then +echo "*** configure --prefix=${PRODUCT_INSTALL} ${CONFIGURE_FLAGS}" +if ! ./configure --prefix="${PRODUCT_INSTALL}" "${CONFIGURE_FLAGS}"; then echo "ERROR on configure" exit 1 fi @@ -74,10 +91,8 @@ fi MAKE_OPTIONS="PETSC_DIR=${BUILD_DIR}" echo -echo "*** make" $MAKE_OPTIONS -make $MAKE_OPTIONS -if [ $? -ne 0 ] -then +echo "*** make $MAKE_OPTIONS" +if ! make "$MAKE_OPTIONS"; then echo "ERROR on make" exit 2 fi @@ -86,19 +101,15 @@ fi # MAKE_OPTIONS=$MAKE_OPTIONS" PETSC_ARCH=arch-linux-c-debug" echo -echo "*** make install" -make $MAKE_OPTIONS install -if [ $? -ne 0 ] -then +echo "*** make $MAKE_OPTIONS install" +if ! make "$MAKE_OPTIONS" install; then echo "ERROR on make install" exit 3 fi echo -echo "*** make check" -make $MAKE_OPTIONS check -if [ $? -ne 0 ] -then +echo "*** make $MAKE_OPTIONS check" +if ! make "$MAKE_OPTIONS" check; then echo "ERROR on make check" exit 4 fi diff --git a/products/petsc.pyconf b/products/petsc.pyconf index 26a5cb6..b5a7be5 100644 --- a/products/petsc.pyconf +++ b/products/petsc.pyconf @@ -21,10 +21,16 @@ default : post_script: "fix_permissions.sh" } +version_3_20_0 : +{ + compil_script : "petsc-3.20.0.sh" + depend : ["hdf5", "Python", "lapack","fftw", "llvm", "metis", "medfile" ] +} + version_3_19_4 : { compil_script : "petsc-3.19.4.sh" - depend : ["hdf5", "Python", "lapack","fftw", "llvm"] + depend : ["hdf5", "Python", "lapack","fftw", "llvm", "metis", "medfile" ] patches: ['petsc-3.19.4-mpi4py.patch','petsc-3.19.4-libpath.patch'] } -- 2.39.2