pystencils merge requestshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests2020-07-10T16:55:16+02:00https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/161No cuda required for linting pystencils2020-07-10T16:55:16+02:00Stephan SeitzNo cuda required for linting pystencilshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/162Recursively convert dictionary in DotDict2020-07-10T16:56:17+02:00Stephan SeitzRecursively convert dictionary in DotDictEverybody love `DotDict` because we are lazy. This PR recursively converts all dict into `DotDict` not only top level.
So you can do:
my_super.nested.data.scheme = 42Everybody love `DotDict` because we are lazy. This PR recursively converts all dict into `DotDict` not only top level.
So you can do:
my_super.nested.data.scheme = 42https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/163Volume-of-Fluid: better tests and make it actually work2020-07-10T21:18:57+02:00Michael Kuronmkuron@icp.uni-stuttgart.deVolume-of-Fluid: better tests and make it actually workThe scheme corresponds to calculating the overlap volume of a cell shifted by the flow velocity with its neighbor cell. The new test does that explicitly, but generates convoluted expressions which should not be used directly because the...The scheme corresponds to calculating the overlap volume of a cell shifted by the flow velocity with its neighbor cell. The new test does that explicitly, but generates convoluted expressions which should not be used directly because they are so slow to evaluate. Thanks to this test, an incorrect sign in the implementation was found and fixed, as well as improper scaling of the fluxes.
@alexander.reinauer, this could be important to you because you are the only other person using volume-of-fluid advection.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/164Throw an error when performing GPU operations with SerialDataHandling when py...2020-07-09T15:41:24+02:00Stephan SeitzThrow an error when performing GPU operations with SerialDataHandling when pycuda is not availableMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/165Enable osaca usage2020-07-14T19:54:52+02:00Markus HolzerEnable osaca usageThis MR updates the kerncraft interface to the new kerncraft version. Furthermore, IACA is not used as Architecture Code Analyzer anymore due to not being developed anymore. Instead, OSACA is enabled as Open-source Architecture Code Anal...This MR updates the kerncraft interface to the new kerncraft version. Furthermore, IACA is not used as Architecture Code Analyzer anymore due to not being developed anymore. Instead, OSACA is enabled as Open-source Architecture Code Analyzer.Jan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/166Fix #23: Make Field.Access NotIterable2020-12-08T09:15:02+01:00Stephan SeitzFix #23: Make Field.Access NotIterableWhy?
Sympy does not try to iterate when the object is `NotIterable`. If it has `__iter__` but iter throws it will only sometimes think its not iterable.Why?
Sympy does not try to iterate when the object is `NotIterable`. If it has `__iter__` but iter throws it will only sometimes think its not iterable.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/167Update conftest and readme2020-08-10T11:21:50+02:00Markus HolzerUpdate conftest and readmeDue to the update of the python environment, the conftest is updated to the new pytest version. Further, pages are hosted now on a new URL which is adapted in the readme.Due to the update of the python environment, the conftest is updated to the new pytest version. Further, pages are hosted now on a new URL which is adapted in the readme.Jan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/168Extend testsuite2020-08-10T14:48:46+02:00Markus HolzerExtend testsuiteExtension of test cases and minor Bug fixesExtension of test cases and minor Bug fixesJan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/169Fix: Replaced accidental `continue` by `break` in boundaries/createindexlist.py2020-10-07T10:54:06+02:00Frederik HennigFix: Replaced accidental `continue` by `break` in boundaries/createindexlist.pyThere was a `continue` instead of a `break` statement in the python code for index list creation, causing the `single_link` flag to be ignored. The test cases for this are updated in pycodegen/lbmpy!41.There was a `continue` instead of a `break` statement in the python code for index list creation, causing the `single_link` flag to be ignored. The test cases for this are updated in pycodegen/lbmpy!41.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/170Make work on SymPy 1.7: sympy.printing.ccode -> sympy.printing.cxx2020-09-29T12:03:30+02:00Stephan SeitzMake work on SymPy 1.7: sympy.printing.ccode -> sympy.printing.cxxThere's also sympy.printing.c but we are always compiling as C++.
sympy-master failed before this fix.There's also sympy.printing.c but we are always compiling as C++.
sympy-master failed before this fix.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/171count_operations: fix to not count integer expressions for addresses/constant...2020-10-05T09:52:05+02:00Dominik Ernstcount_operations: fix to not count integer expressions for addresses/constants as real operationsTries to fix the number of counter operations by count_operations. Previously, counter computations with integer constants like +1 would be counted as real, because a evalf would make it a +1.0.
Additionally address computations with po...Tries to fix the number of counter operations by count_operations. Previously, counter computations with integer constants like +1 would be counted as real, because a evalf would make it a +1.0.
Additionally address computations with pointers of real* type would be counted as real too.
Also, x^-1/2 is counted as both a square root and a division.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/172Warning fixes in setup.py2020-10-03T16:26:28+02:00Markus HolzerWarning fixes in setup.pyThis MR fixes some small warnings in setup.py. Additionally, the accuracy for the timeloop test case is lowered due to its often failureThis MR fixes some small warnings in setup.py. Additionally, the accuracy for the timeloop test case is lowered due to its often failurehttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/173Update pystencils integration pipeline2020-10-05T13:29:08+02:00Markus HolzerUpdate pystencils integration pipelineSome of waLBerlas test cases have changed. This MR adaptes the changes.Some of waLBerlas test cases have changed. This MR adaptes the changes.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/174Extend testsuit2020-10-13T13:16:38+02:00Markus HolzerExtend testsuitThis MR extends the test cases of pystencils.
Other changes made in this MR:
1. Usage of correct backends for the codegen instead of C Backend for all
2. Deletion of unusable function.
3. Correction of CUDA and OpenCL Array handlerThis MR extends the test cases of pystencils.
Other changes made in this MR:
1. Usage of correct backends for the codegen instead of C Backend for all
2. Deletion of unusable function.
3. Correction of CUDA and OpenCL Array handlerStephan SeitzStephan Seitzhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/175WIP: Opencl to SPIR-V ahead-of-time compilation2023-03-16T12:42:10+01:00Stephan SeitzWIP: Opencl to SPIR-V ahead-of-time compilationThis does not yet use the pystencils' cache folder or disk caching of the compilation.
This can be used to embed compiled bytecode into waLBerla executables as I do with my Vulkan wrapper. Not sure if this is a good way to go but at lea...This does not yet use the pystencils' cache folder or disk caching of the compilation.
This can be used to embed compiled bytecode into waLBerla executables as I do with my Vulkan wrapper. Not sure if this is a good way to go but at least we can experiment with it.
A good way to proceed with this MR is also a comparison between hip/sicl/ocl/vulkan in order to identify a suitable backend for pystencils.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/176Use C11CodePrinter for sympy 1.72020-10-07T16:42:49+02:00Stephan SeitzUse C11CodePrinter for sympy 1.7C++ may cause problems for CUDA/OpenCL (e.g. print `std::log`)C++ may cause problems for CUDA/OpenCL (e.g. print `std::log`)Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/177Fix: shift_slice to accept single slices as argument, and return tuples2020-10-07T11:30:33+02:00Frederik HennigFix: shift_slice to accept single slices as argument, and return tuplesTwo fixes to `pystencils.slicing.shift_slice`:
- Previously, `shift_slice` assumed its argument `slices` to be iterable. Thus, it did not accept single slices as arguments. There are use cases, though, where it is necessary to shift a p...Two fixes to `pystencils.slicing.shift_slice`:
- Previously, `shift_slice` assumed its argument `slices` to be iterable. Thus, it did not accept single slices as arguments. There are use cases, though, where it is necessary to shift a plain `slice` object, or even `int` or `float` objects which can also be seen as slices. An additional `isinstance` check takes care of this.
- Previously, `shift_slice` returned `list`s of slices. By default, Python wraps multidimensional slices as `tuple`s. Code for manipulating multidimensional slices thus expects them to be given as tuples. Also, although it is currently possible to access numpy arrays with lists of slices instead of tuples, this action produces a deprecation warning. Thus, `shift_slice` is changed to return tuples.
An additional test case evaluating array accesses with shifted slices is also added.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/179make integration job required for MR2020-10-30T10:48:23+01:00Dominik Thoennesdominik.thoennes@fau.demake integration job required for MRhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/180Fix Dirichlet boundary condition for scalar case2020-10-29T17:49:55+01:00Stephan SeitzFix Dirichlet boundary condition for scalar caseMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/181Allow **kernel_creation_args in create_boundary_kernel2020-10-30T10:47:29+01:00Stephan SeitzAllow **kernel_creation_args in create_boundary_kernel