• Stephan Seitz's avatar
    Add DestructuringBindingsForFieldClass to use pystencils kernels in a more C++-ish way · 8e63c9ff
    Stephan Seitz authored
    DestructuringBindingsForFieldClass defines all field-related variables
    in its subordinated block.
    However, it leaves a TypedSymbol of type 'Field' for each field
    By that trick we can generate kernels that accept structs as
    Either to include a pystencils specific Field struct of the following
    template<DTYPE_T, DIMENSION>
    struct Field
        DTYPE_T* data;
        std::array<DTYPE_T, DIMENSION> shape;
        std::array<DTYPE_T, DIMENSION> stride;
    or to be able to destructure user defined types like `pybind11::array`,
    `at::Tensor`, `tensorflow::Tensor`
cbackend.py 24.6 KB