DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
EulerP_Evaluator_bind.hpp File Reference

Pybind11 bindings for the EulerP Evaluator class and its packed argument structs. More...

#include "DNDS/Defines_bind.hpp"
#include "DNDS/DeviceStorage.hpp"
#include "DNDS/ObjectUtils.hpp"
#include "EulerP_Evaluator.hpp"
#include <pybind11/pytypes.h>
Include dependency graph for EulerP_Evaluator_bind.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  DNDS
 the host side operators are provided as implemented
 
namespace  DNDS::EulerP
 Namespace for the EulerP alternative evaluator module with GPU support.
 

Macros

#define DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API(func, func_arg)
 

Functions

void DNDS::EulerP::pybind11_Evaluator_define (py::module_ &m)
 Defines pybind11 bindings for the Evaluator class and its kernel argument structs.
 
void DNDS::EulerP::pybind11_Evaluator_bind (py::module_ &m)
 Top-level binding function for the EulerP Evaluator Python API.
 

Detailed Description

Pybind11 bindings for the EulerP Evaluator class and its packed argument structs.

Exposes the following Python API under the EulerP module:

  • Evaluator: Main evaluator class with constructor, config get/set, device transfer, VTK output, and all kernel methods (RecGradient, RecFace2nd, Cons2PrimMu, Cons2Prim, EstEigenDt, Flux2nd).
  • For each kernel, a corresponding *_Arg packed argument struct is exposed with all member ArrayDof pointers as read/write properties.

Definition in file EulerP_Evaluator_bind.hpp.

Macro Definition Documentation

◆ DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API

#define DNDS_EULERP_EVALUATOR_BIND_STANDARD_PACKED_API (   func,
  func_arg 
)
Value:
\
{ \
using TArg = T::func_arg; \
auto arg_ = py_class_ssp<TArg>(T_, #func_arg); \
arg_.def(py::init()); \
for_each_member_ptr_list_raw(TArg::member_list(), [&](auto &mem_ptr) \
{ arg_.def_readwrite(mem_ptr.name, mem_ptr.ptr); }); \
T_.def(#func, &T::func); \
}