Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
#     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)
Esempio n. 5
0
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)
Esempio n. 6
0
        {
            '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)