-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathblackboard.py
More file actions
29 lines (20 loc) · 812 Bytes
/
blackboard.py
File metadata and controls
29 lines (20 loc) · 812 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np
# Lattice vectors
ea = np.array([[0, 0], [0, 1], [1, 0], [0, -1], [-1, 0], [1, 1], [1, -1], [-1, -1], [-1, 1]])
# Equilibrium distribution function weights
wa = np.array([4/9, 1/9, 1/9, 1/9, 1/9, 1/36, 1/36, 1/36, 1/36])
def calc_equilibrium_distribution(rho, u):
ux, uy = u
feq = np.empty(9, dtype=np.float64)
u2 = ux*ux + uy*uy
for i in range(9):
ex = ea[i, 0]
ey = ea[i, 1]
eu = ex*ux + ey*uy
feq[i] = wa[i] * rho * (1.0 + 3.0*eu + 4.5*eu*eu - 1.5*u2)
return feq
def calc_equilibrium_distribution2(rho, u):
f_eq = wa * rho * (1 + 3 * np.dot(ea, u) + 4.5 * (np.dot(ea, u) ** 2) - 1.5 * np.dot(u, u))
return f_eq
print(calc_equilibrium_distribution(1.0, (0.1, 0.05)))
print(calc_equilibrium_distribution2(1.0, (0.1, 0.05)))