feat(pythonInterface/mfem): added loads of mfem bindings to make interacting through python easy

This commit is contained in:
2025-06-16 12:01:03 -04:00
parent 94a0fa947a
commit 79c585892f
24 changed files with 1467 additions and 55 deletions

View File

@@ -1,15 +1,26 @@
#include <pybind11/pybind11.h>
#include <pybind11/stl.h> // Needed for vectors, maps, sets, strings
#include <pybind11/stl_bind.h> // Needed for binding std::vector, std::map etc if needed directly
#include <pybind11/numpy.h>
#include "bindings.h"
#include "EOSio.h"
#include "helm.h"
#include "polySolver.h"
#include "../../polytrope/solver/public/polySolver.h"
#include "../../polytrope/utils/public/polytropeOperator.h"
#include "mfem.hpp"
namespace py = pybind11;
void register_polytrope_bindings(pybind11::module &polytrope_submodule) {
py::class_<serif::polytrope::PolySolver>(polytrope_submodule, "PolySolver")
.def(py::init<double, int>(), py::arg("polytropic_index"), py::arg("FEM_order"))
.def("solve", &serif::polytrope::PolySolver::solve, "Solve the polytrope equation.");
.def("solve", &serif::polytrope::PolySolver::solve, "Solve the polytrope equation.")
.def("get_theta", &serif::polytrope::PolySolver::getTheta, py::return_value_policy::reference_internal)
.def("get_phi", &serif::polytrope::PolySolver::getPhi, py::return_value_policy::reference_internal)
.def("get_order", &serif::polytrope::PolySolver::getOrder)
.def("get_n", &serif::polytrope::PolySolver::getN);
py::class_<serif::polytrope::PolytropeOperator, mfem::Operator>(polytrope_submodule, "PolytropeOperator")
.def("Mult", &serif::polytrope::PolytropeOperator::Mult);
}