kqcircuits.simulations.cross_section_simulation

class kqcircuits.simulations.cross_section_simulation.CrossSectionSimulation(layout, **kwargs)[source]

Bases: object

Class for co-planar waveguide cross-section simulations.

This class is intended to be subclassed by a specific simulation implementation; The subclass should implement the method ‘build’ which defines the simulation geometry and material properties.

Layer names in cross-section geometry don’t need to obey KQC default layers. The layers use following name coding: - Layer name ‘vacuum’ is reserved for vacuum material. The vacuum layer can be left empty; then the empty space inside the ‘box’ is automatically filled with vacuum. - All layers that include word ‘signal’ are considered as signal metals. Different signal layers are considered as separate signals so that the result matrices has row and column for each signal layer. The order of signals is the same as where they are introduced by calling ‘get_sim_layer’ function. - All layers that include word ‘ground’ are considered as ground metal. - Any other layer is considered as dielectric. The permittivity can be set using the ‘set_permittivity’ function.

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.

LIBRARY_NAME = None
classmethod get_schema(noparents=False, abstract_class=None)

Returns the combined parameters of the class “cls” and all its ancestor classes.

Parameters:
  • noparents – If True then only return the parameters of “cls”, not including ancestors.

  • abstract_class – Return parameters up to this abstract class if specified.

abstract build()[source]

Build simulation geometry.

This method is to be overridden, and the overriding method should create the geometry to be simulated.

process_layers()[source]

Limit layers by self.box and create vacuum layer if it doesn’t exist.

register_cell_layers_as_sim_layers()[source]

Takes all layers that contain any geometry and registers them as simulation layers

This method resets the internal simulation layer dictionary.

get_sim_layer(layer_name)[source]

Returns layer of given name. If layer doesn’t exist, a new layer is created.

set_permittivity(layer_name, permittivity)[source]

Sets permittivity for layer of given name.

get_parameters()[source]

Return dictionary with all parameters and their values.

get_dict_by_layers(param_name)[source]

Helper function to cast a parameter given as a list of same length as the face stack into a dict of the format simulation_layer -> value

get_layers()[source]
get_simulation_data()[source]

Return the simulation data in dictionary form.

Returns:

dictionary of relevant parameters for simulation

PCell parameters:

  • london_penetration_depth (List) - London penetration depth is implemented for one signal simulation only, default=0.0, unit=m

  • xsection_source_class (None) - Class from which the simulation was generated using the XSection tool. Used to get the schema., default=None

  • ignore_process_layers (Boolean) - Ignores automatic function call of process_layers, default=False

  • box (Shape) - Boundary box, default=(0,0;10000,10000)

  • name (String) - Name of the simulation, default=Simulation

  • extra_json_data (None) - This field may be used to store ‘virtual’ parameters useful for your simulations, default=None

../_images/kqcircuits.simulations.cross_section_simulation.png