import numpy as np import seaborn as sns import pandas as pd def B_field_norm(Bmax:float,L:float,k:int=16,plot=True) -> np.array: """ Returns vec B_z for MS config Args: Bmax (any): maximum B in thruster L - channel length k - magnetic field profile number """ z = np.linspace(0,L*1.4,200) B = Bmax * np.exp(-k * (z/(1.2*L) - 1)**2) if plot: sns.lineplot(x=z,y=B) return z,B def PUdesign(P:float,U:float) -> pd.DataFrame: """Computes design via numerical model, uses fits from PINNs Args: P (float): _description_ U (float): _description_ Returns: _type_: _description_ """ d = np.sqrt(P/(635*U)) h = 0.245*d m_a = 0.0025*h*d T = 890 * m_a * np.sqrt(U) j = P/(np.pi*d*h) Isp = T/(m_a*9.81) nu_t = T*Isp*9.81/(2*P) df = pd.DataFrame([[d,h,m_a,T,j,nu_t,Isp]],columns=['d','h','m_a','T','j','nu_t','Isp']) g = sns.barplot(df,facecolor='gray') g.set_yscale("log") return df def cathode_erosion(): pass