Skip to main content

Python bindings for the NeoN CFD framework

Project description

Requirements | Compilation | Integration | Documentation | Roadmap |

DOI c++ standard Gitter doxygen

image

NeoN

[!IMPORTANT] The NeoN project needs you! If you're interested in contributing to NeoN please open a PR! If you have any questions on where to start please contact us here or on gitter.

Requirements

NeoN has the following requirements

  • cmake > 3.22
  • gcc >= 13 or clang >= 19
  • Kokkos 5.0.2

For GPU support

  • NVIDIA: CUDA 12+
  • Intel: oneAPI Base Toolkit 2024.2

For development it is required to use pre-commit.

C++ dependencies

C++ dependencies like Kokkos are handled via CPM and are cloned at the configuration step. However, the cmake build process will prefer system wide installed C++ dependencies like Kokkos, cxxopts, etc. If you prefer to clone, configure and build dependencies your self consider setting -DCPM_USE_LOCAL_PACKAGES = OFF, see CPM for more details.

Compilation

workflows/Build on linux workflows/Build on OSX workflows/Build on windows

NeoN uses cmake to build, thus the standard cmake procedure should work. From a build directory you can execute

cmake <DesiredBuildFlags> ..
cmake --build .
cmake --install .

Additionally, we provide several Cmake presets to set commmonly required flags if you compile NeoN in combination with Kokkos.

cmake --list-presets # To list existing presets
cmake --preset production # To configure for production use
cmake --build --preset production # To compile for production use

Executing Tests

We provide a set of unit tests which can be executed via ctest or

cmake --build . --target test

Pixi Workspace

For local development, NeoN can be driven via pixi.toml. Pixi provides the developer tools, such as Python, CMake, Ninja, a C++ compiler, nanobind, pytest, and optional CUDA compiler packages, in an isolated environment.

Typical commands are:

pixi install
pixi shell
pixi run build
pixi run test
pixi run -e cuda build-cuda
pixi run -e cuda test-cuda

Pixi is only the local development leg. It is not used to publish Python wheels or upload releases.

Python Wheels

The Python distribution name in this test repository is andrei-maftei-testneon, which produces wheel filenames starting with andrei_maftei_testneon. The import package remains neon.

The package version in pyproject.toml is the source of truth. CMake reads that version during configuration, and the generated neon.__version__ uses the same value.

GitHub Actions uses cibuildwheel to build wheels after pushes, nightly schedules, manual dispatches, and release tags. Stable releases use tags named like v0.1.0. Nightly builds use development versions like 0.1.1.dev202605270217123.

CPU wheels use the plain package version and are published to PyPI only for stable v*.*.* tags. CUDA wheels use local version suffixes such as 0.1.0+cuda128 and 0.1.0+cuda130; these are uploaded to the GitHub Release for stable tags and are also available as workflow artifacts.

Integration with other CFD Frameworks

Currently, NeoN is not a standalone CFD framework. It is designed to be used with other CFD Frameworks. Examples how to integrate NeoN into CFD frameworks and how to write applications is demonstrated in the NeoFOAM repository.

Documentation

An online documentation can be found here, be cautious since this repository is currently evolving the documentation might not always reflect the latest stage.

For building the documentation further dependencies like doxygen and sphinx are requirement. The list of requirements can be found here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

andrei_maftei_testneon-0.1.1.dev2026052819147-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

andrei_maftei_testneon-0.1.1.dev2026052819147-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

andrei_maftei_testneon-0.1.1.dev2026052819147-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

andrei_maftei_testneon-0.1.1.dev2026052819147-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

andrei_maftei_testneon-0.1.1.dev2026052819147-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (55.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file andrei_maftei_testneon-0.1.1.dev2026052819147-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for andrei_maftei_testneon-0.1.1.dev2026052819147-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bee5ca5c411bd2c7742513bb755212afdbe058ed3a599b8fceb852ecd42ddcdd
MD5 069ce66d5f414a36d5b819e28be84c43
BLAKE2b-256 14da1acd544993ad6aa60d17202757b55c6697e9bb71d82f3bed8a69b72c8cac

See more details on using hashes here.

Provenance

The following attestation bundles were made for andrei_maftei_testneon-0.1.1.dev2026052819147-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_wheels.yaml on AndreiIulianMaftei/testneon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file andrei_maftei_testneon-0.1.1.dev2026052819147-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for andrei_maftei_testneon-0.1.1.dev2026052819147-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 493b3e1e090ef42f8e5b739ddc2d09be5983f5651686df1216a7946fe280d4c5
MD5 2d83bc525d477b46162191e9b5a04a8f
BLAKE2b-256 52537bba8b966a405e06af3f0f497519068488c6382ed9eafd2e655f1cd55c66

See more details on using hashes here.

Provenance

The following attestation bundles were made for andrei_maftei_testneon-0.1.1.dev2026052819147-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_wheels.yaml on AndreiIulianMaftei/testneon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file andrei_maftei_testneon-0.1.1.dev2026052819147-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for andrei_maftei_testneon-0.1.1.dev2026052819147-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b8b7096e5b34e42a02000bb5831d3b8b4eab121135b8f3c0c47230a11dd213c7
MD5 a81a10aad9d4c7e6141957978f6277b0
BLAKE2b-256 3140eaf41fd6e9782872f3ce8f26f6add3d47036a7cf5b07836614d00b4d5f40

See more details on using hashes here.

Provenance

The following attestation bundles were made for andrei_maftei_testneon-0.1.1.dev2026052819147-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_wheels.yaml on AndreiIulianMaftei/testneon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file andrei_maftei_testneon-0.1.1.dev2026052819147-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for andrei_maftei_testneon-0.1.1.dev2026052819147-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0ed82957feb668c263778da375a20e6f25bcc1bbe540461348913540dbc3928
MD5 a17a9b44660ddb525f5f91e391085072
BLAKE2b-256 7f0f5660d8bfff360829920c958ac4965ff92d8bba1f966e0803fe1157c62553

See more details on using hashes here.

Provenance

The following attestation bundles were made for andrei_maftei_testneon-0.1.1.dev2026052819147-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_wheels.yaml on AndreiIulianMaftei/testneon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file andrei_maftei_testneon-0.1.1.dev2026052819147-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for andrei_maftei_testneon-0.1.1.dev2026052819147-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8841f21f2ac96cce1699c5c83cd81d9845ec02b8569817591094a592458ed2cf
MD5 722418ada722e460c68f461b1e3541d4
BLAKE2b-256 c18a70eac99102a2855cda3853298f6e87e4836e635396f16ae468c4bb880bab

See more details on using hashes here.

Provenance

The following attestation bundles were made for andrei_maftei_testneon-0.1.1.dev2026052819147-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python_wheels.yaml on AndreiIulianMaftei/testneon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page