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
pycodegen
lbmpy_walberla
Commits
7f6e8273
Commit
7f6e8273
authored
Apr 28, 2019
by
Martin Bauer
Browse files
CI Files
parent
5aa0445f
Pipeline
#15058
failed with stage
in 24 seconds
Changes
5
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
.flake8
0 → 100644
View file @
7f6e8273
[flake8]
max-line-length=120
ignore = W293 W503 W291
.gitignore
0 → 100644
View file @
7f6e8273
__pycache__
.ipynb_checkpoints
.coverage
*.pyc
*.vti
/build
/dist
/*.egg-info
.cache
_build
/.idea
.cache
_local_tmp
\ No newline at end of file
.gitlab-ci.yml
0 → 100644
View file @
7f6e8273
tests
:
image
:
i10git.cs.fau.de:5005/software/pystencils/full
script
:
-
pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils
-
pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils_walberla.git@master#egg=pystencils_walberla
-
pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/lbmpy.git@master#egg=lbmpy
-
python3 setup.py test
tags
:
-
docker
-
AVX
lbmpy_walberla_tests/test_walberla_codegen.py
View file @
7f6e8273
...
...
@@ -6,41 +6,45 @@ from lbmpy_walberla import generate_lattice_model, RefinementScaling, generate_b
from
lbmpy_walberla.sparse
import
ListLbGenerator
from
pystencils_walberla.cmake_integration
import
ManualCodeGenerationContext
from
pystencils_walberla
import
generate_pack_info_for_field
,
generate_pack_info_from_kernel
def
test_lattice_model
():
with
ManualCodeGenerationContext
()
as
ctx
:
force_field
=
ps
.
fields
(
"force(3): [3D]"
,
layout
=
'fzyx'
)
omega
=
sp
.
Symbol
(
"omega"
)
lb_method
=
create_lb_method
(
stencil
=
'D3Q19'
,
method
=
'srt'
,
relaxation_rates
=
[
omega
],
force_model
=
'guo'
,
force
=
force_field
.
center_vector
)
scaling
=
RefinementScaling
()
scaling
.
add_standard_relaxation_rate_scaling
(
omega
)
scaling
.
add_force_scaling
(
force_field
)
generate_lattice_model
(
ctx
,
'SrtWithForceFieldModel'
,
lb_method
,
refinement_scaling
=
scaling
)
generate_boundary
(
ctx
,
'MyUBB'
,
UBB
([
0.05
,
0
,
0
]),
lb_method
)
generate_boundary
(
ctx
,
'MyNoSlip'
,
NoSlip
(),
lb_method
)
def
test_sparse
():
from
lbmpy.creationfunctions
import
create_lb_collision_rule
from
pystencils
import
show_code
g
=
ListLbGenerator
(
create_lb_collision_rule
())
kernel_code
=
str
(
show_code
(
g
.
kernel
()))
assert
'num_cells'
in
kernel_code
setter_code
=
str
(
show_code
(
g
.
setter_ast
()))
assert
'num_cells'
in
setter_code
getter_code
=
str
(
show_code
(
g
.
getter_ast
()))
assert
'num_cells'
in
getter_code
def
test_pack_info
():
with
ManualCodeGenerationContext
()
as
ctx
:
f
=
ps
.
fields
(
"f(9): [3D]"
)
generate_pack_info_for_field
(
ctx
,
'MyPackInfo1'
,
f
)
lb_assignments
=
create_lb_update_rule
(
stencil
=
'D3Q19'
,
method
=
'srt'
).
main_assignments
generate_pack_info_from_kernel
(
ctx
,
'MyPackInfo2'
,
lb_assignments
)
import
unittest
class
WalberlaLbmpyCodegenTest
(
unittest
.
TestCase
):
@
staticmethod
def
test_lattice_model
():
with
ManualCodeGenerationContext
()
as
ctx
:
force_field
=
ps
.
fields
(
"force(3): [3D]"
,
layout
=
'fzyx'
)
omega
=
sp
.
Symbol
(
"omega"
)
lb_method
=
create_lb_method
(
stencil
=
'D3Q19'
,
method
=
'srt'
,
relaxation_rates
=
[
omega
],
force_model
=
'guo'
,
force
=
force_field
.
center_vector
)
scaling
=
RefinementScaling
()
scaling
.
add_standard_relaxation_rate_scaling
(
omega
)
scaling
.
add_force_scaling
(
force_field
)
generate_lattice_model
(
ctx
,
'SrtWithForceFieldModel'
,
lb_method
,
refinement_scaling
=
scaling
)
generate_boundary
(
ctx
,
'MyUBB'
,
UBB
([
0.05
,
0
,
0
]),
lb_method
)
generate_boundary
(
ctx
,
'MyNoSlip'
,
NoSlip
(),
lb_method
)
@
staticmethod
def
test_sparse
():
from
lbmpy.creationfunctions
import
create_lb_collision_rule
from
pystencils
import
show_code
g
=
ListLbGenerator
(
create_lb_collision_rule
())
kernel_code
=
str
(
show_code
(
g
.
kernel
()))
assert
'num_cells'
in
kernel_code
setter_code
=
str
(
show_code
(
g
.
setter_ast
()))
assert
'num_cells'
in
setter_code
getter_code
=
str
(
show_code
(
g
.
getter_ast
()))
assert
'num_cells'
in
getter_code
@
staticmethod
def
test_pack_info
():
with
ManualCodeGenerationContext
()
as
ctx
:
f
=
ps
.
fields
(
"f(9): [3D]"
)
generate_pack_info_for_field
(
ctx
,
'MyPackInfo1'
,
f
)
lb_assignments
=
create_lb_update_rule
(
stencil
=
'D3Q19'
,
method
=
'srt'
).
main_assignments
generate_pack_info_from_kernel
(
ctx
,
'MyPackInfo2'
,
lb_assignments
)
setup.py
View file @
7f6e8273
import
os
import
sys
from
setuptools
import
setup
,
find_packages
sys
.
path
.
insert
(
0
,
os
.
path
.
abspath
(
'..'
))
from
custom_pypi_index.pypi_index
import
get_current_dev_version_from_git
import
subprocess
def
version_number_from_git
(
tag_prefix
=
'release/'
,
sha_length
=
10
,
version_format
=
"{version}.dev{commits}+{sha}"
):
def
get_released_versions
():
tags
=
sorted
(
subprocess
.
getoutput
(
'git tag'
).
split
(
'
\n
'
))
versions
=
[
t
[
len
(
tag_prefix
):]
for
t
in
tags
if
t
.
startswith
(
tag_prefix
)]
return
versions
def
tag_from_version
(
v
):
return
tag_prefix
+
v
def
increment_version
(
v
):
parsed_version
=
[
int
(
i
)
for
i
in
v
.
split
(
'.'
)]
parsed_version
[
-
1
]
+=
1
return
'.'
.
join
(
str
(
i
)
for
i
in
parsed_version
)
latest_release
=
get_released_versions
()[
-
1
]
commits_since_tag
=
subprocess
.
getoutput
(
'git rev-list {}..HEAD --count'
.
format
(
tag_from_version
(
latest_release
)))
sha
=
subprocess
.
getoutput
(
'git rev-parse HEAD'
)[:
sha_length
]
is_dirty
=
len
(
subprocess
.
getoutput
(
"git status --untracked-files=no -s"
))
>
0
if
int
(
commits_since_tag
)
==
0
:
version_string
=
latest_release
else
:
next_version
=
increment_version
(
latest_release
)
version_string
=
version_format
.
format
(
version
=
next_version
,
commits
=
commits_since_tag
,
sha
=
sha
)
if
is_dirty
:
version_string
+=
".dirty"
return
version_string
setup
(
name
=
'lbmpy_walberla'
,
version
=
get_current_dev_
version_from_git
(),
version
=
version
_number
_from_git
(),
description
=
'Code Generation for Lattice Boltzmann Methods in the walberla framework'
,
author
=
'Martin Bauer'
,
license
=
'AGPLv3'
,
...
...
@@ -16,4 +43,5 @@ setup(name='lbmpy_walberla',
install_requires
=
[
'lbmpy'
,
'pystencils_walberla'
],
package_dir
=
{
'lbmpy_walberla'
:
'lbmpy_walberla'
},
package_data
=
{
'lbmpy_walberla'
:
[
'templates/*'
]},
test_suite
=
'pystencils_walberla_tests'
,
)
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