- Timestamp:
- Aug 30, 2017 9:45:58 AM (7 years ago)
- 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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 14fbdba
- Parents:
- 1c699de
- git-author:
- Lewis O'Driscoll <lewis.o'driscoll@…> (08/30/17 09:40:17)
- git-committer:
- Lewis O'Driscoll <lewis.o'driscoll@…> (08/30/17 09:45:58)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sasgui/perspectives/calculator/model_editor.py
r07ec714 r9f703d0 496 496 if operator == '*': 497 497 name = 'Multi' 498 factor = ' BackGround'498 factor = 'background' 499 499 f_oper = '+' 500 500 else: … … 535 535 if description == '': 536 536 description = name1 + self._operator + name2 537 text = self._operator_choice.GetValue()538 if text.count('+') > 0:537 operator_text = self._operator_choice.GetValue() 538 if '+' in operator_text: 539 539 factor = 'scale_factor' 540 540 f_oper = '*' 541 541 default_val = '1.0' 542 542 else: 543 factor = ' BackGround'543 factor = 'background' 544 544 f_oper = '+' 545 545 default_val = '0.0' … … 549 549 except: 550 550 raise 551 lines = SUM_TEMPLATE.split('\n') 552 for line in lines: 553 try: 554 if line.count("scale_factor"): 555 line = line.replace('scale_factor', factor) 556 #print "scale_factor", line 557 if line.count("= %s"): 558 out_f.write(line % (default_val) + "\n") 559 elif line.count("import Model as P1"): 560 if self.is_p1_custom: 561 line = line.replace('#', '') 562 out_f.write(line % name1 + "\n") 563 else: 564 out_f.write(line + "\n") 565 elif line.count("import %s as P1"): 566 if not self.is_p1_custom: 567 line = line.replace('#', '') 568 out_f.write(line % (name1) + "\n") 569 else: 570 out_f.write(line + "\n") 571 elif line.count("import Model as P2"): 572 if self.is_p2_custom: 573 line = line.replace('#', '') 574 out_f.write(line % name2 + "\n") 575 else: 576 out_f.write(line + "\n") 577 elif line.count("import %s as P2"): 578 if not self.is_p2_custom: 579 line = line.replace('#', '') 580 out_f.write(line % (name2) + "\n") 581 else: 582 out_f.write(line + "\n") 583 elif line.count("P1 = find_model"): 584 out_f.write(line % (name1) + "\n") 585 elif line.count("P2 = find_model"): 586 out_f.write(line % (name2) + "\n") 587 588 elif line.count("self.description = '%s'"): 589 out_f.write(line % description + "\n") 590 #elif line.count("run") and line.count("%s"): 591 # out_f.write(line % self._operator + "\n") 592 #elif line.count("evalDistribution") and line.count("%s"): 593 # out_f.write(line % self._operator + "\n") 594 elif line.count("return") and line.count("%s") == 2: 595 #print "line return", line 596 out_f.write(line % (f_oper, self._operator) + "\n") 597 elif line.count("out2")and line.count("%s"): 598 out_f.write(line % self._operator + "\n") 599 else: 600 out_f.write(line + "\n") 601 except: 602 raise 551 output = SUM_TEMPLATE.format(model1=name1, model2=name2, 552 scale_factor_default=default_val, factor_operator=f_oper, 553 operator=self._operator, description=description) 554 output = output.replace("scale_factor", factor) 555 out_f.write(output + "\n") 603 556 out_f.close() 604 #else:605 # msg = "Name exists already."606 557 607 558 def compile_file(self, path): … … 1294 1245 def __init__(self, multiplicity=1): 1295 1246 Model1DPlugin.__init__(self, name='') 1296 P1 = find_model(' %s')1297 P2 = find_model(' %s')1247 P1 = find_model('{model1}') 1248 P2 = find_model('{model2}') 1298 1249 p_model1 = P1() 1299 1250 p_model2 = P2() 1300 1251 ## Setting model name model description 1301 self.description = ' %s'1252 self.description = '{description}' 1302 1253 if self.name.rstrip().lstrip() == '': 1303 1254 self.name = self._get_name(p_model1.name, p_model2.name) … … 1311 1262 1312 1263 ## Parameter details [units, min, max] 1313 self.details = { }1264 self.details = {{}} 1314 1265 ## Magnetic Panrameters 1315 1266 self.magnetic_params = [] … … 1328 1279 self._set_params() 1329 1280 ## New parameter:scaling_factor 1330 self.params['scale_factor'] = %s1281 self.params['scale_factor'] = {scale_factor_default} 1331 1282 1332 1283 ## Parameter details [units, min, max] … … 1538 1489 def run(self, x = 0.0): 1539 1490 self._set_scale_factor() 1540 return self.params['scale_factor'] %s\1541 (self.p_model1.run(x) %sself.p_model2.run(x))1491 return self.params['scale_factor'] {factor_operator} \ 1492 (self.p_model1.run(x) {operator} self.p_model2.run(x)) 1542 1493 1543 1494 def runXY(self, x = 0.0): 1544 1495 self._set_scale_factor() 1545 return self.params['scale_factor'] %s\1546 (self.p_model1.runXY(x) %sself.p_model2.runXY(x))1496 return self.params['scale_factor'] {factor_operator} \ 1497 (self.p_model1.runXY(x) {operator} self.p_model2.runXY(x)) 1547 1498 1548 1499 ## Now (May27,10) directly uses the model eval function … … 1550 1501 def evalDistribution(self, x = []): 1551 1502 self._set_scale_factor() 1552 return self.params['scale_factor'] %s\1553 (self.p_model1.evalDistribution(x) %s\1503 return self.params['scale_factor'] {factor_operator} \ 1504 (self.p_model1.evalDistribution(x) {operator} \ 1554 1505 self.p_model2.evalDistribution(x)) 1555 1506 … … 1589 1540 #m2.p_model2.setParam("scale", 100) 1590 1541 #m2.p_model2.setParam("rg", 100) 1591 out2 = m2.p_model1.runXY(0.01) %sm2.p_model2.runXY(0.01)\n1542 out2 = m2.p_model1.runXY(0.01) {operator} m2.p_model2.runXY(0.01)\n 1592 1543 print "My name is %s."% m1.name 1593 1544 print out1, " = ", out2
Note: See TracChangeset
for help on using the changeset viewer.