|
| 1 | +# AiiDA-FANS |
1 | 2 |
|
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] |
5 | 6 | [![Docs Status][docs-badge]][docs-link] |
6 | | -[![Build Status][ci-badge]][ci-link] |
7 | 7 |
|
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. |
9 | 12 |
|
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. |
11 | 14 |
|
12 | | -## Upcoming |
13 | | -**Please note:** This plugin is currently in the planning stage of development, with substantial contributions coming soon. |
| 15 | +## Installation |
14 | 16 |
|
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). |
20 | 18 |
|
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`. |
26 | 20 |
|
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. |
29 | 22 |
|
30 | | -The package can always be installed by cloning this repository and installing it locally like so... |
| 23 | +## Usage |
31 | 24 |
|
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. |
35 | 26 |
|
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]. |
37 | 28 |
|
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]. |
39 | 30 |
|
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 |
44 | 32 |
|
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]. |
50 | 34 |
|
51 | 35 | ## Contact |
52 | 36 |
|
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. |
54 | 38 |
|
55 | 39 | <!-- 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 |
69 | 53 | [FANS-link]: https://github.com/DataAnalyticsEngineering/FANS |
| 54 | +[Pixi-link]: https://pixi.sh/latest/ |
0 commit comments