Configure AiiDA¶
Verdi tab-completion¶
The verdi
command line interface has many commands and options,
which can be tab-completed to simplify your life.
Enable tab-completion with the following shell command:
eval "$(_VERDI_COMPLETE=source verdi)"
Place this command in your startup file, i.e. one of
the startup file of your shell (
.bashrc
,.zsh
, …), if aiida is installed system-widethe activate script of your virtual environment
a startup file for your conda environment
In order to enable tab completion in your current shell, make sure to source the startup file once.
Note
This line replaces the eval "$(verdi completioncommand)"
line that was used in aiida-core<1.0.0
. While this continues to work, support for the old line may be dropped in the future.
Isolating AiiDA environments¶
By default, the AiiDA configuration is stored in the directory ~/.aiida
.
When running AiiDA in multiple virtual environments (using virtualenv
or conda
),
you can ask AiiDA to use a separate .aiida
configuration directory per environment.
Create your virtual environment
aiida2
Edit the activation script
~/.virtualenvs/aiida2/bin/activate
and append a line to set theAIIDA_PATH
environment variable:export AIIDA_PATH='~/.virtualenvs/aiida2' # use .aiida configuration in this folder eval "$(_VERDI_COMPLETE=source verdi)" # e.g. set up tab completion
Note
For conda
, create a directory structure etc/conda/activate.d
in
the root folder of your conda environment (e.g.
/home/user/miniconda/envs/aiida
), and place a file aiida-init.sh
in
that folder which exports the AIIDA_PATH
.
Deactivate and re-activate the virtual environment
You can test that everything is set up correctly if you can reproduce the following:
(aiida2)$ echo $AIIDA_PATH
>>> ~/.virtualenvs/aiida2
(aiida2)$ verdi profile list
>>> Info: configuration folder: /home/my_username/.virtualenvs/aiida/.aiida2
>>> Critical: configuration file /home/my_username/.virtualenvs/aiida/.aiida2/config.json does not exist
Now simply create a new AiiDA profile in the aiida2
environment.
AIIDA_PATH
Details¶
The value of AIIDA_PATH
can be a colon-separated list of paths.
AiiDA will go through each of the paths and check whether they contain a .aiida
directory.
The first configuration directory that is encountered will be used.
If no .aiida
directory is found, one will be created in the last path that was considered.
For example, the directory structure in your home folder ~/
might look like this
.
├── .aiida
└── project_a
├── .aiida
└── subfolder
If you leave the AIIDA_PATH
variable unset, the default location ~/.aiida
will be used.
However, if you set
export AIIDA_PATH='~/project_a:'
the configuration directory ~/project_a/.aiida
will be used.
Warning
If there was no .aiida
directory in ~/project_a
, AiiDA would have created it for you.
Thus make sure to set the AIIDA_PATH
correctly.
Using AiiDA in Jupyter¶
Jupyter is an open-source web application that allows you to create in-browser notebooks containing live code, visualizations and formatted text.
Originally born out of the iPython project, it now supports code written in many languages and customized iPython kernels.
If you didn’t already install AiiDA with the [notebook]
option (during pip install
), run pip install jupyter
inside the virtualenv, and then run from within the virtualenv:
jupyter notebook
This will open a tab in your browser. Click on New -> Python
and type:
import aiida
followed by Shift-Enter
. If no exception is thrown, you can use AiiDA in Jupyter.
If you want to set the same environment as in a verdi shell
,
add the following code to a .py
file (create one if there isn’t any) in <home_folder>/.ipython/profile_default/startup/
:
try:
import aiida
except ImportError:
pass
else:
import IPython
from aiida.tools.ipython.ipython_magics import load_ipython_extension
# Get the current Ipython session
ipython = IPython.get_ipython()
# Register the line magic
load_ipython_extension(ipython)
This file will be executed when the ipython kernel starts up and enable the line magic %aiida
.
Alternatively, if you have a aiida-core
repository checked out locally,
you can just copy the file <aiida-core>/aiida/tools/ipython/aiida_magic_register.py
to the same folder.
The current ipython profile folder can be located using:
ipython locate profile
After this, if you open a Jupyter notebook as explained above and type in a cell:
%aiida
followed by Shift-Enter
. You should receive the message “Loaded AiiDA DB environment.”
This line magic should also be enabled in standard ipython shells.