Skip to content

Commit

Permalink
libCEED 0.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jedbrown committed Dec 24, 2022
1 parent 13f28a1 commit 8ec64e9
Show file tree
Hide file tree
Showing 16 changed files with 46 additions and 31 deletions.
2 changes: 1 addition & 1 deletion Doxyfile
Expand Up @@ -48,7 +48,7 @@ PROJECT_NAME = libCEED
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = v0.10.1
PROJECT_NUMBER = v0.11.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -106,7 +106,7 @@ Rust users can include libCEED via `Cargo.toml`:

```toml
[dependencies]
libceed = { git = "https://github.com/CEED/libCEED", branch = "main" }
libceed = "0.11.0"
```

See the [Cargo documentation](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories) for details.
Expand Down
10 changes: 5 additions & 5 deletions RELEASING.md
Expand Up @@ -17,7 +17,7 @@ The version number must be updated in
* `Doxyfile`
* `CITATION.cff`

Additionally, the release notes in `doc/sphinx/source/releasenotes.rst` should be updated.
Additionally, the release notes in `doc/sphinx/source/releasenotes.md` should be updated.
Use `git log --first-parent v0.7..` to get a sense of the pull requests that have been merged and thus might warrant emphasizing in the release notes.
While doing this, gather a couple sentences for key features to highlight on [GitHub releases](https://github.com/CEED/libCEED/releases).
The "Current Main" heading needs to be named for the release.
Expand All @@ -31,7 +31,7 @@ This contains the same content as the website, but will be archived on Zenodo.
The [ABI compliance checker](https://github.com/lvc/abi-compliance-checker) is a useful tool, as is `nm -D libceed.so` and checking for public symbols (capital letters like `T` and `D` that are not namespaced).

2. Double check testing on any architectures that may not be exercised in continuous integration (e.g., HPC facilities) and with users of libCEED, such as MFEM and PETSc applications.
While unsupported changes do not prevent release, it's polite to make a PR to support the new release, and it's good for quality to test before taggin a libCEED release.
While unsupported changes do not prevent release, it's polite to make a PR to support the new release, and it's good for quality to test before tagging a libCEED release.

3. Update and test all the language bindings (see below) within the branch.

Expand Down Expand Up @@ -175,6 +175,6 @@ rust/libceed/README.md:libceed = "0.8.0"

After doing this,

1. `cargo package --list` to see that the file list makes sense.
2. `cargo package` to build crates locally
3. `cargo publish` to publish the crates to https://crates.io
1. `cargo package --list --package libceed-sys` and `--package libceed` to see that the file list makes sense.
2. `cargo release` to build crates locally (handling dependencies between creates in the workspace)
3. `cargo release publish --execute` to publish the crates to https://crates.io
2 changes: 1 addition & 1 deletion ceed.pc.template
Expand Up @@ -4,7 +4,7 @@ libdir=${prefix}/lib

Name: CEED
Description: Code for Efficient Extensible Discretization
Version: 0.10.1
Version: 0.11.0
Cflags: -I${includedir}
Libs: -L${libdir} -lceed
Libs.private: %libs_private%
32 changes: 23 additions & 9 deletions doc/sphinx/source/releasenotes.md
Expand Up @@ -6,6 +6,10 @@ On this page we provide a summary of the main API changes, new features and exam

## Current `main` branch

(v0-11)=

## v0.11 (Dec 24, 2022)

### Interface changes

- Added {c:func}`CeedOperatorSetName` for more readable {c:func}`CeedOperatorView` output.
Expand All @@ -15,16 +19,13 @@ On this page we provide a summary of the main API changes, new features and exam
### New features

- Update `/cpu/self/memcheck/*` backends to help verify `CeedQFunctionContext` data sizes provided by user.
- Improved support for $H(\text{div})$ bases.
- Added `CeedInt_FMT` to support potential future use of larger interger sizes.
- Added CEED_QFUNCTION_ATTR for setting compiler attributes/pragmas to CEED_QFUNCTION_HELPER and CEED_QFUNCTION
- Added `CEED_QFUNCTION_ATTR` for setting compiler attributes/pragmas to `CEED_QFUNCTION_HELPER` and `CEED_QFUNCTION`.
- OCCA backend updated to latest OCCA release; DPC++ and OMP OCCA modes enabled.
Due to a limitation of the OCCA parser, typedefs are required to use pointers to arrays in QFunctions with the OCCA backend.
This issue will be fixed in a future OCCA release.

### Other

- Switch to `clang-format` over `astyle` for automatic formatting; Makefile command changed to `make format` from `make style`.

### Bugfix

- Fix bug in setting device id for GPU backends.
Expand All @@ -34,15 +35,28 @@ This issue will be fixed in a future OCCA release.

### Examples

- Added various performance enhancements for {ref}`example-petsc-navier-stokes`.
- Refactored {ref}`example-petsc-navier-stokes` to improve code reuse.
- Added Shock Tube, Channel, and Flat Plate boundary layer problems to {ref}`example-petsc-navier-stokes`.
- Added ability to use QFunctions for strong STG inflow in {ref}`example-petsc-navier-stokes`.
#### {ref}`example-petsc-navier-stokes`

- Various performance enhancements, analytic matrix-free and assembled Jacobian, and PETSc solver configurations for GPUs.
- Refactored to improve code reuse and modularity.
- Support for primitive variables for more accurate boundary layers and all-speed flow.
- Added $YZ\beta$ shock capturing scheme and Shock Tube example.
- Added Channel example, with comparison to analytic solutions.
- Added Flat Plate with boundary layer mesh and compressible Blasius inflow condition based on Chebyshev collocation solution of the Blasius equations.
- Added strong and weak synthetic turbulence generation (STG) inflow boundary conditions.
- Added "freestream" boundary conditions based on HLLC Riemann solver.
- Automated stabilization coefficients for different basis degree.

#### {ref}`example-petsc-bps`

- Support for convergence studies.

### Maintainability

- Refactored `/gpu/cuda/shared` and `/gpu/cuda/gen` as well as `/gpu/hip/shared` and `/gpu/hip/gen` backend to improve maintainablity and reduce duplicated code.
- Enabled support for `p > 8` for `/gpu/*/shared` backends.
- Switch to `clang-format` over `astyle` for automatic formatting; Makefile command changed to `make format` from `make style`.
- Improved test harness.

(v0-10-1)=

Expand Down
2 changes: 1 addition & 1 deletion examples/rust/ex1-volume/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "ex1-volume"
version = "0.1.0"
version = "0.11.0"
authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
Expand Down
2 changes: 1 addition & 1 deletion examples/rust/ex2-surface/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "ex2-surface"
version = "0.1.0"
version = "0.11.0"
authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
Expand Down
2 changes: 1 addition & 1 deletion examples/rust/ex3-vector-volume/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "ex3-vector-volume"
version = "0.1.0"
version = "0.11.0"
authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
Expand Down
2 changes: 1 addition & 1 deletion examples/rust/ex4-vector-surface/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "ex4-vector-surface"
version = "0.1.0"
version = "0.11.0"
authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
Expand Down
2 changes: 1 addition & 1 deletion examples/rust/mesh/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "mesh"
version = "0.1.0"
version = "0.11.0"
authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
Expand Down
6 changes: 3 additions & 3 deletions include/ceed/ceed.h
Expand Up @@ -133,9 +133,9 @@ CEED_EXTERN int CeedResetErrorMessage(Ceed, const char **err_msg);
/// libCEED library version numbering
/// @ingroup Ceed
#define CEED_VERSION_MAJOR 0
#define CEED_VERSION_MINOR 10
#define CEED_VERSION_PATCH 1
#define CEED_VERSION_RELEASE false
#define CEED_VERSION_MINOR 11
#define CEED_VERSION_PATCH 0
#define CEED_VERSION_RELEASE true

/// Compile-time check that the the current library version is at least as recent as the specified version.
/// This macro is typically used in
Expand Down
2 changes: 1 addition & 1 deletion rust/libceed-sys/Cargo.toml
Expand Up @@ -6,7 +6,7 @@ authors = [
]
build = "build.rs"
name = "libceed-sys"
version = "0.10.0"
version = "0.11.0"
links = "libceed-sys"
edition = "2018"
license = "BSD-2-Clause"
Expand Down
2 changes: 1 addition & 1 deletion rust/libceed-sys/README.md
Expand Up @@ -12,7 +12,7 @@ While our focus is on high-order finite elements, the approach is mostly algebra
To use low level libCEED bindings in a Rust package, the following `Cargo.toml` can be used.
```toml
[dependencies]
libceed-sys = "0.10.0"
libceed-sys = "0.11.0"
```

For a development version of the libCEED Rust bindings, use the following `Cargo.toml`.
Expand Down
2 changes: 1 addition & 1 deletion rust/libceed-sys/build.rs
Expand Up @@ -41,7 +41,7 @@ fn main() {
};
pkg_config::Config::new()
.statik(statik)
.atleast_version("0.10")
.atleast_version("0.11")
.probe(&ceed_pc)
.unwrap();

Expand Down
5 changes: 3 additions & 2 deletions rust/libceed/Cargo.toml
Expand Up @@ -5,8 +5,9 @@ authors = [
"Jeremy L Thompson <thompson.jeremy.luke@gmail.com>",
]
name = "libceed"
version = "0.10.0"
version = "0.11.0"
edition = "2018"
rust-version = "1.56"
license = "BSD-2-Clause"
repository = "https://github.com/CEED/libCEED"
documentation = "https://docs.rs/libceed"
Expand All @@ -17,7 +18,7 @@ keywords = ["libceed", "exascale", "high-order"]
categories = ["science"]

[dependencies]
libceed-sys = { version = "0.10", path = "../libceed-sys" }
libceed-sys = { version = "0.11", path = "../libceed-sys" }
katexit = { version = "0.1.1", optional = true }

[dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion rust/libceed/README.md
Expand Up @@ -14,7 +14,7 @@ See the [libCEED user manual](https://libceed.org) for details on [interface con
To call libCEED from a Rust package, the following `Cargo.toml` can be used.
```toml
[dependencies]
libceed = "0.10.0"
libceed = "0.11.0"
```

For a development version of the libCEED Rust bindings, use the following `Cargo.toml`.
Expand Down

0 comments on commit 8ec64e9

Please sign in to comment.