32 lines
1.3 KiB
C
32 lines
1.3 KiB
C
/**
|
|
* @file bindings.h
|
|
* @brief Declares the function to register polytrope module C++ components with pybind11.
|
|
*
|
|
* This file contains the declaration for `register_polytrope_bindings`, which is responsible
|
|
* for creating Python bindings for classes and functions within the `serif::polytrope` C++
|
|
* namespace. These bindings will be accessible in Python under the `serif.polytrope` submodule.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <pybind11/pybind11.h>
|
|
|
|
/**
|
|
* @brief Registers C++ classes and functions from the `serif::polytrope` namespace to Python.
|
|
*
|
|
* This function takes a pybind11::module object, representing the `serif.polytrope` Python submodule,
|
|
* and adds bindings for various components like `PolytropeOperator`, `PolySolver`, etc.
|
|
* This allows these C++ components to be instantiated and used directly from Python.
|
|
*
|
|
* @param polytrope_submodule The pybind11 module (typically `serif.polytrope`) to which
|
|
* the polytrope C++ bindings will be added.
|
|
*
|
|
* @par Python Usage Example:
|
|
* After these bindings are registered and the Python module is imported:
|
|
* @code{.py}
|
|
* from serif.polytrope import PolySolver
|
|
* polytrope = PolySolver(1.5, 1)
|
|
* polytrope.solve()
|
|
* @endcode
|
|
*/
|
|
void register_polytrope_bindings(pybind11::module &polytrope_submodule);
|