Changeset fb59ed9 in sasview for sansview


Ignore:
Timestamp:
Oct 20, 2010 6:08:34 PM (14 years ago)
Author:
Jae Cho <jhjcho@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
d2539aa
Parents:
f118fe2f
Message:

added new models

Location:
sansview/perspectives/fitting
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sansview/perspectives/fitting/basepage.py

    ra1b2471 rfb59ed9  
    9494        ##[cb state, name, value, "+/-", error of fit, min, max , units] 
    9595        self.parameters=[] 
     96        # non-fittable parameter whose value is astring 
     97        self.str_parameters = [] 
    9698        ## list of parameters to fit , must be like self.parameters 
    9799        self.param_toFit=[] 
     
    947949        self._reset_parameters_state(self.orientation_params, 
    948950                                     state.orientation_params) 
     951        self._reset_parameters_state(self.str_parameters, 
     952                                     state.str_parameters) 
    949953        self._reset_parameters_state(self.parameters,state.parameters)     
    950954         ## display dispersion info layer         
     
    14861490                elif k == "Structure Factors": 
    14871491                     self.struct_rbutton.SetValue(True) 
     1492                elif  k == "Multi-Functions": 
     1493                    continue 
    14881494                else: 
    14891495                    self.plugin_rbutton.SetValue(True) 
     
    15361542                elif k == "Structure Factors": 
    15371543                    self.struct_rbutton.SetValue(True) 
     1544                elif  k == "Multi-Functions": 
     1545                    continue 
    15381546                else: 
    15391547                    self.plugin_rbutton.SetValue(True) 
     
    16221630        self.text2 = wx.StaticText( self,-1,"P(Q)*S(Q)" ) 
    16231631        self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: " ) 
     1632        self.mutifactor_text1 = wx.StaticText( self,-1,"" ) 
    16241633        self.show_sld_button = wx.Button( self,-1,"Show SLD Profile" ) 
    16251634        self.show_sld_button.Bind(wx.EVT_BUTTON,self._on_show_sld) 
     
    16521661        mutifactor_selection.Add(self.mutifactor_text) 
    16531662        mutifactor_selection.Add(self.multifactorbox) 
     1663        mutifactor_selection.Add((5,5)) 
     1664        mutifactor_selection.Add(self.mutifactor_text1) 
    16541665        mutifactor_selection.Add((10,5)) 
    16551666        mutifactor_selection.Add(self.show_sld_button) 
     
    16621673         
    16631674        self._set_multfactor_combobox() 
     1675        self.multifactorbox.SetSelection(1) 
    16641676        self.show_sld_button.Hide() 
    16651677        #-------------------------------------------------------- 
     
    16801692        sld_data = Data1D(x,y) 
    16811693        sld_data.name = 'SLD' 
    1682     
    1683         self.panel = SLDPanel(self, data=sld_data,id =-1 ) 
     1694        sld_data.axes = self.sld_axes 
     1695        self.panel = SLDPanel(self, data=sld_data,axes =self.sld_axes,id =-1 ) 
    16841696        self.panel.ShowModal()     
    16851697         
    1686     def _set_multfactor_combobox(self):    
     1698    def _set_multfactor_combobox(self, multiplicity=10):    
    16871699        """ 
    16881700        Set comboBox for muitfactor of CoreMultiShellModel 
    1689         """ 
    1690         for idx in range(0,5): 
     1701        :param multiplicit: no. of multi-functionality 
     1702        """ 
     1703        # build content of the combobox 
     1704        for idx in range(0,multiplicity): 
    16911705            self.multifactorbox.Append(str(idx),int(idx)) 
    1692             self.multifactorbox.SetSelection(1)  
     1706            #self.multifactorbox.SetSelection(1)  
    16931707        self._hide_multfactor_combobox() 
    16941708         
     
    16991713        if not self.mutifactor_text.IsShown(): 
    17001714            self.mutifactor_text.Show(True) 
     1715            self.mutifactor_text1.Show(True) 
    17011716        if not self.multifactorbox.IsShown(): 
    17021717            self.multifactorbox.Show(True)   
     
    17081723        if self.mutifactor_text.IsShown(): 
    17091724            self.mutifactor_text.Hide() 
     1725            self.mutifactor_text1.Hide() 
    17101726        if self.multifactorbox.IsShown(): 
    17111727            self.multifactorbox.Hide()    
     
    18621878            # set multifactor for Mutifunctional models     
    18631879            if form_factor().__class__ in self.model_list_box["Multi-Functions"]: 
     1880                m_id = self.multifactorbox.GetCurrentSelection() 
     1881                multiplicity = form_factor().multiplicity_info[0] 
     1882                self.multifactorbox.Clear() 
     1883                #self.mutifactor_text.SetLabel(form_factor().details[]) 
     1884                self._set_multfactor_combobox(multiplicity) 
    18641885                self._show_multfactor_combobox() 
    1865                 self.show_sld_button.Show(True) 
    1866                 m_id = self.multifactorbox.GetCurrentSelection() 
     1886                #ToDo:  this info should be called directly from the model  
     1887                text = form_factor().multiplicity_info[1]#'No. of Shells: ' 
     1888 
     1889                #self.mutifactor_text.Clear() 
     1890                self.mutifactor_text.SetLabel(text) 
     1891                if m_id > multiplicity -1: 
     1892                    # default value 
     1893                    m_id = 1 
     1894                     
    18671895                self.multi_factor = self.multifactorbox.GetClientData(m_id) 
    18681896                if self.multi_factor == None: self.multi_factor =0 
    18691897                form_factor = form_factor(int(self.multi_factor)) 
     1898                self.multifactorbox.SetSelection(m_id) 
     1899                # Check len of the text1 and max_multiplicity 
     1900                text = '' 
     1901                if form_factor.multiplicity_info[0] == len(form_factor.multiplicity_info[2]): 
     1902                    text = form_factor.multiplicity_info[2][self.multi_factor] 
     1903                self.mutifactor_text1.SetLabel(text) 
     1904                # Check if model has  get sld profile. 
     1905                if len(form_factor.multiplicity_info[3]) > 0: 
     1906                    self.sld_axes = form_factor.multiplicity_info[3] 
     1907                    self.show_sld_button.Show(True) 
     1908                else: 
     1909                    self.sld_axes = "" 
     1910 
    18701911            else: 
    18711912                self._hide_multfactor_combobox() 
  • sansview/perspectives/fitting/fitpage.py

    r20905a0 rfb59ed9  
    11921192            self.smear_accuracy.Append(list[idx],idx) 
    11931193             
     1194    def _set_fun_box_list(self,fun_box): 
     1195        """ 
     1196        Set the list of func for multifunctional models 
     1197        """ 
     1198        # Check if it is multi_functional model 
     1199        if self.model.__class__ not in self.model_list_box["Multi-Functions"]: 
     1200            return None 
     1201        # Get the func name list 
     1202        list = self.model.fun_list 
     1203        if len(list) == 0: 
     1204            return None 
     1205        # build function (combo)box 
     1206        ind = 0 
     1207        while(ind < len(list)): 
     1208            for key, val in list.iteritems(): 
     1209                if (val == ind): 
     1210                    fun_box.Append(key,val) 
     1211                    break 
     1212            ind += 1 
     1213         
    11941214    def _on_select_accuracy(self,event): 
    11951215        """ 
     
    12061226            if self.current_smearer != None: 
    12071227                self.current_smearer.set_accuracy(accuracy = self.smear2d_accuracy)  
     1228        event.Skip() 
     1229 
     1230    def _on_fun_box(self,event): 
     1231        """ 
     1232        Select an func: Erf,Rparabola,LParabola 
     1233        """ 
     1234        fun_val = None 
     1235        fun_box = event.GetEventObject() 
     1236        name = fun_box.Name 
     1237        value = fun_box.GetValue() 
     1238        if self.model.fun_list.has_key(value): 
     1239            fun_val = self.model.fun_list[value] 
     1240 
     1241        self.model.setParam(name,fun_val) 
     1242        # save state 
     1243        self._copy_parameters_state(self.str_parameters, self.state.str_parameters) 
     1244        # update params 
     1245        self._update_paramv_on_fit()  
     1246        # draw 
     1247        self._draw_model() 
     1248        self.Refresh() 
     1249        # get ready for new event 
    12081250        event.Skip() 
    12091251         
     
    20462088        self.sizer3.Clear(True) 
    20472089        self.parameters = [] 
     2090        self.str_parameters = [] 
    20482091        self.param_toFit=[] 
    20492092        self.fittable_param=[] 
     
    20742117            Custom compare to order, first by alphabets then second by number. 
    20752118            """  
     2119            # number at the last digit 
    20762120            a_last = a[len(a)-1] 
    20772121            b_last = b[len(b)-1] 
    2078              
     2122            # default 
    20792123            num_a = None 
    20802124            num_b = None 
     2125            # split the names 
     2126            a2 = a.lower().split('_') 
     2127            b2 = b.lower().split('_') 
     2128            # check length of a2, b2 
     2129            len_a2 = len(a2) 
     2130            len_b2 = len(b2) 
    20812131            # check if it contains a int number(<10) 
    20822132            try:  
     
    20862136                num_b = int(b_last) 
    20872137            except: pass 
     2138            # Put 'scale' near the top; happens  
     2139            # when numbered param name exists 
     2140            if a == 'scale': 
     2141                return -1 
    20882142            # both have a number     
    20892143            if num_a != None and num_b != None: 
    2090                 if num_a > num_b: return 1 
     2144                if num_a > num_b: return -1 
     2145                # same number 
    20912146                elif num_a == num_b:  
    2092                     return cmp(a.lower(), b.lower()) 
    2093                 else: return -1 
     2147                    # different last names 
     2148                    if a2[len_a2-1] != b2[len_b2-1] and num_a != 0: 
     2149                        return -cmp(a2[len_a2-1], b2[len_b2-1]) 
     2150                    else:  
     2151                        return cmp(a, b)  
     2152                else: return 1 
    20942153            # one of them has a number 
    20952154            elif num_a != None: return 1 
    20962155            elif num_b != None: return -1 
    2097             # no nuumbers 
     2156            # no numbers 
    20982157            else: return cmp(a.lower(), b.lower()) 
     2158 
    20992159                         
    21002160        keys.sort(custom_compare) 
     
    21472207                iy += 1 
    21482208                ix = 0 
    2149                 ## add parameters name with checkbox for selecting to fit 
    2150                 cb = wx.CheckBox(self, -1, item )               
    2151                 cb.SetToolTipString(" Check for fitting.") 
    2152                 #cb.SetValue(True) 
    2153                 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    2154                  
    2155                 sizer.Add( cb,( iy, ix),(1,1), 
    2156                              wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 5) 
    2157                  
    2158                 ## add parameter value 
    2159                 ix += 1 
    2160                 value= self.model.getParam(item) 
    2161                 ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH,20), 
    2162                                     style=wx.TE_PROCESS_ENTER) 
    2163                 ctl1.SetToolTipString("Hit 'Enter' after typing.") 
    2164                 ctl1.SetValue(format_number(value)) 
    2165                 sizer.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 
    2166                 ## text to show error sign 
    2167                 ix += 1 
    2168                 text2=wx.StaticText(self, -1, '+/-') 
    2169                 sizer.Add(text2,(iy, ix),(1,1),\ 
    2170                                 wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
    2171                 text2.Hide()  
    2172                 ix += 1 
    2173                 ctl2 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=0) 
    2174                 sizer.Add(ctl2, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    2175                 ctl2.Hide() 
    2176                  
    2177                 ix += 1 
    2178                 ctl3 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH/2,20), style=wx.TE_PROCESS_ENTER, 
    2179                                                text_enter_callback = self._onparamRangeEnter) 
    2180       
    2181                 sizer.Add(ctl3, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    2182                 ctl3.Hide() 
    2183          
    2184                 ix += 1 
    2185                 ctl4 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH/2,20), style=wx.TE_PROCESS_ENTER, 
    2186                                                text_enter_callback = self._onparamRangeEnter) 
    2187                 sizer.Add(ctl4, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    2188        
    2189                 ctl4.Hide() 
    2190  
    2191                 if self.engine_type=="park": 
    2192                     ctl3.Show(True) 
    2193                     ctl4.Show(True) 
    2194                 ix +=1 
    2195                 # Units 
    2196                 if self.model.details.has_key(item): 
    2197                     units = wx.StaticText(self, -1, self.model.details[item][0], style=wx.ALIGN_LEFT) 
     2209                if self.model.__class__ in self.model_list_box["Multi-Functions"] \ 
     2210                    and item in self.model.non_fittable: 
     2211                    non_fittable_name = wx.StaticText(self, -1, item ) 
     2212                    sizer.Add(non_fittable_name,(iy, ix),(1,1),\ 
     2213                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 21) 
     2214                    ## add parameter value 
     2215                    ix += 1 
     2216                    value= self.model.getParam(item) 
     2217                    if len(self.model.fun_list) > 0: 
     2218                        num = item.split('_')[1][5:7] 
     2219                        fun_box = wx.ComboBox(self, -1,size=(100,-1),style=wx.CB_READONLY, name = '%s'% item) 
     2220                        self._set_fun_box_list(fun_box) 
     2221                        fun_box.SetSelection(0) 
     2222                        #self.fun_box.SetToolTipString("A function describing the interface") 
     2223                        wx.EVT_COMBOBOX(fun_box,-1, self._on_fun_box) 
     2224                    else: 
     2225                        fun_box = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH,20), 
     2226                                        style=wx.TE_PROCESS_ENTER, name ='%s'% item) 
     2227                        fun_box.SetToolTipString("Hit 'Enter' after typing.") 
     2228                        fun_box.SetValue(format_number(value)) 
     2229                    sizer.Add(fun_box, (iy,ix),(1,1), wx.EXPAND) 
     2230                    self.str_parameters.append([None,item, fun_box,None,None,None,None,None]) 
     2231 
     2232                     
    21982233                else: 
    2199                     units = wx.StaticText(self, -1, "", style=wx.ALIGN_LEFT) 
    2200                 sizer.Add(units, (iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     2234                    ## add parameters name with checkbox for selecting to fit 
     2235                    cb = wx.CheckBox(self, -1, item )               
     2236                    cb.SetToolTipString(" Check for fitting.") 
     2237                    #cb.SetValue(True) 
     2238                    wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    22012239                     
    2202                 ##[cb state, name, value, "+/-", error of fit, min, max , units] 
    2203                 self.parameters.append([cb,item, ctl1, 
    2204                                         text2,ctl2, ctl3, ctl4,units]) 
    2205                
     2240                    sizer.Add( cb,( iy, ix),(1,1), 
     2241                                 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 5) 
     2242 
     2243                    ## add parameter value 
     2244                    ix += 1 
     2245                    value= self.model.getParam(item) 
     2246                    ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH,20), 
     2247                                        style=wx.TE_PROCESS_ENTER) 
     2248                    ctl1.SetToolTipString("Hit 'Enter' after typing.") 
     2249                    ctl1.SetValue(format_number(value)) 
     2250                    sizer.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 
     2251                    ## text to show error sign 
     2252                    ix += 1 
     2253                    text2=wx.StaticText(self, -1, '+/-') 
     2254                    sizer.Add(text2,(iy, ix),(1,1),\ 
     2255                                    wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
     2256                    text2.Hide()  
     2257                    ix += 1 
     2258                    ctl2 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=0) 
     2259                    sizer.Add(ctl2, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     2260                    ctl2.Hide() 
     2261                     
     2262                    ix += 1 
     2263                    ctl3 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH/2,20), style=wx.TE_PROCESS_ENTER, 
     2264                                                   text_enter_callback = self._onparamRangeEnter) 
     2265          
     2266                    sizer.Add(ctl3, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     2267                    ctl3.Hide() 
     2268             
     2269                    ix += 1 
     2270                    ctl4 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH/2,20), style=wx.TE_PROCESS_ENTER, 
     2271                                                   text_enter_callback = self._onparamRangeEnter) 
     2272                    sizer.Add(ctl4, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     2273           
     2274                    ctl4.Hide() 
     2275     
     2276                    if self.engine_type=="park": 
     2277                        ctl3.Show(True) 
     2278                        ctl4.Show(True) 
     2279                    ix +=1 
     2280                    # Units 
     2281                    if self.model.details.has_key(item): 
     2282                        units = wx.StaticText(self, -1, self.model.details[item][0], style=wx.ALIGN_LEFT) 
     2283                    else: 
     2284                        units = wx.StaticText(self, -1, "", style=wx.ALIGN_LEFT) 
     2285                    sizer.Add(units, (iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     2286                         
     2287                    ##[cb state, name, value, "+/-", error of fit, min, max , units] 
     2288                    self.parameters.append([cb,item, ctl1, 
     2289                                            text2,ctl2, ctl3, ctl4,units]) 
     2290                                   
    22062291        iy+=1 
    22072292        sizer.Add((10,10),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
  • sansview/perspectives/fitting/fitting.py

    r7a07864 rfb59ed9  
    823823            self.fitter.set_model(model, self.fit_id, 
    824824                                   pars,constraints = listOfConstraint) 
    825              
     825            print "listOfConstraint",listOfConstraint 
    826826            self.fitter.set_data(data=metadata,Uid=self.fit_id, 
    827827                                 smearer=smearer,qmin= qmin,qmax=qmax ) 
  • sansview/perspectives/fitting/models.py

    ra1b2471 rfb59ed9  
    172172         
    173173        """ 
    174         ## form factor 
    175174        from sans.models.SphereModel import SphereModel 
    176175        self.shape_list.append(SphereModel) 
     
    185184        self.shape_list.append(FuzzySphereModel) 
    186185        self.multiplication_factor.append(FuzzySphereModel) 
    187          
     186            
    188187        from sans.models.CoreShellModel import CoreShellModel 
    189188        self.shape_list.append(CoreShellModel) 
     
    194193        self.multiplication_factor.append(CoreMultiShellModel) 
    195194        self.multi_func_list.append(CoreMultiShellModel) 
    196          
     195 
    197196        from sans.models.VesicleModel import VesicleModel 
    198197        self.shape_list.append(VesicleModel) 
     
    232231        self.multiplication_factor.append(ParallelepipedModel) 
    233232         
     233        from sans.models.CSParallelepipedModel import CSParallelepipedModel 
     234        self.shape_list.append(CSParallelepipedModel) 
     235        self.multiplication_factor.append(CSParallelepipedModel) 
     236         
    234237        from sans.models.EllipticalCylinderModel import EllipticalCylinderModel 
    235238        self.shape_list.append(EllipticalCylinderModel) 
    236239        self.multiplication_factor.append(EllipticalCylinderModel) 
    237                  
     240         
     241        from sans.models.BarBellModel import BarBellModel 
     242        self.shape_list.append(BarBellModel) 
     243        # not implemeted yet! 
     244        #self.multiplication_factor.append(BarBellModel) 
     245         
     246        from sans.models.CappedCylinderModel import CappedCylinderModel 
     247        self.shape_list.append(CappedCylinderModel) 
     248        # not implemeted yet! 
     249        #self.multiplication_factor.append(CappedCylinderModel) 
     250         
    238251        from sans.models.EllipsoidModel import EllipsoidModel 
    239252        self.shape_list.append(EllipsoidModel) 
     
    259272        from sans.models.LamellarPSHGModel import LamellarPSHGModel 
    260273        self.shape_list.append(LamellarPSHGModel) 
     274         
     275        from sans.models.LamellarPCrystalModel import LamellarPCrystalModel 
     276        self.shape_list.append(LamellarPCrystalModel) 
     277         
     278        from sans.models.SCCrystalModel import SCCrystalModel 
     279        self.shape_list.append(SCCrystalModel) 
     280         
     281        from sans.models.FCCrystalModel import FCCrystalModel 
     282        self.shape_list.append(FCCrystalModel) 
     283         
     284        from sans.models.BCCrystalModel import BCCrystalModel 
     285        self.shape_list.append(BCCrystalModel) 
    261286       
    262287        ## Structure factor  
     
    272297        from sans.models.HayterMSAStructure import HayterMSAStructure 
    273298        self.struct_list.append(HayterMSAStructure) 
    274      
    275         ##shape-independent models   
     299         
     300        ##shape-independent models 
    276301        from sans.models.PowerLawAbsModel import PowerLawAbsModel 
    277302        self.shape_indep_list.append( PowerLawAbsModel ) 
     
    280305        self.shape_indep_list.append(BEPolyelectrolyte ) 
    281306        self.form_factor_dict[str(wx.NewId())] =  [SphereModel] 
    282  
     307         
     308        from sans.models.BroadPeakModel import BroadPeakModel 
     309        self.shape_indep_list.append(BroadPeakModel) 
     310         
     311        from sans.models.CorrLengthModel import CorrLengthModel 
     312        self.shape_indep_list.append(CorrLengthModel) 
     313         
    283314        from sans.models.DABModel import DABModel 
    284315        self.shape_indep_list.append(DABModel ) 
     
    287318        self.shape_indep_list.append(DebyeModel ) 
    288319         
     320        #FractalModel (a c-model)is now being used instead of FractalAbsModel. 
     321        from sans.models.FractalModel import FractalModel 
     322        self.shape_indep_list.append(FractalModel ) 
     323         
     324        from sans.models.FractalCoreShellModel import FractalCoreShellModel 
     325        self.shape_indep_list.append(FractalCoreShellModel ) 
     326         
     327        from sans.models.GaussLorentzGelModel import GaussLorentzGelModel 
     328        self.shape_indep_list.append(GaussLorentzGelModel)  
     329                 
    289330        from sans.models.GuinierModel import GuinierModel 
    290331        self.shape_indep_list.append(GuinierModel ) 
    291332         
    292         from sans.models.FractalModel import FractalModel 
    293         self.shape_indep_list.append(FractalModel ) 
    294          
     333        from sans.models.GuinierPorodModel import GuinierPorodModel 
     334        self.shape_indep_list.append(GuinierPorodModel ) 
     335 
    295336        from sans.models.LorentzModel import LorentzModel 
    296337        self.shape_indep_list.append( LorentzModel)  
     
    304345        from sans.models.Poly_GaussCoil import Poly_GaussCoil 
    305346        self.shape_indep_list.append(Poly_GaussCoil) 
    306                   
     347         
     348        from sans.models.PolymerExclVolume import PolymerExclVolume 
     349        self.shape_indep_list.append(PolymerExclVolume) 
     350         
    307351        from sans.models.PorodModel import PorodModel 
    308         self.shape_indep_list.append(PorodModel ) 
    309          
    310         #FractalModel (a c-model)will be used. 
    311         #from sans.models.FractalAbsModel import FractalAbsModel 
    312         #self.shape_indep_list.append(FractalAbsModel) 
     352        self.shape_indep_list.append(PorodModel )       
     353         
     354        from sans.models.RPA10Model import RPA10Model 
     355        self.shape_indep_list.append(RPA10Model) 
     356        self.multi_func_list.append(RPA10Model) 
    313357         
    314358        from sans.models.TeubnerStreyModel import TeubnerStreyModel 
    315359        self.shape_indep_list.append(TeubnerStreyModel ) 
    316360         
     361        from sans.models.TwoLorentzianModel import TwoLorentzianModel 
     362        self.shape_indep_list.append(TwoLorentzianModel ) 
     363         
     364        from sans.models.TwoPowerLawModel import TwoPowerLawModel 
     365        self.shape_indep_list.append(TwoPowerLawModel ) 
     366         
     367        from sans.models.UnifiedPowerRgModel import UnifiedPowerRgModel 
     368        self.shape_indep_list.append(UnifiedPowerRgModel ) 
     369        self.multi_func_list.append(UnifiedPowerRgModel) 
     370         
    317371        from sans.models.LineModel import LineModel 
    318372        self.shape_indep_list.append(LineModel) 
    319373         
     374        from sans.models.ReflectivityModel import ReflectivityModel 
     375        self.multi_func_list.append(ReflectivityModel) 
     376     
    320377        #Looking for plugins 
    321378        self.plugins = findModels() 
     379        self._get_multifunc_models() 
     380        self.plugins.append(ReflectivityModel) 
    322381        return 0 
    323382 
     
    466525        wx.PostEvent(self.event_owner, evt) 
    467526         
     527    def _get_multifunc_models(self): 
     528        """ 
     529        Get the multifunctional models 
     530        """ 
     531        for item in self.plugins: 
     532            try: 
     533                # check the multiplicity if any 
     534                if item.multiplicity_info[0] > 1: 
     535                    self.multi_func_list.append(item) 
     536            except: 
     537                # pass to other items 
     538                pass 
     539                     
    468540    def get_model_list(self):     
    469541        """ 
  • sansview/perspectives/fitting/pagestate.py

    r4523b68 rfb59ed9  
    6666                            ["weights", "weights"]] 
    6767 
    68 list_of_state_parameters = [["parameters", "parameters"] ,                      
     68list_of_state_parameters = [["parameters", "parameters"] ,  
     69                            ["str_parameters", "str_parameters"] ,                      
    6970                            ["orientation_parameters", "orientation_params"], 
    7071                            ["dispersity_parameters", "orientation_params_disp"], 
     
    172173        # Contains link between  model ,all its parameters, and panel organization 
    173174        self.parameters = [] 
     175        # String parameter list that can not be fitted 
     176        self.str_parameters = [] 
    174177        # Contains list of parameters that cannot be fitted and reference to  
    175178        #panel objects  
     
    270273        obj.enable2D = copy.deepcopy(self.enable2D) 
    271274        obj.parameters = copy.deepcopy(self.parameters) 
     275        obj.str_parameters = copy.deepcopy(self.str_parameters) 
    272276        obj.fixed_param = copy.deepcopy(self.fixed_param) 
    273277        obj.fittable_param = copy.deepcopy(self.fittable_param) 
     
    365369        rep += "number parameters(self.parameters): %s\n"%len(self.parameters) 
    366370        rep = self._repr_helper( list=self.parameters, rep=rep) 
     371        rep += "number str_parameters(self.str_parameters): %s\n"%len(self.str_parameters) 
     372        rep = self._repr_helper( list=self.str_parameters, rep=rep) 
    367373        rep += "number orientation parameters" 
    368374        rep += "(self.orientation_params): %s\n"%len(self.orientation_params) 
  • sansview/perspectives/fitting/simfitpage.py

    r5062bbf rfb59ed9  
    2323    for item in model.getParamList(): 
    2424        if not item  in model.getDispParamList(): 
    25             fittable_param.append(item) 
     25            if not item in model.non_fittable: 
     26                fittable_param.append(item) 
    2627             
    2728    for item in model.fixed: 
Note: See TracChangeset for help on using the changeset viewer.