Skip to content

Merge recent updates to shallow water branch #64

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 44 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e9a2945
Draft structured, tiled mesh generation
fluidnumerics-joe Oct 9, 2024
d3c36a9
Fix bug in structured mesh generation
fluidnumerics-joe Oct 9, 2024
b01fdeb
Add global edge ids and gradient & divergence tests
fluidnumerics-joe Oct 10, 2024
a1f17e6
Reorg and clean up docs
fluidnumerics-joe Oct 11, 2024
ba9f0b6
Update API and user docs
fluidnumerics-joe Oct 11, 2024
6a7f350
Add workflow for automatice documentation update
fluidnumerics-joe Oct 11, 2024
cc0a5bf
Remove ngeo from mesh1d configuration (hardset to 1),
fluidnumerics-joe Oct 11, 2024
cead2fa
Add docs on using the structured mesh generator
fluidnumerics-joe Oct 11, 2024
7911d0e
Fix formatting
fluidnumerics-joe Oct 11, 2024
a3eac20
Copy editing
fluidnumerics-joe Oct 11, 2024
fcc61a3
Remove reference to removed ngeo argument
fluidnumerics-joe Oct 11, 2024
d55b00f
Fix reference to structuredmesh generic
fluidnumerics-joe Oct 11, 2024
16a83a8
Add UpdateDevice call after mesh creation
fluidnumerics-joe Oct 12, 2024
0960418
Draft structured 3-d mesh generation.
fluidnumerics-joe Oct 14, 2024
d42880f
Update docs/Models/burgers-equation-model.md
fluidnumerics-joe Oct 14, 2024
bace8d6
Update docs/GettingStarted/install.md
fluidnumerics-joe Oct 14, 2024
8845c72
Update mkdocs.yml
fluidnumerics-joe Oct 14, 2024
6f7e291
Resolve typos per PR review. Thanks @garrettbyrd !
fluidnumerics-joe Oct 14, 2024
848f8d8
Merge remote-tracking branch 'origin/feature/blockmesh2d' into featur…
fluidnumerics-joe Oct 14, 2024
528a97e
Fix example domain description.
fluidnumerics-joe Oct 14, 2024
ef5b5fd
Update docs/Models/burgers-equation-model.md
garrettbyrd Oct 14, 2024
091f424
Merge pull request #61 from FluidNumerics/feature/blockmesh2d
garrettbyrd Oct 14, 2024
a1db828
Fix bugs in structuredmesh (3-D) generator; add tests
fluidnumerics-joe Oct 15, 2024
8cd3b19
Add section on 3-d structured mesh generation
fluidnumerics-joe Oct 15, 2024
b15db85
Merge remote-tracking branch 'origin/main' into feature/structuredmesh3d
fluidnumerics-joe Oct 15, 2024
6e128e9
Add clarification on domain size for 3d example
fluidnumerics-joe Oct 15, 2024
99c1fd5
Update API docs
fluidnumerics-joe Oct 15, 2024
b8f91c7
Remove ford docs from source control and add ford generation to workflow
fluidnumerics-joe Oct 15, 2024
35d4978
Change workflow name and filter out docs/ directory for other builds
fluidnumerics-joe Oct 15, 2024
be00af7
Hard set spack to develop snapshot from 10/06/2024
fluidnumerics-joe Oct 15, 2024
d6fd201
Change to tags for spack version reference.
fluidnumerics-joe Oct 15, 2024
04c09a1
Fix tags/ to tag/
fluidnumerics-joe Oct 15, 2024
4e9a5d2
Remove tag/ prefix
fluidnumerics-joe Oct 15, 2024
e3322a1
Increase timeout to 1 hour
fluidnumerics-joe Oct 15, 2024
ab32798
Remove docs preview; update pip prior to installing ford
fluidnumerics-joe Oct 15, 2024
0e1c6de
Report contents of spack.yaml
fluidnumerics-joe Oct 15, 2024
8b714d4
Report openmpi info
fluidnumerics-joe Oct 15, 2024
ce9e843
Update README supported systems and contributing guide
fluidnumerics-joe Oct 15, 2024
79a8465
Fixed typo
garrettbyrd Oct 15, 2024
396edea
Changed × (multiplication) symbol
garrettbyrd Oct 15, 2024
be22085
Remove amdflang build badge
fluidnumerics-joe Oct 15, 2024
171892b
Removed plugin
garrettbyrd Oct 15, 2024
4cf0a2f
Merge pull request #62 from FluidNumerics/feature/structuredmesh3d
garrettbyrd Oct 15, 2024
63a53fd
Merge pull request #63 from FluidNumerics/autodocs
garrettbyrd Oct 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/workflows/fprettify-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ name: fprettify-lint
on:
push:
branches:
- master
- main
paths-ignore:
- 'AUTHORS.md'
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/linux-amdflang-cmake.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ name: linux-amdflang-cmake
on:
push:
branches:
- master
- main
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'
pull_request:
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'

jobs:
linux-tests:
timeout-minutes: 30
timeout-minutes: 60
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: ${{ matrix.os }} - ${{ matrix.fcompiler }} - ${{ matrix.build_type }}
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -56,6 +57,8 @@ jobs:

- name: Set up Spack
uses: spack/setup-spack@v2
with:
ref: develop-2024-10-06

- name: Install dependencies in spack environment
run: |
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/linux-gnu-cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ name: linux-gnu-cmake
on:
push:
branches:
- master
- main
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'
pull_request:
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'

jobs:
linux-tests:
timeout-minutes: 30
timeout-minutes: 60
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: ${{ matrix.os }} - ${{ matrix.fcompiler }} - ${{ matrix.build_type }}
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -80,6 +81,8 @@ jobs:

- name: Set up Spack
uses: spack/setup-spack@v2
with:
ref: develop-2024-10-06

- name: Install dependencies in spack environment
run: |
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/linux-gnu-multithreaded-cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ name: linux-gnu-multithreaded-cmake
on:
push:
branches:
- master
- main
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'
pull_request:
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'

jobs:
linux-tests:
timeout-minutes: 30
timeout-minutes: 60
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: ${{ matrix.os }} - ${{ matrix.fcompiler }} - ${{ matrix.build_type }}
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -80,6 +81,8 @@ jobs:

- name: Set up Spack
uses: spack/setup-spack@v2
with:
ref: develop-2024-10-06

- name: Install dependencies in spack environment
run: |
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/linux-nvfortran-cmake.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,22 @@ name: linux-nvidia-hpc-cmake
on:
push:
branches:
- master
- main
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'
pull_request:
paths-ignore:
- 'docs/'
- 'AUTHORS.md'
- 'LICENSE.md'
- 'README.md'

jobs:
linux-tests:
timeout-minutes: 45
timeout-minutes: 60
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: ${{ matrix.os }} - ${{ matrix.toolchain.compiler }} - ${{ matrix.build_type }}
runs-on: ${{ matrix.os }}
Expand Down Expand Up @@ -63,6 +64,8 @@ jobs:

- name: Set up Spack
uses: spack/setup-spack@v2
with:
ref: develop-2024-10-06

- name: Install dependencies in spack environment
run: |
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/main-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Publish documentation
on:
push:
branches:
- main

jobs:
build:
name: Deploy docs
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v2

- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9

- name: Install docs dependencies
run: |
python -m pip install --upgrade pip
pip install -r docs/requirements.txt

- name: Generate API docs
run: |
ford self.md

- name: Deploy docs
uses: mhausenblas/mkdocs-deploy-gh-pages@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CONFIG_FILE: mkdocs.yml
REQUIREMENTS: docs/requirements.txt
20 changes: 2 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,5 @@
# Spectral Element Library in Fortran (SELF)
Copyright 2017-2020 Fluid Numerics LLC

