-
Notifications
You must be signed in to change notification settings - Fork 49
Mac Installation Instructions
Before installing simsopt
, use a virtual environment either from conda or python3 venv. If using python3 venv, get openmpi
and also python3 either through HomeBrew or MacPorts.
-
Install macports. The installation instructions can be found here. (For catalina, you need to install xcode 11.5 and command line tools 11.5 to be compatible with macports)
-
Install openmpi. Multiple versions of openmpi are avaialable. Here openmpi version that matches with clang11 is installed.
sudo port install openmpi-clang11 sudo port select --set mpi openmpi-clang11-fortran
Installation of openmpi-clang11 also install python 3.9. Set this version of python3.9 as default python version.
sudo port select --set python python39 sudo port select --set python3 python39
-
(Optional) Install wget, if you want to download simsopt source code as a zip file
sudo port install wget
Mac Catalina (10.15) comes with python 3.7, which can be accessed with python3 command. But we are using the python3.9 from macports. Assuming you ran the step 2 in Macports section
- Create a virtual environment named
simsopt_ve
usingvenv
modulepython3 -m venv <path_where_you_want_the_venv>/simsopt_ve
- Activate the virtual environment.
After activating the virtual environment,
source <path_where_you_want_the_venv>/simsopt_ve/bin/activate
(simsopt_ve)
should appear in front of the command prompt. - To confirm that
simsopt_ve
is activated, runwhich python
, which should point to<path_where_you_want_the_venv>/simsopt_ve/bin/python
.
- If using conda, activate the conda virtual environment
Otherwise activate the virtual environment based on python3-venv
conda activate <your_conda_ve>
source <path_where_you_want_the_venv>/simsopt_ve/bin/activate
- Install simsopt. It is advisable to install mpi4py.
-
If you are using conda, first install mpi4py
conda install -c anaconda -n <your_conda_ve> mpi4py
-
If installing from pypi inside conda virtual environment, run
pip install "simsopt"
else to install mpi4py along with simsopt run
pip install "simsopt[MPI]"
-
For local install, get the source code either by downloading the zip file and unzip or via git. If using zip file
wget https://github.com/hiddenSymmetries/simsopt/archive/refs/heads/master.zip unzip master.zip cd simsopt-master
-
If you are cloning from github
git clone https://github.com:hiddenSymmetries/simsopt.git cd simsopt
-
For editable install (if you are a developer, you don't want to repeatedly reinstall simsopt after changing the source code), use the
-e
flag. Otherwise you can omit the-e
flag.pip install -e .
or
pip install -e ".[MPI]"
-
- If you are installing simsopt at multiple environments with different compilers or different versions of libraries, use
--no-cache-dir
option when running the pip command.pip install --no-cache-dir "simsopt[MPI]"
The following instructions for conda work for installing vmec also.
-
Install conda. The installation instructions can be found here. (For catalina, you can install xcode up to version 12.1 and command line tools up to v12.1 before installing conda)
-
Add conda-forge channel.
conda config --add channels conda-forge
-
Create a conda virtual environment and activate it. Instructions can be found here.
-
Install netcdf-fortran, openmpi-mpicc, openmpi-mpifort, and openblas (for VMEC2000)
conda install netcdf-fortran openmpi-mpicc openmpi-mpifort openblas scalapack
Also install VMEC build dependencies such as mpi4py, scikit-build, numpy, f90wrap
conda install mpi4py scikit-build numpy f90wrap
-
Install VMEC2000 from github.com/hiddensymmetries. Follow the instructions here. Copy cmake/machines/cmake_mac_manual_conda_config.json to cmake_config_file.json. Then install VMEC2000.
-
Build simsopt wheel. First, manually install the build dependencies.
pip install "setuptools_scm[toml]"
Inside the simsopt folder, build the wheel by running
python setup.py bdist_wheel
Change to dist folder and install simsopt from the newly built whl file by running
cd dist pip install <newly-built-file-ending-with-.whl>