module load PySide6/6.2.3-GCCcore-10.2.0 module load Sphinx/3.5.2-GCCcore-10.2.0 module load texlive/20210216 module load matplotlib/3.5.2-foss-2020b module load IMAS/3.37.0-4.11.0-foss-2020b
make
One can modify the following environment variables to change the installation location:
-
STAGING_DIR installation destination
$ # Example $ STAGING_DIR=/path/to/install make
When having at least 100GB free memory then building can be done in memory
BUILD_DIR=/dev/shm/$USER make
rm -rf /dev/shm/$USER
Source the setupenv.sh for locally built PyQt with
$ make setupenv.sh
$ source setupenv.sh
Optionally after building PyQt you can build gnuplot 5.2 and embedded gnuplot in Qt with the following commands:
$ make gnuplot
$ make gnuplot-widget
$ src/gui/solps.py # or simply type "solps" alias
On the ITER cluster the following modules and commands are needed for building documentation (and running SOLPS GUI):
$ module load Perl/5.20.3-goolf-1.5.16 imas texlive python/3.6/3
$ cd doc
$ make install-iter # or use one of
$ make latexpdf PAPER=a4 # for PDF with TexLive
$ make html # for solps_doc alias within "modern" browser
$ make qthelp # for solps_help alias with assistant
$ qcollectiongenerator build/qthelp/SOLPSGUI.qhcp
One should always build latexpdf before html as HTML includes generated SOLPS-GUI.pdf
Qt5.x requires XCB library for X11 rendering instead of Xlib. On RHEL5 XCB is built from sources and put into staging/lib.
IMAS is not required to build the SOLPS GUI.
module use /work/imas/etc/modulefiles
module load imas
imasdb solps-iter
XCB development libraries are required for building Qt5.x
apt-cache search libxcb
sudo apt-get install libxcb.*-dev libxkbcommon-dev
sudo apt-get install libudev-dev libxi-dev libffi-dev
If for some reason you have a local installation of PIP in ${HOME}/.local/lib/pythonX.Y then python will not build successfully. To solve this, delete the locally installed pip with
$ pip3 uninstall pip
and then run make python. This problem came with Debian 9 and Ubuntu 19.04 and higher versions.
For python to be build with the following development packages are required.
apt-get install libssl-dev liblzma-dev
are required to build pip3 and corresponding Python packages, themes.
brew install qt5
brew linkapps qt5
brew install PyQt5 --with-python3
pip3 install sphinx sphinx_rtd_theme matplotlib
Preferences of some widgets and settings are stored to allow users configure the GUI. Size and position of the Main window is saved when user closes the GUI. At the same time columns position and widths are stored too. In some cases one wants to start from scratch by clearing the preferences.
rm ${HOME}/.config/ITER/solps-gui.conf
rm ${HOME}/Library/Preferences/com.iter.solps-gui.plist
killall -u $USER cfprefsd
Older versions of Qt ( < 5.9.0) do not support OpenSSL-1.1.0, which is the only available package for debian stretch to get via command:
apt-get install openssl
For this you have to install the development packages for older version of openssl (1.0.x):
apt-get install libssl1.0-dev
This installs the development files for openSSL version 1.0.2.
Anaconda3 lacks mkspecs and some other development Qt and PyQt build required files. To build the Anaconda3 binary-compatible gnuplot and PyQt widget do:
module load imas binutils
module unload Anaconda2
qmake --version && sip -V
export QT_VERSION=5.6.2 PyQT_VERSION=5.6.2 SIP_VERSION=4.18
export STAGING_QT=${EBROOTANACONDA3}/pkgs/qt-5.6.2-3
QT_LIBS=$(pkg-config --libs Qt5Network Qt5Svg Qt5PrintSupport Qt5Widgets\
Qt5Gui Qt5Core)
QT_LIBS="-Wl,-rpath=${EBROOTANACONDA3}/lib ${QT_LIBS}"
export QT_LIBS="-L${EBROOTANACONDA3}/lib -liconv ${QT_LIBS}"
export GNUPLOT_INSTALL_DIR=/work/imas/opt/gnuplot/5.2.1
MAKE_JOBS=16 ./build-gnuplot.sh
Building PyQt based Gnuplot widget with build-gnuplot-widget.sh has been unsucessful so far.
For situations where IMAS library is provided system wide but Python3 is used from local build using setupenv.sh then one can install IMAS package by
pip3 install --user --compile ${IMAS_PREFIX}/python/dist/imas*.tar.gz
Scripts have been added for compiling SOLPS-ITER and it's prerequisites into the same build environment as SOLPS-GUI. Some packages can be installed with the use of package managers:
Ubuntu 19.04:
apt-get install libcairo2-dev libfontconfig1-dev
libxrender-dev libx11-dev libxslt1-dev libxmuu-dev
openjdk-8-jdk
libreadline-dev xsltproc
texlive texlive-latex-recommended texlive-binaries texlive-latex-extra
emacs-bin-common
python-dev csh ksh tcsh
xutils-dev # Makedepend
Debian 9.6 (stretch):
apt-get install libcairo2-dev libfontconfig1-dev
libxrender-dev libx11-dev libxslt1-dev libxmuu-dev
openjdk-8-jdk
libreadline-dev xsltproc
texlive texlive-latex-recommended texlive-binaries texlive-latex-extra
emacs25-bin-common
python-dev csh ksh tcsh
xutils-dev # Makedepend
apt-get install build-essential
Openjdk and emacs packages are different for Debian 10.
Debian 10 (buster): apt-get install openjdk-11-jdk emacs-bin-common
CentOS7:
yum install epel-release
yum install ncl-devel cairo-devel fontconfig-devel libXrender-devel \
libX11-devel freetype-devel ksh libxslt java-1.8.0-openjdk-devel \
readline-devel libxslt openmpi-devel motif-devel netcdf-devel \
netcdf-fortran-devel ctags-etags texlive texlive-latex \
texlive-latex-bin-bin texlive-collection-latexrecommended \
environment-modules openssl-devel python-devel
yum groupinstall "Development tools"
The configuration of SOLPS-ITER used GNU gcc/gfortran compiler toolchain. Along SOLPS-ITER other packages are compiled, such as IMAS, OpenBLAS.
To start building the packages, run the following command:
cd solps-gui
./configure
make solps-iter
CentOS 8:
yum install ncl-devel cairo-devel fontconfig-devel libXrender-devel
libX11-devel freetype-devel ksh libxslt java-1.8.0-openjdk-devel
readline-devel libxslt motif-devel netcdf-devel
netcdf-fortran-devel ctags-etags texlive texlive-latex
texlive-latex-bin-bin texlive-collection-latexrecommended
environment-modules openssl-devel
libtirpc-devel ksh