From 324683e4d28858f33dae80f4750793044b478d9e Mon Sep 17 00:00:00 2001
From: Jameson Graef Rollins <jrollins@finestructure.net>
Date: Mon, 21 May 2018 16:07:25 -0700
Subject: [PATCH] suspension: clean up fiber type handling

---
 gwinc/suspension.py | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/gwinc/suspension.py b/gwinc/suspension.py
index c5e62ec..a17dc45 100644
--- a/gwinc/suspension.py
+++ b/gwinc/suspension.py
@@ -48,8 +48,8 @@ def suspQuad(f, ifo, material='Silica'):
     material used for test mass suspension stage.  steel used for all
     other stages.  Violin modes are included.
 
-    fiberType = suspension sub type 0 => round fibers, otherwise ribbons
-    
+    ifo.Suspension.FiberType should be: 0=round, 1=ribbons.
+
     hForce, vForce = transfer functions from the force on the TM to TM
     motion these should have the correct losses for the mechanical
     system such that the thermal noise is:
@@ -73,9 +73,6 @@ def suspQuad(f, ifo, material='Silica'):
     stages by K.Arai.
 
     """
-    # default arguments
-    fiberType = 0
-  
     # Assign Physical Constants
     g         = scipy.constants.g
     kB        = scipy.constants.k
@@ -171,14 +168,14 @@ def suspQuad(f, ifo, material='Silica'):
     N3      = ifo.Suspension.Stage[1].NWires  # Number of wires in stage 1
     N4      = ifo.Suspension.Stage[0].NWires  # Number of wires in stage 1
 
-    if ifo.Suspension.FiberType == 0:
+    if ifo.Suspension.FiberType == 0: # Round
         r_fib = ifo.Suspension.Fiber.Radius
         xsect = pi * r_fib**2     # cross-sectional area
         II4 = r_fib**4 * pi/4     # x-sectional moment of inertia
         mu_v = 2 / r_fib          # mu/(V/S), vertical motion
         mu_h = 4 / r_fib          # mu/(V/S), horizontal motion
         tau_si = 7.372e-2 * rho * C * (4*xsect/pi) / K # TE time constant
-    else:
+    elif ifo.Suspension.FiberType == 1: # Ribbon
         W   = ifo.Suspension.Ribbon.Width
         t   = ifo.Suspension.Ribbon.Thickness
         xsect = W * t
@@ -186,6 +183,8 @@ def suspQuad(f, ifo, material='Silica'):
         mu_v = 2 * (W + t)/(W*t)
         mu_h = (3 * N4 * W + t)/(N4*W + t)*2*(W+t)/(W*t)
         tau_si = (rho * C * t**2) / (K * pi**2)
+    else:
+        raise Exception("Unsupported suspension type: {}".format(ifo.Suspension.FiberType))
 
     # loss factor, last stage suspension, vertical
     phiv4   = phi_si * (1 + mu_v * ds)
-- 
GitLab