## What do I need to know to help?
If you are looking to help to with a code contribution, SELF uses the following programming languages and tools
* Fortran (2008 Standard)
* [HIP](link needed) for GPU acceleration
* [MPI](link needed) for Multi-Process parallelization (multi-core, multi-gpu)
* [CMake](https://cmake.org) (Build System)
* [HDF5](https://www.hdfgroup.org/solutions/hdf5/)

If you are interested in making a code contribution and would like to learn more about the technologies that we use, check out the list below.

* [SELF Specifications](./SPECIFICATIONS.md)
* [Understanding the SELF Software Layout](link needed)
* [Commit Guidelines](link needed)

## Branching Model
Copyright 2017-2024 Fluid Numerics LLC

## Contribute Code
1. Find an issue that you are interested in addressing or a feature that you would like to add.
Expand All @@ -24,7 +8,7 @@ If you are interested in making a code contribution and would like to learn more
4. Create a new branch for your contribution. To help maintainers easily determine the type of code contribution, name your branch using bugfix/issue-NN or feature/issue-NN prefixes.
5. Make the appropriate changes for the issue you are trying to address or the feature that you want to add.
6. When committing your changes, follow the commit guidelines when writing your commit messages.
7. You are encouraged to run the SELF test harness before opening a pull request. These tests will help you make sure you're changes meet formatting guidelines, build successfully, and produce test results within acceptable tolerance levels. If you don't have a GPU, that's ok. Your contribution will be fully tested when you open a pull request.
7. You are encouraged to run the SELF tests using `ctest` on your local system before opening a pull request. If you don't have a GPU, that's ok. Your contribution will be fully tested when you open a pull request.
8. Open a pull request with the upstream SELF repository. In the title, reference the issue number that you worked on. Include a detailed description of the changes you made and why. If you have recommendations for updates to documentation as a result of your changes, please indicate so. If you've added a new routine, you will need to work with the maintainers to develop tests when integrating your new feature in.

### Code formatting
Expand Down
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
# Spectral Element Libraries in Fortran (SELF)
Copyright 2020-2023 Fluid Numerics LLC
Copyright 2017-2024 Fluid Numerics LLC

[![codecov](https://codecov.io/gh/FluidNumerics/SELF/branch/main/graph/badge.svg?token=AKKSL5CWK6)](https://codecov.io/gh/FluidNumerics/SELF)

[![linux-gnu-cmake](https://github.com/FluidNumerics/SELF/actions/workflows/linux-gnu-cmake.yml/badge.svg)](https://github.com/FluidNumerics/SELF/actions/workflows/linux-gnu-cmake.yml)

[![linux-gnu-multithreaded-cmake](https://github.com/FluidNumerics/SELF/actions/workflows/linux-gnu-multithreaded-cmake.yml/badge.svg)](https://github.com/FluidNumerics/SELF/actions/workflows/linux-gnu-multithreaded-cmake.yml)

[![linux-amdflang-cmake](https://github.com/FluidNumerics/SELF/actions/workflows/linux-amdflang-cmake.yaml/badge.svg)](https://github.com/FluidNumerics/SELF/actions/workflows/linux-amdflang-cmake.yaml)

## Licensing
SELF is licensed for use under a [non-commercial use visible-source license](./LICENSE). Fluid Numerics is a small family-owned business and wants to make SELF available to researchers for academic use. Under the license, you can use, modify, and redistribute SELF so long as attribution is given to Fluid Numerics. However, since we are interested in protecting our time-and-effort investment in SELF, sale and commercial-use of SELF is prohibited under the license.
SELF is licensed for use under a [3 Clause BSD with attribution license](./LICENSE). [Fluid Numerics](https://www.fluidnumerics.com) is a small family-owned business. We want to make SELF available to folks who want to build conservation laws that run on a wide range of platforms. Under the license, you can use, modify, and redistribute SELF so long as attribution is given to Fluid Numerics.

## How to support this repository
Continued support of SELF relies on users and customers. Here's a few ways you can support this project:

If you are interested in commercial licensure and would like support from Fluid Numerics, reach out to support@fluidnumerics.com
* Give this repository a star on Github
* [Open an issue](https://github.com/FluidNumerics/SELF/issues/new/choose) if you have a question or want to report a problem. We want to help!
* [Subscribe to Fluid Numerics on Youtube](https://www.youtube.com/@FluidNumerics?sub_confirmation=1)
* [Sponsor this project on Open Collective](https://opencollective.com/opensource-fluidnumerics)
* [Work with us](https://www.fluidnumerics.com/services)

## About
SELF is an object-oriented Fortran library that support the implementation of Spectral Element Methods for solving partial differential equations.
Expand All @@ -29,25 +34,24 @@ The following combinations are tested on the main branch of self :

Name | Version | Platform | Build System | Stack | Architecture
--- | --- | --- | --- | --- | --- |
GNU Fortran `gfortran` | 13.2.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64 - gfx90a (MI210)
GNU Fortran `gfortran` | 13.2.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3, rocm/6.1.0 | x86_64 - gfx90a (MI210)
GNU Fortran `gfortran` | 13.2.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64
GNU Fortran `gfortran` | 12.3.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64
GNU Fortran `gfortran` | 12.3.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.3 (ucx+rocm), feq-parse/2.2.2, hdf5/1.14.3 | x86_64 - gfx90a (MI210)
GNU Fortran `gfortran` | 12.3.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.3 (ucx+rocm), feq-parse/2.2.2, hdf5/1.14.3, rocm/6.0.2 | x86_64 - gfx90a (MI210)
GNU Fortran `gfortran` | 11.4.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64
GNU Fortran `gfortran` | 10.5.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64
GNU Fortran `gfortran` | 9.5.0 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64
AOMP `amdflang` | 6.1.2 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64 - gfx90a (MI210)
AOMP `amdflang` | 6.1.2 | Ubuntu 22.04.2 LTS | `cmake` | openmpi/5.0.1, feq-parse/2.2.2, hdf5/1.14.3 | x86_64


"Supported" for us means that we test `self` regularly on the platforms listed. Of course, we want to have `self` working on as many platforms as possible; [open an issue](https://github.com/FluidNumerics/SELF/issues/new/choose) if you encounter any problems installing or running `self` on your own platform.

"Supported" for us means that we test `self` regularly on the platforms listed; `self` may work just fine on a different platform. Of course, we want to have `self` working on as many platforms as possible; [open an issue](https://github.com/FluidNumerics/SELF/issues/new/choose) if you encounter any problems installing or running `self` on your own platform.

## Support

### Documentation

* [**User & Developer Documentation**](https://fluidnumerics.github.io/SELF)
* [**API Documentation**](https://fluidnumerics.github.io/SELF/ford/)
* [**User & Developer Documentation**](https://self.fluidnumerics.com)
* [**API Documentation**](https://self.fluidnumerics.com/ford/)


If you'd like to contribute, see [CONTRIBUTING.md](./CONTRIBUTING.md) to get started.
Expand Down
1 change: 1 addition & 0 deletions docs/GettingStarted/building-with-self.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Using SELF to Build your own applications
File renamed without changes.
Loading
Loading