gplugins.tidy3d.modes.Waveguide#
- class gplugins.tidy3d.modes.Waveguide(*, wavelength: float | Sequence[float] | Any = None, core_width: 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)[source]#
Waveguide Model.
All dimensions must be specified in μm (1e-6 m).
- Parameters:
wavelength – wavelength in free space.
core_width – waveguide core width.
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. - td.Medium: tidy3d medium. - 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_path – Optional path to the cache directory. None disables cache.
overwrite – overwrite cache.
________________________________________________ ^ ¦ ¦ clad_thickness |<--core_width-->| ¦ ¦ .________________. _v_ | ^ | <-side_margin->| ¦ | | ¦ | _______________' ¦ '_______________ ^ core_thickness ¦ ¦ slab_thickness ¦ ¦ ¦ v v ________________________________________________ ^ ¦ box_thickness ¦ v ________________________________________________
- __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.
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.
wavelength
core_width
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