|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Each module under src/ contains:
*.hpp / *.cpp — C++ headers and implementation files.*_pybind.cpp / *_bind.cpp — Pybind11 binding definitions._explicit_instantiation/ — Explicit template instantiation files (one per model variant, compiled as separate translation units).CMakeLists.txt — Module-level build rules.Each module depends on those above it:
The Python package is separate from C++ sources. Compiled pybind11 extension modules (.so / .pyd) are installed into _ext/ subdirectories by cmake --install.
Before pybind11 extensions can be imported, their shared library dependencies must be loaded. _loader.py provides a single preload(module) function that:
python/DNDSR/_lib/ or legacy paths).ctypes.CDLL with RTLD_GLOBAL.| Directory | Framework | Runner | What it tests |
|---|---|---|---|
test/cpp/DNDS/ | doctest | CTest (np=1,2,4) | DNDS core C++ classes |
test/DNDS/ | pytest | pytest | DNDS Python bindings |
test/Geom/ | pytest | pytest | Geom Python bindings |
test/CFV/ | pytest | pytest | CFV Python bindings |
test/EulerP/ | pytest | pytest | EulerP Python bindings |
See DNDS Core Unit Tests for the full C++ test suite documentation.
| Target | Description |
|---|---|
euler | Euler N-S solver (2D) |
euler3D | Euler N-S solver (3D) |
eulerSA | Spalart-Allmaras RANS solver (2D) |
eulerSA3D | Spalart-Allmaras RANS solver (3D) |
euler2EQ | k-omega RANS solver (2D) |
euler2EQ3D | k-omega RANS solver (3D) |
dnds_pybind11 | DNDS Python binding module |
geom_pybind11 | Geom Python binding module |
cfv_pybind11 | CFV Python binding module |
eulerP_pybind11 | EulerP Python binding module |
dnds_unit_tests | All C++ unit test executables (aggregate) |