Skip to content
Snippets Groups Projects

Draft: Fix Schiller. Schiller vs Guo force test

Closed Michael Kuron requested to merge schiller into master
+ 25
0
@@ -157,6 +157,31 @@ def test_modes(stencil, force_model):
assert list(force_moments[dim+1:]) == [0] * (len(stencil)-(dim+1))
@pytest.mark.parametrize("stencil", ["D2Q9", "D3Q15", "D3Q19", "D3Q27"])
def test_schiller_vs_guo(stencil):
"""compare Schiller's and Guo's force terms"""
stencil = get_stencil(stencil)
dim = len(stencil[0])
omega = sp.Symbol("omega")
F = [sp.Symbol(f"F_{i}") for i in range(dim)]
method_s = create_lb_method(method="srt", stencil=stencil, relaxation_rate=omega,
compressible=True, force_model="schiller", force=F)
method_g = create_lb_method(method="srt", stencil=stencil, relaxation_rate=omega,
compressible=True, force_model="guo", force=F)
force_moments_s = sp.simplify(method_s.moment_matrix * sp.Matrix(method_s.force_model(method_s)))
force_moments_g = sp.simplify(method_g.moment_matrix * sp.Matrix(method_g.force_model(method_g)))
diff = sp.simplify(force_moments_s - force_moments_g)
print(method_s.moments)
print(diff)
assert diff.transpose() == 0*diff.transpose()
@pytest.mark.parametrize("force_model", force_models)
def test_momentum_density_shift(force_model):
target = 'cpu'