In [11]:
import numpy as np
import pandas as pd
xls = pd.ExcelFile('HAAG.xls')
DATA = xls.parse('PerpExtrusion')
T = DATA['Temperature(C)']
F = DATA['Fluence(dpa)']
Y = DATA['DV/V0(%)']
E0 = DATA['Pre-Irrad.Eo(GPa)']
EpE0 = DATA['Rel.ChangeE/EoPre-Irrad.']
In [20]:
%matplotlib notebook
import matplotlib.pylab as plt
TEMPS = pd.unique(DATA['IrradiationTemperature(°C)'])
for temperature in TEMPS:
SUBSET = DATA.loc[DATA['IrradiationTemperature(°C)']==temperature]
FS = SUBSET['FastNeutronFluence(dpa)']
YS = SUBSET['Rel.VolumeChangesΔV/V0(%)']
E0S = SUBSET['Pre-Irrad.Eo(GPa)']
EpE0S = SUBSET['Rel.ChangeE/EoPre-Irrad.']
plt.figure(1);ax = plt.gca();color = ax._get_lines.get_next_color();plt.plot(FS,YS,'*',color=color);
plt.figure(2);ax = plt.gca();color = ax._get_lines.get_next_color();plt.plot(FS,E0S*EpE0S,'*',color=color)
plt.figure(1);plt.show()
plt.figure(2);plt.show()
In [9]:
import numpy as np
import pandas as pd
xls = pd.ExcelFile('HAAG.xls')
DATA = xls.parse('WithGrain')
T = DATA['Temperature(°C)']
F = DATA['FastNeutronFluence(dpa)']
Y = DATA['CreepStrain(%) Tensile']
#E0 = DATA['Pre-Irrad.Eo(GPa)']
#EpE0 = DATA['Rel.ChangeE/EoPre-Irrad.']
def form_2Dfunc(X1,X2,PARAMETERS):
T = X1
F = X2
a0,a1,a2,a3,a4,a5,a6,a7,a8,a9 = PARAMETERS
return a0 + a1*T + a2*F + a3*T*F + a4*T**2 + a5*F**2 + a6*T**3+ a7*F**3 + a8*T**2*F + a9*T*F**2
def residual(PARAMETERS,XDATA,YDATA):
X1 = XDATA[0]
X2 = XDATA[1]
return form_2Dfunc(X1,X2,PARAMETERS) - YDATA
def normalize(X):
Xmin = X.min()
Xmax = X.max()
return (X-Xmin)/(Xmax-Xmin),Xmin,Xmax
def original(X,Xmin,Xmax):
return X*(Xmax-Xmin)+Xmin
def normalize1(X):
Xmin = X.min()
Xmax = X.max()
return (X-Xmin)/(Xmax-Xmin)+1,Xmin,Xmax
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
T,Tmin,Tmax = normalize(T)
F,Fmin,Fmax = normalize(F)
#Y = E0
ax.plot3D(T,F,Y,'k*')
plt.show()
%matplotlib notebook
from scipy.optimize import least_squares
res_lsq = least_squares(residual, [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1],loss='soft_l1', f_scale=0.1, args=([T,F],Y))
print(res_lsq['x'])
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
NT = 11
NF = 11
TT,FF = np.meshgrid(np.linspace(T.min(),T.max(),NT),np.linspace(F.min(),F.max(),NF))
X1 = np.reshape(TT,(NT*NF))
X2 = np.reshape(FF,(NT*NF))
YFUNC = np.reshape(form_2Dfunc(X1,X2,res_lsq['x']),(NT,NF))
ax.plot3D(T,F,Y,'k*')
ax.plot_surface(TT,FF,YFUNC)
plt.show()
In [10]:
DATA
Out[10]:
In [12]:
a = {'a':1}
In [13]:
a
Out[13]:
In [14]:
type(a)
Out[14]:
In [ ]: