Skip to content

Commit 1c1dc28

Browse files
Merge pull request #63 from DataAnalyticsEngineering/dev
Supporting FANS v0.6.0 with better docs and workspace management
2 parents 1ad6a85 + 2eab3a9 commit 1c1dc28

38 files changed

+680
-1338
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

.github/workflows/docs.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Docs
2+
3+
on:
4+
release:
5+
types: [ released ]
6+
7+
jobs:
8+
build:
9+
name: Build Docs
10+
runs-on: ubuntu-latest
11+
timeout-minutes: 15
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v5
15+
- name: Set up Pixi
16+
uses: prefix-dev/setup-pixi@v0.9.0
17+
with:
18+
pixi-version: v0.55.0
19+
environments: docs
20+
activate-environment: true
21+
- name: Build docs
22+
run: pixi run deploy

.github/workflows/release.yml

Lines changed: 0 additions & 47 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,6 @@ ENV/
188188
env.bak/
189189
venv.bak/
190190

191-
# Sphinx documentation
192-
docs/build/
193-
194191
# Auto-generated during builds
195192
_version.py
196193

@@ -202,10 +199,11 @@ diff.md
202199

203200
# Project specific files
204201
*.h5
205-
!tutorial_dataset.h5
202+
!ms-example.h5
206203
*.yaml
207-
!.readthedocs.yml
208204
!.pre-commit-config.yaml
205+
*.yml
206+
!mkdocs.yml
209207

210208
# Ignore AiiDA specific files
211209
.aiida_run

.readthedocs.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Contributing
2+
3+
If you are planning on contributing to AiiDA-FANS, please consider the following guidelines. Additionally, it is strongly recommended to use the pixi package manager to install the appropriate development environment. After cloning this repository, simply run `pixi install` and use the default environment.
4+
5+
## Development
6+
1. Branch off `dev` with a name appropriate for what you are working on (e.g. `feat/myfeature` or `bug/badbug`).
7+
2. Implement, commit, and push your changes.
8+
3. Open a Pull Request into `dev` (e.g. `dev ← feat/myfeature`), then merge and delete your branch.
9+
10+
## Release
11+
1. Open a Pull Request `main ← dev`, then merge but do **not** delete `dev`.
12+
2. Draft a new Release and assign it a new Tag according to the new version number (e.g. `v1.2.3`).
13+
3. Generate release notes and publish the Release.

README.md

Lines changed: 34 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,54 @@
1+
# AiiDA-FANS
12

2-
# aiida-fans
3-
4-
[![PyPI Package][pypi-badge]][pypi-link]
3+
[![Release][release-badge]][release-link]
4+
[![Downloads][conda-badge]][conda-link]
5+
[![License][license-badge]][license-link]
56
[![Docs Status][docs-badge]][docs-link]
6-
[![Build Status][ci-badge]][ci-link]
77

8-
This is a plugin for [AiiDA][aiida-link] that facilitates the use of [FANS][FANS-link]. FANS is an FFT-based homogenisation solver for microscale and multiphysics problems. It is an open-source project under active development at the Institute of Applied Mechanics, University of Stuttgart. This plugin aims to bring the full value of provenance tracking and database integration to the results produced by FANS.
8+
> [!WARNING]
9+
> The AiiDA-FANS plugin is under active development. Changes can and do occur regularly.
10+
11+
This is a plugin for [AiiDA][AiiDA-link] that facilitates the use of [FANS][FANS-link]. FANS is an FFT-based homogenisation solver for microscale and multiphysics problems. It is an open-source project under active development at the Institute of Applied Mechanics, University of Stuttgart. This plugin aims to bring the full value of provenance tracking and database integration to the results produced by FANS.
912

10-
The design goals of this plugin are primarily to provide as simplistic a user experience as is reasonably possible. Secondarily, more featureful additions will be made to extend the users' options for queryability and optimisation.
13+
The design goals of this plugin are to provide a simple but powerful user interface to FANS. In doing so, the plugin packages additional utilities to eliviate some of the burdens we perceive in the traditional AiiDA workflow.
1114

12-
## Upcoming
13-
**Please note:** This plugin is currently in the planning stage of development, with substantial contributions coming soon.
15+
## Installation
1416

15-
### Pre-launch
16-
- [x] basic functionality capable of completing the example simulations presented by FANS with minimal database integration
17-
- [x] documentation hosted on aiida-fans.readthedocs.io
18-
- [x] documentation outline
19-
- [x] publish package on PyPI
17+
AiiDA-FANS is available on the conda-forge package channel. Our recommended method of installing AiiDA-FANS is to use the [Pixi][Pixi-link] package manager, in which case `pixi add aiida-fans` will add the plugin to your project manifest (such as a pyproject.toml).
2018

