Release Notes
0.0.7-b5: December 12, 2023
Fixed bugs with conformal layers.
Added arbitrary number of masks for each shape.
Added input parameters to shape:
mask_offset
andtone
. Eithermask
,mask_offset
, or both can be a list. The length of each parameter will be matched by padding with the last value. Settings fromtone
andetch
are applied to allmask
/mask_offset
values.Added etch functionality to conformal layers.
Fixed the bug the made incorrect mode list ordering.
Added the function
orthogonality
to test the othogonality of the mode list. This is helpful to determine if the mode list is sufficiently accurate.Added the input parameter
label
toget()
, so users can extract data from labeled datasets.The
label()
function now saves all settings and field data under in a Python dictionary or a MATLAB structure array calleddataset_LABEL
.Changed the default operation in
confinement()
to only include areas of a shape that define the refractive index, not including areas that are overlapped by other shapes with higher priority.Added a boolean option
ignore_priority
toconfinement()
that toggles ignoring overlapping shapes with higher priority.Added user-accessible variables
shape_materials
,priority_indices
, andshape_vertices
.Added support for iPython.
Added functionality to use an existing material name to define a custom material. This will override the EMode database material during the session.
FDM()
now takes the input parameterlabel
to automatically save the simulation result as a labaled dataset.Updated
group_index()
so it will run without runningFDM()
first.Added ‘min’ as an option for
slice_op
parameter inscattering()
.Shapes and associated properties are now saved as dictionaries. This also includes the scattering loss results.
Interfacial roughness and correlation length values are now specified in the shape parameters:
correlation_length
(aliasLc_nm
) androughness_rms
(aliasst_dev_nm
).Added the new function
reset()
to clear all shapes, reset settings, or both.Shape argument
position
now accepts a single float to specify only the x-position and automatically place the y-position of a planar layer on top of the previous layer.Added boundary conditions options ‘TE-h’, ‘TE-v’, ‘TM-h’, and ‘TM-v’ to specify only horizontal or vertical symmetry for TE or TM modes.
Fixed bugs with MATLAB connection: default
file_type
is now ‘.mat’ forclose()
, and ‘.eph’ file is preserved aftersave()
.
0.0.6-b4: March 13, 2023
Added an option to remove the legend from
plot
.Now planar layers do not add fill material by default, only if
fill_refractive_index
is defined.Updated meshing algorithm to fix bugs at shape interfaces.
plot
now shows positive and negative field values on the colorbar.Fixed error when setting
wavelength
units to ‘um’ inadd_material
.Added options to improve sidewall scattering accuracy. See details in the documentation for the
scattering
function.
0.0.5-b3: February 3, 2023
Scattering loss now works with angled sidewalls.
For
scattering
, the default formode
is ‘all’.Added imaginary index capability to
add_material
.Bend mode solver updated so field patterns and loss are now more accurate.
Switched from uniaxial pml to stretched-coordinate pml.
User-defined materials now override EMode database materials.
plot
now shows shapes with the same refractive index in a different color.Added capability to solve for the magnetic field instead of the electric field. See the
field_to_solve
parameter insettings
.Removed the field_calc option from
FDM
. Now the fields will always be available, but they will not be stored in memory. This reduces the memory usage by about 7x.Saved .eph files do not contain the raw field data by default. This can be controlled with the
save_all_fields
parameter insave
andclose
.material_explorer
now shows user added materials.