Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jonas Plewinski
pystencils
Commits
d3a1c41a
Commit
d3a1c41a
authored
Apr 11, 2018
by
Martin Bauer
Browse files
Added pystencils boundary condition test + bug fix in boundary code
parent
eb52e10d
Changes
3
Hide whitespace changes
Inline
Side-by-side
boundaries/__init__.py
View file @
d3a1c41a
from
pystencils.boundaries.boundaryhandling
import
BoundaryHandling
from
pystencils.boundaries.boundaryconditions
import
Neumann
from
pystencils.boundaries.inkernel
import
add_neumann_boundary
boundaries/boundaryconditions.py
View file @
d3a1c41a
...
...
@@ -29,7 +29,7 @@ class Boundary(object):
"""Return a list of (name, type) tuples for additional data items required in this boundary
These data items can either be initialized in separate kernel see additional_data_kernel_init or by
Python callbacks - see additional_data_callback """
return
[]
return
()
@
property
def
additional_data_init_callback
(
self
):
...
...
boundaries/createindexlistcython.pyx
View file @
d3a1c41a
...
...
@@ -28,7 +28,7 @@ def create_boundary_index_list_2d(object[IntegerType, ndim=2] flag_field,
for
y
in
range
(
nr_of_ghost_layers
,
ys
-
nr_of_ghost_layers
):
for
x
in
range
(
nr_of_ghost_layers
,
xs
-
nr_of_ghost_layers
):
if
flag_field
[
x
,
y
]
&
fluid_mask
:
for
dirIdx
in
range
(
1
,
num_directions
):
for
dirIdx
in
range
(
num_directions
):
dx
=
stencil
[
dirIdx
,
0
]
dy
=
stencil
[
dirIdx
,
1
]
if
flag_field
[
x
+
dx
,
y
+
dy
]
&
boundary_mask
:
...
...
@@ -38,25 +38,25 @@ def create_boundary_index_list_2d(object[IntegerType, ndim=2] flag_field,
@
cython
.
boundscheck
(
False
)
# turn off bounds-checking for entire function
@
cython
.
wraparound
(
False
)
# turn off negative index wrapping for entire function
def
create_boundary_index_list_3d
(
object
[
IntegerType
,
ndim
=
3
]
flag
F
ield
,
int
nr
OfG
host
L
ayers
,
IntegerType
boundary
M
ask
,
IntegerType
fluid
M
ask
,
def
create_boundary_index_list_3d
(
object
[
IntegerType
,
ndim
=
3
]
flag
_f
ield
,
int
nr
_of_g
host
_l
ayers
,
IntegerType
boundary
_m
ask
,
IntegerType
fluid
_m
ask
,
object
[
int
,
ndim
=
2
]
stencil
):
cdef
int
xs
,
ys
,
zs
,
x
,
y
,
z
cdef
int
dirIdx
,
num_directions
,
dx
,
dy
,
dz
xs
,
ys
,
zs
=
flag
F
ield
.
shape
xs
,
ys
,
zs
=
flag
_f
ield
.
shape
boundary_index_list
=
[]
num_directions
=
stencil
.
shape
[
0
]
for
z
in
range
(
nr
OfG
host
L
ayers
,
zs
-
nrOfG
host
L
ayers
):
for
y
in
range
(
nr
OfG
host
L
ayers
,
ys
-
nrOfG
host
L
ayers
):
for
x
in
range
(
nr
OfG
host
L
ayers
,
xs
-
nrOfG
host
L
ayers
):
if
flag
F
ield
[
x
,
y
,
z
]
&
fluid
M
ask
:
for
dirIdx
in
range
(
1
,
num_directions
):
for
z
in
range
(
nr
_of_g
host
_l
ayers
,
zs
-
nr_of_g
host
_l
ayers
):
for
y
in
range
(
nr
_of_g
host
_l
ayers
,
ys
-
nr_of_g
host
_l
ayers
):
for
x
in
range
(
nr
_of_g
host
_l
ayers
,
xs
-
nr_of_g
host
_l
ayers
):
if
flag
_f
ield
[
x
,
y
,
z
]
&
fluid
_m
ask
:
for
dirIdx
in
range
(
num_directions
):
dx
=
stencil
[
dirIdx
,
0
]
dy
=
stencil
[
dirIdx
,
1
]
dz
=
stencil
[
dirIdx
,
2
]
if
flag
F
ield
[
x
+
dx
,
y
+
dy
,
z
+
dz
]
&
boundary
M
ask
:
if
flag
_f
ield
[
x
+
dx
,
y
+
dy
,
z
+
dz
]
&
boundary
_m
ask
:
boundary_index_list
.
append
((
x
,
y
,
z
,
dirIdx
))
return
boundary_index_list
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment