Commit 4de17327 authored by eric pellegrini's avatar eric pellegrini
parents 79477b01 69f66cee
Pipeline #387 canceled
stages:
- build
osx:
stage: build
script:
- cd ./BuildServer/Darwin/Scripts
- ./package.sh
tags:
- mac
only:
- tags
- triggers
allow_failure: false
artifacts:
paths:
- BuildServer/Darwin/Build/*.dmg
windows:
stage: build
script:
- c:\cygwin64\bin\bash -c "dos2unix.exe ./BuildServer/Windows/package.sh"
- c:\cygwin64\bin\bash .\BuildServer\Windows\package.sh setup
- c:\cygwin64\bin\bash .\BuildServer\Windows\package.sh build
artifacts:
paths:
- BuildServer/Windows/Build/MDANSE*.exe
only:
- master
- tags
- triggers
tags:
- windows
allow_failure: false
linux:
script:
- ./BuildServer/Debian/build_deb.sh amd64 trusty
only:
- master
tags:
- ubuntu14.04
mac:
script:
- cd ./BuildServer/Darwin/Scripts
- ./package.sh
only:
- master
tags:
- mac
\ No newline at end of file
stage: build
script:
- ./BuildServer/Debian/build_deb.sh amd64 trusty
artifacts:
paths:
- BuildServer/Debian/Build/*.deb
only:
- tags
- triggers
tags:
- ubuntu14.04
allow_failure: false
......@@ -5,17 +5,15 @@ import os
if sys.platform.startswith('darwin'):
from setuptools import setup
build_name = os.environ['BUILD_NAME']
rev_number = os.environ['REV_NUMBER']
version = build_name + " v" + rev_number
version = os.environ['VERSION_NAME']
APP = ['../../../Scripts/mdanse_gui']
PLIST = {
u'CFBundleName': u'MDANSE',
u'CFBundleShortVersionString': build_name,
u'CFBundleShortVersionString': version,
u'CFBundleVersion': version,
u'CFBundleIdentifier': u'eu.ill.MDANSE-'+build_name,
u'CFBundleIdentifier': u'eu.ill.MDANSE-'+version,
u'LSApplicationCategoryType': u'public.app-category.science'
}
OPTIONS = {
......
......@@ -17,99 +17,105 @@ BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
if [ -n "${RUN_NIGHTLY_BUILD}" ]
then
VERSION_NAME="devel"
else
if [[ ${CI_BUILD_TAG} =~ ^v([0-9]+\.[0-9]+\.[0-9]+)$ ]]
then
VERSION_NAME=${BASH_REMATCH[1]}
else
echo -e "$ROUGE""Invalid version number ${CI_BUILD_TAG}" "$NORMAL"
exit
fi
fi
export VERSION_NAME
##Select the build target
BUILD_TARGET=darwin
##Do we need to create the final archive
ARCHIVE_FOR_DISTRIBUTION=1
##Which version name are we appending to the final archive
export BUILD_NAME=1.0
TARGET_DIR=MDANSE-${BUILD_NAME}-${BUILD_TARGET}
cd ../../../
#############################
# Darwin
#############################
# old way to get MDANSE version
#declare -x MDANSE_VERSION=$(perl -pe '($_)=/([0-9]+([.][0-9]+)+)/' MDANSE/__pkginfo__.py)
# Which version name are we appending to the final archive
TARGET_DIR=MDANSE-${VERSION_NAME}-${BUILD_TARGET}
# take the latest version of nmoldyn available on the forge
echo -e "$BLEU""Getting last MDANSE revision" "$NORMAL"
# Get revision number from git (without trailing newline)
REV_NUMBER=$(git rev-list --count HEAD)
echo -e "$BLEU""Revision number = ${REV_NUMBER}" "$NORMAL"
# Add current revision number to python source code (will appear in "About..." dialog)
# see http://stackoverflow.com/questions/7648328/getting-sed-error
sed -i '' 's/.*__version__.*/__version__ = \"${VERSION_NAME}\"/' MDANSE/__pkginfo__.py
sed -i '' 's/.*__revision__.*/__revision__ = \"${REV_NUMBER}\"/' MDANSE/__pkginfo__.py
# Now build last version and install it in our homebrewed python
echo -e "$BLEU""Building MDANSE" "$NORMAL"
# Clean up temporary build directories
rm -rf build
rm -rf dist
# Remove previous install of MDANSE
rm /usr/local/bin/mdanse*
rm /usr/local/lib/python2.7/site-packages/MDANSE*.egg-info
rm -rf /usr/local/lib/python2.7/site-packages/MDANSE
# Build and install MDANSE to the homebrewed python
/usr/local/bin/python setup.py build >> BuildServer/Darwin/Scripts/build_log.txt 2>&1
/usr/local/bin/python setup.py install >> BuildServer/Darwin/Scripts/build_log.txt 2>&1
# Performs the unit tests
cd Tests/UnitTests
nosetests --verbosity=3 -P .
cd ../..
if [ "$BUILD_TARGET" = "darwin" ]; then
cd ../../../
# take the latest version of nmoldyn available on the forge
echo -e "$BLEU""Getting last MDANSE revision" "$NORMAL"
# Get revision number from git (without trailing newline)
export REV_NUMBER=$(git rev-list --count HEAD)
echo "$BLEU""Revision number is -->${REV_NUMBER}<--" "$NORMAL"
# Add current revision number to python source code (will appear in "About..." dialog)
# see http://stackoverflow.com/questions/7648328/getting-sed-error
sed -i "" "s/__revision__ = \"undefined\"/__revision__ = \"${REV_NUMBER}\"/" MDANSE/__pkginfo__.py
# Now build last version and install it in our homebrewed python
echo -e "$BLEU""Building MDANSE" "$NORMAL"
# Clean up temporary build directories
rm -rf build
rm -rf dist
# Remove previous install of MDANSE
rm /usr/local/bin/mdanse*
rm /usr/local/lib/python2.7/site-packages/MDANSE*.egg-info
rm -rf /usr/local/lib/python2.7/site-packages/MDANSE
# Build and install MDANSE to the homebrewed python
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install
# Performs the unit tests
cd Tests/UnitTests
nosetests --verbosity=3 -P .
cd ../..
cd Tests/FunctionalTests/Jobs
python BuildJobTests.py
nosetests --verbosity=3 --exe -P .
cd ../../..
TARGET_DIR=MDANSE-${BUILD_NAME}-b${REV_NUMBER}-MacOS
echo -e "$BLEU""Packaging MDANSE" "$NORMAL"
rm -rf BuildServer/Darwin/Build
mkdir BuildServer/Darwin/Build
# debug option for py2app, if needed
export DISTUTILS_DEBUG=0
cd BuildServer/Darwin/Scripts
/usr/local/bin/python build.py py2app
rc=$?
if [[ $rc != 0 ]]; then
echo -e "$ROUGE""Cannot build app." "$NORMAL"
exit 1
fi
cd ../Build
# Do some manual cleanup, e.g.
# matplotlib/tests ==> 45.2 Mb
rm -rf dist/MDANSE.app/Contents/Resources/lib/python2.7/matplotlib/tests
rm -rf dist/MDANSE.app/Contents/Resources/mpl-data/sample_data
#Add MDANSE version file (should read the version from the bundle with pyobjc, but will figure that out later)
echo "$BUILD_NAME b$REV_NUMBER"> dist/MDANSE.app/Contents/Resources/version
rm -f ./MDANSE.dmg
rm -f ./rw.MDANSE.dmg
hdiutil unmount /Volumes/MDANSE -force -quiet
sleep 5
../Tools/create-dmg/create-dmg --background "../Resources/background.jpg" --volname "MDANSE" --window-pos 200 120 --window-size 800 400 --icon MDANSE.app 200 190 --hide-extension MDANSE.app --app-drop-link 600 185 MDANSE.dmg ./dist
curl -T MDANSE.dmg ftp://$CI_FTP_USER_USERNAME:$CI_FTP_USER_PASSWORD@ftp.ill.fr/mdanse/
exit
cd Tests/FunctionalTests/Jobs
python BuildJobTests.py
nosetests --verbosity=3 --exe -P .
cd ../../..
echo -e "$BLEU""Packaging MDANSE" "$NORMAL"
rm -rf BuildServer/Darwin/Build
mkdir BuildServer/Darwin/Build
# debug option for py2app, if needed
export DISTUTILS_DEBUG=0
cd BuildServer/Darwin/Scripts
/usr/local/bin/python build.py py2app >> build_log.txt 2>&1
rc=$?
if [[ $rc != 0 ]]; then
echo -e "$ROUGE""Cannot build app." "$NORMAL"
exit 1
fi
cd ../Build
# Do some manual cleanup, e.g.
# matplotlib/tests ==> 45.2 Mb
rm -rf dist/MDANSE.app/Contents/Resources/lib/python2.7/matplotlib/tests
rm -rf dist/MDANSE.app/Contents/Resources/mpl-data/sample_data
MDANSE_DMG=MDANSE-${VERSION_NAME}-${BUILD_TARGET}.dmg
#Add MDANSE version file (should read the version from the bundle with pyobjc, but will figure that out later)
echo "${VERSION_NAME}" > dist/MDANSE.app/Contents/Resources/version
rm -f ./${MDANSE_DMG}
rm -f ./rw.${MDANSE_DMG}
hdiutil unmount /Volumes/MDANSE -force -quiet
sleep 5
../Tools/create-dmg/create-dmg --background "../Resources/background.jpg" --volname "MDANSE" --window-pos 200 120 --window-size 800 400 --icon MDANSE.app 200 190 --hide-extension MDANSE.app --app-drop-link 600 185 "${MDANSE_DMG}" ./dist
exit
#!/bin/sh
#!/bin/bash
export ARCH=$1
export DISTRO=$2
......@@ -18,30 +18,38 @@ BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
if [ -n "${RUN_NIGHTLY_BUILD}" ]
then
VERSION_NAME="devel"
else
if [[ $CI_BUILD_TAG =~ ^v([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
VERSION_NAME=${BASH_REMATCH[1]}
else
echo -e "$ROUGE""Invalid version number ${CI_BUILD_TAG}" "$NORMAL"
exit
fi
fi
##Select the build target
BUILD_TARGET=debian
##Do we need to create the final archive
ARCHIVE_FOR_DISTRIBUTION=1
##Which version name are we appending to the final archive
export BUILD_NAME=1.0.0
export REV_NUMBER="undefined"
cd
cd $CI_PROJECT_DIR
# Get revision number from git (without trailing newline)
REV_NUMBER=$(git rev-list --count HEAD)
echo "$BLEU""Revision number is -->${REV_NUMBER}<--" "$NORMAL"
echo -e "$BLEU""Revision number = ${REV_NUMBER}<--" "$NORMAL"
# Add current revision number to python source code (will appear in "About..." dialog)
# see http://stackoverflow.com/questions/7648328/getting-sed-error
sed -i "s/__revision__ = \"undefined\"/__revision__ = \"${REV_NUMBER}\"/" MDANSE/__pkginfo__.py
sed -i '' 's/.*__version__.*/__version__ = \"${VERSION_NAME}\"/' MDANSE/__pkginfo__.py
sed -i '' 's/.*__revision__.*/__revision__ = \"${REV_NUMBER}\"/' MDANSE/__pkginfo__.py
#MDANSE_VERSION=$(grep -Po '(?<=__version__ = \")\d.\d.\d' MDANSE/__pkginfo__.py)
# Now build last version
echo "$BLEU""Building MDANSE" "$NORMAL"
python setup.py build
python setup.py build
export PYTHONPATH=${PWD}/build/lib.linux-x86_64-2.7
......@@ -57,10 +65,10 @@ cd ../../..
echo "$BLEU""Build debian tree" "$NORMAL"
DEBIAN_ROOT_DIR=debian_${DISTRO}-${ARCH}
DEBIAN_ROOT_DIR=BuildServer/Debian/Build
# Copy all the debian files (e.g. control, copyright, md5sum ...) into DEBIAN directory
mkdir ${DEBIAN_ROOT_DIR}
mkdir ${DEBIAN_ROOT_DIR}
cp -r BuildServer/Debian/DEBIAN ${DEBIAN_ROOT_DIR}/
chmod -R 755 ${DEBIAN_ROOT_DIR}/DEBIAN
......@@ -89,7 +97,4 @@ cp -r /usr/local/lib/python2.7/dist-packages/Scientific* ${DEBIAN_DIST_DIR}
cp -r /usr/local/lib/python2.7/dist-packages/MMTK* ${DEBIAN_DIST_DIR}
export TMPDIR=.
fakeroot dpkg-deb -b ${DEBIAN_ROOT_DIR} MDANSE-${BUILD_NAME}-${DISTRO}-${ARCH}.deb
scp MDANSE-${BUILD_NAME}-${DISTRO}-${ARCH}.deb gitlabci-nsxtool@mdanse.ill.fr:/mnt/data/software/mdanse/uploads
curl -T MDANSE-${BUILD_NAME}-${DISTRO}-${ARCH}.deb ftp://$CI_FTP_USER_USERNAME:$CI_FTP_USER_PASSWORD@ftp.ill.fr/mdanse/
fakeroot dpkg-deb -b ${DEBIAN_ROOT_DIR} ${DEBIAN_ROOT_DIR}/MDANSE-${VERSION_NAME}-${DISTRO}-${ARCH}.deb
This diff is collapsed.
......@@ -18,6 +18,19 @@ else
BUILD_TARGET=$2
fi
if [ -n "${RUN_NIGHTLY_BUILD}" ]
then
VERSION_NAME="devel"
else
if [[ ${CI_BUILD_TAG} =~ ^v([0-9]+\.[0-9]+\.[0-9]+)$ ]]
then
VERSION_NAME=${BASH_REMATCH[1]}
else
echo "Invalid version number ${CI_BUILD_TAG}"
exit
fi
fi
if [ "$BUILD_TARGET" = "win32" ]; then
PYTHON_SUFFIX=""
MSVC_BUILD_TARGET="/x86"
......@@ -40,7 +53,7 @@ CI_PROJECT_DIR_WIN=$(cygpath -a -w ${CI_PROJECT_DIR})
SCRIPT_DIR="${CI_PROJECT_DIR}/BuildServer/Windows"
# This is the directory that will contain the temporary installation
TARGET_DIR="${CI_PROJECT_DIR_WIN}\\BuildServer\\Windows\\${BUILD_TARGET}"
TARGET_DIR="${CI_PROJECT_DIR_WIN}\\BuildServer\\Windows\\Build"
TARGET_DIR_CYGWIN=$(cygpath -u $TARGET_DIR)
function extract
......@@ -68,10 +81,10 @@ if [ $TASK = "setup" ]; then
PYTHON_MSI=python-${PYTHON_VERSION}${PYTHON_SUFFIX}.msi
PYTHON_MSI_WIN=${CI_WINDOWS_DEPENDENCIES_PATH}\\${BUILD_TARGET}\\${PYTHON_MSI}
echo "Extracting python ${PYTHON_MSI_WIN} in ${TARGET_DIR}"
cmd /c "msiexec /L* pythonlog.txt /qn /a ${PYTHON_MSI_WIN} TARGETDIR=${TARGET_DIR}"
# Exit now if something goes wrong
if [ $? -ne 0 ]; then
status = $?
......@@ -95,10 +108,10 @@ if [ $TASK = "setup" ]; then
cd ${DEPENDENCIES_DIR}
echo "Extracting dependencies"
# extract numpy
extract numpy-MKL-1.8.0.${BUILD_TARGET}-py2.7.exe PLATLIB
# extract matplotlib and its dependencies
extract pyparsing-2.0.1.${BUILD_TARGET}-py2.7.exe PURELIB
extract python-dateutil-2.2.${BUILD_TARGET}-py2.7.exe PURELIB
......@@ -111,39 +124,39 @@ if [ $TASK = "setup" ]; then
extract Cython-0.19.2.${BUILD_TARGET}-py2.7.exe SCRIPTS
# extract Pyro
extract Pyro-3.16.${BUILD_TARGET}.exe PURELIB
extract Pyro-3.16.${BUILD_TARGET}.exe PURELIB
# extract Sphinx and its dependencies
extract alabaster-0.7.5.${BUILD_TARGET}.exe PURELIB
extract Pygments-2.0.2.${BUILD_TARGET}.exe PURELIB
extract Pygments-2.0.2.${BUILD_TARGET}.exe SCRIPTS
extract Babel-1.3.${BUILD_TARGET}.exe PURELIB
extract Babel-1.3.${BUILD_TARGET}.exe SCRIPTS
extract MarkupSafe-0.23.${BUILD_TARGET}-py2.7.exe PLATLIB
extract Jinja2-2.7.3.${BUILD_TARGET}.exe PURELIB
extract docutils-0.12.${BUILD_TARGET}.exe PURELIB
extract docutils-0.12.${BUILD_TARGET}.exe SCRIPTS
extract Sphinx-1.3.1.${BUILD_TARGET}.exe PURELIB
extract alabaster-0.7.5.${BUILD_TARGET}.exe PURELIB
extract Pygments-2.0.2.${BUILD_TARGET}.exe PURELIB
extract Pygments-2.0.2.${BUILD_TARGET}.exe SCRIPTS
extract Babel-1.3.${BUILD_TARGET}.exe PURELIB
extract Babel-1.3.${BUILD_TARGET}.exe SCRIPTS
extract MarkupSafe-0.23.${BUILD_TARGET}-py2.7.exe PLATLIB
extract Jinja2-2.7.3.${BUILD_TARGET}.exe PURELIB
extract docutils-0.12.${BUILD_TARGET}.exe PURELIB
extract docutils-0.12.${BUILD_TARGET}.exe SCRIPTS
extract Sphinx-1.3.1.${BUILD_TARGET}.exe PURELIB
extract sphinx_rtd_theme-0.1.8.${BUILD_TARGET}.exe PURELIB
extract nose-1.3.7.${BUILD_TARGET}.exe PURELIB
extract nose-1.3.7.${BUILD_TARGET}.exe SCRIPTS
extract nose-1.3.7.${BUILD_TARGET}.exe PURELIB
extract nose-1.3.7.${BUILD_TARGET}.exe SCRIPTS
# extract VTK
extract VTK-5.10.1.${BUILD_TARGET}-py2.7.exe PURELIB
# extract wxPython and its dependencies
extract wxPython-common-2.8.12.1.${BUILD_TARGET}-py2.7.exe PURELIB
extract wxPython-common-2.8.12.1.${BUILD_TARGET}-py2.7.exe PURELIB
extract wxPython-2.8.12.1.${BUILD_TARGET}-py2.7.exe PLATLIB
# extract ScientificPython
extract ScientificPython-2.9.2.${BUILD_TARGET}-py2.7.exe DATA
extract ScientificPython-2.9.2.${BUILD_TARGET}-py2.7.exe PLATLIB
extract ScientificPython-2.9.2.${BUILD_TARGET}-py2.7.exe SCRIPTS
# extract MMTK
extract MMTK-2.7.6.${BUILD_TARGET}-py2.7.exe PLATLIB
# move the packages to the target directory
echo "Moving dependencies to ${BUILD_TARGET}"
mv PLATLIB/numpy ${TARGET_DIR_CYGWIN}/Lib/site-packages/numpy
......@@ -153,7 +166,7 @@ if [ $TASK = "setup" ]; then
mv PURELIB/pytz ${TARGET_DIR_CYGWIN}/Lib/site-packages/pytz
mv PURELIB/six.py ${TARGET_DIR_CYGWIN}/Lib/site-packages/six.py
mv PLATLIB/matplotlib ${TARGET_DIR_CYGWIN}/Lib/site-packages/matplotlib
mv PLATLIB/Cython ${TARGET_DIR_CYGWIN}/Lib/site-packages/Cython
mv SCRIPTS/cython.py ${TARGET_DIR_CYGWIN}/Scripts/cython.py
cp ${TARGET_DIR}/Scripts/cython.py ${TARGET_DIR_CYGWIN}/Lib/site-packages/
......@@ -173,48 +186,49 @@ if [ $TASK = "setup" ]; then
mv PURELIB/nose ${TARGET_DIR_CYGWIN}/Lib/site-packages/nose
mv SCRIPTS/nosetests ${TARGET_DIR_CYGWIN}/Scripts/
mv PURELIB/vtk ${TARGET_DIR_CYGWIN}/Lib/site-packages/vtk
mv PURELIB/wx.pth ${TARGET_DIR_CYGWIN}/Lib/site-packages/
mv PURELIB/wxversion.py ${TARGET_DIR_CYGWIN}/Lib/site-packages/
mv PLATLIB/wx-2.8-msw-unicode ${TARGET_DIR_CYGWIN}/Lib/site-packages/wx-2.8-msw-unicode
echo "package='NumPy'" >> PLATLIB/Scientific/N.py
mv PLATLIB/Scientific ${TARGET_DIR_CYGWIN}/Lib/site-packages/Scientific
# this is a hack due to a bug introduced by Konrad in version 2.9.2 of Scientific: the N.package is not defined anymore
# this is a hack due to a bug introduced by Konrad in version 2.9.2 of Scientific: the N.package is not defined anymore
# which triggers erros for modules that used N.package (e.g. MMTK.Random)
mv DATA/Lib/site-packages/Scientific/netcdf3.dll ${TARGET_DIR_CYGWIN}/Lib/site-packages/Scientific
mv SCRIPTS/task_manager ${TARGET_DIR_CYGWIN}/Scripts/task_manager
mv PLATLIB/MMTK ${TARGET_DIR_CYGWIN}/Lib/site-packages/MMTK
rm -rf DATA
rm -rf PLATLIB
rm -rf PURELIB
rm -rf SCRIPTS
cd ${SCRIPT_DIR}
rm pythonlog.txt
elif [ $TASK = "build" ]; then
cd ${CI_PROJECT_DIR}
# Get revision number from GIT
REV_NUMBER=$(git rev-list --count HEAD)
echo "Revision number is $REV_NUMBER"
# Add current revision number to python source code (will appear in "About..." dialog)
sed -i "s/__revision__ = \"undefined\"/__revision__ = \"${REV_NUMBER}\"/" MDANSE/__pkginfo__.py
sed -i '' 's/.*__version__.*/__version__ = \"${VERSION_NAME}\"/' MDANSE/__pkginfo__.py
sed -i '' 's/.*__revision__.*/__revision__ = \"${REV_NUMBER}\"/' MDANSE/__pkginfo__.py
# setup the environment for a visual studio build of MDANSE using microsoft SDK 7.0 and build MDANSE
echo "MDANSE setup and build"
# go back to the installation base directory
cd ${SCRIPT_DIR}
cmd /V:ON /E:ON /C "setup_and_build.bat" "${CI_PROJECT_DIR_WIN}" "${TARGET_DIR}" ${MSVC_BUILD_TARGET}
# Exit now if unable to build
......@@ -233,19 +247,18 @@ elif [ $TASK = "build" ]; then
echo "One or several unit tests failed"
exit status
fi
cd ${CI_PROJECT_DIR}
# Other way to fetch the current version without python
VERSION=$(grep -Po '(?<=__version__ = \")\d.\d.\d' MDANSE/__pkginfo__.py)
# Other way to fetch the current version without python
#MDANSE_VERSION=$(grep -Po '(?<=__version__ = \")\d.\d.\d' MDANSE/__pkginfo__.py)
cd ${SCRIPT_DIR}
echo "Packaging"
# create the MDANSE installer
echo "Creating nsis installer for target ${BUILD_TARGET}..."
makensis /V4 /ONSISlog.txt /DVERSION=${VERSION} /DARCH=${BUILD_TARGET} /DPYTHON_INST="${TARGET_DIR}" /DREVISION=${REV_NUMBER} MDANSE_installer.nsi
curl -T "MDANSE_*.exe" ftp://$CI_FTP_USER_USERNAME:$CI_FTP_USER_PASSWORD@ftp.ill.fr/mdanse/
makensis /V4 /ONSISlog.txt /DVERSION=${VERSION_NAME} /DARCH=${BUILD_TARGET} /DTARGET_DIR="${TARGET_DIR}" MDANSE_installer.nsi
fi
MDANSE (Molecular Dynamics Analysis for Neutron Scattering Experiments) is a
python application
for analyzing molecular dynamics simulation data.
MDANSE currently works on unix debian-like (e.g. ubuntu) and Windows.
There is little system-specific
code in MDANSE itself, so porting MDANSE to other systems should be
straightforward. However, we cannot
provide any support for this.
MDANSE (**M**olecular **D**ynamics **A**nalysis for **N**eutron **S**cattering
**E**xperiments) is a
python application designed for computing properties that can be directly
compared with neutron scattering experiments such as the coherent and incoherent
intermediate scattering functions and their Fourier transforms, the elastic
incoherent structure factor, the static coherent structure factor or the radial
distribution function. Moreover, it can also compute quantities such as the
mean-square displacement, the velocity autocorrelation function as well as its
Fourier Transform (the so-called vibrational density of states) enlarging the
scope of the program to a broader range of physico-chemical properties.
Most of MDANSE calculations can be applied to the whole system or to arbitrary
subsets that can be defined in the graphical interface while less common
selections can be specified via the command-line interface. MDANSE is written in
Python and currently works on Linux, MacOS and Windows.
MDANSE is developed and maintained by:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment