def __init__(self, dopant, N, ll, cint=constraints.AlwaysTrue()):
     self.ll = ll;
     sigmaabsFun = params.dyeDopants[dopant]["sigmaabs"];
     sigmaemiFun = params.dyeDopants[dopant]["sigmaemi"];
     self.sigmaabs = list(map(sigmaabsFun, ll)); # m^2
     self.sigmaemi = list(map(sigmaemiFun, ll)); # m^2
     self.alpha = list(map(lambda sigma: sigma*N, self.sigmaabs));
     self.sumEmi = sum(self.sigmaemi);
     tauRad = params.dyeDopants[dopant]["tauRad"];
     tauNR = params.dyeDopants[dopant]["tauNR"];
     self.quantumYield = tauNR/(tauRad+tauNR);
     self.N = N;
     self.constraint = cint;
 def __init__(self, interphase, cint = constraints.AlwaysTrue()):
     self.interphase = interphase;
     self.constraint = cint;
 def __init__(self, interphase, numLL, cint = constraints.AlwaysTrue()):
     self.interphase = interphase;
     self.finalPower = [0]*numLL;
     self.constraint = cint;
     self.counter = 0;
 def __init__(self, medium, ll, cint=constraints.AlwaysTrue()):
     self.alpha = list(map(params.media[medium]["att"], ll)); # m^-1
     self.constraint = cint;
 def __init__(self, interphase, mediumPlus, mediumMinus, ll, cint = constraints.AlwaysTrue()):
     self.interphase = interphase;
     self.Nplus = list(map(params.media[mediumPlus]["n"], ll));
     self.Nminus = list(map(params.media[mediumMinus]["n"], ll));
     self.constraint = cint;