Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- # from matplotlib import pyplot as plt
- class Cell(object):
- def __init__(self, *args): # 0 - p; 1 - ro
- self.p = args[0]
- self.ro = args[1]
- self.e = self.p / ((k - 1) * self.ro)
- self.u_left = args[2]
- self.u_right = args[2]
- self.u = (self.u_left + self.u_right)/2
- self.x_left = args[3]
- self.x_right = args[3] + h
- self.x = (self.x_left + self.x_right)/2
- self.u = (self.u_right + self.u_left)/2
- self.c = math.sqrt(k * (self.p / self.ro))
- def next_cells(self, i, array):
- if i == 0:
- self.u_right = array[i].u_right - tau * S * (array[i + 1].p - array[i].p) / delta_m
- self.u_left = 0.0
- elif i == n-1:
- self.u_left = array[i-1].u_right
- self.u_right = array[i].u_right - tau * S * (p_atm - array[i].p )/((2 * mass_piston + delta_m)/2)
- else:
- self.u_left = array[i-1].u_right
- self.u_right = array[i].u_right - tau * S * (array[i + 1].p - array[i].p) / delta_m
- self.x_right = array[i].x_right + tau_half * array[i].u_right
- self.x_left = array[i].x_left + tau_half * self.u_left
- self.ro = delta_m / ((self.x_right - self.x_left) * S)
- self.e = array[i].e - (tau_half * self.p * S * (self.u_right - self.u_left) / delta_m)
- self.p = (k - 1) * self.e * self.ro
- self.u = (self.u_right + self.u_left)/2
- self.c = math.sqrt(k * (self.p / self.ro))
- # self.tau =
- def ishod():
- cl = [0] * n
- for i in range(0, n):
- xx = i * h
- cl[i] = Cell(p0, ro0, u, xx)
- return cl
- def tau_halff(array):
- mass = [0] * n
- for i in range(0, n):
- mass[i] = (array[i].x_right - array[i].x_left) / (math.fabs(array[i].u) + array[i].c)
- return min(mass) * Ku
- def main():
- global tau_half, tau
- A = ishod()
- tau_half = tau_halff(A)
- tau = h / A[0].c
- while A[n-1].x_right <= L:
- for i in range(0, n):
- A[i].next_cells(i, A)
- tau_buf = tau_half
- tau_half = tau_halff(A)
- tau = (tau_half + tau_buf)/2
- R = 287.0
- p0 = 121.266e+05
- T = 344.0
- d = 0.176867
- ro0 = p0 / (R * T)
- u = 0.0
- k = 1.4
- L0 = 0.43486
- n = 100
- S = 23.0
- h = L0 / n
- L = 3.41972
- mass_piston = 0.533696
- Ku = 0.6
- p_atm = 101.325e+05
- time = 0
- w = 0.0
- delta_m = ro0 * h / S
- print(delta_m)
- print(ishod())
- B = main
- print(B)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement