tidy3d.BlochBoundary
tidy3d.BlochBoundary#
- class tidy3d.BlochBoundary#
Specifies a Bloch boundary condition along a single dimension.
- Parameters
name (Optional[str] = None) – Optional unique name for boundary.
bloch_vec (float) – Normalized component of the Bloch vector in units of 2 * pi / (size along dimension) in the background medium, along the dimension in which the boundary is specified.
Example
>>> bloch = BlochBoundary(bloch_vec=1)
Show JSON schema
{ "title": "BlochBoundary", "description": "Specifies a Bloch boundary condition along a single dimension.\n\nParameters\n----------\nname : Optional[str] = None\n Optional unique name for boundary.\nbloch_vec : float\n Normalized component of the Bloch vector in units of 2 * pi / (size along dimension) in the background medium, along the dimension in which the boundary is specified.\n\nExample\n-------\n>>> bloch = BlochBoundary(bloch_vec=1)", "type": "object", "properties": { "name": { "title": "Name", "description": "Optional unique name for boundary.", "type": "string" }, "type": { "title": "Type", "default": "BlochBoundary", "enum": [ "BlochBoundary" ], "type": "string" }, "bloch_vec": { "title": "Normalized Bloch vector component", "description": "Normalized component of the Bloch vector in units of 2 * pi / (size along dimension) in the background medium, along the dimension in which the boundary is specified.", "type": "number" } }, "required": [ "bloch_vec" ], "additionalProperties": false }
- attribute bloch_vec: float [Required]#
Normalized component of the Bloch vector in units of 2 * pi / (size along dimension) in the background medium, along the dimension in which the boundary is specified.
- classmethod from_source(source: Union[tidy3d.components.source.GaussianBeam, tidy3d.components.source.ModeSource, tidy3d.components.source.PlaneWave], domain_size: float, axis: Literal[0, 1, 2], medium: Optional[tidy3d.components.medium.Medium] = None) tidy3d.components.boundary.BlochBoundary #
- Set the Bloch vector component based on a given angled source and its center frequency.
Note that if a broadband angled source is used, only the frequency components near the center frequency will exhibit angled incidence at the expect angle. In this case, a narrowband source is recommended.
- Parameters
source (Union[
GaussianBeam
,ModeSource
,PlaneWave
]) – Angled source.domain_size (float) – Size of the domain (micron) in the direction normal to the Bloch boundary.
axis (int) – Axis normal to the Bloch boundary.
medium (
Medium
) – Background medium associated with the Bloch vector. Default: free space.
- Returns
Bloch boundary condition with wave vector defined based on the source angles and center frequency.
- Return type
Example
>>> from tidy3d import GaussianPulse, PlaneWave, inf >>> pulse = GaussianPulse(freq0=200e12, fwidth=20e12) >>> pw_source = PlaneWave( ... size=(inf,inf,0), source_time=pulse, direction='+', angle_theta=1.5, angle_phi=0.3) >>> bloch = BlochBoundary.from_source(source=pw_source, domain_size=5, axis=0)
- property bloch_phase: Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber]#
Returns the forward phase factor associated with bloch_vec.