Dedalus Workshop - Geoff Vasil (U. Sydney)

Join us for a very special Seminar and Workshop exploring Dedalus - A flexible framework for spectrally solving differential equations. Dedalus is used for fluid dynamics research, but can be applied to any initial-value, boundary-value, and eigenvalue problems involving nearly arbitrary equations sets. 

1 - 2 PM: Seminar on Dedalus by Geoff Vasil

2 - 3 PM: Hands-on workshop with Dedalus by Geoff Vasil

—————————————————————————————————————————————————————————————————

For anyone who would like to follow along with the tutorial it would help greatly if they could attempt to install Dedalus before hand. There are several ways to do this.  

0) If you already have Dedalus installed, there is nothing to do. You might want to pull any latests changes. But everything should work fine. 

1) We have a number of different kinds of instructions on our website regarding installation on different platforms: https://dedalus-project.readthedocs.io/en/latest/installation.html 

    I don’t recommend this option. It was our default until recently. But we are currently working on a much easier method. I’ll outline how this works below.

2) We (by this I mean smart Dedalus people other than me) are working on installing Dedalus with Anaconda Python distribution. We are still working on getting everything 100% as easy as possible. But at this point, it seems that it’s the easiest and most reliable way to install everything you need for Dedalus. 

    I provide some step-by-step instructions for getting everything working. I can address any questions about this on Friday. But It would be most efficient if we can just jump right in. 

    The actual commands you need to type are in italics. 

To install dedalus using conda, here are some instructions

1. Install miniconda by visiting: https://conda.io/miniconda.html

    Choose your OS. And Python 3.6. Everything should work for Mac and Linux. Caveat emptor for Windows. 

    This will download a script called something like “Miniconda_something_something.sh”. 

    On Mac, the file is called "Miniconda3-latest-MacOSX-x86_64.sh” and lands in the ~/Downloads directory.

    Run the script and following the instructions. It will put a new directory in your home directory.  

    bash Miniconda_something_something.sh    

2. Add the miniconda path to your PATH. Eg

    export PATH=“~/miniconda3/bin:$PATH"

    The installer will ask you if it can update your PATH in your .bash_profile, or something similar. Say yes only if the file it suggests is the same name as the one you use to set environmental variables. 

    Otherwise, just update the PATH by hand in the file of your choice. 

    The instructions will say at this point: "For this change to become active, you have to open a new terminal."

3. Create a conda installation

    conda update -n base conda
    conda create -n dedalus-conda python=3.6

    The “dedalus-conda” name is your choice. You can change this to whatever you like as long as you change it everywhere below. 

4. Activate your conda installation

    source activate dedalus-conda

    This will put you in an isolated “environment” where everything is separated fro the rest of your system. 

    It won’t interfere if you have other Python stuff scattered around on your OS.

    If you want to delete everything you can and nothing else in your system will be affected. 

    You will see your terminal prompt change letting you know you are in the new environment. 

    In the future, you will need to do this every time you want to run Dedalus. It’s how the system knows where everything is. 

5. Install the preliminary packages. It will guide you with some simple instructions. 

    pip install --upgrade pip

    conda install -c cryoem fftw-mpi

conda install -c conda-forge hdf5
    conda install -c conda-forge numpy
    conda install -c conda-forge scipy

    If any of these fail for some reason, it’s likely the result of a dropped internet connection, try again. 

6. Clone Dedaus. If you don't have mercurial, install it.

    We use https://www.mercurial-scm.org for getting Dedalus from the repository. It’s easy to install if you don’t have it. 

    hg clone https://bitbucket.org/dedalus-project/dedalus ~/dedalus_conda

    Again, the directory "~/dedalus_conda” is an optional name. You can call the Dedalus files anything you like as long as it’s consistent. 

7. Setup several environment variables

    These are only needed once at the setup, and can be entered into the command line:

    export FFTW_PATH=$CONDA_PREFIX
    export MPI_PATH=$CONDA_PREFIX
    export LD_LIBRARY_PATH=$CONDA_PREFIX/lib

    This is needed at runtime and should always be in the environment:
    export PYTHONPATH=~/dedalus_conda:$PATH

    You can do this in the same “.bash_profile” file equivalent that you put export PATH=“~/miniconda3/bin:$PATH" into earlier. 

    To make these work in the current terminal window:

    source ~/.bash_profile

    Or the equivalent. 

8. Build dedalus

    cd ~/dedalus_conda

    python3 -m pip install -r requirements.txt

    python3 setup.py build_ext --inplace --force

9. Test dedalus

    You can make sure things work by running the following example script: 

    cd ~/dedalus_conda/examples/ivp/2d_rayleigh_benard

    You can see instruction at the top of the rayleigh_benard.py file explaining how to run the simulation and process the data. 

    Most laptops these days have at least 2 cores. You can test Dedalus, Python and MPI all at once by running:

    mpiexec -n 2 python3 rayleigh_benard.py

    You can process the data with the following two commands:

    mpiexec -n 4 python3 merge.py snapshots --cleanup

    mpiexec -n 4 python3 plot_2d_series.py snapshots/*.h5

    This should make a directory called frames. Your test pictures should be in there as .png files. 

    You can stitch these into a movie. We like ffmpeg quite a lot: https://www.ffmpeg.org. But it’s up to you. 

10. Exiting. 

    If you source deactivate you will exit the conda environment. If you want to get back in, you’ll have to simply type 

    source activate dedalus-conda

    Each time. But that’s not much. 

That’s about it. This *should* all work relatively easily. But it’s still a little bit of a prototype method for installation. If you have any trouble with this please send a message to 

    jsoishi@gmail.com 

    keaton.burns@gmail.com

    geoffrey.m.vasil@gmail.com

Also, remember that you might have good luck with the other options on our website. These methods can be a little tricky with environment variables, but will definitely work.