25 lines
724 B
Python
25 lines
724 B
Python
# common.py
|
|
|
|
import numpy as np
|
|
|
|
|
|
k = 0.5 # W / (cm K)
|
|
area = np.pi / 100 # cm^2
|
|
|
|
|
|
def taylor_extraction(t_0, t_1, dx, a=0, order=1):
|
|
if order == 1:
|
|
return -1 * k * area * (t_1 - t_0) / dx
|
|
elif order == 2:
|
|
return -1 * k * area * (((t_1 - t_0) / dx) + (a**2 * dx * t_1 / 2))
|
|
|
|
def calc_error(q_exact, q_1):
|
|
return np.abs((q_exact - q_1) / q_exact)
|
|
|
|
def calc_beta(q_exact, q_1, q_2, dx_1, dx_2):
|
|
return np.log(np.abs((q_exact - q_1)/(q_exact - q_2))) / np.log(dx_1 / dx_2)
|
|
|
|
def fem_heat_extraction(t_1, t_2, dx, a = 2.75):
|
|
term_1 = (-1/dx + a**2*dx/6) * t_1
|
|
term_2 = (1/dx + 2*a**2*dx/6) * t_2
|
|
return -1 * k * area * (term_1 + term_2) |