Loading sas_temper/param.py +6 −6 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import math as m import sas_temper.polydispersity as pd class Param(object): def __init__(self, name, kind, min, max, coupled=None, polydispersity=None, pd_min=None, pd_max=None): def __init__(self, name, kind, minv, maxv, coupled=None, polydispersity=None, pd_min=None, pd_max=None): self.name = str(name) # string: the name of the parameter if kind in ["linear","log","integer","coupled","fixed"]: Loading @@ -36,13 +36,13 @@ class Param(object): raise Exception(err_message) if kind in ["integer"]: self.min = min self.max = max self.min = minv self.max = maxv self.val = int(0.5*self.min+self.max) self.unc = 0.0 else: self.min = np.float64(min) # the minimum value self.max = np.float64(max) # the maximum value self.min = np.float64(minv) # the minimum value self.max = np.float64(maxv) # the maximum value self.val = 0.5*(self.min + self.max) self.unc = 0.0 Loading @@ -52,7 +52,7 @@ class Param(object): self.coupled = None if polydispersity is not None: self.polydispersity = pd.Polydispersity(name=self.name,kind=polydispersity,min=pd_min,max=pd_max) self.polydispersity = pd.Polydispersity(name=self.name,kind=polydispersity,minv=pd_min,maxv=pd_max) else: self.polydispersity = None sas_temper/parse_conf.py +8 −8 Original line number Diff line number Diff line Loading @@ -78,14 +78,14 @@ def parse_config(name): #now, we create a parameter if coupled_name is None: if pd_name is None: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) else: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) else: if pd_name is None: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) else: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=coupled_name, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=coupled_name, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) #and add it to the array of parameters model_params.append(cur_param) Loading Loading @@ -129,14 +129,14 @@ def parse_config(name): #now, we create a parameter if sq_coupled_name is None: if sq_pd_name is None: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) else: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) else: if sq_pd_name is None: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=sq_coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=sq_coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) else: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=sq_coupled_name, polydispersity=txt4, pd_min=sq_pd_minval, pd_max=sq_pd_maxval) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=sq_coupled_name, polydispersity=txt4, pd_min=sq_pd_minval, pd_max=sq_pd_maxval) #and add it to the array of structure factor parameters s_of_q_params.append(sq_cur_param) Loading sas_temper/polydispersity.py +3 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import numpy as np import math as m class Polydispersity(object): def __init__(self, name, kind, min, max): def __init__(self, name, kind, minv, maxv): self.name = str(name) # string: the name of the parameter if kind in ["SchulzDispersion","GaussianDispersion","LogNormalDispersion","RectangleDispersion"]: Loading @@ -34,8 +34,8 @@ class Polydispersity(object): err_message = "The polydispersity distribution type " + str(kind) + " is not valid" raise Exception(err_message) self.min = np.float64(min) # the minimum value self.max = np.float64(max) # the maximum value self.min = np.float64(minv) # the minimum value self.max = np.float64(maxv) # the maximum value self.val = 0.5*(self.min + self.max) self.unc = 0.0 Loading sas_temper/sas_calc.py +6 −6 Original line number Diff line number Diff line Loading @@ -28,10 +28,10 @@ def calc_profile(d, mc, usm): for i in range(0,len(d.x)): tot = 0.0 min = d.x[i] - 4.5*d.dx[i] minq = d.x[i] - 4.5*d.dx[i] qstep = 4.5*d.dx[i]/30.0 for j in range(0,61): qv = m.fabs(min + j*qstep) qv = m.fabs(minq + j*qstep) tmp = np.interp(qv,usm.x,usm.y) # the number on the next line is ~sqrt(2*Pi) tot += tmp*qstep*m.exp(-(qv-d.x[i])*(qv-d.x[i])/(2.0*d.dx[i]*d.dx[i]))/(2.506628273*d.dx[i]) Loading Loading @@ -105,12 +105,12 @@ def calc_profile_usm(d, mc): # mc is the model configuration, d is the input data, mi is the calculated model profile def chisq(mc, d, mi): # this is quite straightforward sum = 0 sumv = 0 for i in range(0,len(d.x)): sum += (d.y[i]-mi.y[i])*(d.y[i]-mi.y[i])/(d.dy[i]*d.dy[i]) sumv += (d.y[i]-mi.y[i])*(d.y[i]-mi.y[i])/(d.dy[i]*d.dy[i]) sum = m.sqrt(sum/(mc.free_params-1)) sumv = m.sqrt(sumv/(mc.free_params-1)) return sum return sumv Loading
sas_temper/param.py +6 −6 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import math as m import sas_temper.polydispersity as pd class Param(object): def __init__(self, name, kind, min, max, coupled=None, polydispersity=None, pd_min=None, pd_max=None): def __init__(self, name, kind, minv, maxv, coupled=None, polydispersity=None, pd_min=None, pd_max=None): self.name = str(name) # string: the name of the parameter if kind in ["linear","log","integer","coupled","fixed"]: Loading @@ -36,13 +36,13 @@ class Param(object): raise Exception(err_message) if kind in ["integer"]: self.min = min self.max = max self.min = minv self.max = maxv self.val = int(0.5*self.min+self.max) self.unc = 0.0 else: self.min = np.float64(min) # the minimum value self.max = np.float64(max) # the maximum value self.min = np.float64(minv) # the minimum value self.max = np.float64(maxv) # the maximum value self.val = 0.5*(self.min + self.max) self.unc = 0.0 Loading @@ -52,7 +52,7 @@ class Param(object): self.coupled = None if polydispersity is not None: self.polydispersity = pd.Polydispersity(name=self.name,kind=polydispersity,min=pd_min,max=pd_max) self.polydispersity = pd.Polydispersity(name=self.name,kind=polydispersity,minv=pd_min,maxv=pd_max) else: self.polydispersity = None
sas_temper/parse_conf.py +8 −8 Original line number Diff line number Diff line Loading @@ -78,14 +78,14 @@ def parse_config(name): #now, we create a parameter if coupled_name is None: if pd_name is None: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) else: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) else: if pd_name is None: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) else: cur_param = param.Param(name=txt1, kind=var_kind, min=min_val, max=max_val, coupled=coupled_name, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) cur_param = param.Param(name=txt1, kind=var_kind, minv=min_val, maxv=max_val, coupled=coupled_name, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) #and add it to the array of parameters model_params.append(cur_param) Loading Loading @@ -129,14 +129,14 @@ def parse_config(name): #now, we create a parameter if sq_coupled_name is None: if sq_pd_name is None: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=None, polydispersity=None, pd_min=0.0, pd_max=0.0) else: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=None, polydispersity=txt3, pd_min=pd_minval, pd_max=pd_maxval) else: if sq_pd_name is None: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=sq_coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=sq_coupled_name, polydispersity=None, pd_min=0.0, pd_max=0.0) else: sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, min=sq_min_val, max=sq_max_val, coupled=sq_coupled_name, polydispersity=txt4, pd_min=sq_pd_minval, pd_max=sq_pd_maxval) sq_cur_param = param.Param(name=txt2, kind=sq_var_kind, minv=sq_min_val, maxv=sq_max_val, coupled=sq_coupled_name, polydispersity=txt4, pd_min=sq_pd_minval, pd_max=sq_pd_maxval) #and add it to the array of structure factor parameters s_of_q_params.append(sq_cur_param) Loading
sas_temper/polydispersity.py +3 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import numpy as np import math as m class Polydispersity(object): def __init__(self, name, kind, min, max): def __init__(self, name, kind, minv, maxv): self.name = str(name) # string: the name of the parameter if kind in ["SchulzDispersion","GaussianDispersion","LogNormalDispersion","RectangleDispersion"]: Loading @@ -34,8 +34,8 @@ class Polydispersity(object): err_message = "The polydispersity distribution type " + str(kind) + " is not valid" raise Exception(err_message) self.min = np.float64(min) # the minimum value self.max = np.float64(max) # the maximum value self.min = np.float64(minv) # the minimum value self.max = np.float64(maxv) # the maximum value self.val = 0.5*(self.min + self.max) self.unc = 0.0 Loading
sas_temper/sas_calc.py +6 −6 Original line number Diff line number Diff line Loading @@ -28,10 +28,10 @@ def calc_profile(d, mc, usm): for i in range(0,len(d.x)): tot = 0.0 min = d.x[i] - 4.5*d.dx[i] minq = d.x[i] - 4.5*d.dx[i] qstep = 4.5*d.dx[i]/30.0 for j in range(0,61): qv = m.fabs(min + j*qstep) qv = m.fabs(minq + j*qstep) tmp = np.interp(qv,usm.x,usm.y) # the number on the next line is ~sqrt(2*Pi) tot += tmp*qstep*m.exp(-(qv-d.x[i])*(qv-d.x[i])/(2.0*d.dx[i]*d.dx[i]))/(2.506628273*d.dx[i]) Loading Loading @@ -105,12 +105,12 @@ def calc_profile_usm(d, mc): # mc is the model configuration, d is the input data, mi is the calculated model profile def chisq(mc, d, mi): # this is quite straightforward sum = 0 sumv = 0 for i in range(0,len(d.x)): sum += (d.y[i]-mi.y[i])*(d.y[i]-mi.y[i])/(d.dy[i]*d.dy[i]) sumv += (d.y[i]-mi.y[i])*(d.y[i]-mi.y[i])/(d.dy[i]*d.dy[i]) sum = m.sqrt(sum/(mc.free_params-1)) sumv = m.sqrt(sumv/(mc.free_params-1)) return sum return sumv