1#include <pybind11/pybind11.h>
2#include <pybind11/stl.h>
3#include <pybind11/stl_bind.h>
13namespace py = pybind11;
16 py::class_<gridfire::screening::ScreeningModel, PyScreening>(m,
"ScreeningModel");
18 py::enum_<gridfire::screening::ScreeningType>(m,
"ScreeningType")
25 "Select a screening model based on the specified type. Returns a pointer to the selected model.");
27 py::class_<gridfire::screening::BareScreeningModel>(m,
"BareScreeningModel")
29 .def(
"calculateScreeningFactors",
31 py::arg(
"reactions"), py::arg(
"species"), py::arg(
"Y"), py::arg(
"T9"), py::arg(
"rho"),
32 "Calculate the bare plasma screening factors. This always returns 1.0 (bare)"
35 py::class_<gridfire::screening::WeakScreeningModel>(m,
"WeakScreeningModel")
37 .def(
"calculateScreeningFactors",
39 py::arg(
"reactions"), py::arg(
"species"), py::arg(
"Y"), py::arg(
"T9"), py::arg(
"rho"),
40 "Calculate the weak plasma screening factors using the Salpeter (1954) model."
std::vector< double > calculateScreeningFactors(const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< double > &Y, const double T9, const double rho) const override
Calculates screening factors, which are always 1.0.
std::vector< double > calculateScreeningFactors(const reaction::LogicalReactionSet &reactions, const std::vector< fourdst::atomic::Species > &species, const std::vector< double > &Y, const double T9, const double rho) const override
Calculates weak screening factors for a set of reactions.
TemplatedReactionSet< LogicalReaction > LogicalReactionSet
A set of logical reactions.
std::unique_ptr< ScreeningModel > selectScreeningModel(ScreeningType type)
A factory function to select and create a screening model.
@ WEAK
Weak screening model (Salpeter, 1954).
@ BARE
No screening applied. The screening factor is always 1.0.
void register_screening_bindings(py::module &m)