Module Configuration

photonforge.config

Global configuration for the module.

Important

PhotonForge caches structures to improve efficiency, so config.grid and config.tolerance should only be set at the start of the session to avoid unexpected behavior.

Attributes

config.default_kwargs = {}

Default keyword arguments used by parametric components and the Tidy3DModel

Examples:

Set a default radius for all components that use a radius parameter:

>>> config.default_kwargs["radius"] = 50

Set a default Euler fraction only for the parametric.s_bend() component:

>>> config.default_kwargs["s_bend"] = {"euler_fraction": 0.5}

Set a default run time specification for Tidy3D models:

>>> config.default_kwargs["tidy3d"] = {"run_time": 1.0e-12}
config.default_mesh_refinement = 20.0

Default mesh refinement used in Tidy3D grids.

config.default_technology (initially unset)

Default technology for new components.

config.default_time_steppers = {'*': SMatrixTimeStepper(pole_residue_matrix=None, pole_residue_reference='baseband', s_matrix_kwargs={}, carrier_frequency=None, initial_poles=(), min_poles=0, max_poles=6, loss_factor=0.001, rms_error_tolerance=0.0001, max_iterations=100, max_stale_iterations=3, passive=True, feedthrough=None, delays='auto'), 'CircuitModel': CircuitTimeStepper(mesh_refinement=None, max_iterations=100, abs_tolerance=1e-08, rel_tolerance=1e-05, max_threads=8, verbose=True, require_native=False), 'PolarizationModeDispersionModel': PolarizationModeDispersionTimeStepper(fir_taps=None)}

Default time steppers for models without a time stepper. Each value is a TimeStepper instance that is used by default when Model.time_stepper() is unset. The keys are Model names to which the defaults apply. A key "*" is used as fallback default.

config.grid = 0.001

Grid for snapping vertices after transformations. See also snap_to_grid().

config.tolerance = 0.005

Tolerance for geometry discretization (e.g. setting the number of straight segments that make up a curve).

config.svg_ports = True

Show ports in component SVG representations.

config.svg_port_names = True

Show port names in component SVG representations.

config.svg_labels = True

Show labels in component SVG representations.

config.svg_label_scaling = -1.0

Label scaling (positive values scale proportionally to Label.scaling and negative values are used as absolute factors).

config.svg_virtual_connections = True

Show virtual connections in component SVG representations.

config.svg_reference_depth = -1

Depth of references to display. References below this depth are shown as bounding boxes. A negative value removes the limit.

config.svg_reference_labels = False

Show reference labels in component SVG representations.

config.svg_reference_names = False

Show reference names in component SVG representations.

config.svg_reference_ports = False

Show reference ports in component SVG representations.

config.svg_reference_port_names = False

Show reference port names in component SVG representations.

config.use_local_mode_solver = False

Flag controlling the use of Tidy3D’s local ModeSolver instead of the remote one. Local mode solving is only available when tidy3d_extras is installed and subpixel is enabled.

config.compile_circuit_time_steppers = True

Compile circuit time steppers with numba when it is installed (pip install photonforge[numba]) and native time stepping is licensed. Other circuit features are not affected. Kept by tidy3d’s configuration manager as plugins.photonforge.compile_circuit_time_steppers.

config.klayout_executable = None

KLayout executable used by drc_check() and lvs_check(). When unset, klayout is searched in PATH and in common install locations. Kept by tidy3d’s configuration manager as plugins.photonforge.klayout_executable.

config.calibre_executable = None

Calibre executable used by drc_check(). When unset, calibre is searched in PATH, then in $CALIBRE_HOME/bin and $MGC_HOME/bin. Kept by tidy3d’s configuration manager as plugins.photonforge.calibre_executable.

config.default_drc_lvs_engine = None

Engine used by drc_check() and lvs_check() when their engine argument is None: "klayout" or "calibre". Calibre runs DRC only, so lvs_check() skips it. When unset, the first engine found is used: KLayout, then Calibre for DRC. Kept by tidy3d’s configuration manager as plugins.photonforge.default_drc_lvs_engine.

Constants

photonforge.C_0 = 2.99792458e14

Speed of light in vacuum (in µm/s)