Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Fitting/ModelThread.py

    r40975f8 rdcabba7  
    101101        elapsed = time.time() - self.starttime 
    102102 
     103        res = dict(image = output, data = self.data, page_id = self.page_id, 
     104            model = self.model, state = self.state, 
     105            toggle_mode_on = self.toggle_mode_on, elapsed = elapsed, 
     106            index = index_model, fid = self.fid, 
     107            qmin = self.qmin, qmax = self.qmax, 
     108            weight = self.weight, update_chisqr = self.update_chisqr, 
     109            source = self.source) 
     110 
    103111        if LocalConfig.USING_TWISTED: 
    104             return (output, 
    105                     self.data, 
    106                     self.page_id, 
    107                     self.model, 
    108                     self.state, 
    109                     self.toggle_mode_on, 
    110                     elapsed, 
    111                     index_model, 
    112                     self.fid, 
    113                     self.qmin, 
    114                     self.qmax, 
    115                     self.weight, 
    116                     self.update_chisqr, 
    117                     self.source) 
    118         else: 
    119             self.completefn((output, 
    120                            self.data, 
    121                            self.page_id, 
    122                            self.model, 
    123                            self.state, 
    124                            self.toggle_mode_on, 
    125                            elapsed, 
    126                            index_model, 
    127                            self.fid, 
    128                            self.qmin, 
    129                            self.qmax, 
    130                            self.weight, 
    131                            #qstep=self.qstep, 
    132                            self.update_chisqr, 
    133                            self.source)) 
    134  
     112            return res 
     113        else: 
     114            self.completefn(res) 
    135115 
    136116class Calc1D(CalcThread): 
     
    215195            output[index] = self.model.evalDistribution(self.data.x[index]) 
    216196 
    217         results_eval = {} 
    218         intermediate_results = getattr(self.model, "_intermediate_results", None) 
    219         if callable(intermediate_results): 
    220             # support for future sasmodels (beta approx support) - it returns a dict of intermediate results, keyed by 
    221             # name 
    222             results_eval = intermediate_results() 
    223         else: 
    224             sq_values = None 
    225             pq_values = None 
    226             s_model = None 
    227             p_model = None 
    228             if isinstance(self.model, MultiplicationModel): 
    229                 s_model = self.model.s_model 
    230                 p_model = self.model.p_model 
    231             elif hasattr(self.model, "calc_composition_models"): 
    232                 results = self.model.calc_composition_models(self.data.x[index]) 
    233                 if results is not None: 
    234                     pq_values, sq_values = results 
    235  
    236             if pq_values is None or sq_values is None: 
    237                 if p_model is not None and s_model is not None: 
    238                     sq_values = numpy.zeros((len(self.data.x))) 
    239                     pq_values = numpy.zeros((len(self.data.x))) 
    240                     sq_values[index] = s_model.evalDistribution(self.data.x[index]) 
    241                     pq_values[index] = p_model.evalDistribution(self.data.x[index]) 
    242  
    243             if pq_values is not None and sq_values is not None: 
    244                 results_eval = { 
    245                     "P(Q)": pq_values, 
    246                     "S(Q)": sq_values 
    247                 } 
     197        sq_values = None 
     198        pq_values = None 
     199        s_model = None 
     200        p_model = None 
     201        if isinstance(self.model, MultiplicationModel): 
     202            s_model = self.model.s_model 
     203            p_model = self.model.p_model 
     204        elif hasattr(self.model, "calc_composition_models"): 
     205            results = self.model.calc_composition_models(self.data.x[index]) 
     206            if results is not None: 
     207                pq_values, sq_values = results 
     208 
     209        if pq_values is None or sq_values is None: 
     210            if p_model is not None and s_model is not None: 
     211                sq_values = numpy.zeros((len(self.data.x))) 
     212                pq_values = numpy.zeros((len(self.data.x))) 
     213                sq_values[index] = s_model.evalDistribution(self.data.x[index]) 
     214                pq_values[index] = p_model.evalDistribution(self.data.x[index]) 
    248215 
    249216        elapsed = time.time() - self.starttime 
    250217 
     218        res = dict(x = self.data.x[index], y = output[index], 
     219            page_id = self.page_id, state = self.state, weight = self.weight, 
     220            fid = self.fid, toggle_mode_on = self.toggle_mode_on, 
     221            elapsed = elapsed, index = index, model = self.model, 
     222            data = self.data, update_chisqr = self.update_chisqr, 
     223            source = self.source, unsmeared_output = unsmeared_output, 
     224            unsmeared_data = unsmeared_data, unsmeared_error = unsmeared_error, 
     225            pq_values = pq_values, sq_values = sq_values) 
     226 
    251227        if LocalConfig.USING_TWISTED: 
    252             return (self.data.x[index], output[index], 
    253                     self.page_id, 
    254                     self.state, 
    255                     self.weight, 
    256                     self.fid, 
    257                     self.toggle_mode_on, 
    258                     elapsed, index, self.model, 
    259                     self.data, 
    260                     self.update_chisqr, 
    261                     self.source, 
    262                     unsmeared_output, unsmeared_data, unsmeared_error, 
    263                     results_eval) 
    264         else: 
    265             self.completefn((self.data.x[index], output[index], 
    266                         self.page_id, 
    267                         self.state, 
    268                         self.weight, 
    269                         self.fid, 
    270                         self.toggle_mode_on, 
    271                         elapsed, index, self.model, 
    272                         self.data, 
    273                         self.update_chisqr, 
    274                         self.source, 
    275                         unsmeared_output, unsmeared_data, unsmeared_error, 
    276                         results_eval)) 
     228            return res 
     229        else: 
     230            self.completefn(res) 
    277231 
    278232    def results(self): 
Note: See TracChangeset for help on using the changeset viewer.