From 7820cf038450bc0b5bf969c05e30cede976ccec3 Mon Sep 17 00:00:00 2001 From: Daniel Brown <ddb@star.sr.bham.ac.uk> Date: Mon, 29 Aug 2016 13:01:34 -0700 Subject: [PATCH] Fixing R+T+L checking for float eps, adding component from trace output --- pykat/__init__.py | 2 +- pykat/components.py | 8 ++++---- pykat/finesse.py | 12 +++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pykat/__init__.py b/pykat/__init__.py index 1474e20..c77886a 100644 --- a/pykat/__init__.py +++ b/pykat/__init__.py @@ -3,7 +3,7 @@ from __future__ import division from __future__ import print_function from __future__ import unicode_literals -__version__ = "1.0.8" +__version__ = "1.0.9" # This flag is used to switch on the gui features in pkat at import time USE_GUI = False diff --git a/pykat/components.py b/pykat/components.py index f7834a2..168490e 100644 --- a/pykat/components.py +++ b/pykat/components.py @@ -504,8 +504,8 @@ class mirror(AbstractMirrorComponent): return mirror(values[0], values[4], values[5], T=None, R=values[1], L=values[2], phi=values[3]) def getFinesseText(self): - if self.R+self.T+self.L != 1: - raise pkex.BasePyKatException("Mirror {0} has R+T+L != 1".format(self.name)) + if abs(self.R + self.T + self.L - 1) > 1e-14: + raise pkex.BasePyKatException("Mirror {0} has R+T+L = {1}, must equal 1 +- 1e-14".format(self.name, self.R+self.T+self.L)) rtn = [] @@ -639,8 +639,8 @@ class beamSplitter(AbstractMirrorComponent): values[1], None, values[2], values[3], values[4]) def getFinesseText(self): - if self.R+self.T+self.L != 1: - raise pkex.BasePyKatException("Beamsplitter {0} has R+T+L != 1".format(self.name)) + if abs(self.R + self.T + self.L - 1) > 1e-14: + raise pkex.BasePyKatException("Beamsplitter {0} has R+T+L = {1}, must equal 1 +- 1e-14".format(self.name, self.R+self.T+self.L)) rtn = [] diff --git a/pykat/finesse.py b/pykat/finesse.py index 5f9dd62..e9d7ef0 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -321,6 +321,9 @@ class katRun(object): import matplotlib.pyplot as pyplot import pykat.plotting as plt + if self.noxaxis == True: + raise pkex.BasePyKatException("This kat object has noxaxis=True, so there is nothing to plot.") + if not show: pyplot.ioff() @@ -1662,12 +1665,11 @@ class kat(object): a = line.split(':', 1) if a[0].isdigit(): - #print("Found %s" % a[0]) - values = a[1].split() - + node_name = values[1].split("(")[0] - + component_name = values[2].split("(")[0] + line1x = ifile.readline().replace('(','').replace(')','') line2x = ifile.readline().replace('(','').replace(')','') line1y = ifile.readline().replace('(','').replace(')','') @@ -1679,7 +1681,7 @@ class kat(object): qx = spqx[0].split("=")[1].replace('i','j').replace(' ','') qy = spqy[0].split("=")[1].replace('i','j').replace(' ','') - traceData[-1][node_name] = (pykat.beam_param(q=complex(qx)), pykat.beam_param(q=complex(qy))) + traceData[-1][node_name] = (pykat.beam_param(q=complex(qx)), pykat.beam_param(q=complex(qy)), component_name) finally: ifile.close() -- GitLab