21-
### Post-launch
22-
- [ ] documentation expansion
23-
- [ ] input validation developed in cooperation with the FANS team
24-
- [ ] file sharing optimisations
25-
- [ ] greater database integration via output analysis/extraction
19+
Otherwise, the package can be installed with conda by `conda install aiida-fans --channel conda-forge`.
2620

27-
## Installation
28-
The plugin is currently unavailable via PyPI at this stage in development, but it is intended to be published upon an upcoming functional release.
21+
In any case, the user is responsible for installing FANS and ensuring it is accessible to the plugin. This can be achieved without need for further customisation by having FANS accessible on the PATH environment variable. Please consult the [FANS repository][FANS-link] for more information on the installation of this software.
2922

30-
The package can always be installed by cloning this repository and installing it locally like so...
23+
## Usage
3124

32-
```bash
33-
$ pip install ./aiida-fans
34-
```
25+
To use this plugin, you must first establish an AiiDA profile, computer, and code. For help on how to do this please refer to the [AiiDA installation][AiiDA-install-link] guide.
3526

36-
You must also ensure that FANS, AiiDA, and their various dependencies are installed. Please consult the [FANS repository][FANS-link] and the [AiiDA installation][aiida-install-link] guide for more information.
27+
For general information on the usage of AiiDA you should refer to the [AiiDA documentation][AiiDA-docs-link], and for the usage of FANS refer to its [repository][FANS-link].
3728

38-
## Contributing
29+
This plugin offers some utilities to help smooth the AiiDA user experience. Namely, the `utils.execute_fans` function which allows you to provide the inputs for a job as a dictionary of mostly pythonic values. This utility will parse these inputs and automatically use any appropriate existing nodes it finds in your profile before making new nodes where necessary. For more information on this plugin's specifics and how to use the utilities, please refer to the [documentation][docs-link].
3930

40-
### Development
41-
1. Branch off `dev` with a name appropriate for what you are working on (e.g. `feat/myfeature` or `bug/badbug`).
42-
2. Implement, commit, and push your changes.
43-
3. Open a Pull Request `dev ← feat/myfeature`, then merge and delete.
31+
## Tutorial
4432

45-
### Release
46-
1. Open a Pull Request `main ← dev`, then squash and merge.
47-
2. Draft a new Release, named after the release version (e.g. v1.2.3).
48-
3. Create and assaign a new Tag, identically named.
49-
3. Generate release notes and publish.
33+
A tutorial accompanies this plugin. To try it out: clone this repository, cd into it, run `pixi shell -e tutorial` and `pixi run tutorial`. The marimo notebook should be served locally. For more information before you begin, take a look at the [documentation][tutorial-docs-link].
5034

5135
## Contact
5236

53-
You can contact ethan.shanahan@gmail.com with regard to this plugin specifically.
37+
You can contact <ethan.shanahan@gmail.com> with any questions regarding the AiiDA-FANS plugin and accompanying tutorial.
5438

5539
<!-- URLs -->
56-
[pypi-badge]: https://badge.fury.io/py/aiida-fans.svg
57-
[pypi-link]: https://badge.fury.io/py/aiida-fans
58-
[release-badge]: https://img.shields.io/github/v/release/ethan-shanahan/aiida-fans?include_prereleases
59-
[release-link]: https://github.com/ethan-shanahan/aiida-fans/releases
60-
[ci-badge]: https://github.com/ethan-shanahan/aiida-fans/actions/workflows/ci.yml/badge.svg?branch=main
61-
[ci-link]: https://github.com/ethan-shanahan/aiida-fans/actions
62-
[cov-badge]: https://coveralls.io/repos/github/ethan-shanahan/aiida-fans/badge.svg?branch=main
63-
[cov-link]: https://coveralls.io/github/ethan-shanahan/aiida-fans?branch=main
64-
[docs-badge]: https://readthedocs.org/projects/aiida-fans/badge
65-
[docs-link]: http://aiida-fans.readthedocs.io/
66-
67-
[aiida-link]: https://www.aiida.net/
68-
[aiida-install-link]: https://aiida.readthedocs.io/projects/aiida-core/en/latest/installation/index.html
40+
[release-badge]: https://img.shields.io/github/v/release/dataanalyticsengineering/AiiDA-FANS?label=Release
41+
[release-link]: https://github.com/dataanalyticsengineering/AiiDA-FANS/releases/latest
42+
[conda-badge]: https://img.shields.io/conda/dn/conda-forge/aiida-fans?label=Downloads
43+
[conda-link]: https://anaconda.org/conda-forge/aiida-fans
44+
[license-badge]: https://img.shields.io/github/license/dataanalyticsengineering/AiiDA-FANS?label=License
45+
[license-link]: https://www.gnu.org/licenses/lgpl-3.0.en.html
46+
[docs-badge]: https://github.com/dataanalyticsengineering/AiiDA-FANS/actions/workflows/docs.yml/badge.svg
47+
[docs-link]: https://dataanalyticsengineering.github.io/AiiDA-FANS/
48+
49+
[tutorial-docs-link]: https://dataanalyticsengineering.github.io/AiiDA-FANS/tutorial/installation/
50+
[AiiDA-link]: https://www.aiida.net/
51+
[AiiDA-docs-link]: https://aiida-core.readthedocs.io/
52+
[AiiDA-install-link]: https://aiida.readthedocs.io/projects/aiida-core/en/latest/installation/index.html
6953
[FANS-link]: https://github.com/DataAnalyticsEngineering/FANS
54+
[Pixi-link]: https://pixi.sh/latest/

