Skip to content
Snippets Groups Projects

Generalize stream only kernel

Merged Markus Holzer requested to merge holzer/lbmpy:UpdatedKernel into master
All threads resolved!
Viewing commit c21c12b8
Show latest version
2 files
+ 19
2
Preferences
Compare changes
Files
2
+ 18
1
import numpy as np
import sympy as sp
import warnings
from lbmpy.fieldaccess import StreamPullTwoFieldsAccessor
from lbmpy.methods.abstractlbmethod import LbmCollisionRule
@@ -58,9 +59,23 @@ def create_stream_only_kernel(stencil, numpy_arr=None, src_field_name="src", dst
generic_layout='numpy', generic_field_type=np.float64, accessor=None):
"""Creates a stream kernel, without collision.
For parameters see function ``create_stream_pull_collide_kernel``
Args:
stencil: lattice Boltzmann stencil which is used
numpy_arr: numpy array which containes the pdf field data. If no numpy array is provided the symbolic field
accesses are created with 'Field.create_generic'. Otherwise 'Field.create_from_numpy_array' is used.
src_field_name: name of the source field.
dst_field_name: name of the destination field.
generic_layout: data layout. for example 'fzyx' of 'zyxf'.
generic_field_type: field data type.
accessor: Field accessor which is used to create the update rule. See 'fieldaccess.PdfFieldAccessor'
Returns:
AssignmentCollection of the stream only update rule
"""
if accessor is None:
accessor = StreamPullTwoFieldsAccessor()
dim = len(stencil[0])
if numpy_arr is None:
src = Field.create_generic(src_field_name, dim, index_shape=(len(stencil),),
@@ -81,6 +96,8 @@ def create_stream_pull_only_kernel(stencil, numpy_arr=None, src_field_name="src"
For parameters see function ``create_stream_pull_collide_kernel``
"""
warnings.warn("This function is depricated. Please use create_stream_only_kernel. If no PdfFieldAccessor is "
"provided to this function a standard StreamPullTwoFieldsAccessor is used ", DeprecationWarning)
return create_stream_only_kernel(stencil, numpy_arr=numpy_arr, src_field_name=src_field_name,
dst_field_name=dst_field_name, generic_layout=generic_layout,
generic_field_type=generic_field_type, accessor=StreamPullTwoFieldsAccessor())