From cb33db107b68a36a008aac0d37d1a169233b0695 Mon Sep 17 00:00:00 2001 From: gsell Date: Mon, 29 Nov 2021 16:16:51 +0000 Subject: [PATCH] Update README.md --- MPI/elegant/README.md | 101 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) diff --git a/MPI/elegant/README.md b/MPI/elegant/README.md index ee026df..65bdca6 100644 --- a/MPI/elegant/README.md +++ b/MPI/elegant/README.md @@ -21,13 +21,112 @@ Instructions to build [`Pelegant`](https://ops.aps.anl.gov/publish/Pelegant_manu * [EPICS extensions configuration](http://www.aps.anl.gov/Accelerator_Systems_Division/Accelerator_Operations_Physics/cgi-bin/oagLog4.cgi?name=epics.extensions.configure.tar.gz) * [Configuration files for elegant, spiffe, genesis, and shower](http://www.aps.anl.gov/Accelerator_Systems_Division/Accelerator_Operations_Physics/cgi-bin/oagLog4.cgi?name=oag.apps.configure.tar.gz) -## Elegant 2021.3.0 +## Elegant 2021.4.0 ### SDDS 5 and Elegant 2021.4 sources * [SDDS 5.1 source](https://ops.aps.anl.gov/cgi-bin/oagLog4.cgi?name=SDDS.5.1.tar.gz) * [Elegant 2021.4.0 source](http://www.aps.anl.gov/Accelerator_Systems_Division/Accelerator_Operations_Physics/cgi-bin/oagLog4.cgi?name=elegant.2021.4.0.tar.gz) +### Required Modules + +``` +module load gcc/10.3.0 gsl/2.7 lapack/3.10.0 openmpi/4.0.5 +``` + + +### Setup Environment +``` +SDDS_VERSION=5.1 +ELEGANT_VERSION=2021.4.0 +source "${PMODULES_ROOT}/config/modbuild.conf" +DOWNLOAD_DIR="${PMODULES_DISTFILESDIR}/elegant" +PREFIX="${PMODULES_ROOT}/MPI/elegant/${ELEGANT_VERSION}/${MPI}/${MPI_VERSION}/${COMPILER}/${COMPILER_VERSION}" + +export EPICS_BASE="${PREFIX}/epics/base" +export HOST_ARCH=linux-x86_64 +export EPICS_HOST_ARCH=linux-x86_64 +export RPN_DEFNS="${PREFIX}/RPN_DEFNS/defns.rpn" +export PERLLIB="${PREFIX}/lib/perl" + +PATH+=":$PREFIX/epics/extensions/bin/${EPICS_HOST_ARCH}" + +ARGS=() +ARGS+=( "GNU_BIN=$GCC_DIR/bin" ) +ARGS+=( "LD=/usr/bin/ld" ) +ARGS+=( "AR=/usr/bin/ar -rc" ) +ARGS+=( "RANLIB=/usr/bin/ranlib" ) +ARGS+=( "SYSGSL=1") +``` + +### Prepare everything + +``` +mkdir -p "${PREFIX}" +mkdir -p "${RPN_DEFNS%/*}" +cp "${DOWNLOAD_DIR}/defns.rpn" "${RPN_DEFNS}" +cd "${PREFIX}" +tar xvf "${DOWNLOAD_DIR}/epics.base.configure.tar.gz" +tar xvf "${DOWNLOAD_DIR}/epics.extensions.configure.tar.gz" +tar xvf "${DOWNLOAD_DIR}/oag.apps.configure.tar.gz" +tar xvf "${DOWNLOAD_DIR}/SDDS.${SDDS_VERSION}.tar.gz" +tar xvf "${DOWNLOAD_DIR}/elegant.${ELEGANT_VERSION}.tar.gz" +``` + +### Configure EPICS base and OAG applications + +``` +cd epics/base +make "${ARGS[@]}" +cd "${PREFIX}/oag/apps/configure" +sed -i "s/clean::/clean:/" RULES_PYTHON +make "${ARGS[@]}" +``` + +### Compile SDDS 5.1 + +``` +cd "${PREFIX}/epics/extensions/src/SDDS/" +sed -i -e "s/\( sddspseudoinverse_SYS_LIB.*\)/\1 gfortran/" SDDSaps/pseudoInverse/Makefile +sed -i -e "s/\( sddsmatrixop_SYS_LIBS.*\)/\1 gfortran/" SDDSaps/pseudoInverse/Makefile + +make "${ARGS[@]}" -C png && \ +make "${ARGS[@]}" + +make "${ARGS[@]}" -C fftpack +make "${ARGS[@]}" -C pgapack +make "${ARGS[@]}" -C namelist +make "${ARGS[@]}" -C matlib +make "${ARGS[@]}" -C mdbcommon +make "${ARGS[@]}" -C mdblib + +make "${ARGS[@]}" -C SDDSlib clean +make "${ARGS[@]}" MPI=1 -C SDDSlib +``` + +### Compile elegant 2021.4.0 + +``` +cd "${PREFIX}/epics/extensions/src/SDDS/" +make "${ARGS[@]}" -C SDDSlib # do we need this? + +cd "${PREFIX}/oag/apps/src/elegant" +make "${ARGS[@]}" STATIC_BUILD=NO +``` + +### Compile Pelegant 2021.4.0 + +``` +cd "${PREFIX}/epics/extensions/src/SDDS/" +make "${ARGS[@]}" -C SDDSlib clean +make "${ARGS[@]}" MPI=1 -C SDDSlib + +cd "${PREFIX}/oag/apps/src/elegant" +make clean +make SYSGSL=1 Pelegant +``` + + ## Elegant 2020.2.0 ### SDDS and Elegant sources