From 41aaa1d7d9be78f001d5086b29502bf6e95c3ab9 Mon Sep 17 00:00:00 2001 From: Michael Kuron <mkuron@icp.uni-stuttgart.de> Date: Tue, 21 Apr 2020 18:41:52 +0200 Subject: [PATCH] pystencils: re-allow use of arbitrary field names in sweeps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, anything that wasn’t velocity, src, src_tmp, pdfs, pdfs_tmp resulted in invalid code This was a regression introduced in a16141524c58ab88386e2a0f8fdd7c63c5edd704 --- python/pystencils_walberla/jinja_filters.py | 4 ++-- python/pystencils_walberla/templates/Sweep.tmpl.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/pystencils_walberla/jinja_filters.py b/python/pystencils_walberla/jinja_filters.py index 003315448..ee79ef903 100644 --- a/python/pystencils_walberla/jinja_filters.py +++ b/python/pystencils_walberla/jinja_filters.py @@ -170,8 +170,8 @@ def generate_block_data_to_field_extraction(ctx, kernel_info, parameters_to_igno return result -def generate_refs_for_kernel_parameters(kernel_info, prefix, parameters_to_ignore): - symbols = {p.field_name for p in kernel_info.parameters if p.is_field_pointer} +def generate_refs_for_kernel_parameters(kernel_info, prefix, parameters_to_ignore=(), ignore_fields=False): + symbols = {p.field_name for p in kernel_info.parameters if p.is_field_pointer and not ignore_fields} symbols.update(p.symbol.name for p in kernel_info.parameters if not p.is_field_parameter) symbols.difference_update(parameters_to_ignore) return "\n".join("auto & %s = %s%s_;" % (s, prefix, s) for s in symbols) diff --git a/python/pystencils_walberla/templates/Sweep.tmpl.cpp b/python/pystencils_walberla/templates/Sweep.tmpl.cpp index ae15b4595..b3b12c6b3 100644 --- a/python/pystencils_walberla/templates/Sweep.tmpl.cpp +++ b/python/pystencils_walberla/templates/Sweep.tmpl.cpp @@ -58,7 +58,7 @@ namespace {{namespace}} { void {{class_name}}::operator()( IBlock * block{%if target is equalto 'gpu'%} , cudaStream_t stream{% endif %} ) { {{kernel|generate_block_data_to_field_extraction|indent(4)}} - {{kernel|generate_refs_for_kernel_parameters(prefix='this->', parameters_to_ignore=['velocity', 'src', 'src_tmp', 'pdfs', 'pdfs_tmp'])|indent(4) }} + {{kernel|generate_refs_for_kernel_parameters(prefix='this->', ignore_fields=True)|indent(4) }} {{kernel|generate_call(stream='stream')|indent(4)}} {{kernel|generate_swaps|indent(4)}} } @@ -78,7 +78,7 @@ void {{class_name}}::runOnCellInterval( const shared_ptr<StructuredBlockStorage> return; {{kernel|generate_block_data_to_field_extraction|indent(4)}} - {{kernel|generate_refs_for_kernel_parameters(prefix='this->', parameters_to_ignore=['velocity', 'src', 'src_tmp', 'pdfs', 'pdfs_tmp'])|indent(4) }} + {{kernel|generate_refs_for_kernel_parameters(prefix='this->', ignore_fields=True)|indent(4) }} {{kernel|generate_call(stream='stream', cell_interval='ci')|indent(4)}} {{kernel|generate_swaps|indent(4)}} } -- GitLab