Coating is a code for the design of optimal thin-film multilayer coatings.
- For instructions on how to run the code on a supercomputer, specifically the CSD3 cluster, see here.
- For instructions on how to set up a multilayer coating calculation, see here.
- For a report with the theoretical background, see here.
The code requires at least Python 3.9.
The following Python packages are required:
| Python Package | Tested version | Recommended install command |
|---|---|---|
| anesthetic | 2.0.0b12 | pip install git+https://github.com/williamjameshandley/anesthetic@fdf6599a3f4cc76ea60d65f4cd7503f9e0bcee63 |
| Cython | 0.29.32 | pip install Cython |
| fastkde | 1.0.19 | pip install fastkde |
| matplotlib | 3.5.2 | pip install matplotlib |
| mpi4py | 3.1.3 | (requires MPI installation, e.g. mpich or openmpi)pip install mpi4py |
| numpy | 1.23.0 | pip install numpy |
| pandas | 1.4.3 | pip install pandas |
| pypolychord | 1.20.1 | With MPI: pip install git+https://github.com/PolyChord/PolyChordLite@master Without MPI: pip install git+https://github.com/PolyChord/PolyChordLite@master --global-option="--no-mpi" |
| scikit-learn | 1.1.2 | pip install scikit-learn |
| scipy | 1.8.1 | pip install scipy |
| hdbscan | 0.8.28 | pip install hdbscan |
| joblib | 1.1.0 | pip install joblib==1.1.0 |
Remarks:
- The
hdbscanpackage depends on thejoblibpackage. It has been found that on the CSD3 cluster, the latest version ofjoblibcauses the import ofhdbscanto fail. This is why the versionjoblib==1.1.0is recommended. - The
anestheticpackage has been found to work with the specific commit above. At the time of writing, later versions cause the import of the PolyChordtest.resumefile to fail. - To determine whether PolyChord runs with MPI on the user's machine, the
run_pypolychord.pytest script from the pypolychord GitHub page should be run and it should be checked whether any errors are raised:
pip install git+https://github.com/PolyChord/PolyChordLite@master
wget https://raw.githubusercontent.com/PolyChord/PolyChordLite/master/run_pypolychord.py
python run_pypolychord.pyClone the git repository with
git clone https://github.com/zwei-beiner/CodeAny code should be run from inside the directory src, which contains an example main.py file.
To run on n_cores,
mpirun -n <n_cores> python main.pypython main.pyThis runs the code with the MPI rank set to zero.