Fluctuating MRT test does not compile with miniconda3 and lbmpy/pystencils from pip
The code generation test tests/lbm/codegen/FluctuatingMRT.py
does not compile when using lbmpy and pystencils from miniconda3 via pip install
.
The error thrown during compilation is attached below and should be reproducible with:
- current version of miniconda3 (tested with version for Linux, 64-bit)
-
pip install lbmpy lbmpy_walberla pystencils pystencils_walberla
(within environment in miniconda3) - current version of waLBerla master
- tested with gcc 7.5.0, gcc 8.2.0 and cmake 3.10.2
- compiled with
WALBERLA_OPTIMIZE_FOR_LOCALHOST=ON
Compilation error:
[ 93%] Generating default_codegen/FluctuatingMRT_LatticeModel.cpp, default_codegen/FluctuatingMRT_LatticeModel.h
Traceback (most recent call last):
File "/home/christoph/walberla_codegen/tests/lbm/codegen/FluctuatingMRT.py", line 22, in <module>
generate_lattice_model(ctx, 'FluctuatingMRT_LatticeModel', collision_rule)
File "/home/christoph/walberla_codegen/python/lbmpy_walberla/walberla_lbm_generation.py", line 145, in generate_lattice_model
stream_collide_ast = create_kernel(stream_collide_update_rule, **create_kernel_params)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/kernelcreation.py", line 109, in create_kernel
vectorize(ast, **cpu_vectorize_info)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/cpu/vectorization.py", line 77, in vectorize
nontemporal, assume_sufficient_line_padding)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/cpu/vectorization.py", line 136, in vectorize_inner_loops_and_adapt_load_stores
skip=lambda e: isinstance(e, ast.ResolvedFieldAccess) or isinstance(e, vector_memory_access))
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 174, in fast_subs
return visit(expression)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 163, in visit
return expr.fast_subs(substitutions, skip)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/astnodes.py", line 437, in fast_subs
self.body = fast_subs(self.body, subs_dict, skip)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 174, in fast_subs
return visit(expression)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 163, in visit
return expr.fast_subs(substitutions, skip)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/astnodes.py", line 309, in fast_subs
self._nodes = [fast_subs(a, subs_dict, skip) for a in self._nodes]
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/astnodes.py", line 309, in <listcomp>
self._nodes = [fast_subs(a, subs_dict, skip) for a in self._nodes]
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 174, in fast_subs
return visit(expression)
File "/home/christoph/miniconda3/lib/python3.7/site-packages/pystencils/sympyextensions.py", line 163, in visit
return expr.fast_subs(substitutions, skip)
TypeError: fast_subs() takes 2 positional arguments but 3 were given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/christoph/walberla_codegen/tests/lbm/codegen/FluctuatingMRT.py", line 22, in <module>
generate_lattice_model(ctx, 'FluctuatingMRT_LatticeModel', collision_rule)
File "/home/christoph/walberla_codegen/python/pystencils_walberla/cmake_integration.py", line 41, in __exit__
raise ValueError(error_message)
ValueError: Generated files specified not correctly in cmake with 'waLBerla_python_file_generates'
Files only specified in CMake ['FluctuatingMRT_LatticeModel.cpp', 'FluctuatingMRT_LatticeModel.h']
tests/lbm/CMakeFiles/FluctuatingMRT.dir/build.make:61: recipe for target 'tests/lbm/default_codegen/FluctuatingMRT_LatticeModel.cpp' failed
make[3]: *** [tests/lbm/default_codegen/FluctuatingMRT_LatticeModel.cpp] Error 1
CMakeFiles/Makefile2:6318: recipe for target 'tests/lbm/CMakeFiles/FluctuatingMRT.dir/all' failed
make[2]: *** [tests/lbm/CMakeFiles/FluctuatingMRT.dir/all] Error 2
CMakeFiles/Makefile2:6330: recipe for target 'tests/lbm/CMakeFiles/FluctuatingMRT.dir/rule' failed
make[1]: *** [tests/lbm/CMakeFiles/FluctuatingMRT.dir/rule] Error 2
Makefile:172: recipe for target 'tests/lbm/CMakeFiles/FluctuatingMRT.dir/rule' failed
make: *** [tests/lbm/CMakeFiles/FluctuatingMRT.dir/rule] Error 2
Edited by Christoph Schwarzmeier