Skip to content
Snippets Groups Projects
Commit 925906a0 authored by Daniel Brown's avatar Daniel Brown
Browse files

sorting out multiple dump node connection issues

parent 1e7b76c7
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pykat import finesse from pykat import finesse
from pykat.detectors import * from pykat.detectors import *
from pykat.components import * from pykat.components import *
......
...@@ -44,11 +44,34 @@ class cavity(Command): ...@@ -44,11 +44,34 @@ class cavity(Command):
class gauss(object): class gauss(object):
@staticmethod @staticmethod
def parseFinesseText(text, kat): def parseFinesseText(text, kat):
values = text.split(" ") values = text.split()
if not values[0].startswith("gauss"): if not values[0].startswith("gauss") or (len(values) != 6 and len(values != 8)):
raise exceptions.RuntimeError("'{0}' not a valid Finesse gauss command".format(text)) raise exceptions.RuntimeError("'{0}' not a valid Finesse gauss command".format(text))
name = values[1]
component = values[2]
node = values[3]
if values[0].endswith("**"):
if len(values) == 6:
print ""
elif len(values) == 8:
print ""
elif values[0].endswith("*"):
if len(values) == 6:
print ""
elif len(values) == 8:
print ""
else:
if len(values) == 6:
print ""
elif len(values) == 8:
print ""
class xaxis(Command): class xaxis(Command):
def __init__(self, scale, limits, param, steps, comp=None, axis_type="xaxis"): def __init__(self, scale, limits, param, steps, comp=None, axis_type="xaxis"):
...@@ -94,7 +117,7 @@ class xaxis(Command): ...@@ -94,7 +117,7 @@ class xaxis(Command):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "xaxis" and values[0] != "xaxis*": if values[0] != "xaxis" and values[0] != "xaxis*":
raise exceptions.RuntimeError("'{0}' not a valid Finesse xaxis command".format(text)) raise exceptions.RuntimeError("'{0}' not a valid Finesse xaxis command".format(text))
...@@ -125,7 +148,7 @@ class x2axis(xaxis): ...@@ -125,7 +148,7 @@ class x2axis(xaxis):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "x2axis" and values[0] != "x2axis*": if values[0] != "x2axis" and values[0] != "x2axis*":
raise exceptions.RuntimeError("'{0}' not a valid Finesse xaxis command".format(text)) raise exceptions.RuntimeError("'{0}' not a valid Finesse xaxis command".format(text))
......
...@@ -234,7 +234,7 @@ class mirror(AbstractMirrorComponent): ...@@ -234,7 +234,7 @@ class mirror(AbstractMirrorComponent):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "m" and values[0] != "m1" and values[0] != "m2": if values[0] != "m" and values[0] != "m1" and values[0] != "m2":
raise pkex.BasePyKatException("'{0}' not a valid Finesse mirror command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse mirror command".format(text))
...@@ -289,7 +289,7 @@ class beamSplitter(AbstractMirrorComponent): ...@@ -289,7 +289,7 @@ class beamSplitter(AbstractMirrorComponent):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "bs" and values[0] != "bs1" and values[0] != "bs2": if values[0] != "bs" and values[0] != "bs1" and values[0] != "bs2":
raise pkex.BasePyKatException("'{0}' not a valid Finesse beam splitter command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse beam splitter command".format(text))
...@@ -355,7 +355,7 @@ class space(Component): ...@@ -355,7 +355,7 @@ class space(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "s": if values[0] != "s":
raise pkex.BasePyKatException("'{0}' not a valid Finesse space command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse space command".format(text))
...@@ -465,7 +465,7 @@ class grating(Component): ...@@ -465,7 +465,7 @@ class grating(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0][0 : 2] != "gr": if values[0][0 : 2] != "gr":
raise pkex.BasePyKatException("'{0}' not a valid Finesse grating command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse grating command".format(text))
...@@ -533,7 +533,7 @@ class isolator(Component): ...@@ -533,7 +533,7 @@ class isolator(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "isol": if values[0] != "isol":
raise pkex.BasePyKatException("'{0}' not a valid Finesse isolator command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse isolator command".format(text))
...@@ -575,7 +575,7 @@ class lens(Component): ...@@ -575,7 +575,7 @@ class lens(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "lens": if values[0] != "lens":
raise pkex.BasePyKatException("'{0}' not a valid Finesse lens command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse lens command".format(text))
...@@ -650,7 +650,7 @@ class modulator(Component): ...@@ -650,7 +650,7 @@ class modulator(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
v = text.split(" ") v = text.split()
if v[0] != "mod": if v[0] != "mod":
raise pkex.BasePyKatException("'{0}' not a valid Finesse modulator command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse modulator command".format(text))
...@@ -706,7 +706,7 @@ class laser(Component): ...@@ -706,7 +706,7 @@ class laser(Component):
@staticmethod @staticmethod
def parseFinesseText(text): def parseFinesseText(text):
values = text.split(" ") values = text.split()
if values[0] != "l": if values[0] != "l":
raise pkex.BasePyKatException("'{0}' not a valid Finesse laser command".format(text)) raise pkex.BasePyKatException("'{0}' not a valid Finesse laser command".format(text))
......
...@@ -497,7 +497,7 @@ class kat(object): ...@@ -497,7 +497,7 @@ class kat(object):
for line in after_process: for line in after_process:
first = line.split(" ",1)[0] first = line.split(" ",1)[0]
if first == "gauss" or first == "gauss*" or first == "gauss**": if first == "gauss" or first == "gauss*" or first == "gauss**":
pykat.commands.gauss.parseFinesseText(line) pykat.commands.gauss.parseFinesseText(line, self)
elif (first == "scale"): elif (first == "scale"):
v = line.split() v = line.split()
if len(v) == 3: if len(v) == 3:
......
...@@ -86,7 +86,7 @@ class NodeNetwork(object): ...@@ -86,7 +86,7 @@ class NodeNetwork(object):
comps = (None,) * 2 comps = (None,) * 2
if len(comps) >= 2 and comps[0] != None and comps[1] != None: if len(comps) >= 2 and comps[0] != None and comps[1] != None:
raise pkex.BasePyKatException("Node is already connected to 2 components") raise pkex.BasePyKatException("Node '{0}' is already connected to 2 components ({1}, {2})".format(node.name, comps[0], comps[1]))
l = list(comps) l = list(comps)
...@@ -118,6 +118,7 @@ class NodeNetwork(object): ...@@ -118,6 +118,7 @@ class NodeNetwork(object):
return n return n
def removeNode(self, node): def removeNode(self, node):
if not isinstance(node,Node): if not isinstance(node,Node):
raise exceptions.ValueError("node argument is not of type Node") raise exceptions.ValueError("node argument is not of type Node")
...@@ -328,7 +329,10 @@ class Node(object): ...@@ -328,7 +329,10 @@ class Node(object):
class DumpNode(Node): class DumpNode(Node):
__total_dump_node_id = 0
def __init__(self): def __init__(self):
Node.__init__(self, 'dump', None, -1) DumpNode.__total_dump_node_id -= 1
Node.__init__(self, 'dump', None, DumpNode.__total_dump_node_id)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment