class kqcircuits.simulations.double_pads_sim.DoublePadsSim(layout, **kwargs)[source]

Bases: kqcircuits.simulations.simulation.Simulation

Initialize a Simulation.

The initializer parses parameters, creates a top cell, and then calls self.build to create the simulation geometry, followed by self.create_simulation_layers to process the geometry so it is ready for exporting.


layout – the layout on which to create the simulation

Keyword Arguments


Any parameter can be passed as a keyword argument.

In addition, cell can be passed as keyword argument. If cell is supplied, it will be used as the top cell for the simulation. Otherwise, a new cell will be created. See Simulation.from_cell for creating simulations from existing cells.


Build simulation geometry.

This method is to be overridden, and the overriding method should create the geometry to be simulated and add any ports to self.ports.

ports: List[kqcircuits.simulations.port.Port]
PCell parameters:

  • qubit_face (List) - Bottom or top face qubit position, default=['1t1', '2b1']

  • internal_island_ports (Boolean) - Add InternalPorts on both islands. Use for capacitive simulations., default=False

  • junction_inductance (List) - Qubit junction inductance, default=1.1497e-08, unit=H

  • junction_capacitance (List) - Qubit junction capacitance, default=1e-16, unit=F

  • a (Double) - Width of center conductor, default=10, unit=μm

  • b (Double) - Width of gap, default=6, unit=μm

  • n (Int) - Number of points on turns, default=64

  • r (Double) - Turn radius, default=100, unit=μm

  • margin (Double) - Margin of the protection layer, default=5, unit=μm

  • face_ids (List) - Chip face IDs list, default=['1t1', '2b1', '1b1', '2t1']

  • display_name (String) - Name displayed in GUI (empty for default), default=

  • protect_opposite_face (Boolean) - Add opposite face protection too, default=False

  • mirror_squid (Boolean) - Mirror SQUID by its Y axis, default=False

  • junction_total_length (Double) - Simulation junction total length, default=33, unit=µm

  • junction_type (String) - Junction Type, default=Manhattan, choices=['NoSquid', 'Manhattan', 'Manhattan Single Junction', 'Sim']

  • junction_width (Double) - Junction width (only used for code generated element), default=0.02, unit=μm

  • junction_parameters (String) - Extra Junction Parameters, default={}

  • _junction_parameters (String) - Previous state of *_parameters, default={}

  • loop_area (Double) - Loop area, default=100, unit=μm^2

  • fluxline_type (String) - Fluxline Type, default=Fluxline Standard, choices=['none', 'Fluxline Standard', 'Fluxline Straight']

  • fluxline_gap_width (Double) - Fluxline gap width, default=2, unit=μm

  • fluxline_parameters (String) - Extra Fluxline Parameters, default={}

  • _fluxline_parameters (String) - Previous state of *_parameters, default={}

  • ground_gap (List) - Width, height of the ground gap (µm, µm), default=[700, 700]

  • ground_gap_r (Double) - Ground gap rounding radius, default=50, unit=μm

  • coupler_extent (List) - Width, height of the coupler (µm, µm), default=[150, 20]

  • coupler_r (Double) - Coupler rounding radius, default=10, unit=μm

  • coupler_a (Double) - Width of the coupler waveguide center conductor, default=10, unit=μm

  • coupler_offset (Double) - Distance from first qubit island to coupler, default=20, unit=μm

  • squid_offset (Double) - Offset between SQUID center and qubit center, default=0, unit=μm

  • island1_extent (List) - Width, height of the first qubit island (µm, µm), default=[500, 100]

  • island1_r (Double) - First qubit island rounding radius, default=50, unit=μm

  • island2_extent (List) - Width, height of the second qubit island (µm, µm), default=[500, 100]

  • island2_r (Double) - Second qubit island rounding radius, default=50, unit=μm

  • drive_position (List) - Coordinate for the drive port (µm, µm), default=[-450, 0]

  • island1_taper_width (Double) - First qubit island tapering width on the island side, default=10, unit=µm

  • island1_taper_junction_width (Double) - First qubit island tapering width on the junction side, default=10, unit=µm

  • island2_taper_width (Double) - Second qubit island tapering width on the island side, default=10, unit=µm

  • island2_taper_junction_width (Double) - Second qubit island tapering width on the junction side, default=10, unit=µm

  • island_island_gap (Double) - Island to island gap distance, default=70, unit=µm

  • finger_overshoot (Double) - Length of fingers after the junction., default=1.0, unit=μm

  • include_base_metal_gap (Boolean) - Include base metal gap layer, default=True

  • shadow_margin (Double) - Shadow layer margin near the the pads, default=1.0, unit=μm

  • compact_geometry (Boolean) - Compact geometry for metal addition., default=False

  • separate_junctions (Boolean) - Junctions to separate layer., default=False

  • offset_compensation (Double) - Junction lead offset from junction width, default=0, unit=μm

  • mirror_offset (Boolean) - Move the junction lead offset to the other lead, default=False

  • finger_overlap (Double) - Length of fingers inside the pads., default=0.2, unit=μm