Skip to content

Commit 61708c8

Browse files
ScottNotFoundnathan-diodansimondivilov
committed
squash release to v4.0.5
Co-authored-by: Hagen Eckert <hagen.eckert@nadaro.net> Co-authored-by: Hagen <hagen.eckert@duke.edu> Co-authored-by: Hagen <hagen.eckert@nadaro.net> Co-authored-by: Simon Divilov <91973482+simondivilov@users.noreply.github.com> Co-authored-by: Simon Divilov <simon.divilov@duke.edu>
1 parent 21cebe8 commit 61708c8

File tree

10 files changed

+169
-146
lines changed

10 files changed

+169
-146
lines changed

README.md

Lines changed: 50 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ The easiest way to install `aflow` is to utilize our binary releases via the dif
2424
### Linux
2525

2626
#### snap
27-
28-
[Snap packages](https://snapcraft.io/) are a modern package format designed for Linux, developed by Canonical. They
27+
[Snap packages](https://snapcraft.io/aflow) are a modern package format designed for Linux, developed by Canonical. They
2928
encapsulate software and all its dependencies, making it easy to install applications without worrying about system-wide
3029
conflicts or missing libraries. It ensures also that `aflow` is kept up to date. Snaps are secure by default, running in
3130
isolated environments (sandboxes), and they work across various Linux distributions. The drawback is that `aflow` can
@@ -38,21 +37,20 @@ snap install aflow
3837
#### .deb (Ubuntu & Debian)
3938

4039
`.deb` packages are the standard software package format for Debian-based Linux distributions. They contain precompiled
41-
binaries. We pre-build `.deb` packages for different systems, and they can be downloaded from the [GitHub Release]() page.
40+
binaries. We pre-build `.deb` packages for different systems, and they can be downloaded from the [GitHub Release](https://github.com/aflow-org/aflow/releases/) page.
4241

4342
They can either be installed by double-clicking on an Ubuntu desktop system or using `dpkg` on the commandline.
4443
```shell
45-
curl -O https://github.com/aflow-org/AFLOW/archive/refs/tags/aflow_4.0.4.deb #TODO update
46-
sudo dpkg -i ./aflow_4.0.4.deb
44+
curl -O https://github.com/aflow-org/aflow/releases/download/v4.0.5/aflow-4.0.5-ubuntu24-amd64.deb
45+
sudo dpkg -i ./aflow-4.0.5-ubuntu24-amd64.deb
4746
```
4847

49-
#### .rpm (RedHat & CentOS)
50-
5148
#### .sh (Self-extracting installer script)
5249

5350
This self-extracting installer allows for an interactive installation experience by simply running the following:
5451
```shell
55-
sh aflow-4.0.4-Linux.sh # TODO update
52+
curl -O https://github.com/aflow-org/aflow/releases/download/v4.0.5/aflow-4.0.5-ubuntu24-amd64.sh
53+
sh aflow-4.0.5-ubuntu24-amd64.sh
5654
```
5755
Use the `--help` option to see available installation options.
5856

@@ -66,21 +64,40 @@ brew tap aflow-org/aflow
6664
brew install aflow
6765
```
6866

67+
## Optional dependencies
68+
69+
To use all export functionality of `aflow` some optional dependencies need to be installed.
70+
These are [gnuplot](https://www.gnuplot.info), [TeXLive](https://www.tug.org/texlive/), and
71+
[imagemagick](https://imagemagick.org).
72+
73+
On Debian based systems they can be installed with:
74+
```shell
75+
sudo apt update
76+
sudo apt install gnuplot imagemagick texlive-full
77+
```
78+
79+
and under macOS using [Homebrew](https://brew.sh).
80+
```shell
81+
brew install gnuplot imagemagick
82+
brew install --cask mactex
83+
```
84+
85+
6986
## Installing from source
7087

7188
`aflow` can also be built directly from source. This method allows users to modify the source code and is recommended
7289
for the best possible performance.
7390

7491
### Get the source code
7592

76-
If `git` is available it is recommended to download the source code directly from GitHub.
93+
If `git` is available, it is recommended to download the source code directly from GitHub.
7794
```
78-
git clone --recurse-submodules https://github.com/aflow-org/AFLOW.git
95+
git clone --recurse-submodules https://github.com/aflow-org/aflow.git
7996
```
80-
Otherwise, the full source can be downloaded on the [GitHub Release]() page.
97+
Otherwise, the full source can be downloaded on the [GitHub Release](https://github.com/aflow-org/aflow/releases/) page.
8198
```shell
82-
curl -O https://github.com/aflow-org/AFLOW/archive/refs/tags/aflow_4.0.4.orig.tar.xz #TODO update
83-
tar -xzmf aflow_4.0.4.orig.tar.xz
99+
curl -O https://github.com/aflow-org/aflow/archive/refs/tags/aflow_4.0.5.orig.tar.xz
100+
tar -xzmf aflow_4.0.5.orig.tar.xz
84101
```
85102

86103
### Build tools
@@ -92,7 +109,7 @@ sudo apt update
92109
sudo apt install build-essential cmake ninja-build pkg-config
93110
```
94111
In case the available versions of the build tools provided by your operating system are too old, install the tools locally
95-
from the [cmake](https://github.com/Kitware/CMake/releases) or [ninjia](https://github.com/ninja-build/ninja/releases) release pages.
112+
from the [cmake](https://github.com/Kitware/CMake/releases) or [ninja](https://github.com/ninja-build/ninja/releases) release pages.
96113

97114

98115
On macOS, the C/C++ compiler is provided by the _Xcode Command Line Tools_, which are installed with [Homebrew](https://brew.sh).
@@ -115,14 +132,14 @@ The following libraries are used:
115132
- for hashing function
116133
- for SSL & TLS connections
117134
- [libcurl](https://curl.se/libcurl/)
118-
- for querying AFLOW API
135+
- for querying __AFLOW__ API
119136

120-
Install dependencies system-wide on Debian based systems:
137+
To install dependencies system-wide on Debian based systems:
121138
```shell
122139
sudo apt update
123140
sudo apt install libarchive libssl-dev libcurl4-openssl-dev
124141
```
125-
Install dependencies system-wide on macOS:
142+
To install dependencies system-wide on macOS:
126143
```shell
127144
brew update
128145
brew install libarchive openssl@3 curl
@@ -133,23 +150,23 @@ It is important that [vcpkg](https://vcpkg.io/en/) is initialized and the `VCPKG
133150

134151
### Building and installing aflow
135152
First the buildsystem needs to prepare the system. Different presets are available that already cover most needed cases.
136-
- all available presets can be listed with `cmake -S src --list-presets`
153+
- all available presets can be listed with: `cmake -S src --list-presets`
137154
- presets including `release` are optimized builds intended for production use, while `debug` should be used during development
138-
- presets with `vcpkg` will build a static linked version of `aflow` that can be helpful for clustered systems, or where libraries can't be easy installed or requested by users
155+
- presets with `vcpkg` will build a static linked version of `aflow` that can be helpful for computer clusters, or where libraries can't be easy installed or requested by users
139156
- for all `vcpkg` presets the environment variable `VCPKG_ROOT` needs to be set
140157
- customized presets can be added to a `CMakeUserPresets.json` (see [CMakeUserPresets.example.json](src/CMakeUserPresets.example.json) for an example)
141158

142159
To generate `aflow` using shared libraries follow these steps:
143-
- create and set up the build folder with
160+
- create and set up the build folder with:
144161
- `cmake -S src --preset release`
145162
- this step configures the build environment with the available tools (compilers, linkers ...)
146163
- it will inform you if there are missing dependencies
147-
- build the `aflow` executable in parallel with 8 threads
164+
- build the `aflow` executable in parallel with 8 threads:
148165
- `cmake --build build/release --parallel 8`
149-
- `aflow` can then be executed
166+
- `aflow` can then be executed:
150167
- `build/release/aflow --version`
151168
- `ctest --test-dir build/release/ -L quick --parallel 8`
152-
- if the binary works as expected it can be installed with:
169+
- if the binary works as expected, it can be installed with:
153170
- `sudo cmake --install build/release/`
154171

155172
To generate `aflow` alongside the needed libraries use the `release_vcpkg` preset:
@@ -163,9 +180,9 @@ sudo cmake --install build/release_vcpkg/
163180

164181
### Troubleshooting
165182
- if the vcpkg build fails due to problems with an external library:
166-
- remove the binary cache of vcpkg `rm -rf ~/.cache/vcpkg/archives/`
167-
- remove the build folder `rm -rf build/release_vcpkg`
168-
- rerun the cmake preparation step `cmake --preset release_vcpkg`
183+
- remove the binary cache of vcpkg: `rm -rf ~/.cache/vcpkg/archives/`
184+
- remove the build folder: `rm -rf build/release_vcpkg`
185+
- rerun the cmake preparation step: `cmake --preset release_vcpkg`
169186
- note: this problem can happen if the compiler or base libraries on an HPC machine changes
170187
- Make sure you have no spaces in the path to vcpkg or the project. Vcpkg will complain and not work.
171188

@@ -178,8 +195,8 @@ available: `ctest -L quick --parallel 8`, while `ctest -E 'ut.structure_gen.prot
178195
should be used for a detailed test run. If a test failed, `ctest --rerun-failed --parallel 8 --extra-verbose` reruns only
179196
the failed test with more details.
180197

181-
If aflow is installed from a binary release, a subset of tests can be run by using `aflow --unit_test`. A common quick
182-
test would be `aflow --unit_test aurostd`.
198+
If aflow is installed from a binary release, a subset of tests can be run by using: `aflow --unit_test`. A common quick
199+
test would be: `aflow --unit_test aurostd`.
183200

184201
## Documentation
185202
The usage of `aflow` is described in multiple peer-reviewed publications. These should also be cited if `aflow` is used
@@ -190,21 +207,23 @@ in any scientific context.
190207
> N. Hotz, X. Campilongo, A. Calzolari, and S. Curtarolo
191208
> *High Entropy Alloys & Materials* (2025)
192209
> [DOI: 10.1007/s44210-025-00058-2](https://doi.org/10.1007/s44210-025-00058-2)
210+
> | [BibTeX](https://materials.duke.edu/auro/AUROARTICULA/BIBITEMS/curtarolo:art221.txt)
193211
194212
> **aflow++: A C++ framework for autonomous materials design**
195213
> C. Oses, M. Esters, D. Hicks, S. Divilov, H. Eckert, R. Friedrich, M.J. Mehl, A. Smolyanyuk, X. Campilongo,
196214
> A. van de Walle, J. Schroers, A.G. Kusne, I. Takeuchi, E. Zurek, M.B. Nardelli, M. Fornari, Y. Lederer, O. Levy,
197215
> C. Toher, and S. Curtarolo
198216
> *Computational Materials Science* **217**, 111889 (2023).
199217
> [DOI: 10.1016/j.commatsci.2022.111889](https://doi.org/10.1016/j.commatsci.2022.111889)
200-
> | [BibTeX](http://materials.duke.edu/auro/AUROARTICULA/BIBITEMS/curtarolo:art191.txt)
218+
> | [BibTeX](https://materials.duke.edu/auro/AUROARTICULA/BIBITEMS/curtarolo:art191.txt)
201219
202220
> **The AFLOW standard for high-throughput materials science calculations**
203221
> C.E. Calderon, J.J. Plata, C. Toher, C. Oses, O. Levy, M. Fornari, A. Natan, M. J. Mehl,
204222
> G. Hart, M.B. Nardelli, and S. Curtarolo
205223
> *Computational Materials Science* **108A**, 233-238 (2015).
206224
> [DOI: 10.1016/j.commatsci.2015.07.019](https://doi.org/10.1016/j.commatsci.2015.07.019)
207-
> | [BibTeX](http://materials.duke.edu/auro/AUROARTICULA/BIBITEMS/curtarolo:art104.txt)
225+
> | [BibTeX](https://materials.duke.edu/auro/AUROARTICULA/BIBITEMS/curtarolo:art104.txt)
208226
209227
To document the inner working of `aflow` [doxygen](https://doxygen.nl/) is used. Details on how to build the code documentation and
210-
style are described in [docs/README.md](docs/README.md).
228+
style are described in [docs/README.md](docs/README.md). An online version of this documentation is available at
229+
[aflow.org/aflow-documentation/](https://aflow.org/aflow-documentation/).

docs/aflow.doxy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ STRICT_PROTO_MATCHING = NO
696696
# list. This list is created by putting \todo commands in the documentation.
697697
# The default value is: YES.
698698

699-
GENERATE_TODOLIST = YES
699+
GENERATE_TODOLIST = NO
700700

701701
# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
702702
# list. This list is created by putting \test commands in the documentation.
@@ -2338,7 +2338,7 @@ HIDE_UNDOC_RELATIONS = YES
23382338
# set to NO
23392339
# The default value is: NO.
23402340

2341-
HAVE_DOT = YES
2341+
HAVE_DOT = NO
23422342

23432343
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
23442344
# to run in parallel. When set to 0 doxygen will base this on the number of

0 commit comments

Comments
 (0)