Skip to content
Snippets Groups Projects
Commit ed71a777 authored by Markus Holzer's avatar Markus Holzer Committed by Helen Schottenhamml
Browse files

Corrected gallilean correction

parent e0566616
No related branches found
No related tags found
1 merge request!58Corrected gallilean correction
...@@ -86,6 +86,8 @@ ubuntu: ...@@ -86,6 +86,8 @@ ubuntu:
- $ENABLE_NIGHTLY_BUILDS - $ENABLE_NIGHTLY_BUILDS
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/ubuntu image: i10git.cs.fau.de:5005/pycodegen/pycodegen/ubuntu
script: script:
- pip3 install `grep -Eo 'sympy[>=]+[0-9\.]+' setup.py | sed 's/>/=/g'`
- pip3 install `grep -Eo 'numpy[>=]+[0-9\.]+' setup.py | sed 's/>/=/g'`
- mkdir -p ~/.config/matplotlib - mkdir -p ~/.config/matplotlib
- echo "backend:template" > ~/.config/matplotlib/matplotlibrc - echo "backend:template" > ~/.config/matplotlib/matplotlibrc
- pip3 install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - pip3 install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils
......
...@@ -29,8 +29,6 @@ from lbmpy.methods.momentbased.moment_transforms import ( ...@@ -29,8 +29,6 @@ from lbmpy.methods.momentbased.moment_transforms import (
PRE_COLLISION_CENTRAL_MOMENT, POST_COLLISION_CENTRAL_MOMENT, PRE_COLLISION_CENTRAL_MOMENT, POST_COLLISION_CENTRAL_MOMENT,
FastCentralMomentTransform) FastCentralMomentTransform)
from lbmpy.methods.centeredcumulant.simplification import insert_aliases, insert_zeros
from lbmpy.methods.centeredcumulant.force_model import CenteredCumulantForceModel from lbmpy.methods.centeredcumulant.force_model import CenteredCumulantForceModel
from lbmpy.methods.centeredcumulant.galilean_correction import ( from lbmpy.methods.centeredcumulant.galilean_correction import (
contains_corrected_polynomials, contains_corrected_polynomials,
...@@ -413,12 +411,5 @@ class CenteredCumulantBasedLbMethod(AbstractLbMethod): ...@@ -413,12 +411,5 @@ class CenteredCumulantBasedLbMethod(AbstractLbMethod):
main_assignments = [Assignment(eq.lhs, eq.rhs + force_term_symbol) main_assignments = [Assignment(eq.lhs, eq.rhs + force_term_symbol)
for eq, force_term_symbol in zip(main_assignments, force_term_symbols)] for eq, force_term_symbol in zip(main_assignments, force_term_symbols)]
# 9) Clean up the subexpression tree
ac = AssignmentCollection(main_assignments, subexpressions)
if pre_simplification and pre_simplification != 'none':
ac = insert_aliases(insert_zeros(ac))
ac = ac.new_without_unused_subexpressions()
# Aaaaaand we're done. # Aaaaaand we're done.
return LbmCollisionRule(self, ac.main_assignments, ac.subexpressions) return LbmCollisionRule(self, main_assignments, subexpressions)
...@@ -11,7 +11,7 @@ corrected_polynomials = [x**2 - y**2, x**2 - z**2, x**2 + y**2 + z**2] ...@@ -11,7 +11,7 @@ corrected_polynomials = [x**2 - y**2, x**2 - z**2, x**2 + y**2 + z**2]
def contains_corrected_polynomials(polynomials): def contains_corrected_polynomials(polynomials):
return all(polynomials.containts(p) for p in corrected_polynomials) return all(cp in polynomials for cp in corrected_polynomials)
def add_galilean_correction(poly_relaxation_eqs, polynomials, correction_terms): def add_galilean_correction(poly_relaxation_eqs, polynomials, correction_terms):
......
...@@ -2,6 +2,8 @@ import sympy as sp ...@@ -2,6 +2,8 @@ import sympy as sp
from lbmpy.innerloopsplit import create_lbm_split_groups from lbmpy.innerloopsplit import create_lbm_split_groups
from lbmpy.methods.momentbased.momentbasedmethod import MomentBasedLbMethod from lbmpy.methods.momentbased.momentbasedmethod import MomentBasedLbMethod
from lbmpy.methods.centeredcumulant import CenteredCumulantBasedLbMethod
from lbmpy.methods.centeredcumulant.simplification import insert_aliases, insert_zeros
from lbmpy.methods.momentbased.momentbasedsimplifications import ( from lbmpy.methods.momentbased.momentbasedsimplifications import (
factor_density_after_factoring_relaxation_times, factor_relaxation_rates, factor_density_after_factoring_relaxation_times, factor_relaxation_rates,
replace_common_quadratic_and_constant_term, replace_density_and_velocity, replace_second_order_velocity_products) replace_common_quadratic_and_constant_term, replace_density_and_velocity, replace_second_order_velocity_products)
...@@ -31,4 +33,8 @@ def create_simplification_strategy(lb_method, split_inner_loop=False): ...@@ -31,4 +33,8 @@ def create_simplification_strategy(lb_method, split_inner_loop=False):
s.add(subexpression_substitution_in_main_assignments) s.add(subexpression_substitution_in_main_assignments)
if split_inner_loop: if split_inner_loop:
s.add(create_lbm_split_groups) s.add(create_lbm_split_groups)
elif isinstance(lb_method, CenteredCumulantBasedLbMethod):
s.add(insert_zeros)
s.add(insert_aliases)
s.add(lambda ac: ac.new_without_unused_subexpressions())
return s return s
...@@ -20,6 +20,8 @@ def frobenius_norm(matrix, factor=1): ...@@ -20,6 +20,8 @@ def frobenius_norm(matrix, factor=1):
def add_smagorinsky_model(collision_rule, smagorinsky_constant, omega_output_field=None): def add_smagorinsky_model(collision_rule, smagorinsky_constant, omega_output_field=None):
method = collision_rule.method method = collision_rule.method
omega_s = get_shear_relaxation_rate(method) omega_s = get_shear_relaxation_rate(method)
if isinstance(omega_s, float) or isinstance(omega_s, int):
raise ValueError("For the smagorinsky model the shear relaxation rate has to be a symbol")
f_neq = sp.Matrix(method.pre_collision_pdf_symbols) - method.get_equilibrium_terms() f_neq = sp.Matrix(method.pre_collision_pdf_symbols) - method.get_equilibrium_terms()
tau_0 = sp.Symbol("tau_0_") tau_0 = sp.Symbol("tau_0_")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment