Here you will find an overview of the existing tutorials and what they cover. For an extensive pedagogical overview, we recommend completing the following tutorials in the sequence presented below.
Before you start, make sure you have installed excitingworkflow and optionally jobflow-remote as described in the
INSTALL.md file.
Reminder: If you plan to execute exciting locally in the jupyter notebooks (which you should do in the basic tutorials),
make sure to load all necessary dependencies and modules in your environment before you launch jupyter.
- The
excitingtoolstutorial, located outside this repository. It explains theexcitingtoolspackage, which is under the hood always used for any directexcitinginteraction. You can find it here under the name "Basic usage of excitingtools". It will show you how to construct input objects used to write theinput.xmlfile, how to execute a calculation from Python, and how to parse and use theexcitingoutput files. - The
ExcitingCalculationtutorial, find it here. You will learn how to use theExcitingCalculationclass. This class provides a convenient interface to yourexcitingcalculations. It handles the steps from writing the inputs, executing the calculation, to parsing the results. Additionally, you can reuse old run directories and automatically skip already done parts of your calculation. - The
jobflowtutorial, find it here. Asjobflowis used for any workflow, you will learn the basic concepts. You will learn what ajobis, how to construct aflow, and how to execute suchflows. Also, some basic workflows are presented such that you learn about static and dynamic workflows. - A tutorial explaining the "real-world" usage and details of
excitingworkflow. First, you will see yet another simplification to execute your calculation as ajobflowjob. You will learn how the output of such ajobis structured. Then, you will see how to execute a convergence workflow. Later you can do some high-throughput work or converge a GW calculation.
Additionally, the following example scripts are available:
- run_groundstate_convergence.py: Example script for setting up a groundstate convergence.
- run_workflow_examples.py: Example scripts for setting up the convergence workflows.
If you want to learn more about how to execute your workflows on a remote machine, you can read the remote_execution tutorial as a starting point.
More detailed information can be found in the following tutorials:
- advanced_tutorial_remote_execution: How to execute a workflow on a
remote machine. This includes specifying different run configurations for the
jobsin your workflow.
Additionally, the following example scripts are available:
- simple_workflow.py: Very simple example file for setting up lots of calculations.
- execute_remote.py: Example file showing how to execute a workflow on a remote machine.
- execute_remote_error_handling.py: Example file showing how to execute a workflow on a remote machine which triggers the error handling.
The following things are available in the advanced folder:
- MT basis workflow: A tutorial for the MT basis workflow. It can be used to converge the Local Orbital (LO) basis set.
- useful_notes: A collection of (random) notes. Things that simplified my daily work and might be interesting to others as well. Some tips and tricks that I needed to learn the hard way. It should save you some time if you don't have to find out those things yourself by reading through tons of raw source code.
- mypy_example:
excitingworkflowuses the toolmypyto analyze and check the static type hinting. There you find examples and tests for developers on how to do advanced typing. - SOL_info: More information specifically to
excitingworkflowusers from the SOL group. - jobflow_output_schema: Advanced note for developers of new workflows. Tests some
interplay between
jobflowandpydantic. - XAS_BSE_convergence: A demonstration of a convergence workflow for XAS and BSE calculations.