Skip to content
Snippets Groups Projects
Select Git revision
  • b4534227a1da43ca88a80168ab2ee7eb5d2adcb4
  • master default protected
  • kohl/vectorization-fixes
  • bauerd/dynamic-array-type
  • v2.0-dev
  • backend-rework
  • zikelim/mixed-precision
  • holzer-master-patch-46757
  • bauerd/wip/vec-is-rework
  • rvv
  • 66-absolute-access-is-probably-not-copied-correctly-after-_eval_subs
  • gpu_bufferfield_fix
  • hyteg
  • vectorization_sqrt_fix
  • target_dh_refactoring
  • const_fix
  • improved_comm
  • gpu_liveness_opts
  • release/1.3.3
  • release/1.3.2
  • release/1.3.1
  • release/1.3
  • release/1.2
  • release/1.1.1
  • release/1.1
  • release/1.0.1
  • release/1.0
  • release/0.4.4
  • last/Kerncraft
  • last/OpenCL
  • last/LLVM
  • release/0.4.3
  • release/0.4.2
  • release/0.4.1
  • release/0.4.0
  • release/0.3.4
  • release/0.3.3
  • release/0.3.2
38 results

setup.py

Blame
  • Forked from pycodegen / pystencils
    Source project has a limited visibility.
    kernels.py 711 B
    import sympy as sp
    
    from pystencils import fields, kernel
    
    from pystencilssfg import SourceFileGenerator
    from pystencilssfg.source_concepts.cpp import mdspan_ref
    
    with SourceFileGenerator() as sfg:
        u_src, u_dst, f = fields("u_src, u_dst, f(1) : double[2D]", layout="fzyx")
        h = sp.Symbol("h")
    
        @kernel
        def poisson_jacobi():
            u_dst[0,0] @= (h**2 * f[0, 0] * u_src[1, 0] + u_src[-1, 0] + u_src[0, 1] + u_src[0, -1]) / 4
    
        poisson_kernel = sfg.kernels.create(poisson_jacobi)
    
        sfg.function("jacobi_smooth")(
            sfg.map_field(u_src, mdspan_ref(u_src)),
            sfg.map_field(u_dst, mdspan_ref(u_dst)),
            sfg.map_field(f, mdspan_ref(f)),
            sfg.call(poisson_kernel)
        )