tidy3d.BoundarySpec#
- class BoundarySpec[source]#
- Bases: - Tidy3dBaseModel- Specifies boundary conditions on each side of the domain and along each dimension. - Parameters:
- x (Boundary = Boundary(plus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), minus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), type='Boundary')) β Boundary condition on the plus and minus sides along the x axis. If - None, periodic boundaries are applied. Default will change to PML in 2.0 so explicitly setting the boundaries is recommended.
- y (Boundary = Boundary(plus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), minus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), type='Boundary')) β Boundary condition on the plus and minus sides along the y axis. If - None, periodic boundaries are applied. Default will change to PML in 2.0 so explicitly setting the boundaries is recommended.
- z (Boundary = Boundary(plus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), minus=PML(name=None,, type='PML',, num_layers=12,, parameters=PMLParams(sigma_order=3,, sigma_min=0.0,, sigma_max=1.5,, type='PMLParams',, kappa_order=3,, kappa_min=1.0,, kappa_max=3.0,, alpha_order=1,, alpha_min=0.0,, alpha_max=0.0)), type='Boundary')) β Boundary condition on the plus and minus sides along the z axis. If - None, periodic boundaries are applied. Default will change to PML in 2.0 so explicitly setting the boundaries is recommended.
 
 - Notes - This - BoundarySpecobject defines the boundary conditions applied on each of the 6 domain edges, and is provided as an input to the simulation.- A - BoundarySpecconsists of three- Boundaryobjects, each defining the boundaries on the plus and minus side of each dimension. In most cases, one just wants to specify whether there are absorbing- PMLlayers along any of the- x,- y,- zdimensions. By default,- tidy3dsimulations have- PMLboundaries on all sides.- If we want to explicitly set the boundaries, we can use the - tidy3d.BoundarySpec.all_sidesmethod. This can be used to set any type of boundary condition on all sides of the simulation. We can also set- PMLon specified sides only by calling the- tidy3d.BoundarySpec.pmlmethod, e.g.- BoundarySpec.pml( x=False, y=False, z=False). This will put- PMLalong the dimensions defined as- True, and set periodic boundaries along the other dimensions.- See also - Boundary
- Boundary conditions at the minus and plus extents along a dimension. 
- Notebooks
- Lectures
 - Attributes - Return a copy of the instance where all Bloch vectors are multiplied by -1. - Returns edge-wise boundary conditions along each dimension for internal use. - Methods - all_sides(boundary)- Set a given boundary condition on all six sides of the domain - pec([x,Β y,Β z])- PEC along specified directions - pmc([x,Β y,Β z])- PMC along specified directions - pml([x,Β y,Β z])- PML along specified directions - x#
 - y#
 - z#
 - classmethod pml(x=False, y=False, z=False)[source]#
- PML along specified directions - Parameters:
- x (bool = False) β Toggle whether to set a default PML on both plus and minus sides along the x axis. 
- y (bool = False) β Toggle whether to set a default PML on both plus and minus sides along the y axis. 
- z (bool = False) β Toggle whether to set a default PML on both plus and minus sides along the z axis. 
 
 - Example - >>> boundaries = BoundarySpec.pml(y=True) 
 - classmethod pec(x=False, y=False, z=False)[source]#
- PEC along specified directions - Parameters:
- x (bool = False) β Toggle whether to set a PEC condition on both plus and minus sides along the x axis. 
- y (bool = False) β Toggle whether to set a PEC condition on both plus and minus sides along the y axis. 
- z (bool = False) β Toggle whether to set a PEC condition on both plus and minus sides along the z axis. 
 
 - Example - >>> boundaries = BoundarySpec.pec(x=True, z=True) 
 - classmethod pmc(x=False, y=False, z=False)[source]#
- PMC along specified directions - Parameters:
- x (bool = False) β Toggle whether to set a PMC condition on both plus and minus sides along the x axis. 
- y (bool = False) β Toggle whether to set a PMC condition on both plus and minus sides along the y axis. 
- z (bool = False) β Toggle whether to set a PMC condition on both plus and minus sides along the z axis. 
 
 - Example - >>> boundaries = BoundarySpec.pmc(x=True, z=True) 
 - classmethod all_sides(boundary)[source]#
- Set a given boundary condition on all six sides of the domain - Parameters:
- boundary ( - BoundaryEdge) β Boundary condition to apply on all six sides of the domain.
 - Example - >>> boundaries = BoundarySpec.all_sides(boundary=PML()) 
 - property to_list#
- Returns edge-wise boundary conditions along each dimension for internal use. 
 - __hash__()#
- Hash method. 
 - property flipped_bloch_vecs#
- Return a copy of the instance where all Bloch vectors are multiplied by -1.