Numerical-Simulation/HW1/case1.py

32 lines
714 B
Python

# case1.py
import numpy as np
k = 0.5 # W / (cm K)
area = np.pi / 100 # cm^2
def analytical(a, x):
return 100 * np.sinh(a*x) / np.sinh(a)
def analytical_heat_loss(a):
return -100*k*area*a/np.tanh(a)
def fdm_array(n, a = 2.75):
dx = 1 / n
kap = 2 + ((a**2)*(dx**2))
left_FDM_array = np.zeros((n-1, n-1))
left_FDM_array[0][0:2] = [kap, -1]
row_FDM = [-1, kap, -1]
for i in range(1, n-2):
left_FDM_array[i][i-1:i+2] = row_FDM
left_FDM_array[n-2][n-3:n-1] = [-1, kap]
return left_FDM_array
def right_array(n):
array = [0 for _ in range(n-2)]
array.append(100)
return array