if __name__ == "__main__": import sys import numpy as np from scipy import interpolate import optcom.utils.plot as plot import optcom.layout as layout import optcom.components.gaussian as gaussian import optcom.domain as domain from optcom.utils.utilities_user import temporal_power, spectral_power,\ CSVFit lt = layout.Layout(domain.Domain(samples_per_bit=512,bit_width=20.0)) pulse = gaussian.Gaussian(channels=2, peak_power=[10.0, 10e-1], width=[1.0, 5.0], center_lambda=[1050.0, 1048.0]) gamma_data = CSVFit('./data/gamma_test.txt') fiber = Fiber(length=.10, method="ssfm_symmetric", alpha=[0.046], alpha_order=4, beta_order=4, gamma=1.5, nl_approx=False, ATT=True, DISP=True, SPM=True, XPM=False, SS=False, RS=False, approx_type=1, steps=1000, medium='sio2') lt.link((pulse[0], fiber[0])) lt.run(pulse) x_datas = [pulse.fields[0].nu, fiber.fields[1].nu, pulse.fields[0].time, fiber.fields[1].time] y_datas = [spectral_power(pulse.fields[0].channels),
return output_ports, output_fields if __name__ == "__main__": import random import optcom.utils.plot as plot import optcom.layout as layout import optcom.components.gaussian as gaussian import optcom.domain as domain from optcom.utils.utilities_user import temporal_power pulse = gaussian.Gaussian(peak_power=[10.0]) lt = layout.Layout() arms = 3 ratios = [round(random.uniform(0, 1), 2) for i in range(arms)] divider = IdealDivider(arms=arms, ratios=ratios, save=True) lt.link((pulse[0], divider[0])) lt.run(pulse) plot_titles = ([ "Original pulse", "Pulses coming out of the {} with " "ratios {}".format(default_name, str(ratios)) ]) plot_groups: List[int] = [0] + [1 for i in range(arms)] plot_labels: List[Optional[str]] = [None]
field.append(res, Domain.lambda_to_omega(self.center_lambda[i])) output_fields.append(field) output_ports.append(0) return output_ports, output_fields if __name__ == "__main__": import optcom.utils.plot as plot import optcom.layout as layout import optcom.domain as domain from optcom.utils.utilities_user import temporal_power, spectral_power lt = layout.Layout(Domain(samples_per_bit=4096)) channels = 3 center_lambda = [1552.0, 1549.0, 1596.0] position = [0.3, 0.5] width = [5.3, 6] peak_power = [1e-3, 2e-3, 6e-3] bit_rate = [0.03, 0.04] offset_nu = [1.56, -1.6] chirp = [0.5, 0.1] init_phi = [1.0, 0.0] sech = Sech(channels=channels, center_lambda=center_lambda, position=position, width=width,
return self.output_ports(ports), output_fields if __name__ == "__main__": import numpy as np import optcom.utils.plot as plot import optcom.layout as layout import optcom.components.cw as cw import optcom.components.gaussian as gaussian import optcom.domain as domain from optcom.utils.utilities_user import temporal_power, spectral_power,\ CSVFit lt = layout.Layout( domain.Domain(samples_per_bit=512, bit_width=5.0, memory_storage=1.0)) nbr_ch_s = 3 signal_width = [0.1, 0.2, 0.1] or_p = 1e-4 pulse = gaussian.Gaussian(channels=nbr_ch_s, peak_power=[1.6 * or_p, 1.3 * or_p, 1.2 * or_p], width=signal_width, center_lambda=[1030.0, 1025.0, 1019.0]) nbr_ch_p = 2 #pump = gaussian.Gaussian(channels=nbr_ch_p, peak_power=[45.0, 35.0], # center_lambda=[940.0, 977.0], width=[7.0, 6.0]) pump = cw.CW(channels=nbr_ch_p, peak_power=[4 * or_p, 3 * or_p], center_lambda=[976.0, 940.0]) steps = 500
output_fields.append(field) output_ports.append(0) return output_ports, output_fields if __name__ == "__main__": import optcom.utils.plot as plot import optcom.layout as layout import optcom.domain as domain from optcom.utils.utilities_user import temporal_power, spectral_power,\ phase lt = layout.Layout(Domain(samples_per_bit=4096)) channels = 3 center_lambda = [1552.0, 1549.0, 1596.0] peak_power = [1e-3, 2e-3, 6e-3] offset_nu = [0.0, 1.56, -1.6] init_phi = [1.0, 1.0, 0.0] cw = CW(channels=channels, center_lambda=center_lambda, peak_power=peak_power, offset_nu=offset_nu, init_phi=init_phi, save=True) lt.run(cw)
return self.output_ports(ports), output_fields if __name__ == "__main__": import random import optcom.utils.plot as plot import optcom.layout as layout import optcom.components.gaussian as gaussian import optcom.domain as domain from optcom.utils.utilities_user import temporal_power from optcom.effects.coupling import Coupling lt = layout.Layout(domain.Domain(bit_width=1.0, samples_per_bit=1024)) Lambda = 1030.0 pulse_1 = gaussian.Gaussian(channels=1, peak_power=[1.0, 0.5], width=[.1], center_lambda=[Lambda]) pulse_2 = gaussian.Gaussian(channels=2, peak_power=[1.0, 0.5], width=[.1], center_lambda=[1050.0]) steps = int(1e3) alpha = [[0.046], [0.046]] beta = [[1e5, 10.0, -0.0], [1e5, 10.0, -0.0]] gamma = [4.3, 4.3]