docs/Makefile

Lines changed: 0 additions & 20 deletions
This file was deleted.

docs/index.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# AiiDA-FANS
2+
3+
[![Release][release-badge]][release-link]
4+
[![Downloads][conda-badge]][conda-link]
5+
[![License][license-badge]][license-link]
6+
[![Docs Status][docs-badge]][docs-link]
7+
8+
!!! abstract "Supports FANS v0.6.0"
9+
10+
An [AiiDA](https://www.aiida.net/) plugin to integrate with [FANS](https://github.com/DataAnalyticsEngineering/FANS). Use the Fourier-Accelerated Nodal Solver (FANS) to calculate microscale multiphysics problems with the automated data tracking of AiiDA. FANS is an efficient, parallelised, FFT-based homogenisation solver, making AiiDA ideal to manage its very high throughput capabilities. The AiiDA-FANS plugin is an open-source project developed at the Institute of Applied Mechanics, Univeristy of Stuttgart, in association with the developers of FANS.
11+
12+
## How to Cite
13+
14+
The writing of a research paper regarding the AiiDA-FANS plugin is underway. Until the time that it is published, please consider if it may be relevant to instead cite one of the following papers.
15+
16+
=== "AiiDA"
17+
18+
!!! quote ""
19+
20+
Sebastiaan. P. Huber, Spyros Zoupanos, Martin Uhrin, Leopold Talirz, Leonid Kahle, Rico Häuselmann, Dominik Gresch, Tiziano Müller, Aliaksandr V. Yakutovich, Casper W. Andersen, Francisco F. Ramirez, Carl S. Adorf, Fernando Gargiulo, Snehal Kumbhar, Elsa Passaro, Conrad Johnston, Andrius Merkys, Andrea Cepellotti, Nicolas Mounet, Nicola Marzari, Boris Kozinsky, and Giovanni Pizzi, AiiDA 1.0, a scalable computational infrastructure for automated reproducible workflows and data provenance, Scientific Data 7, 300 (2020); DOI: 10.1038/s41597-020-00638-4
21+
22+
=== "FANS"
23+
24+
!!! quote ""
25+
26+
Leuschner, M., Fritzen, F. Fourier-Accelerated Nodal Solvers (FANS) for homogenization problems. Comput Mech 62, 359–392 (2018). https://doi.org/10.1007/s00466-017-1501-5
27+
28+
<!-- URLs -->
29+
[release-badge]: https://img.shields.io/github/v/release/dataanalyticsengineering/AiiDA-FANS?label=Release
30+
[release-link]: https://github.com/dataanalyticsengineering/AiiDA-FANS/releases/latest
31+
[conda-badge]: https://img.shields.io/conda/dn/conda-forge/aiida-fans?label=Downloads
32+
[conda-link]: https://anaconda.org/conda-forge/aiida-fans
33+
[license-badge]: https://img.shields.io/github/license/dataanalyticsengineering/AiiDA-FANS?label=License
34+
[license-link]: https://www.gnu.org/licenses/lgpl-3.0.en.html
35+
[docs-badge]: https://github.com/dataanalyticsengineering/AiiDA-FANS/actions/workflows/docs.yml/badge.svg
36+
[docs-link]: https://dataanalyticsengineering.github.io/AiiDA-FANS/

0 commit comments

Comments
 (0)