예제 #1
0

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),
예제 #2
0
        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]
예제 #3
0
            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,
예제 #4
0
        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
예제 #5
0
파일: cw.py 프로젝트: gitter-badger/optcom
        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)
예제 #6
0
        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]