pystencils merge requestshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests2020-02-22T11:23:51+01:00https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/140Append assignments to KernelFunction (for later analysis etc.)2020-02-22T11:23:51+01:00Stephan SeitzAppend assignments to KernelFunction (for later analysis etc.)I wonder if it would be a good idea to apend the assignments from which a `KernelFunction` was created to `KernelFunction`.I wonder if it would be a good idea to apend the assignments from which a `KernelFunction` was created to `KernelFunction`.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/134cuda.TextureReference.set_array(tex_ref, cu_array) -> tex_ref.set_array(cu_ar...2020-02-22T11:23:26+01:00Stephan Seitzcuda.TextureReference.set_array(tex_ref, cu_array) -> tex_ref.set_array(cu_array)I missed that this is actually a member function. Better call it
directly to make it also work with `cuda.SurfaceReference`.I missed that this is actually a member function. Better call it
directly to make it also work with `cuda.SurfaceReference`.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/142Implement __hash__ for SympyAssignment2020-02-22T11:22:51+01:00Stephan SeitzImplement __hash__ for SympyAssignmenthttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/143Enable overriding of kwargs in SerialDataHandling.run_kernel2020-02-22T10:41:47+01:00Stephan SeitzEnable overriding of kwargs in SerialDataHandling.run_kernel
Apparently
```python
kernel_function(**{**arrays, **kwargs})
```
does the same as
```python
call_dict = {}
call_dict.update(arrays)
call_dict.update(kwargs)
kernel_function(**call_dict)
```
Bu...
Apparently
```python
kernel_function(**{**arrays, **kwargs})
```
does the same as
```python
call_dict = {}
call_dict.update(arrays)
call_dict.update(kwargs)
kernel_function(**call_dict)
```
But
```
kernel_function(**arrays, **kwargs)
```
causes an error if a key is in arrays and kwargs.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/147Added guard around import to avoid failing when walberla is there but no pyth...2020-02-21T15:15:39+01:00Christoph RettingerAdded guard around import to avoid failing when walberla is there but no python module is builtStephan SeitzStephan Seitzhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/146FVM derivation: use a smaller stencil before trying brute-force to find the s...2020-02-12T13:24:22+01:00Michael Kuronmkuron@icp.uni-stuttgart.deFVM derivation: use a smaller stencil before trying brute-force to find the sparsest stencilD3Q7/D2Q5 should suffice for first derivatives, so try that stencil first before using brute force to find the sparsest D3Q27/D2Q9 stencil. In 2D, it does not really matter because the brute-force search is so fast, but in 3D it can take...D3Q7/D2Q5 should suffice for first derivatives, so try that stencil first before using brute force to find the sparsest D3Q27/D2Q9 stencil. In 2D, it does not really matter because the brute-force search is so fast, but in 3D it can take days to complete (due to that `itertools.product`). This pull request does not change the resulting stencil weights, it only massively speeds up the process of determining them.Martin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/138Add remaining parameters from DataHandling.add_array to DataHandling.add_arrays2020-02-11T20:15:54+01:00Stephan SeitzAdd remaining parameters from DataHandling.add_array to DataHandling.add_arrayshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/145Switch back to intersphinx sympy.org/latest ('coz it works)2020-02-11T19:50:44+01:00Stephan SeitzSwitch back to intersphinx sympy.org/latest ('coz it works)https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/141Fixed Volume of Fluid discretization and added Advection-Diffusion testcase2020-02-03T18:51:16+01:00Alexander ReinauerFixed Volume of Fluid discretization and added Advection-Diffusion testcaseFixed VoF discretization and added advection-diffusion testcase for finitevolumes and VoF discretization on behalf of @kuronFixed VoF discretization and added advection-diffusion testcase for finitevolumes and VoF discretization on behalf of @kuronMartin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/127Correctly print sp.Abs in generated code2020-02-03T13:28:20+01:00Michael Kuronmkuron@icp.uni-stuttgart.deCorrectly print sp.Abs in generated codeAnother issue reported by @alexander.reinauer.Another issue reported by @alexander.reinauer.Martin BauerMartin Bauerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/139Use `rich` for syntax highlighting of `show_code` also in terminal2020-01-30T10:18:28+01:00Stephan SeitzUse `rich` for syntax highlighting of `show_code` also in terminalStill works as usual in Jupyter notebooks and in terminal if `rich` is not installed.![Screenshot_20200130_100924](/uploads/5876a0aab841c4a2d736777cac4535f6/Screenshot_20200130_100924.png)Still works as usual in Jupyter notebooks and in terminal if `rich` is not installed.![Screenshot_20200130_100924](/uploads/5876a0aab841c4a2d736777cac4535f6/Screenshot_20200130_100924.png)https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/137Add assertion that headers follow the pattern /"..."/ or /<...>/2020-01-24T12:19:42+01:00Stephan SeitzAdd assertion that headers follow the pattern /"..."/ or /<...>/https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/135CI: Replace minimal-ubuntu job with ubuntu2020-01-23T18:35:24+01:00Michael Kuronmkuron@icp.uni-stuttgart.deCI: Replace minimal-ubuntu job with ubuntuThe case of testing that pystencils does not depend on any optional dependencies is still fulfilled by the minimal_conda image.
Depends on https://i10git.cs.fau.de/pycodegen/pycodegen/merge_requests/9.
Fixes https://i10git.cs.fau.de/...The case of testing that pystencils does not depend on any optional dependencies is still fulfilled by the minimal_conda image.
Depends on https://i10git.cs.fau.de/pycodegen/pycodegen/merge_requests/9.
Fixes https://i10git.cs.fau.de/pycodegen/pystencils/issues/19.Stephan SeitzStephan Seitzhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/129Interpolation refactoring2020-01-23T16:46:04+01:00Stephan SeitzInterpolation refactoringThis is among other small things a refactoring of the interpolation
- Make textures less special (now subclasses of interpolator)
- Remove `TextureCache`
- (Ab-) use finite differences to enable spatial derivatives of interpolators
- en...This is among other small things a refactoring of the interpolation
- Make textures less special (now subclasses of interpolator)
- Remove `TextureCache`
- (Ab-) use finite differences to enable spatial derivatives of interpolators
- enable code to use https://github.com/theHamsta/CubicInterpolationCUDA (not included into pystencils, not even as a submodule)
I can use it to transform Lenna and get gradients with Torch wrt. to image content, x-translation, y-translation
![Screenshot_20200115_182600](/uploads/32b95089b2a0d15008750db21980ed54/Screenshot_20200115_182600.png)
Also a nice image lenna
![transformed](/uploads/afb63a546751caf4a0316118afda50ef/transformed.png)https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/133Allow vector assignments2020-01-21T22:04:08+01:00Stephan SeitzAllow vector assignments```python
>>>import pystencils as ps
>>>import sympy as sp
>>>a, b, c = sp.symbols("a b c")
>>>ps.Assignment(sp.Matrix([a,b,c]), sp.Matrix([1,2,3]))
(Assignment(a, 1), Assignment(b, 2), Assignment(c, 3))
```
Fixes #17```python
>>>import pystencils as ps
>>>import sympy as sp
>>>a, b, c = sp.symbols("a b c")
>>>ps.Assignment(sp.Matrix([a,b,c]), sp.Matrix([1,2,3]))
(Assignment(a, 1), Assignment(b, 2), Assignment(c, 3))
```
Fixes #17https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/132let show_code display/print code2020-01-21T22:02:07+01:00Stephan Seitzlet show_code display/print code- `get_code_obj` will keep the previous behavior of `show_code`
- `get_code_str` will be equivalent to previous `str(show_code(...))`
Fixes #6- `get_code_obj` will keep the previous behavior of `show_code`
- `get_code_str` will be equivalent to previous `str(show_code(...))`
Fixes #6https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/136Add typeannotations and docstring for KernelWrapper2020-01-21T21:59:42+01:00Stephan SeitzAdd typeannotations and docstring for KernelWrapperhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/130Fix bug related to ParallelDataHandling2020-01-17T16:55:58+01:00Stephan SeitzFix bug related to ParallelDataHandling```python
def to_gpu(gpu_version, cpu_version):
gpu_version = gpu_version.boundary_object_to_index_list
cpu_version = cpu_version.boundary_object_to_index_list
> if isinstance(self.data_handling, ParallelDataHa...```python
def to_gpu(gpu_version, cpu_version):
gpu_version = gpu_version.boundary_object_to_index_list
cpu_version = cpu_version.boundary_object_to_index_list
> if isinstance(self.data_handling, ParallelDataHandling):
E TypeError: isinstance() arg 2 must be a type or tuple of types
../pystencils/pystencils/boundaries/boundaryhandling.py:102: TypeError
```
None is not a type! ParallelDataHandling is None if `waLBerla` is not
installedhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/128Fix FiniteDifferenceStencilDerivation.rotate_weights_and_apply2020-01-17T16:55:40+01:00Stephan SeitzFix FiniteDifferenceStencilDerivation.rotate_weights_and_applyRecent Numpy version do not support conversion from arbitrary iterables if they have the attribute shape.
The FiniteDifferncesNotebook fails on my machine since to `shape` (3,3,3) and sequence of length 27 don't fit together.
I guess...Recent Numpy version do not support conversion from arbitrary iterables if they have the attribute shape.
The FiniteDifferncesNotebook fails on my machine since to `shape` (3,3,3) and sequence of length 27 don't fit together.
I guess that recent Numpy will deprecated construction from arbitray sequences (only list and tuple, and objects with `__array__` are allowed).https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/131Print actual block contents in Conditional.{__repr__,__str__}2020-01-17T16:55:16+01:00Stephan SeitzPrint actual block contents in Conditional.{__repr__,__str__}