18#include <pybind11/pytypes.h>
41 T_.def(py::init<T::t_fv, T::t_bcHandler, T::t_physics>());
42 T_.def(
"setConfig", [](T &self,
const nlohmann::json &c)
43 { self.set_config(c); });
44 T_.def(
"getConfig", [](T &self) -> nlohmann::json
45 {
return self.get_config(); });
48 .def_readwrite(
"fv", &T::fv)
49 .def_readwrite(
"bcHandler", &T::bcHandler)
50 .def_readwrite(
"physics", &T::physics);
52 .def(
"to_host", &T::to_host);
54 .def(
"to_device", [](T &self,
const std::string &B)
57 .def(
"device", &T::device);
60 .def(
"PrintDataVTKHDF", &T::PrintDataVTKHDF,
61 py::arg(
"fname"), py::arg(
"series_name"),
62 py::arg(
"arrCellCentScalar") = py::list(),
63 py::arg(
"arrCellCentScalar_names") = py::list(),
64 py::arg(
"arrCellCentVec") = py::list(),
65 py::arg(
"arrCellCentVec_names") = py::list(),
66 py::arg(
"arrNodeScalar") = py::list(),
67 py::arg(
"arrNodeScalar_names") = py::list(),
68 py::arg(
"arrNodeVec") = py::list(),
69 py::arg(
"arrNodeVec_names") = py::list(),
70 py::arg(
"uPrimCell") = py::none(),
71 py::arg(
"uPrimNode") = py::none(),
74#define DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API(func, func_arg) \
77 using TArg = T::func_arg; \
78 auto arg_ = py_class_ssp<TArg>(T_, #func_arg); \
79 arg_.def(py::init()); \
80 for_each_member_ptr_list_raw(TArg::member_list(), [&](auto &mem_ptr) \
81 { arg_.def_readwrite(mem_ptr.name, mem_ptr.ptr); }); \
82 T_.def(#func, &T::func); \
91 static auto const a =
sizeof(T::Flux2nd_Arg);
93#undef DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API
Shared pybind11 plumbing used by every *_bind.hpp in DNDS (buffer-protocol type check,...
Device memory abstraction layer with backend-specific storage and factory creation.
Main evaluator class for the EulerP compressible Navier-Stokes solver module.
#define DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API(func, func_arg)
Tiny reflection-style helpers (MemberRef, MemberPtr) and for_each_member_* visitors used by config / ...
Main EulerP evaluator orchestrating CFD kernel dispatch for compressible N-S solvers.
Namespace for the EulerP alternative evaluator module with GPU support.
void pybind11_Evaluator_bind(py::module_ &m)
Top-level binding function for the EulerP Evaluator Python API.
void pybind11_Evaluator_define(py::module_ &m)
Defines pybind11 bindings for the Evaluator class and its kernel argument structs.
py::classh< T > py_class_ssp
DeviceBackend device_backend_name_to_enum(std::string_view s)
Inverse of device_backend_name. Returns Unknown for unrecognised names.