Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Exawind/amr-wind

AMReX-based structured wind solver
https://github.com/Exawind/amr-wind

amr amrex ecp exascale-computing wind wind-turbines

Last synced: about 1 month ago
JSON representation

AMReX-based structured wind solver

Awesome Lists containing this project

README

        

# AMR-Wind

[Documentation](https://exawind.github.io/amr-wind) | [Nightly test dashboard](http://my.cdash.org/index.php?project=Exawind)

[![Powered by AMReX](https://amrex-codes.github.io/badges/powered%20by-AMReX-red.svg)](https://amrex-codes.github.io/amrex/) [![Build Status](https://github.com/Exawind/amr-wind/workflows/AMR-Wind-CI/badge.svg)](https://github.com/Exawind/amr-wind/actions) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9284/badge)](https://www.bestpractices.dev/projects/9284)

AMR-Wind is a massively parallel, block-structured adaptive-mesh, incompressible
flow solver for wind turbine and wind farm simulations. The codebase is a
wind-focused fork of [incflo](https://github.com/AMReX-Codes/incflo). The solver
is built on top of the [AMReX library](https://amrex-codes.github.io/amrex).
AMReX library provides the mesh data structures, mesh adaptivity, as well as the
linear solvers used for solving the governing equations. AMR-Wind is actively
developed and maintained by a dedicated multi-institutional team from [Lawrence
Berkeley National Laboratory](https://www.lbl.gov/), [National Renewable Energy
Laboratory](https://nrel.gov), and [Sandia National
Laboratories](https://sandia.gov).

The primary applications for AMR-Wind are: performing large-eddy simulations
(LES) of atmospheric boundary layer (ABL) flows, simulating wind farm
turbine-wake interactions using actuator disk or actuator line models for
turbines, and as a background solver when coupled with a near-body solver (e.g.,
[Nalu-Wind](https://github.com/exawind/nalu-wind)) with overset methodology to
perform blade-resolved simulations of multiple wind turbines within a wind farm.
For offshore applications, the ability to model the air-sea interaction effects
and its impact on the ABL characteristics is another focus for the code
development effort. As with other codes in the
[Exawind](https://github.com/exawind) ecosystem, AMR-wind shares the following
objectives:

- an open, well-documented implementation of the state-of-the-art computational
models for modeling wind farm flow physics at various fidelities that are
backed by a comprehensive verification and validation (V&V) process;

- be capable of performing the highest-fidelity simulations of flow fields within
wind farms; and

- be able to leverage the high-performance leadership class computing
facilities available at DOE national laboratories.

## Documentation

Documentation is available at https://exawind.github.io/amr-wind, which
includes a walkthrough tutorial, a user manual, notes on theory,
and tips for developers. We also provide a developer-focused API
documentation at the same link. You can either
browse the docs online by following the links, or you can generate them locally
after downloading the code. Please follow the instructions in user manual to
build documentation locally.

## Compilation and usage

AMR-Wind is built upon the [AMReX library](https://amrex-codes.github.io/amrex).
A snapshot of the AMReX library is distributed along with the AMR-Wind source
code as a `git-submodule`. In addition to the AMReX library, you will require a
modern C++ compiler that supports the C++17 standard. Users wishing to execute
the code on high-performance computing (HPC) systems will also need MPI
libraries installed on their system. The code can also be compiled using MPI+X,
where X can be OpenMP for CPU shared memory parallelism,
CUDA to target NVIDIA GPUs, ROCM for AMD GPUs, or SyCL for Intel GPUs.

### Contributing, reporting bugs, and requesting help

To report issues or bugs please [create a new
issue](https://github.com/Exawind/amr-wind/issues/new) on GitHub.

We welcome contributions from the community in form of bug fixes, feature
enhancements, documentation updates, etc. All contributions are processed
through pull-requests on GitHub. Please refer to the
[coding guidelines](https://exawind.github.io/amr-wind/developer/coding_guidelines.html) as
a reference for the best practices currently used to develop AMR-Wind.

### User discussion, feedback, and community support

The development team manages a mailing list for AMR-Wind users. Invites for quarterly user meetings,
along with occasional announcements, are sent to this list.
Quarterly meetings provide development updates and a forum for discussion and feedback.
If you would like to join this mailing list, please send a request to [email protected],
and we will be happy to add your email address. Our maintainers email is also available for direct
inquiries about AMR-Wind, but the GitHub page (issues, discussions, pull requests) is preferred
for the majority of questions.

## Versioning and tags

AMR-Wind uses a type of semantic versioning to help users navigate different versions of the code,
which are labeled with GitHub tags. These tagged versions are not exhaustive, and they adhere to
the following convention. Given a version number MAJOR.MINOR.PATCH:
1. MAJOR version for changes to input file compatibility for key aspects of the solver, when a key model is changed to significantly affect results of simulations, when a major new capability is added
2. MINOR version for when a significant feature is added (in a backward compatible manner), accumulation of smaller features, or changes to input file compatibility for less central aspects of the solver (e.g., post-processing, forcing terms)
3. PATCH version for backward compatible bug fixes

## License

AMR-Wind is licensed under BSD 3-clause license. Please see the
[LICENSE](https://github.com/Exawind/amr-wind/blob/development/LICENSE) included in
the source code repository for more details.