kqcircuits.simulations.export.cross_section.cut_simulation
- class kqcircuits.simulations.export.cross_section.cut_simulation.CutSimulation(layout, **kwargs)[source]
Bases:
CrossSectionSimulation
Class for cross-section simulations with geometry generated from a 3D Simulation.
By default, renames the layers such that partition regions of source simulation are basically ignored. The
region_map
can be used to define new partition regions or copy partition regions from source simulation.Adds interface layers ‘ma’, ‘ms’, and ‘sa’ if
tls_layer_thickness
andtls_layer_material
are set properly.Initialize a CrossSectionSimulation.
The initializer parses parameters, creates a top cell, and then calls self.build to create the simulation geometry.
- Parameters:
layout – the layout on which to create the simulation
- Keyword Arguments:
**kwargs – Any parameter can be passed as a keyword argument.
- build()[source]
Build simulation geometry.
This method is to be overridden, and the overriding method should create the geometry to be simulated.
- insert_cross_section_layers()[source]
Insert cross sections from each layer of
self.source_sim
intoself.layers
. Thicken sheet metals byself.metal_height
.
- insert_sheet_metals(sheet_metals: dict[str, dict[str, Any]])[source]
Inserts sheet metal layers thickened by
self.metal_height
on vacuum side.
- get_partition_regions() dict[str, Region] [source]
Return partition regions defined by
self.region_map
.- Returns:
dictionary containing the layer name suffixes as keys and regions as values.
- apply_partition_regions(regions: dict[str, Region])[source]
Partition every non-metal layer into regions.
- Parameters:
regions – dictionary containing the layer name suffixes as keys and regions as values.
- regroup_layers()[source]
Group and rename layers such that a layer name doesn’t start other layer name.
For example, if there are two source layers ‘vacuum’, ‘vacuum_part’, then both are merged into ‘vacuum’ layer.
- get_metals_vacuums_substrates() tuple[list[str], list[str], list[str]] [source]
Return layer names for metals, vacuums, and substrates.
source_sim (None) - Instance of Simulation subclass from which the cross section is generated, default=
None
cut_start (Shape) - Start point of the cut segment, default=
0,0
cut_end (Shape) - End point of the cut segment, default=
100,0
cut_bottom (Double) - Bottom of the cross section, default=
-1e+30
, unit=µm
cut_top (Double) - Top of the cross section, default=
1e+30
, unit=µm
region_map (String) - The region definition is a list of pya.DBox or string instances. Use string instance to copy partition region from the source simulation., default=
{}
metal_height (Double) - Thickness of metal layer if sheet in the source simulation., default=
0.2
, unit=µm
tls_layer_thickness (List) - Thickness of TLS interface layers (MA, MS, and SA, respectively), default=
[0.0]
, unit=µm
tls_layer_material (List) - Use only keywords introduced in material_dict. Valid only if tls_sheet_approximation=False., default=
['vacuum', 'silicon', 'silicon']
