def scheme_constructor(ux, uy, s, s3): la = 1. dico = { 'dim': 2, 'scheme_velocity': la, 'parameters': { LA: la }, 'schemes': [ { 'velocities': list(range(1, 5)), 'conserved_moments': u, 'polynomials': [1, LA * X, LA * Y, LA**2 * (X**2 - Y**2)], 'relaxation_parameters': [0., s, s, s3], 'equilibrium': [u, ux * u, uy * u, 0.], }, ], 'stability': { 'test_maximum_principle': False, 'test_L2_stability': False, }, } return pyLBM.Scheme(dico)
def scheme_constructor(ux, uy, s_mu, s_eta): rhoo = 1. la = 1. s3 = s_mu s4 = s3 s5 = s4 s6 = s4 s7 = s_eta s8 = s7 s = [0., 0., 0., s3, s4, s5, s6, s7, s8] dummy = 1. / (LA**2 * rhoo) qx2 = dummy * qx**2 qy2 = dummy * qy**2 q2 = qx2 + qy2 qxy = dummy * qx * qy dico = { 'dim': 2, 'scheme_velocity': la, 'parameters': { LA: la }, 'schemes': [ { 'velocities': list(range(9)), 'conserved_moments': [rho, qx, qy], 'polynomials': [ 1, LA * X, LA * Y, 3 * (X**2 + Y**2) - 4, 0.5 * (9 * (X**2 + Y**2)**2 - 21 * (X**2 + Y**2) + 8), 3 * X * (X**2 + Y**2) - 5 * X, 3 * Y * (X**2 + Y**2) - 5 * Y, X**2 - Y**2, X * Y ], 'relaxation_parameters': s, 'equilibrium': [ rho, qx, qy, -2 * rho + 3 * q2, rho + 1.5 * q2, -qx / LA, -qy / LA, qx2 - qy2, qxy ], }, ], 'stability': { 'linearization': { rho: rhoo, qx: ux, qy: uy }, 'test_maximum_principle': False, 'test_L2_stability': False, }, } return pyLBM.Scheme(dico)
def scheme_constructor(ux, sq, sE): dico = { 'dim': 1, 'scheme_velocity': 1., 'schemes': [ { 'velocities': list(range(3)), 'conserved_moments': u, 'polynomials': [1, X, X**2], 'equilibrium': [u, ux * u, (2 * ux**2 + 1) / 3 * u], 'relaxation_parameters': [0., sq, sE], }, ], 'stability': { 'test_maximum_principle': False, 'test_L2_stability': False, }, } return pyLBM.Scheme(dico)
# Loic Gouarin <*****@*****.**> # Benjamin Graille <*****@*****.**> # # License: BSD 3 clause """ Example of a 6 velocities scheme for the advection equation in 3D """ from six.moves import range import sympy as sp import pyLBM u, X, Y, Z = sp.symbols('u,X,Y,Z') cx, cy, cz = .1, .0, .0 d = { 'dim': 3, 'scheme_velocity': 1., 'schemes': [ { 'velocities': list(range(1, 7)), 'conserved_moments': u, 'polynomials': [1, X, Y, Z, X**2 - Y**2, X**2 - Z**2], 'equilibrium': [u, cx * u, cy * u, cz * u, 0., 0.], 'relaxation_parameters': [0., 1.9, 1.9, 1.9, 1.2, 1.2], }, ], } s = pyLBM.Scheme(d) print(s) print(s.generator.code)
def construct_scheme(module, dico): s = pyLBM.Scheme(dico) for m1, m2 in zip(s.Mnum, module.Mnum): tools.ok_(np.all(m1 == m2)) tools.eq_(s._EQ, module.EQ_result)
{ 'velocities': range(9), 'conserved_moments': [rho, qx, qy], 'polynomials': [ 1, LA * X, LA * Y, 3 * (X**2 + Y**2) - 4, (9 * (X**2 + Y**2)**2 - 21 * (X**2 + Y**2) + 8) / 2, 3 * X * (X**2 + Y**2) - 5 * X, 3 * Y * (X**2 + Y**2) - 5 * Y, X**2 - Y**2, X * Y ], 'relaxation_parameters': s, 'equilibrium': [ rho, qx, qy, -2 * rho + 3 * q2, rho - 3 * q2, -qx / LA, -qy / LA, qx2 - qy2, qxy ], }, ], 'consistency': { 'order': 2, 'linearization': { rho: 1, qx: 0, qy: 0 }, #'linearization':{rho: rhoo, qx: rhoo*ux, qy: rhoo*uy}, }, } S = pyLBM.Scheme(dico)