32 lines
714 B
Python
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 |