Ejemplo n.º 1
0
 def __init__(self, wavelen, duration, power, efficiency):
     self.wavelen = wavelen
     self.duration = duration
     self.power = power
     self.efficiency = efficiency
     
     self.effective_power = power * efficiency
     self.effective_pump_rate = energy.photon_count(wavelen, self.effective_power)
Ejemplo n.º 2
0
 def _rate(self, inversion):
     # at zero inversion, depopulation rate is undefined but approaches zero
     if inversion == 0.0:
         return 0.0
     active_medium = self.active_medium
     doping_agent = active_medium.doping_agent
     active_solid_angle = active_medium.active_solid_angle
     ln_gain = doping_agent.xsection * inversion * active_medium.length
     gain = math.exp(ln_gain)
     intensity = self._saturation_intensity * (active_solid_angle/4.0) * (gain-1.0)**1.5/(gain*ln_gain)**0.5
     power = 2.0 * active_medium.aperture * intensity
     rate = energy.photon_count(doping_agent.lasing_wavelen, power)
     # fluorescence in directions outside of the two active solid angles:
     rate += (1.0 - 2.0 * active_solid_angle / (4.0 * math.pi)) * self._decay_rate(inversion, doping_agent.laser_transition_probability)
     # fluorescence to other states:
     rate += self._decay_rate(inversion, doping_agent.nonlaser_transition_probability)
     return rate