def right__boundary_conditions(): X_half = Data.Xn_minus_half(Data.l) pN = Data.p(Data.l) pN1 = Data.p(Data.l - Data.h) fN = Data.f(Data.l) fN1 = (2 * Data.alpha(Data.l - Data.h)) / Data.R * Data.Tenv KN = -(X_half + Data.alphaN * Data.h) / Data.h - Data.h * (5 * pN + pN1) / 16 MN = X_half / Data.h - Data.h * (pN + pN1) / 16 PN = -Data.alphaN * Data.Tenv - Data.h * (3 * fN + fN1) / 8 return KN, MN, PN
def left_boundary_conditions(): X_half = Data.Xn_plus_half(Data.x0) p1 = Data.p(Data.x0 + Data.h) f1 = Data.f(Data.x0 + Data.h) p0 = Data.p(Data.x0) f0 = Data.f(Data.x0) p_half = (p0 + p1) / 2 K0 = X_half + Data.h * Data.h * p_half / 8 + Data.h * Data.h * p0 / 4 M0 = Data.h * Data.h * p_half / 8 - X_half P0 = Data.h * Data.F0 + Data.h * Data.h * (3 * f0 + f1) / 4 return K0, M0, P0
def left_boundary_conditions(): # relative to the current temperature X_half = Data.Xn_plus_half(Data.x0) p_half = Data.p(Data.x0 + Data.h / 2) p0 = Data.p(Data.x0) f0 = Data.f(Data.x0) f1 = Data.f(Data.x0 + Data.h) C0 = Data.C(Data.x0) C_half = Data.C(Data.x0 + Data.h / 2) K0 = Data.tau * (X_half / Data.h + Data.h / 8 * p_half + Data.h / 4 * p0) + \ Data.h / 4 * C0 + Data.h / 8 * C_half M0 = Data.tau * (Data.h / 8 * p_half - X_half / Data.h) + Data.h / 8 * C_half P0 = Data.tau * Data.F0 + Data.tau * Data.h / 8 * (3 * f0 + f1) + \ Data.h / 4 * C0 * Data.T_past[Data.x0] + \ Data.h / 8 * C_half * (Data.T_past[Data.x0] + Data.T_past[Data.x0 + Data.h]) return K0, M0, P0
def right_boundary_conditions(): # relative to the current temperature X_half = Data.Xn_minus_half(Data.l) pN = Data.p(Data.l) p_half = Data.p(Data.l - Data.h / 2) fN = Data.f(Data.l) fN1 = Data.f(Data.l - Data.h) CN = Data.C(Data.l) C_half = Data.C(Data.l - Data.h / 2) KN = - Data.tau * (X_half / Data.h + Data.alphaN + Data.h / 4 * pN + Data.h / 8 * p_half) + \ Data.h / 4 * CN + Data.h / 8 * C_half MN = Data.tau * (X_half / Data.h - Data.h / 8 * p_half) + Data.h / 8 * C_half PN = - Data.alphaN * Data.Tenv * Data.tau - Data.tau * Data.h / 8 * (3 * fN + fN1) + \ Data.h / 4 * CN * Data.T_past[Data.l] + \ Data.h / 8 * C_half * (Data.T_past[Data.l] + Data.T_past[Data.l - Data.h]) return KN, MN, PN
def calc_coefficients(): A = [] B = [] C = [] D = [] for i in arange(Data.x0, Data.l, Data.h): An = Data.Xn_minus_half(i) / Data.h Cn = Data.Xn_plus_half(i) / Data.h Bn = An + Cn + Data.p(i) * Data.h Dn = Data.f(i) * Data.h A.append(An) B.append(Bn) C.append(Cn) D.append(Dn) return A, B, C, D
def calc_coefficients(): # relative to the current temperature A = [] B = [] D = [] F = [] for i in arange(Data.x0, Data.l, Data.h): i = round(i, Data.rounding) An = Data.tau * Data.Xn_minus_half(i) / Data.h Dn = Data.tau * Data.Xn_plus_half(i) / Data.h Bn = An + Dn + Data.p(i) * Data.h * Data.tau + Data.C(i) * Data.h Fn = Data.C(i) * Data.h * Data.T_past[i] + Data.f( i) * Data.h * Data.tau A.append(An) B.append(Bn) D.append(Dn) F.append(Fn) return A, B, D, F