Beispiel #1
0
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
#
# i-depot BBIE 7396, 7556, 7748
#
# Contact: [email protected]

from technologies.si_photonics.ipkiss.default import *
from ipkiss.all import *

from dircoup import BentDirectionalCoupler
from mzi import MZI, MziArmWaveguide, MZIWaveguides

my_splitter = BentDirectionalCoupler(coupler_length=10.0, bend_angle=30.0)
my_combiner = BentDirectionalCoupler(coupler_length=8.0, bend_angle=30.0)

# Example 1:
# construct an MZI manually, by defining 2 arms
#
my_combiner_transform = Translation((50, 0))
my_arm1 = MziArmWaveguide(splitter_port=my_splitter.ports["E1"],
                          combiner_port=my_combiner.ports.transform_copy(
                              my_combiner_transform)["W1"])
my_arm2 = MziArmWaveguide(splitter_port=my_splitter.ports["E0"],
                          combiner_port=my_combiner.ports.transform_copy(
                              my_combiner_transform)["W0"],
                          route_south=True,
                          extra_length=40.0)
my_mzi = MZI(arm1=my_arm1,
Beispiel #2
0
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
#
# i-depot BBIE 7396, 7556, 7748
#
# Contact: [email protected]

from technologies.si_photonics.ipkiss.default import *
from ipkiss.all import *

# load the file with our RingResonator component
from dircoup import DirectionalCoupler, BentDirectionalCoupler

my_dircoup_1 = DirectionalCoupler(coupler_length=10.0)
my_dircoup_2 = BentDirectionalCoupler(coupler_length=8.0,
                                      bend_angle=30.0,
                                      bend_radius=10.0)

# create a dumb structure to collect our different directional couplers
my_group = Structure(name="Group")
my_group += SRef(reference=my_dircoup_1, position=(0, 0))
my_group += SRef(reference=my_dircoup_2, position=(0, 15))

my_group.write_gdsii("dircoups.gds")