Boundary Conditions: Deduction for the Lattice D2Q5 - Poisson Equation
Show code cell source
from __future__ import division
from sympy import *
import numpy as np
from sympy import S, collect, expand, factor, Wild
from sympy import fraction, Rational, Symbol
from sympy import solve
#-------------------------------------------------Symbols----------------------------------------------
p, dpx, dpy = symbols('\widehat{p} \\partial_{x}\widehat{p} \\partial_{y}\widehat{p}')
ux, uy, tau, cs = symbols('u_{x} u_{y} \\tau c_{s}')
wi, cx, cy = symbols('w_{i} c_{x} c_{y}')
fi, f0, f1, f2, f3, f4 = symbols('f_{i} f_{0} f_{1} f_{2} f_{3} f_{4}')
#-------------------------------------------------Functions----------------------------------------------
feq = Function('feq')(wi, cx, cy)
f = Function('f')(fi)
#-------------------------------------------------Arrays----------------------------------------------
fi=np.array([f0,f1,f2,f3,f4])
wi=np.array([Rational(2,6),Rational(1,6),Rational(1,6),Rational(1,6),Rational(1,6)])
cx=np.array([0,1,0,-1,0])
cy=np.array([0,0,1,0,-1])
#-------------------------------------------------Calc.Func------------------------------------------------
f= fi
feq=p*wi
feq[0]=p*(wi[0]-1)
Boundary Layers
Pressure Moment
Show code cell source
An0=simplify(sum(f[1:])/(1-wi[0])-p)
An0
#print(latex(An2))
\[\displaystyle - \widehat{p} + \frac{3 f_{1}}{2} + \frac{3 f_{2}}{2} + \frac{3 f_{3}}{2} + \frac{3 f_{4}}{2}\]
Camada Norte
Show code cell source
sols = solve([An0], [f4], dict=True)
# sols
b1=Array(sols[0][f4])
b0 = Array(f4)
Eq(b0,b1)
\[\displaystyle f_{4} = \frac{2 \widehat{p}}{3} - f_{1} - f_{2} - f_{3}\]
Camada Sul
Show code cell source
sols = solve([An0], [f2], dict=True)
# sols
b1=Array(sols[0][f2])
b0 = Array(f2)
Eq(b0,b1)
\[\displaystyle f_{2} = \frac{2 \widehat{p}}{3} - f_{1} - f_{3} - f_{4}\]
Camada Oeste
Show code cell source
sols = solve([An0], [f1], dict=True)
# sols
b1=Array(sols[0][f1])
b0 = Array(f1)
Eq(b0,b1)
\[\displaystyle f_{1} = \frac{2 \widehat{p}}{3} - f_{2} - f_{3} - f_{4}\]
Camada Leste
Show code cell source
sols = solve([An0], [f3], dict=True)
# sols
b1=Array(sols[0][f3])
b0 = Array(f3)
Eq(b0,b1)
\[\displaystyle f_{3} = \frac{2 \widehat{p}}{3} - f_{1} - f_{2} - f_{4}\]
Corner Boundaries
Camada Noroeste
Show code cell source
Bn0=simplify(sum(f*(cx+cy))+(dpx+dpy)*cs**2*tau)
Bn0
#print(latex(An2))
\[\displaystyle \tau c_{s}^{2} \left(\partial_{x}\widehat{p} + \partial_{y}\widehat{p}\right) + f_{1} + f_{2} - f_{3} - f_{4}\]
Show code cell source
sols = solve([An0, Bn0], [f1,f4], dict=True)
# sols
b1=Matrix([[sols[0][f1]],[sols[0][f4]]])
b0 = Array([[f1],[f4]])
Eq(b0,b1)
\[\begin{split}\displaystyle \left[\begin{matrix}f_{1}\\f_{4}\end{matrix}\right] = \left[\begin{matrix}- \frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} - \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{2}\\\frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{3}\end{matrix}\right]\end{split}\]
Camada Nordeste
Show code cell source
Bn0=simplify(sum(f*(cx-cy))+(dpx-dpy)*cs**2*tau)
Bn0
#print(latex(An2))
\[\displaystyle \tau c_{s}^{2} \left(\partial_{x}\widehat{p} - \partial_{y}\widehat{p}\right) + f_{1} - f_{2} - f_{3} + f_{4}\]
Show code cell source
sols = solve([An0, Bn0], [f3,f4], dict=True)
# sols
b1=Matrix([[sols[0][f3]],[sols[0][f4]]])
b0 = Array([[f3],[f4]])
Eq(b0,b1)
\[\begin{split}\displaystyle \left[\begin{matrix}f_{3}\\f_{4}\end{matrix}\right] = \left[\begin{matrix}\frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} - \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{2}\\- \frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{1}\end{matrix}\right]\end{split}\]
Camada Sudoeste
Show code cell source
Bn0=simplify(sum(f*(cx-cy))+(dpx-dpy)*cs**2*tau)
Bn0
#print(latex(An2))
\[\displaystyle \tau c_{s}^{2} \left(\partial_{x}\widehat{p} - \partial_{y}\widehat{p}\right) + f_{1} - f_{2} - f_{3} + f_{4}\]
Show code cell source
sols = solve([An0, Bn0], [f1,f2], dict=True)
# sols
b1=Matrix([[sols[0][f1]],[sols[0][f2]]])
b0 = Array([[f1],[f2]])
Eq(b0,b1)
\[\begin{split}\displaystyle \left[\begin{matrix}f_{1}\\f_{2}\end{matrix}\right] = \left[\begin{matrix}- \frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{4}\\\frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} - \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{3}\end{matrix}\right]\end{split}\]
Camada Sudeste
Show code cell source
Bn0=simplify(sum(f*(cx+cy))+(dpx+dpy)*cs**2*tau)
Bn0
#print(latex(An2))
\[\displaystyle \tau c_{s}^{2} \left(\partial_{x}\widehat{p} + \partial_{y}\widehat{p}\right) + f_{1} + f_{2} - f_{3} - f_{4}\]
Show code cell source
sols = solve([An0, Bn0], [f2,f3], dict=True)
# sols
b1=Matrix([[sols[0][f2]],[sols[0][f3]]])
b0 = Array([[f2],[f3]])
Eq(b0,b1)
\[\begin{split}\displaystyle \left[\begin{matrix}f_{2}\\f_{3}\end{matrix}\right] = \left[\begin{matrix}- \frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} - \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{1}\\\frac{\partial_{x}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\partial_{y}\widehat{p} \tau c_{s}^{2}}{2} + \frac{\widehat{p}}{3} - f_{4}\end{matrix}\right]\end{split}\]