gplugins.tidy3d.modes.WaveguideCoupler

gplugins.tidy3d.modes.WaveguideCoupler#

class gplugins.tidy3d.modes.WaveguideCoupler(*, wavelength: float | Sequence[float] | Any = None, core_width: tuple[float, float], core_thickness: float, core_material: float | int | str | Medium | CustomMedium | PoleResidue | tuple[float, float] | tuple[str, str], clad_material: float | int | str | Medium | CustomMedium | PoleResidue | tuple[float, float] | tuple[str, str], box_material: float | int | str | Medium | CustomMedium | PoleResidue | tuple[float, float] | tuple[str, str] | None = None, slab_thickness: float = 0.0, clad_thickness: float | None = None, box_thickness: float | None = None, side_margin: float | None = None, sidewall_angle: float = 0.0, sidewall_thickness: float = 0.0, sidewall_k: float = 0.0, surface_thickness: float = 0.0, surface_k: float = 0.0, bend_radius: float | None = None, num_modes: int = 2, group_index_step: bool | float = False, precision: Literal['single', 'double'] = 'double', grid_resolution: int = 20, max_grid_scaling: float = 1.2, cache_path: str | Path | None = PosixPath('/home/runner/.gdsfactory/modes'), overwrite: bool = False, model_config: dict = {'extra': 'forbid'}, gap: float)[source]#

Waveguide coupler Model.

All dimensions must be specified in μm (1e-6 m).

Parameters:
  • wavelength – wavelength in free space.

  • core_width – with of each core.

  • gap – inter-core separation.

  • core_thickness – waveguide core thickness (height).

  • core_material – core material. One of: - string: material name. - float: refractive index. - float, float: refractive index real and imaginary part. - function: function of wavelength.

  • clad_material – top cladding material.

  • box_material – bottom cladding material.

  • slab_thickness – thickness of the slab region in a rib waveguide.

  • clad_thickness – thickness of the top cladding.

  • box_thickness – thickness of the bottom cladding.

  • side_margin – domain extension to the side of the waveguide core.

  • sidewall_angle – angle of the core sidewall w.r.t. the substrate normal.

  • sidewall_thickness – thickness of a layer on the sides of the waveguide core to model side-surface losses.

  • sidewall_k – absorption coefficient added to the core material index on the side-surface layer.

  • surface_thickness – thickness of a layer on the top of the waveguide core and slabs to model top-surface losses.

  • surface_k – absorption coefficient added to the core material index on the top-surface layer.

  • bend_radius – radius to simulate circular bend.

  • num_modes – number of modes to compute.

  • group_index_step – if set to True, indicates that the group index must also be calculated. If set to a positive float it defines the fractional frequency step used for the numerical differentiation of the effective index.

  • precision – computation precision.

  • grid_resolution – wavelength resolution of the computation grid.

  • max_grid_scaling – grid scaling factor in cladding regions.

  • cache – controls the use of cached results.

_____________________________________________________________

        ._________________.       ._________________.
        |                 |       |                 |
        |<-core_width[0]->|       |<-core_width[1]->|
        |                 |<-gap->|                 |
________'                 '_______'                 '________

_____________________________________________________________



_____________________________________________________________
__init__(**data: Any) None#

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

Methods

__init__(**data)

Create a new model by parsing and validating input data from keyword arguments.

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy(*[, include, exclude, update, deep])

Duplicate a model, optionally choose which fields to include, exclude and change.

coupling_length([power_ratio])

Coupling length calculated from the effective mode indices.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

from_orm(obj)

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

overlap(waveguide[, conjugate])

Calculate the mode overlap between waveguide modes.

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

plot_field(field_name[, value, mode_index, ...])

Plot the selected field distribution from a waveguide mode.

plot_grid()

Plot the waveguide grid.

plot_index(**kwargs)

Plot the waveguide index distribution.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate(value)

Attributes

filepath

Cache file path

fraction_te

Fraction of TE polarization.

fraction_tm

Fraction of TM polarization.

index

Refractive index distribution on the simulation domain.

loss_dB_per_cm

Propagation loss for computed modes in dB/cm.

mode_area

Effective mode area.

n_eff

Effective propagation index.

n_group

Group index.

waveguide

Tidy3D waveguide used by this instance.

core_width

gap

wavelength

core_thickness

core_material

clad_material

box_material

slab_thickness

clad_thickness

box_thickness

side_margin

sidewall_angle

sidewall_thickness

sidewall_k

surface_thickness

surface_k

bend_radius

num_modes

group_index_step

precision

grid_resolution

max_grid_scaling

cache_path

overwrite