Skip to content
Snippets Groups Projects
  1. Aug 05, 2019
  2. Jul 18, 2019
  3. Jul 10, 2019
    • 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
      undefined.
      By that trick we can generate kernels that accept structs as
      kernelparameters.
      Either to include a pystencils specific Field struct of the following
      definition:
      
      ```cpp
      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`
      
      ```
      8e63c9ff