tidy3d.BlochBoundary#
- class BlochBoundary[source]#
- Bases: - BoundaryEdge- 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) - See also - Attributes - Returns the forward phase factor associated with - bloch_vec.- Methods - from_source(source, domain_size, axis[, medium])- Set the Bloch vector component based on a given angled source and its center frequency. - bloch_vec#
 - property bloch_phase#
- Returns the forward phase factor associated with - bloch_vec.
 - classmethod from_source(source, domain_size, axis, medium=None)[source]#
- 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=0.2, angle_phi=0.3) >>> bloch = BlochBoundary.from_source(source=pw_source, domain_size=5, axis=0) 
 - __hash__()#
- Hash method.