Newer
Older
from pystencilssfg import SourceFileGenerator
from lbmpy.advanced_streaming import Timestep
from lbmpy import LBMConfig, create_lb_ast
with SourceFileGenerator() as sfg:
lb_config = LBMConfig(streaming_pattern='esotwist')
lb_ast_even = create_lb_ast(lbm_config=lb_config, timestep=Timestep.EVEN)
lb_ast_even.function_name = "streamCollide_even"
lb_ast_odd = create_lb_ast(lbm_config=lb_config, timestep=Timestep.ODD)
lb_ast_odd.function_name = "streamCollide_odd"
kernel_even = sfg.kernels.add(lb_ast_even)
kernel_odd = sfg.kernels.add(lb_ast_odd)
sfg.function("myFunction")(
sfg.branch("(timestep & 1) ^ 1")(
sfg.call(kernel_even)
)(
sfg.call(kernel_odd)
)
)