Skip to content

Instantly share code, notes, and snippets.

@apple-phi
Created June 12, 2025 18:58
Show Gist options
  • Select an option

  • Save apple-phi/2d583e2a4352f0dd9a10458b79c14448 to your computer and use it in GitHub Desktop.

Select an option

Save apple-phi/2d583e2a4352f0dd9a10458b79c14448 to your computer and use it in GitHub Desktop.
Python typehint stubs for Lumerical's lumapi.py, auto-generated from the docs
This file has been truncated, but you can view the full file.
# This file is auto-generated from the lumapi documentation.
from _typeshed import Incomplete
from collections.abc import Generator
from contextlib import contextmanager
from ctypes import Structure, Union
from typing import Any, Optional, List, Tuple, Dict, overload
import types
import numpy as np
INTEROPLIBDIR: Incomplete
INTEROPLIB_FILENAME: str
INTEROPLIB: str
ENVIRONPATH: str
REMOTE_MODULE_ON: bool
def initLibraryEnv(remoteArgs) -> None: ...
@contextmanager
def environ(env) -> Generator[None]: ...
class Session(Structure): ...
class LumApiSession:
iapi: Incomplete
handle: Incomplete
__doc__: str
def __init__(self, iapiArg, handleArg) -> None: ...
class LumString(Structure): ...
class LumMat(Structure): ...
class LumNameValuePair(Structure): ...
class LumStruct(Structure): ...
class LumList(Structure): ...
class ValUnion(Union): ...
# class Any(Structure): ...
def lumWarning(message) -> None: ...
def initLib(remoteArgs): ...
class LumApiError(Exception):
value: Incomplete
def __init__(self, value) -> None: ...
def verifyConnection(handle): ...
biopen = open
def extractsHostnameAndPort(remoteArgs): ...
def open(
product,
key: Incomplete | None = None,
hide: bool = False,
serverArgs={},
remoteArgs={},
): ...
def close(handle) -> None: ...
def evalScript(handle, code, verifyConn: bool = False) -> None: ...
def getVar(handle, varname, verifyConn: bool = False): ...
def putString(handle, varname, value, verifyConn: bool = False) -> None: ...
def putMatrix(handle, varname, value, verifyConn: bool = False) -> None: ...
def putDouble(handle, varname, value, verifyConn: bool = False) -> None: ...
def putStruct(handle, varname, values, verifyConn: bool = False) -> None: ...
def putList(handle, varname, values, verifyConn: bool = False) -> None: ...
def packMatrix(handle, value): ...
def unpackMatrix(handle, value): ...
def isIntType(value): ...
class MatrixDatasetTranslator:
@staticmethod
def applyConventionToStruct(d) -> None: ...
@staticmethod
def createStructMemberPreTranslators(d): ...
class PointDatasetTranslator:
@staticmethod
def applyConventionToStruct(
d, geometryShape, paramShape, removeScalarDim
) -> None: ...
@staticmethod
def createStructMemberPreTranslators(d, numGeomDims): ...
class RectilinearDatasetTranslator:
@staticmethod
def applyConventionToStruct(d) -> None: ...
@staticmethod
def createStructMemberPreTranslators(d): ...
class UnstructuredDatasetTranslator:
@staticmethod
def applyConventionToStruct(d) -> None: ...
@staticmethod
def createStructMemberPreTranslators(d): ...
class PutTranslator:
@staticmethod
def translateStruct(handle, value): ...
@staticmethod
def translateList(handle, values): ...
@staticmethod
def translate(handle, value): ...
@staticmethod
def createStructMemberPreTranslators(value): ...
@staticmethod
def putStructMembers(handle, value): ...
@staticmethod
def putListMembers(handle, value): ...
class GetTranslator:
@staticmethod
def translateString(strVal): ...
@staticmethod
def recalculateSize(size, elements): ...
@staticmethod
def translate(handle, d, element): ...
@staticmethod
def applyLumDatasetConventions(d) -> None: ...
@staticmethod
def getStructMembers(handle, value): ...
@staticmethod
def getListMembers(handle, value): ...
def removePromptLineNo(strval): ...
def appCallWithConstructor(self, funcName, *args, **kwargs): ...
def appCall(self, name, *args): ...
def lumTypes(argList): ...
class SimObjectResults:
def __init__(self, parent) -> None: ...
def __dir__(self): ...
def __getitem__(self, name): ...
def __getattr__(self, name): ...
def __setattr__(self, name, value): ...
class GetSetHelper(dict):
def __init__(self, owner, name, **kwargs) -> None: ...
def __getitem__(self, key): ...
def __setitem__(self, key, val) -> None: ...
def __getattr__(self, key): ...
def __setattr__(self, key, val): ...
class SimObjectId:
name: Incomplete
index: Incomplete
def __init__(self, id) -> None: ...
class SimObject:
results: Incomplete
def __init__(self, parent, id) -> None: ...
def build_nested(self, properties): ...
def __dir__(self): ...
def __getitem__(self, key): ...
def __setitem__(self, key, item) -> None: ...
def __getattr__(self, name): ...
def __setattr__(self, name, value): ...
def getParent(self): ...
def getChildren(self): ...
class Lumerical:
keepCADOpened: Incomplete
handle: Incomplete
syncUserFunctionsFlag: bool
userFunctions: Incomplete
def __init__(
self, product, filename, key, hide, serverArgs, remoteArgs, **kwargs
) -> None: ...
def __extractKeepCADOpenedArgument__(self, serverArgs): ...
def __del__(self) -> None: ...
def __enter__(self) -> "Lumerical": ...
def __exit__(
self,
type: type[BaseException] | None,
value: BaseException | None,
traceback: types.TracebackType | None,
) -> None: ...
def __getattr__(self, name): ...
def __open__(
self,
iapi,
product,
key: Incomplete | None = None,
hide: bool = False,
serverArgs={},
remoteArgs={},
): ...
def close(self) -> None: ...
# def eval(self, code) -> None: ...
def getv(self, varname): ...
def putv(self, varname, value) -> None: ...
def getObjectById(self, id): ...
def getObjectBySelection(self): ...
def getAllSelectedObjects(self): ...
def abs(self, x: float, **kwargs: Any) -> float:
"""
Returns the absolute value of a number or matrix.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.abs(x) | Returns the absolute value of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.real`, :meth:`Lumerical.imag`
Link
----
https://kb.lumerical.com/en/ref_scripts_abs.html
Note
----
Signature autogen'd from: `o.abs(x)`
"""
def acos(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the inverse trigonometric cosine function (arccosine). Angle
units are in radians. The function is defined for complex values. Phase
of a complex number is evaluated between -pi and pi. If x is complex, or
abs(x) > 1, the following equation is used:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.acos(x) | Returns the complex arccosine of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.cos`
Link
----
https://kb.lumerical.com/en/ref_scripts_acos.html
Note
----
Signature autogen'd from: `o.acos(x)`
"""
def add2drect(self, **kwargs: Any) -> Any:
"""
Adds a 2D rectangle in the simulation space.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.add2drect() | Adds a 2D rectangle in simulation |
| | space. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.add2dpoly`
Link
----
https://kb.lumerical.com/en/ref_scripts_add2drect.html
Note
----
Signature autogen'd from: `o.add2drect())`
"""
def add2dpoly(self, **kwargs: Any) -> Any:
"""
Adds a 2D polygon in the simulation space.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.add2dpoly() | Adds a 2D polygon in simulation |
| | space. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.add2drect`
Link
----
https://kb.lumerical.com/en/ref_scripts_add2dpoly.html
Note
----
Signature autogen'd from: `o.add2dpoly())`
"""
def add2visualizer(self, dataset: np.ndarray, **kwargs: Any) -> Any:
"""
Adds data to an existing visualizer.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.add2visualizer( dataset, | This command adds data to an |
| visualizer number ) | existing visualizer. If there is no |
| | visualizer corresponding to the |
| | visualizer number, then the command |
| | is ignored. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.exportfigure`, :meth:`Lumerical.image`, :meth:`Lumerical.plot`, :meth:`Lumerical.setplot`, :meth:`Lumerical.closeall`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_add2visualizer.html
Note
----
Signature autogen'd from: `o.add2visualizer(dataset, visualizer number)`
"""
def addabsorbing(self, **kwargs: Any) -> Any:
"""
Adds an absorbing boundary condition to the 'DGTD' solver in DEVICE. A
DGTD solver region must be present in the objects tree for this command
to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addabsorbing() | Adds a PML boundary condition to the |
| | 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addpml`, :meth:`Lumerical.addpmc`, :meth:`Lumerical.addpec`, :meth:`Lumerical.addperiodic`
Link
----
https://kb.lumerical.com/en/ref_scripts_addabsorbing.html
Note
----
Signature autogen'd from: `o.addabsorbing())`
"""
def addanalysisgroup(self, **kwargs: Any) -> Any:
"""
Adds an analysis group to the simulation environment. Analysis groups
are container objects that can contain any simulation object and
associated script functions which can be used to create customize data
analysis.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addanalysisgroup() | Adds an analysis group to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addtogroup`, :meth:`Lumerical.adduserprop`, :meth:`Lumerical.runanalysis`, :meth:`Lumerical.getresult`, :meth:`Lumerical.addobject`
Link
----
https://kb.lumerical.com/en/ref_scripts_addanalysisgroup.html
Note
----
Signature autogen'd from: `o.addanalysisgroup())`
"""
def addanalysisprop(self, type: str, value: float, **kwargs: Any) -> Any:
"""
Adds a user defined custom analysis property to the setup user defined
in structure and analysis groups.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addanalysisprop("property name", | Adds a analysis property to a |
| type, value) | selected object group. The name is |
| | set to "property name". The type is |
| | an integer from 0 to 5. The |
| | corresponding variable types are |
| | |
| | +-------------+-------------+------- |
| | ------+-------------+-------------+- |
| | ------------+ |
| | |
| | |
| | 5 |
| | +-------------+-------------+------- |
| | ------+-------------+-------------+- |
| | ------------+ |
| | |
| | |
| | material |
| | +-------------+-------------+------- |
| | ------+-------------+-------------+- |
| | ------------+ |
| | |
| | The value of the user property is |
| | set to value. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.runsetup`, :meth:`Lumerical.addanalysisgroup`, :meth:`Lumerical.addanalysisresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_addanalysisprop.html
Note
----
Signature autogen'd from: `o.addanalysisprop("property name", type, value)`
"""
def addanalysisresult(self, A: float, **kwargs: Any) -> Any:
"""
Adds a new result to an analysis group object.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addanalysisresult("A") | Adds a new result called "A" to an |
| | analysis group. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.runsetup`, :meth:`Lumerical.addanalysisgroup`
Link
----
https://kb.lumerical.com/en/ref_scripts_addanalysisresult.html
Note
----
Signature autogen'd from: `o.addanalysisresult("A")`
"""
@overload
def addattribute(self, a_name: str, a: float, **kwargs: Any) -> Any: ...
@overload
def addattribute(self, a_vector: Any, a_1: Any, a_2: Any, a_3: Any, **kwargs: Any) -> Any: ...
@overload
def addattribute(self, a_name: str, type: str, **kwargs: Any) -> Any: ...
def addattribute(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds an attribute to an existing dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| R.o.addattribute("a_name", a) | Adds the scalar attribute a to the |
| | dataset R. |
| | |
| | See Dataset introduction for details |
| | about the required dimensions of |
| | attribute data. |
+--------------------------------------+--------------------------------------+
| R.o.addattribute("a_vector", a_1, | Adds the vector attribute a_vector |
| a_2, a_3) | to the existing dataset R. The |
| | components of the vector are a_1, |
| | a_2 and a_3. |
| | |
| | See Dataset introduction for details |
| | about the required dimensions of |
| | attribute data. |
+--------------------------------------+--------------------------------------+
| R.o.addattribute("a_name", [data], | Adds the attribute "a_name" to the |
| "type") | unstructured dataset R. [data] can |
| | be in one of the forms below: |
| | |
| | vertex_scalar_attribute[npts; |
| | npar_1; npar_2; ...1] |
| | |
| | vertex_vector_attribute[npts; |
| | npar_1; npar_2; ...3] |
| | |
| | cell_scalar_attribute[ncells; 1] |
| | |
| | cell_vector_attribute[ncells; 3] |
| | |
| | (npts is the number of vertices, the |
| | length of geometric parameters 'x', |
| | 'y', 'z' |
| | |
| | cells is the number of elements, |
| | equal to number of rows of geometry |
| | parameter 'elements' ) |
| | |
| | The "type" argument is an optional |
| | string to specify attribute type and |
| | can take values of "vertex" or |
| | "cell". If not provided, the |
| | function will guess the attribute |
| | type based on the shape of [data] |
| | argument. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.addattribute`, :meth:`Lumerical.addparameter`, :meth:`Lumerical.visualize`, :meth:`Lumerical.getparameter`, :meth:`Lumerical.getattribute`, :meth:`Lumerical.matrixdataset`
Link
----
https://kb.lumerical.com/en/ref_scripts_addattribute.html
Note
----
Signature autogen'd from: `o.addattribute("a_name", a)`, `o.addattribute("a_vector", a_1, a_2, a_3)`, `o.addattribute("a_name", [data], "type")`
"""
def addbandstructuremonitor(self, **kwargs: Any) -> Any:
"""
Adds a band structure monitor to the simulation environment. This
command requires the presence of a CHARGE solver region in the objects
tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addbandstructuremonitor() | Adds a band structure monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addefieldmonitor`, :meth:`Lumerical.addchargemonitor`, :meth:`Lumerical.addjfluxmonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addbandstructuremonitor.html
Note
----
Signature autogen'd from: `o.addbandstructuremonitor())`
"""
def addbulkgen(self, **kwargs: Any) -> Any:
"""
Adds a bulk (optical) generation region to the simulation environment.
The bulk generation (source) object can be used to create an analytic
solar generation profile. This command requires a CHARGE solver region
to be present in the objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addbulkgen() | Add a bulk (optical) generation |
| | region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addimportgen`
Link
----
https://kb.lumerical.com/en/ref_scripts_addbulkgen.html
Note
----
Signature autogen'd from: `o.addbulkgen())`
"""
def addchargemesh(self, **kwargs: Any) -> Any:
"""
Adds a mesh constraint (override region) to the 'CHARGE' simulation
environment in DEVICE. A CHARGE solver region must be present in the
objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addchargemesh() | Adds a mesh constraint to the |
| | 'CHARGE' simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addchargesolver`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addchargemesh.html
Note
----
Signature autogen'd from: `o.addchargemesh())`
"""
def addchargemonitor(self, **kwargs: Any) -> Any:
"""
Adds a charge monitor to the simulation environment. This command
requires the presence of a CHARGE solver region in the objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addchargemonitor() | Adds a charge monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addbandstructuremonitor`, :meth:`Lumerical.addefieldmonitor`, :meth:`Lumerical.addjfluxmonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addchargemonitor.html
Note
----
Signature autogen'd from: `o.addchargemonitor())`
"""
def addchargesolver(self, **kwargs: Any) -> Any:
"""
Adds an electrical (CHARGE) solver region to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addchargesolver() | Adds an electrical (CHARGE) solver |
| | region to the simulation |
| | environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.run`
Link
----
https://kb.lumerical.com/en/ref_scripts_addchargesolver.html
Note
----
Signature autogen'd from: `o.addchargesolver())`
"""
def addcircle(self, **kwargs: Any) -> Any:
"""
Adds a circle primitive to the simulation environment. Circles denote
physical objects which appear circular or ellipsoid from above.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addcircle() | Adds a circle primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addcircle.html
Note
----
Signature autogen'd from: `o.addcircle())`
"""
@overload
def addconvectionbc(self, **kwargs: Any) -> Any: ...
@overload
def addconvectionbc(self, solver_name: str, **kwargs: Any) -> Any: ...
def addconvectionbc(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new convection boundary condition to the HEAT or CHARGE solver
[Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE solver
region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The convection boundary condition can only be added to the CHARGE solver
when the solver's temperature dependency is set to 'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addconvectionbc() | Adds a convection boundary condition |
| | to the HEAT or CHARGE solver |
| | (whichever is present in the objects |
| | tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addconvectionbc("solver_name") | Adds a convection boundary condition |
| | to the desired solver defined by the |
| | argument "solver_name". The |
| | options are "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addtemperaturebc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addthermalinsulatingbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addconvectionbc.html
Note
----
Signature autogen'd from: `o.addconvectionbc())`, `o.addconvectionbc("solver_name")`
"""
def addcustom(self, **kwargs: Any) -> Any:
"""
Adds a custom primitive to the simulation environment. Custom
primitives are objects that are defined by equations describing the
boundaries of the physical object.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addcustom() | Adds a custom primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addcustom.html
Note
----
Signature autogen'd from: `o.addcustom())`
"""
def adddeltachargesource(self, **kwargs: Any) -> Any:
"""
Adds a delta optical generation source to the simulation environment.
This command requires a CHARGE solver region to be present in the
objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddeltachargesource() | Add a delta optical generation |
| | source to the simulation |
| | environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addimportgen`, :meth:`Lumerical.addbulkgen`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddeltachargesource.html
Note
----
Signature autogen'd from: `o.adddeltachargesource())`
"""
def addelectricalcontact(self, **kwargs: Any) -> Any:
"""
Adds a new electrical contact boundary condition to the CHARGE solver
[Boundary Conditions (Electrical Simulation)]. A CHARGE solver region
must be present in the objects tree before an electrical contact
boundary condition can be added.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addelectricalcontact() | Adds an electrical contact boundary |
| | condition to the CHARGE solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addsurfacerecombinationbc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addelectricalcontact.html
Note
----
Signature autogen'd from: `o.addelectricalcontact())`
"""
def addemabsorptionmonitor(self, **kwargs: Any) -> Any:
"""
Adds an absorption monitor to the 'DGTD' solver in DEVICE. The monitor
reports the power absorbed within the monitor volume. A DGTD solver
region must be present in the objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemabsorptionmonitor() | Adds an absorption monitor to the |
| | 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addemfieldmonitor`, :meth:`Lumerical.addemfieldtimemonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemabsorptionmonitor.html
Note
----
Signature autogen'd from: `o.addemabsorptionmonitor())`
"""
def addemfieldmonitor(self, **kwargs: Any) -> Any:
"""
Adds a frequency domain EM (electro-magnetic) field monitor to the
'DGTD' solver in DEVICE. Along with the EM field data the monitor also
reports the net flux through the surface of the monitor. A DGTD solver
region must be present in the objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemfieldmonitor() | Adds a frequency domain EM field |
| | monitor to the 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addemabsorptionmonitor`, :meth:`Lumerical.addemfieldtimemonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemfieldmonitor.html
Note
----
Signature autogen'd from: `o.addemfieldmonitor())`
"""
def addemfieldtimemonitor(self, **kwargs: Any) -> Any:
"""
Adds a time domain EM (electro-magnetic) field monitor to the 'DGTD'
solver in DEVICE. A DGTD solver region must be present in the objects
tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemfieldtimemonitor() | Adds a time domain EM field monitor |
| | to the 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addemfieldmonitor`, :meth:`Lumerical.addemabsorptionmonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemfieldtimemonitor.html
Note
----
Signature autogen'd from: `o.addemfieldtimemonitor())`
"""
def adddevice(self, **kwargs: Any) -> Any:
"""
Adds a CHARGE solver region to the simulation environment.
+--------------------------------------------------------------------------+
| Note: The 'adddevice' command is deprecated and will be removed in |
| future releases. Please refer to addchargesolver as a replacement. |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddevice() | Add a CHARGE solver region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.run`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddevice.html
Note
----
Signature autogen'd from: `o.adddevice()`
"""
def adddgtdmesh(self, **kwargs: Any) -> Any:
"""
Adds a mesh constraint (override region) to the 'DGTD' simulation
environment in DEVICE. A DGTD solver region must be present in the
objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddgtdmesh() | Adds a mesh constraint to the 'DGTD' |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddgtdmesh.html
Note
----
Signature autogen'd from: `o.adddgtdmesh())`
"""
def adddgtdsolver(self, **kwargs: Any) -> Any:
"""
Adds a DGTD solver region to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddgtdsolver() | Adds a DGTD solver region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdmesh`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddgtdsolver.html
Note
----
Signature autogen'd from: `o.adddgtdsolver())`
"""
def adddiffusion(self, **kwargs: Any) -> Any:
"""
Adds a diffusion doping region to the simulation environment. This
command requires a CHARGE solver region to be present in the objects
tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddiffusion() | Add a diffusion doping region in the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.adddope`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddiffusion.html
Note
----
Signature autogen'd from: `o.adddiffusion())`
"""
def adddipole(self, **kwargs: Any) -> Any:
"""
Adds a dipole source to the simulation environment. In MODE Solutions
the command requires an active varFDTD solver region in the objects
tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddipole() | Adds a dipole source to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addplane`, :meth:`Lumerical.addgaussian`, :meth:`Lumerical.addtfsf`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddipole.html
Note
----
Signature autogen'd from: `o.adddipole())`
"""
def adddope(self, **kwargs: Any) -> Any:
"""
Adds a constant doping object to the simulation environment. This
command requires a CHARGE solver region to be present in the objects
tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adddope() | Add a constant doping region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.adddiffusion`
Link
----
https://kb.lumerical.com/en/ref_scripts_adddope.html
Note
----
Signature autogen'd from: `o.adddope())`
"""
def addeffectiveindex(self, **kwargs: Any) -> Any:
"""
Adds an effective index monitor to the simulation environment. This
command requires the presence of an active varFDTD solver region.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addeffectiveindex() | Adds an effective index monitor to |
| | the varFDTD solver region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addeffectiveindex.html
Note
----
Signature autogen'd from: `o.addeffectiveindex())`
"""
def addefieldmonitor(self, **kwargs: Any) -> Any:
"""
Adds an electric field monitor to the simulation environment. This
command requires the presence of a CHARGE solver region in the objects
tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addefieldmonitor() | Adds an electric field monitor to |
| | the simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addbandstructuremonitor`, :meth:`Lumerical.addchargemonitor`, :meth:`Lumerical.addjfluxmonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addefieldmonitor.html
Note
----
Signature autogen'd from: `o.addefieldmonitor())`
"""
def addelement(self, element: Any, **kwargs: Any) -> Any:
"""
Adds an element from the INTERCONNECT element library to the simulation
environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addelement("element") | Adds an element from the element |
| | library. |
| | |
| | If no element name is given, this |
| | command will add a compound element |
| | by default. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addelement.html
Note
----
Signature autogen'd from: `o.addelement("element")`
"""
def addeme(self, **kwargs: Any) -> Any:
"""
Adds a Eigenmode Expansion (EME) solver region to the MODE Solutions
simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addeme() | Add an EME solver region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.select`, :meth:`Lumerical.run`, :meth:`Lumerical.addvarfdtd`, :meth:`Lumerical.addfde`
Link
----
https://kb.lumerical.com/en/ref_scripts_addeme.html
Note
----
Signature autogen'd from: `o.addeme())`
"""
def addemeindex(self, **kwargs: Any) -> Any:
"""
Adds an index monitor that can be used to return the spatial refractive
index when using an EME solver region. The EME solver object must be
set as the active solver for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemeindex() | Add an index monitor when using an |
| | EME solver region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setactivesolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemeindex.html
Note
----
Signature autogen'd from: `o.addemeindex())`
"""
def addemeport(self, **kwargs: Any) -> Any:
"""
Adds a port to an EME solver region/object. The EME solver object must
be set as the active solver for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemeport() | Add a port to the active EME solver |
| | region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setactivesolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemeport.html
Note
----
Signature autogen'd from: `o.addemeport())`
"""
def addemeprofile(self, **kwargs: Any) -> Any:
"""
Adds a profile monitor that can be used to return the spatial electric
and magnetic field profiles when using an EME solver region. The EME
solver object must be set as the active solver for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addemeprofile() | Add a profile monitor when using an |
| | EME solver region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setactivesolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addemeprofile.html
Note
----
Signature autogen'd from: `o.addemeprofile())`
"""
def addfde(self, **kwargs: Any) -> Any:
"""
Adds a Finite Difference Eigenmode (FDE) solver region object to the
MODE Solutions simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addfde() | Adds an FDE solver region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.findmodes`, :meth:`Lumerical.addvarfdtd`, :meth:`Lumerical.addeme`
Link
----
https://kb.lumerical.com/en/ref_scripts_addfde.html
Note
----
Signature autogen'd from: `o.addfde())`
"""
def addfdtd(self, **kwargs: Any) -> Any:
"""
Adds an FDTD solver region to the simulation environment. The extent of
the solver region determines the simulated volume/area in FDTD
Solutions.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addfdtd() | Adds an FDTD solver region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.run`
Link
----
https://kb.lumerical.com/en/ref_scripts_addfdtd.html
Note
----
Signature autogen'd from: `o.addfdtd())`
"""
def addgaussian(self, **kwargs: Any) -> Any:
"""
Adds a Gaussian source to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addgaussian() | Adds a Gaussian source to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addplane`, :meth:`Lumerical.addtfsf`
Link
----
https://kb.lumerical.com/en/ref_scripts_addgaussian.html
Note
----
Signature autogen'd from: `o.addgaussian())`
"""
@overload
def addgridattribute(self, type: str, **kwargs: Any) -> Any: ...
@overload
def addgridattribute(self, type: str, dataset: np.ndarray, **kwargs: Any) -> Any: ...
def addgridattribute(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a grid attribute object to the simulation environment. See the
Reference Guide Attributes page for more information.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addgridattribute("type") | Adds a grid attribute object to the |
| | simulation. |
| | |
| | •type: Type of attribute to add. |
| | Options are "lc orientation", |
| | "permittivity rotation", "matrix |
| | transform", "np density", or |
| | "temperature". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addgridattribute("type",dataset) | Adds a grid attribute with spatially |
| | varying data. |
| | |
| | •type: Type of attribute to add. |
| | Options are "lc orientation", |
| | "permittivity rotation", "matrix |
| | transform", "np density", or |
| | "temperature". |
| | |
| | •dataset: A dataset containing the |
| | grid attribute data - see the below |
| | table for details. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Data | Simulation | Dataset type | Name for | Name for |
| | object | | variables | variables |
| | | | defining | defining |
| | | | coordinate | actual data |
| | | | data | |
+================+================+================+================+================+
| Liquid crystal | 'lc | Rectilinear | x, y, z | u |
| orientation (3 | orientation' | | | |
| element unit | grid attribute | | | |
| vector) | | | | |
+----------------+----------------+----------------+----------------+----------------+
| Rotation | 'permittivity | Rectilinear | x, y, z | theta, phi, |
| angles in | rotation' grid | | | psi |
| radians | attribute | | | |
+----------------+----------------+----------------+----------------+----------------+
| Unitary | 'matrix | Rectilinear | x, y, z | U |
| transform | transform' | | | |
| matrix (3x3 | grid attribute | | | |
| tensor) | | | | |
+----------------+----------------+----------------+----------------+----------------+
| Charge density | 'np density' | Unstructured | x, y, z, | n, p |
| | grid attribute | | elements (see | |
| | | | Dataset | |
| | | | builder for | |
| | | | more | |
| | | | information) | |
+----------------+----------------+----------------+----------------+----------------+
| Temperature in | 'temperature' | Unstructured | x, y, z, | N |
| Kelvin | grid attribute | | elements (see | |
| | | | Dataset | |
| | | | builder for | |
| | | | more | |
| | | | information) | |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.importdataset`, :meth:`Lumerical.cleardataset`, :meth:`Lumerical.unstructureddataset`
Link
----
https://kb.lumerical.com/en/ref_scripts_addgridattribute.html
Note
----
Signature autogen'd from: `o.addgridattribute("type")`, `o.addgridattribute("type",dataset)`
"""
def addgroup(self, **kwargs: Any) -> Any:
"""
Adds a container group to the simulation environment. Container groups
can be used to put multiple structures, monitors, and/or sources
together in a single group in the objects tree. In DEVICE container
groups are always children of the solver regions and cannot contain any
structure. If multiple solver regions are present in the DEVICE objects
tree then this command will add a container group to the solver region
that is currently selected.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addgroup() | Adds a container group to the |
| | simulation environment. In DEVICE |
| | it will add a container group to the |
| | solver region that is currently |
| | selected. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtogroup`, :meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.addanalysisgroup`
Link
----
https://kb.lumerical.com/en/ref_scripts_addgroup.html
Note
----
Signature autogen'd from: `o.addgroup())`
"""
@overload
def addheatfluxbc(self, **kwargs: Any) -> Any: ...
@overload
def addheatfluxbc(self, solver_name: str, **kwargs: Any) -> Any: ...
def addheatfluxbc(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new heat flux boundary condition to the HEAT or CHARGE solver
[Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE solver
region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The heat flux boundary condition can only be added to the CHARGE solver
when the solver's temperature dependency is set to 'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addheatfluxbc() | Adds a heat flux boundary condition |
| | to the HEAT or CHARGE solver |
| | (whichever is present in the objects |
| | tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addheatfluxbc("solver_name") | Adds a heat flux boundary condition |
| | to the desired solver defined by the |
| | argument "solver_name". The |
| | options are "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtemperaturebc`, :meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addthermalinsulatingbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addheatfluxbc.html
Note
----
Signature autogen'd from: `o.addheatfluxbc())`, `o.addheatfluxbc("solver_name")`
"""
def addheatfluxmonitor(self, **kwargs: Any) -> Any:
"""
Adds a heat flux monitor to the HEAT solver region. The monitor can only
be added if the simulation environment already has a 'HEAT' solver
present.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addheatfluxmonitor() | Adds a heat flux monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addtemperaturemonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addheatfluxmonitor.html
Note
----
Signature autogen'd from: `o.addheatfluxmonitor())`
"""
def addheatmesh(self, **kwargs: Any) -> Any:
"""
Adds a mesh constraint (override region) to the 'HEAT' simulation
environment in DEVICE. A HEAT solver region must be present in the
objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addheatmesh() | Adds a mesh constraint to the 'HEAT' |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addheatsolver`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addheatmesh.html
Note
----
Signature autogen'd from: `o.addheatmesh())`
"""
def addheatsolver(self, **kwargs: Any) -> Any:
"""
Adds a thermal (HEAT) solver region to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addheatsolver() | Adds a thermal (HEAT) solver region |
| | to the simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.run`
Link
----
https://kb.lumerical.com/en/ref_scripts_addheatsolver.html
Note
----
Signature autogen'd from: `o.addheatsolver())`
"""
def addimport(self, **kwargs: Any) -> Any:
"""
Adds an import primitive to the simulation environment. The import
primitive can be used to create a 3D geometry by importing a surface, an
image, or binary data. It can also be used to create an n,k material.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimport() | Adds an import primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.importsurface`, :meth:`Lumerical.importsurface2`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimport.html
Note
----
Signature autogen'd from: `o.addimport())`
"""
def addimportdope(self, **kwargs: Any) -> Any:
"""
Adds a doping region to the simulation environment that can be used to
load a custom doping profile. The custom doping profile can be created
analytically using script or it can be imported from other sources such
as process simulation. This command requires a CHARGE solver region to
be present in the objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimportdope() | Add an import doping region to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
Once the import doping object is created, the doping data can be
imported from a matlab (.mat) file using the GUI or by assigning a
dataset to the object using the importdataset script command. The
dataset can be a rectilinear or an unstructured dataset. Doping data can
be imported into the solver workspace from other tools (e.g. process
simulation) using the Dataset builder.
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.linspace`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.select`, :meth:`Lumerical.importdataset`, :meth:`Lumerical.adddope`, :meth:`Lumerical.adddiffusion`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimportdope.html
Note
----
Signature autogen'd from: `o.addimportdope())`
"""
def addimportedsource(self, **kwargs: Any) -> Any:
"""
Adds an imported source to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimportedsource() | Adds an imported source to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.asapimport`, :meth:`Lumerical.asapload`, :meth:`Lumerical.asapexport`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimportedsource.html
Note
----
Signature autogen'd from: `o.addimportedsource())`
"""
def addimportgen(self, **kwargs: Any) -> Any:
"""
Adds an (optical) generation region to the simulation environment where
the generation profile has been imported into DEVICE. This command
requires a CHARGE solver region to be present in the objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimportgen() | Add an import generation object to |
| | the simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
Once the import generation object is created, the optical generation
data can be imported from a matlab (.mat) file using the GUI or by
assigning a dataset to the object using the importdataset script
command. The .mat file must contain a 3D matrix G containing the
generation data on a rectilinear grid and the three coordinate vectors
x, y, z. The dataset can be either a rectilinear or an unstructured
dataset.
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.linspace`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.select`, :meth:`Lumerical.importdataset`, :meth:`Lumerical.addbulkgen`, :meth:`Lumerical.adddeltachargesource`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimportgen.html
Note
----
Signature autogen'd from: `o.addimportgen())`
"""
@overload
def addimportheat(self, **kwargs: Any) -> Any: ...
@overload
def addimportheat(self, solver_name: str, **kwargs: Any) -> Any: ...
def addimportheat(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a heat source to the DEVICE simulation environment where the
profile of the heat source can be imported from an external source. For
the CHARGE solver, the import heat source only gets applied if the
"temperature dependence" is set to "coupled."
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimportheat() | Adds an import primitive to define a |
| | heat source. This format of the |
| | command is only application when |
| | only one solver is present/active in |
| | the model tree. |
| | |
| | This function does not return any |
| | data. |
| | |
| | If multiple solvers are present then |
| | use the second format. |
+--------------------------------------+--------------------------------------+
| o.addimportheat("solver_name") | This format of the command will add |
| | an import heat source to the solver |
| | defined by the argument. The "solver |
| | name" will be either “CHARGE” or |
| | “HEAT.” |
+--------------------------------------+--------------------------------------+
Once the import heat source is created, the data can be imported from a
matlab (.mat) file using the GUI or by assigning a dataset to the object
using the importdataset script command. The dataset can be in
rectilinear or unstructured (finite-element) format.
See Also
--------
:meth:`Lumerical.linspace`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.select`, :meth:`Lumerical.importdataset`, :meth:`Lumerical.adduniformheat`, :meth:`Lumerical.addimporttemperature`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimportheat.html
Note
----
Signature autogen'd from: `o.addimportheat())`, `o.addimportheat("solver_name")`
"""
def addimporttemperature(self, **kwargs: Any) -> Any:
"""
Adds an import temperature source to the CHARGE solver (only applicable
to non-isothermal transport). The import temperature object can be used
to import a temperature map for non-isothermal simulation. A CHARGE
solver region must be present in the objects tree for this command to
work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addimporttemperature() | Adds an import temperature source to |
| | the CHARGE solver. The source only |
| | gets applied if the "temperature |
| | dependence" is set to |
| | "non-isothermal." |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
Once the import temperature source is created, the data can be imported
from a matlab (.mat) file using the GUI or by assigning a dataset to the
object using the importdataset script command. The dataset can either be
in rectilinear or unstructured (finite-element) format.
See Also
--------
:meth:`Lumerical.linspace`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.select`, :meth:`Lumerical.importdataset`, :meth:`Lumerical.addimportheat`
Link
----
https://kb.lumerical.com/en/ref_scripts_addimporttemperature.html
Note
----
Signature autogen'd from: `o.addimporttemperature())`
"""
def addindex(self, **kwargs: Any) -> Any:
"""
Adds an index monitor to the simulation environment. In MODE Solutions
an active varFDTD region needs to be present for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addindex() | Adds an index monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addfdtd`, :meth:`Lumerical.addvarfdtd`, :meth:`Lumerical.getresult`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_addindex.html
Note
----
Signature autogen'd from: `o.addindex())`
"""
def addjfluxmonitor(self, **kwargs: Any) -> Any:
"""
Adds a current flux monitor to the simulation environment. This command
requires the presence of a CHARGE solver region in the objects tree.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addjfluxmonitor() | Adds a current flux monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addefieldmonitor`, :meth:`Lumerical.addchargemonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addjfluxmonitor.html
Note
----
Signature autogen'd from: `o.addjfluxmonitor())`
"""
def addjob(self, filename: str, solver: Any, **kwargs: Any) -> Any:
"""
Adds a simulation file to the job manager queue.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addjob(filename,"solver") | Add the simulation file "filename" |
| | to the job manager queue. The |
| | "solver" argument is used to select |
| | the solver to add the job to and is |
| | optional if only one solver exists |
| | (or is active) in the simulation |
| | environment. The "solver" argument |
| | is not supported by INTERCONNECT. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.run`, :meth:`Lumerical.runsweep`, :meth:`Lumerical.runjobs`, :meth:`Lumerical.clearjobs`, :meth:`Lumerical.listjobs`, :meth:`Lumerical.currentfilename`
Link
----
https://kb.lumerical.com/en/ref_scripts_addjob.html
Note
----
Signature autogen'd from: `o.addjob(filename,"solver")`
"""
@overload
def addlayer(self, **kwargs: Any) -> Any: ...
@overload
def addlayer(self, name: str, **kwargs: Any) -> Any: ...
def addlayer(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a layer to the layer builder object. The command only works if
there is a layer builder object and is selected.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addlayer() | Adds a layer to the selected layer |
| | builder object. The name of the |
| | layer is set to "default name". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addlayer("name") | Adds a layer named "name" |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addlayerbuilder`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`, :meth:`Lumerical.loadgdsfile`, :meth:`Lumerical.getcelllist`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`
Link
----
https://kb.lumerical.com/en/ref_scripts_addlayer.html
Note
----
Signature autogen'd from: `o.addlayer())`, `o.addlayer("name")`
"""
def addlayerbuilder(self, **kwargs: Any) -> Any:
"""
Adds a layer builder object to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addlayerbuilder() | Adds a layer builder object to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addlayer`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`, :meth:`Lumerical.loadgdsfile`, :meth:`Lumerical.getcelllist`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`
Link
----
https://kb.lumerical.com/en/ref_scripts_addlayerbuilder.html
Note
----
Signature autogen'd from: `o.addlayerbuilder())`
"""
@overload
def addmaterial(self, **kwargs: Any) -> Any: ...
@overload
def addmaterial(self, materialtype: str, **kwargs: Any) -> Any: ...
def addmaterial(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new material to the material database given the material model or
type and returns the name of the new material. For details on available
material models see: Material permittivity models and Material
conductivity models.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.addmaterial() | Lists all available material models |
| | that can be added into the material |
| | database. |
+--------------------------------------+--------------------------------------+
| out = o.addmaterial("materialtype") | Adds a new material and returns the |
| | name of the new material. The |
| | argument "materialtype" has to match |
| | correct string exactly. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.deletematerial`, :meth:`Lumerical.copymaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getmaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmaterial.html
Note
----
Signature autogen'd from: `o.addmaterial())`, `o.addmaterial("materialtype")`
"""
def addmaterialproperties(self, material_name: str, **kwargs: Any) -> Any:
"""
Adds a (material) property to the selected material model. A material
model (in the 'materials' folder) must be selected in the objects tree
for this script command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmaterialproperties("material_t | Adds a (material) property to the |
| ype","material_name") | selected material model in the |
| | objects tree in DEVICE. The |
| | property comes from one of the |
| | material databases in DEVICE. |
| | |
| | The "material_type" argument |
| | selects the type of material |
| | property to be added. The options |
| | are "CT" for electrical property, |
| | "HT" for thermal property, and "EM" |
| | for optical property. |
| | |
| | The "material_name" argument |
| | defines the name of the material in |
| | the appropriate material database |
| | whose properties will be imported. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addmodelmaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmaterialproperties.html
Note
----
Signature autogen'd from: `o.addmaterialproperties("material_t ype","material_name")`
"""
def addmesh(self, **kwargs: Any) -> Any:
"""
Adds a mesh override region to the simulation environment. The mesh
override region can be used to control the size of the mesh in a certain
region. In DEVICE, a CHARGE solver region must be present in the
objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmesh() | Adds a mesh override region to the |
| | simulation environment. |
| | |
| | In DEVICE, this command adds an |
| | electrical mesh which applies only |
| | to the 'CHARGE' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmesh.html
Note
----
Signature autogen'd from: `o.addmesh())`
"""
def addmode(self, **kwargs: Any) -> Any:
"""
Adds a mode source to the simulation environment for FDTD Solutions.
For MODE Solutions, adds an eigenmode (FDE) solver region to the
simulation environment.
+--------------------------------------------------------------------------+
| Note: The 'addmode' command is deprecated in MODE Solutions and will be |
| removed in future releases. Please refer to addfde as a replacement. |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmode() | For FDTD Solutions: |
| | |
| | Add a mode source to the simulation |
| | environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addmode() | For MODE Solutions: |
| | |
| | Add an eigenmode solver to the |
| | simulation environment. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.updatesourcemode`, :meth:`Lumerical.findmodes`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmode.html
Note
----
Signature autogen'd from: `o.addmode()`
"""
def addmodeexpansion(self, **kwargs: Any) -> Any:
"""
Adds a mode expansion monitor to the simulation environment. In MODE
Solutions an active varFDTD region needs to be present for this command
to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmodeexpansion() | Adds a mode expansion monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.setexpansion`, :meth:`Lumerical.removeexpansion`, :meth:`Lumerical.updatemodes`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.geteigensolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmodeexpansion.html
Note
----
Signature autogen'd from: `o.addmodeexpansion())`
"""
def addmodelmaterial(self, **kwargs: Any) -> Any:
"""
Adds an empty material model to the 'materials' folder in the objects
tree. Different properties (electrical, thermal, or optical) can then
be assigned to the material. Once created the material can be assigned
to any geometry and be used in simulations using the CHARGE, HEAT, or
DGTD solvers.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmodelmaterial() | Adds a new material to the |
| | 'materials' folder in the objects |
| | tree in DEVICE. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addmaterialproperties`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmodelmaterial.html
Note
----
Signature autogen'd from: `o.addmodelmaterial())`
"""
def addmodesource(self, **kwargs: Any) -> Any:
"""
Adds a mode source to the 2.5D varFDTD simulation environment. The
varFDTD solver object must be set as the active solver for this command
to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmodesource() | Adds a mode source to the varFDTD |
| | solver region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addvarfdtd`, :meth:`Lumerical.updatesourcemode`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmodesource.html
Note
----
Signature autogen'd from: `o.addmodesource())`
"""
def addmovie(self, **kwargs: Any) -> Any:
"""
Adds a movie monitor to the simulation environment. Movie monitors
capture a desired field component over the region spanned by the monitor
for the duration of the simulation.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addmovie() | Adds a movie monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addmovie.html
Note
----
Signature autogen'd from: `o.addmovie())`
"""
@overload
def addobject(self, script_ID: Any, **kwargs: Any) -> Any: ...
@overload
def addobject(self, **kwargs: Any) -> Any: ...
def addobject(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds an object from the object library in FDTD Solutions and MODE
Solutions. The command can also be used to return the names of all the
available objects and analysis groups in the objects library.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addobject("script_ID") | Adds an object from the object |
| | library. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| A = o.addobject() | Returns names of all the objects in |
| | the library and saves it in a cell |
| | array named "A". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtogroup`, :meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.addanalysisgroup`
Link
----
https://kb.lumerical.com/en/ref_scripts_addobject.html
Note
----
Signature autogen'd from: `o.addobject("script_ID")`, `o.addobject())`
"""
@overload
def addparameter(self, p_name: str, p: float, **kwargs: Any) -> Any: ...
@overload
def addparameter(self, p1_name: str, p1: Any, p2_name: str, p2: Any, **kwargs: Any) -> Any: ...
def addparameter(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a parameter to an existing dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| R.o.addparameter("p_name", p) | Adds the parameter p to the existing |
| | dataset R. |
+--------------------------------------+--------------------------------------+
| R.o.addparameter("p1_name", p1, | Adds the interdependent parameter |
| "p2_name", p2) | p1_name, p2_name to the R dataset. |
| | |
| | The most common interdependent |
| | parameter is frequency and |
| | wavelength. Parameters that are not |
| | interdependent must be added |
| | separately. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.addattribute`, :meth:`Lumerical.addparameter`, :meth:`Lumerical.visualize`, :meth:`Lumerical.getparameter`, :meth:`Lumerical.getattribute`, :meth:`Lumerical.matrixdataset`
Link
----
https://kb.lumerical.com/en/ref_scripts_addparameter.html
Note
----
Signature autogen'd from: `o.addparameter("p_name", p)`, `o.addparameter("p1_name", p1, "p2_name", p2)`
"""
def addpath(self, directory: Any, **kwargs: Any) -> Any:
"""
Adds a directory to the path.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpath("directory") | Adds a directory to the path. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.clearpath`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpath.html
Note
----
Signature autogen'd from: `o.addpath("directory")`
"""
def addpec(self, **kwargs: Any) -> Any:
"""
Adds a PEC (perfect electrical conductor) boundary condition to the
'DGTD' solver in DEVICE. A DGTD solver region must be present in the
objects tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpec() | Adds a PEC boundary condition to the |
| | 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addpml`, :meth:`Lumerical.addpmc`, :meth:`Lumerical.addperiodic`, :meth:`Lumerical.addabsorbing`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpec.html
Note
----
Signature autogen'd from: `o.addpec())`
"""
def addperiodic(self, **kwargs: Any) -> Any:
"""
Adds a periodic (or Bloch) boundary condition to the 'DGTD' solver in
DEVICE. A DGTD solver region must be present in the objects tree for
this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addperiodic() | Adds a periodic boundary condition |
| | to the 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addpml`, :meth:`Lumerical.addpmc`, :meth:`Lumerical.addpec`, :meth:`Lumerical.addabsorbing`
Link
----
https://kb.lumerical.com/en/ref_scripts_addperiodic.html
Note
----
Signature autogen'd from: `o.addperiodic())`
"""
def addplane(self, **kwargs: Any) -> Any:
"""
For FDTD and MODE:
------------------
Adds a plane wave source to the simulation environment.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addplane() | Adds a plane wave source to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addplane`, :meth:`Lumerical.addgaussian`, :meth:`Lumerical.addtfsf`, :meth:`Lumerical.For DEVICE DGTD:`, :meth:`Lumerical.----------------`, :meth:`Lumerical.Adds a plane wave source to the 'DGTD' solver in DEVICE. A DGTD solver`, :meth:`Lumerical.region must be present in the objects tree for this command to work.`, :meth:`Lumerical.+--------------------------------------+--------------------------------------+`, :meth:`Lumerical.| Syntax | Description |`, :meth:`Lumerical.+--------------------------------------+--------------------------------------+`, :meth:`Lumerical.| o.addplane | Adds a plane wave source to the |`, :meth:`Lumerical.| | 'DGTD' solver. |`, :meth:`Lumerical.| | |`, :meth:`Lumerical.| | This function does not return any |`, :meth:`Lumerical.| | data. |`, :meth:`Lumerical.+--------------------------------------+--------------------------------------+`, :meth:`Lumerical.Example 1`, :meth:`Lumerical.The following script commands will add a plane wave source to the 'DGTD'`, :meth:`Lumerical.solver already present in the objects tree and print the name of all of`, :meth:`Lumerical.its properties.`, :meth:`Lumerical.addplane;`, :meth:`Lumerical.?set;`, :meth:`Lumerical.Example 2`, :meth:`Lumerical.The following script commands will add a plane wave source to the 'DGTD'`, :meth:`Lumerical.solver`, :meth:`Lumerical.change its name`, :meth:`Lumerical.and set up its properties. The script then`, :meth:`Lumerical.sets the solid named "2D rectangle" as the injection surface.`, :meth:`Lumerical.addplane;`, :meth:`Lumerical.set("name"`, :meth:`Lumerical."plane\_wave");`, :meth:`Lumerical.# set the propagation direction`, :meth:`Lumerical.set("direction definition"`, :meth:`Lumerical."axis");`, :meth:`Lumerical.set("direction"`, :meth:`Lumerical."backward");`, :meth:`Lumerical.set("angle theta"`, :meth:`Lumerical.30);`, :meth:`Lumerical.set("angle phi"`, :meth:`Lumerical.60);`, :meth:`Lumerical.# set the polarization angle`, :meth:`Lumerical.set("polarization angle"`, :meth:`Lumerical.90);`, :meth:`Lumerical.# set the injection surface`, :meth:`Lumerical.set("surface type"`, :meth:`Lumerical."solid");`, :meth:`Lumerical.set("solid"`, :meth:`Lumerical."2D rectangle");`, :meth:`Lumerical.See Also`, :meth:`Lumerical.adddgtdsolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addplane.html
Note
----
Signature autogen'd from: `o.addplane())`
"""
@overload
def addplanarsolid(self, **kwargs: Any) -> Any: ...
@overload
def addplanarsolid(self, vtx: np.ndarray, fct: Any, **kwargs: Any) -> Any: ...
def addplanarsolid(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a planar solid primitive with the specified vertices. Planar
solids offer a very convenient option to create custom, complex 3D
geometries. You can find more information about planar solids in this
page: Structures - Planar solid.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addplanarsolid() | Adds an empty planar solid object. |
+--------------------------------------+--------------------------------------+
| o.addplanarsolid(vtx, fct) | Adds a planer solid object whose |
| | vertices are defined by 'vtx' and |
| | whose facets are defined by 'fct' |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_addplc.html
Note
----
Signature autogen'd from: `o.addplanarsolid())`, `o.addplanarsolid(vtx, fct)`
"""
def addpmc(self, **kwargs: Any) -> Any:
"""
Adds a PMC (perfect magnetic conductor) boundary condition to the 'DGTD'
solver in DEVICE. A DGTD solver region must be present in the objects
tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpmc() | Adds a PMC boundary condition to the |
| | 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addpml`, :meth:`Lumerical.addpec`, :meth:`Lumerical.addperiodic`, :meth:`Lumerical.addabsorbing`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpmc.html
Note
----
Signature autogen'd from: `o.addpmc())`
"""
def addpml(self, **kwargs: Any) -> Any:
"""
Adds a PML (perfectly matched layer) boundary condition to the 'DGTD'
solver in DEVICE. A DGTD solver region must be present in the objects
tree for this command to work.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpml() | Adds a PML boundary condition to the |
| | 'DGTD' solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.adddgtdsolver`, :meth:`Lumerical.addpmc`, :meth:`Lumerical.addpec`, :meth:`Lumerical.addperiodic`, :meth:`Lumerical.addabsorbing`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpml.html
Note
----
Signature autogen'd from: `o.addpml())`
"""
def addpoly(self, **kwargs: Any) -> Any:
"""
Adds a polygon primitive to the simulation environment. The polygon
object defines a polygon in the XY plane using a set of x, y coordinates
(vertices) and then extrudes it in the Z direction to create a 3D
geometry.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpoly() | Adds a polygon primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpoly.html
Note
----
Signature autogen'd from: `o.addpoly())`
"""
def addpower(self, **kwargs: Any) -> Any:
"""
Adds a power (field and power) monitor to the simulation environment.
The 'field and power' monitor also records the electric and magnetic
field in the frequency domain along with the power.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpower() | Adds a power monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addprofile`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpower.html
Note
----
Signature autogen'd from: `o.addpower())`
"""
def addport(self, **kwargs: Any) -> Any:
"""
Adds a port object to the ports group under the FDTD simulation region.
A simulation region must be present in order to add a port. For more
information about the port object see Ports. This topic addresses the
addport command in FDTD Solutions - for information about the
INTERCONNECT command, see addport.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addport() | Adds a port. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.geteigensolver`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.updateportmodes`, :meth:`Lumerical.clearportmodedata`
Link
----
https://kb.lumerical.com/en/ref_scripts_addport2.html
Note
----
Signature autogen'd from: `o.addport())`
"""
def addprofile(self, **kwargs: Any) -> Any:
"""
Adds a frequency domain field profile monitor to the simulation
environment. Unlike the 'field and power' monitor, the 'profile'
monitor does not snap to the nearest mesh cell and uses interpolation to
record the data exactly where the monitor is located. This can be
useful in a few situations, but the extra interpolation required can
slightly reduce the accuracy of the data. In most situations, we
recommend using the 'field and power' monitor.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addprofile() | Adds a field profile monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addpower`
Link
----
https://kb.lumerical.com/en/ref_scripts_addprofile.html
Note
----
Signature autogen'd from: `o.addprofile())`
"""
def addproperty(self, name: str, **kwargs: Any) -> Any:
"""
The script command adds a property to a compound or to a scripted
element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addproperty(name,property=”new_pr | Adds a new property named ‘property’ |
| operty”,category=””,type=”Number”,fr | to a compound element or to a |
| om=0,to=0,kind=”FixedUnit”,unit=””) | scripted element named ‘name’. |
| | Category defines the folder when the |
| | property will be stored in the |
| | properties view window. “string”, |
| | “logical” and “number” are valid |
| | values for the parameter “type”. The |
| | parameter range is defined by |
| | parameters ‘from’ and ‘to’. |
| | Parameter ‘kind’ is typically set to |
| | ‘FixedUnit’, other valid values are |
| | ‘Power’, ‘Frequency’, etc. Parameter |
| | ‘unit’ is the unit of the new |
| | property. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.autoarrange`, :meth:`Lumerical.setexpression`, :meth:`Lumerical.createcompound`
Link
----
https://kb.lumerical.com/en/ref_scripts_addproperty.html
Note
----
Signature autogen'd from: `o.addproperty(name,property=”new_pr operty”,category=””,type=”Number”,fr om=0,to=0,kind=”FixedUnit”,unit=””)`
"""
def addpyramid(self, **kwargs: Any) -> Any:
"""
Adds a pyramid primitive to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addpyramid() | Adds a pyramid primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addpyramid.html
Note
----
Signature autogen'd from: `o.addpyramid())`
"""
@overload
def addradiationbc(self, **kwargs: Any) -> Any: ...
@overload
def addradiationbc(self, solver_name: str, **kwargs: Any) -> Any: ...
def addradiationbc(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new radiation boundary condition to the HEAT or CHARGE solver
[Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE solver
region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The radiation boundary condition can only be added to the CHARGE solver
when the solver's temperature dependency is set to 'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addradiationbc() | Adds a radiation boundary condition |
| | to the HEAT or CHARGE solver |
| | (whichever is present in the objects |
| | tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addradiationbc("solver_name") | Adds a radiation boundary condition |
| | to the desired solver defined by the |
| | argument "solver_name". The |
| | options are "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addtemperaturebc`, :meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addthermalinsulatingbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addradiationbc.html
Note
----
Signature autogen'd from: `o.addradiationbc())`, `o.addradiationbc("solver_name")`
"""
def addrect(self, **kwargs: Any) -> Any:
"""
Adds a rectangle primitive to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addrect() | Adds a rectangle primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addrect.html
Note
----
Signature autogen'd from: `o.addrect())`
"""
def addring(self, **kwargs: Any) -> Any:
"""
Adds a ring primitive to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addring() | Adds a ring primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addring.html
Note
----
Signature autogen'd from: `o.addring())`
"""
def addsimulationregion(self, **kwargs: Any) -> Any:
"""
Adds a simulation region to the DEVICE design environment. Once created
the simulation region can be linked to any existing solver.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsimulationregion() | Adds a simulation region to the |
| | DEVICE design environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsimulationregion.html
Note
----
Signature autogen'd from: `o.addsimulationregion())`
"""
def addsphere(self, **kwargs: Any) -> Any:
"""
Adds a sphere primitive to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsphere() | Adds a sphere primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsphere.html
Note
----
Signature autogen'd from: `o.addsphere())`
"""
def addstructuregroup(self, **kwargs: Any) -> Any:
"""
Adds a structure group to the simulation environment. Structure groups
are very convenient when you want to parametrize your design. You can
define different parameters for the structure group and use the "setup"
script to create your geometry (along with monitors and/or sources)
according to those parameter values.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addstructuregroup() | Adds a structure group to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtogroup`, :meth:`Lumerical.adduserprop`, :meth:`Lumerical.addgroup`, :meth:`Lumerical.addanalysisgroup`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addstructuregroup.html
Note
----
Signature autogen'd from: `o.addstructuregroup())`
"""
def addsurface(self, **kwargs: Any) -> Any:
"""
Adds a surface primitive to the simulation environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsurface() | Adds primitive to the simulation |
| | environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsurface.html
Note
----
Signature autogen'd from: `o.addsurface())`
"""
def addsurfacerecombinationbc(self, **kwargs: Any) -> Any:
"""
Adds a new surface recombination boundary condition to the CHARGE solver
[Boundary Conditions (Electrical Simulation)]. A CHARGE solver region
must be present in the objects tree before a surface recombination
boundary condition can be added.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsurfacerecombinationbc() | Adds a new surface recombination |
| | boundary condition to the CHARGE |
| | solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addelectricalcontact`, :meth:`Lumerical.addmodelmaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsurfacerecombinationbc.html
Note
----
Signature autogen'd from: `o.addsurfacerecombinationbc())`
"""
def addsweep(self, type: str, **kwargs: Any) -> Any:
"""
Adds a parameter sweep/optimization/Monte Carlo/S-parameter sweep item
as the top-most analysis item.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsweep(type) | adds a parameter |
| | sweep/optimization/Monte |
| | Carlo/S-parameter sweep item as the |
| | top-most analysis item. |
| | |
| | 'type' = 0 for sweep |
| | |
| | 'type' = 1 for optimization |
| | |
| | 'type' = 2 for yield |
| | |
| | 'type' = 3 for S-parameter matrix |
| | sweep (in FDTD Solutions only) |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.deletesweep`, :meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepparameter`, :meth:`Lumerical.addsweepresult`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsweep.html
Note
----
Signature autogen'd from: `o.addsweep(type)`
"""
def addsweepparameter(self, name: str, parameter: Any, **kwargs: Any) -> Any:
"""
Adds a parameter to a parameter sweep/optimization/Monte
Carlo/S-parameter sweep item.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsweepparameter("name", | Adds a parameter to a parameter |
| "parameter") | sweep/optimization/Monte |
| | Carlo/S-parameter sweep item. |
| | |
| | "name" is the absolute name of an |
| | analysis item. |
| | |
| | "parameter" could be a string (i.e. |
| | create a parameter with default |
| | values. eg. |
| | ::model::rectangle::index) or a |
| | struct which counld contain |
| | parameter, type, start, stop, unit, |
| | etc. |
| | |
| | Returns the parameter name. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.addsweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepresult`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsweepparameter.html
Note
----
Signature autogen'd from: `o.addsweepparameter("name", "parameter")`
"""
def addsweepresult(self, name: str, result: Any, **kwargs: Any) -> Any:
"""
Adds a result to a sweep/optimization/Monte Carlo item.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addsweepresult("name", "result") | Adds a result to a |
| | sweep/optimization/Monte Carlo item. |
| | |
| | "name" is the absolute name of an |
| | analysis item. |
| | |
| | "result" could be a string (i.e. |
| | create a result with default values) |
| | or a struct which could contain |
| | results and operations. |
| | |
| | Returns the result name. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.addsweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepparameter`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_addsweepresult.html
Note
----
Signature autogen'd from: `o.addsweepresult("name", "result")`
"""
@overload
def addtemperaturebc(self, **kwargs: Any) -> Any: ...
@overload
def addtemperaturebc(self, solver_name: str, **kwargs: Any) -> Any: ...
def addtemperaturebc(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new temperature boundary condition to the HEAT or CHARGE solver
[Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE solver
region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The temperature boundary condition can only be added to the CHARGE
solver when the solver's temperature dependency is set to 'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtemperaturebc() | Adds a temperature boundary |
| | condition to the HEAT or CHARGE |
| | solver (whichever is present in the |
| | objects tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addtemperaturebc("solver_name") | Adds a temperature boundary |
| | condition to the desired solver |
| | defined by the argument |
| | "solver_name". The options are |
| | "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addthermalinsulatingbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtemperaturebc.html
Note
----
Signature autogen'd from: `o.addtemperaturebc())`, `o.addtemperaturebc("solver_name")`
"""
def addtemperaturemonitor(self, **kwargs: Any) -> Any:
"""
Adds a temperature monitor to the DEVICE simulation environment. The
monitor can only be added if the simulation environment already has a
'HEAT' or 'CHARGE' (or both) solver present.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtemperaturemonitor() | Adds a temperature monitor to the |
| | simulation environment. This format |
| | of the command is only application |
| | when only one solver is present in |
| | the model tree. |
| | |
| | This function does not return any |
| | data. |
| | |
| | If multiple solvers are present then |
| | use the second format |
+--------------------------------------+--------------------------------------+
| o.addtemperaturemonitor("solver_nam | This format of the command will add |
| e") | a temperature monitor to the solver |
| | defined by the argument. The "solver |
| | name" will be either “CHARGE” or |
| | “HEAT.” For the CHARGE solver, the |
| | temperature monitor only works if |
| | the "temperature dependence" is set |
| | to "non-isothermal" or "coupled." |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addheatfluxmonitor`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtemperaturemonitor.html
Note
----
Signature autogen'd from: `o.addtemperaturemonitor())`
"""
def addtfsf(self, **kwargs: Any) -> Any:
"""
Adds a Total Field Scattered Field (TFSF) source to the simulation
environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtfsf() | Add a total field scattered field |
| | source to the simulation |
| | environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addplane`, :meth:`Lumerical.addgaussian`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtfsf.html
Note
----
Signature autogen'd from: `o.addtfsf())`
"""
def addthermalinsulatingbc(self, **kwargs: Any) -> Any:
"""
Adds a new insulating (thermal) boundary condition to the HEAT or CHARGE
solver [Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE
solver region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The insulating (thermal) boundary condition can only be added to the
CHARGE solver when the solver's temperature dependency is set to
'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addthermalinsulatingbc() | Adds an insulating (thermal) |
| | boundary condition to the HEAT or |
| | CHARGE solver (whichever is present |
| | in the objects tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addthermalinsulatingbc("solver_na | Adds an insulating (thermal) |
| me") | boundary condition to the desired |
| | solver defined by the argument |
| | "solver_name". The options are |
| | "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtemperaturebc`, :meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addthermalinsulatingbc.html
Note
----
Signature autogen'd from: `o.addthermalinsulatingbc())`
"""
@overload
def addthermalpowerbc(self, **kwargs: Any) -> Any: ...
@overload
def addthermalpowerbc(self, solver_name: str, **kwargs: Any) -> Any: ...
def addthermalpowerbc(self, *args: Any, **kwargs: Any) -> Any:
"""
Adds a new thermal power boundary condition to the HEAT or CHARGE solver
[Boundary Conditions (Thermal Simulation)]. A HEAT or CHARGE solver
region must be present in the objects tree before this boundary
condition can be added. If both solvers are present then the intended
solver's name must be provided as an argument to the script command.
The thermal power boundary condition can only be added to the CHARGE
solver when the solver's temperature dependency is set to 'coupled'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addthermalpowerbc() | Adds a thermal power boundary |
| | condition to the HEAT or CHARGE |
| | solver (whichever is present in the |
| | objects tree). |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.addthermalpowerbc("solver_name") | Adds a thermal power boundary |
| | condition to the desired solver |
| | defined by the argument |
| | "solver_name". The options are |
| | "HEAT" and "CHARGE". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtemperaturebc`, :meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addthermalinsulatingbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addthermalpowerbc.html
Note
----
Signature autogen'd from: `o.addthermalpowerbc())`, `o.addthermalpowerbc("solver_name")`
"""
def addtime(self, **kwargs: Any) -> Any:
"""
Adds a time monitor to the simulation environment. The time monitor
provides time-domain information for field components over the course of
the simulation
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtime() | Adds a time monitor to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtime.html
Note
----
Signature autogen'd from: `o.addtime())`
"""
def addtogroup(self, **kwargs: Any) -> Any:
"""
Adds selected objects to a group.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtogroup("group name") | Adds selected object(s) to a group. |
| | If a group with name "group name" |
| | already exists, then the objects are |
| | added to the existing group. |
| | Otherwise, a group named "group |
| | name" is created. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addgroup`, :meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.addanalysisgroup`, :meth:`Lumerical.adduserprop`, :meth:`Lumerical.runsetup`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtogroup.html
Note
----
Signature autogen'd from: `o.addtogroup()`
"""
def addtolibrary(self, name: str, **kwargs: Any) -> Any:
"""
Adds the selected element to the currently selected folder under Custom
library.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtolibrary ("name") | Adds an element, to the currently |
| | selected folder under Custom |
| | library. The "name" specified is the |
| | custom folder name. If no folder |
| | named as specified, a new folder |
| | will be generated under the Custom |
| | library. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.library`, :meth:`Lumerical.customlibrary`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtolibrary.html
Note
----
Signature autogen'd from: `o.addtolibrary("name")`
"""
def addtriangle(self, **kwargs: Any) -> Any:
"""
Adds a 3 vertex, triangle shaped polygon primitive to the simulation
environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addtriangle() | Adds a triangle primitive to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addpoly`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addtriangle.html
Note
----
Signature autogen'd from: `o.addtriangle())`
"""
def adduniformheat(self, **kwargs: Any) -> Any:
"""
Adds a constant heat source to the HEAT solver region. The input is
defined as the net heat input to the volume in units of Watt. The
uniform heat source can either be 2D or 3D. The heat input per unit
volume (W/m3) is calculated by dividing the net input power by the
volume of the (3D) source. In the case of a 2D source the volume of the
source is defined by setting the length in the third dimension equal to
either the "equivalent length" of the source or the "norm length" of the
HEAT solver.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adduniformheat() | Adds a constant heat source to the |
| | simulation environment. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`, :meth:`Lumerical.addimportheat`
Link
----
https://kb.lumerical.com/en/ref_scripts_adduniformheat.html
Note
----
Signature autogen'd from: `o.adduniformheat())`
"""
def adduserprop(self, type: str, value: float, **kwargs: Any) -> Any:
"""
Adds a user defined custom property to the setup user defined structure
and analysis groups.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.adduserprop("property name", type, | Adds a user property to a selected |
| value) | structure group. The name is set to |
| | "property name". The type is an |
| | integer from 0 to 5. The |
| | corresponding variable types are |
| | |
| | 0 number |
| | |
| | 1 text |
| | |
| | 2 length |
| | |
| | 3 time |
| | |
| | 4 frequency |
| | |
| | 5 material |
| | |
| | The value of the user property is |
| | set to value. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addstructuregroup`, :meth:`Lumerical.runsetup`
Link
----
https://kb.lumerical.com/en/ref_scripts_adduserprop.html
Note
----
Signature autogen'd from: `o.adduserprop("property name", type, value)`
"""
def addvarfdtd(self, **kwargs: Any) -> Any:
"""
Adds a 2.5D varFDTD solver region to the MODE Solutions simulation
environment.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addvarfdtd() | Adds a 2.5D varFDTD simulation |
| | region. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.run`, :meth:`Lumerical.addeme`, :meth:`Lumerical.addfde`
Link
----
https://kb.lumerical.com/en/ref_scripts_addvarfdtd.html
Note
----
Signature autogen'd from: `o.addvarfdtd())`
"""
def addvoltagebc(self, **kwargs: Any) -> Any:
"""
Adds a new voltage boundary condition to the HEAT solver [Boundary
Conditions (Thermal Simulation)]. A HEAT solver region must be present
in the objects tree before an electrical contact boundary condition can
be added.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addvoltagebc() | Adds a voltage boundary condition to |
| | the HEAT solver. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addconvectionbc`, :meth:`Lumerical.addradiationbc`, :meth:`Lumerical.addthermalpowerbc`, :meth:`Lumerical.addheatfluxbc`, :meth:`Lumerical.addvoltagebc`
Link
----
https://kb.lumerical.com/en/ref_scripts_addvoltagebc.html
Note
----
Signature autogen'd from: `o.addvoltagebc())`
"""
def addwaveguide(self, **kwargs: Any) -> Any:
"""
Adds a waveguide object in the simulation space.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.addwaveguide() | Adds a waveguide in the simulation |
| | space. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_addwaveguide.html
Note
----
Signature autogen'd from: `o.addwaveguide())`
"""
@overload
def all(self, A: float, **kwargs: Any) -> Any: ...
@overload
def all(self, A: float, n: float, **kwargs: Any) -> Any: ...
def all(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns 1 if all of the specified matrix entries are nonzero and returns
0 otherwise.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.all(A) | Will return 1 if all of the A matrix |
| | entries are nonzero and will return |
| | 0 otherwise. |
+--------------------------------------+--------------------------------------+
| out = o.all(A,n) | n is an optional parameter to |
| | analyze entries in a specific |
| | dimension |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.any`, :meth:`Lumerical.almostequal`
Link
----
https://kb.lumerical.com/en/ref_scripts_all.html
Note
----
Signature autogen'd from: `o.all(A)`, `o.all(A,n)`
"""
def almostequal(self, **kwargs: Any) -> Any:
"""
Performs an almost-equal comparison. When using floating point numbers
(rather than integers), two values that are meant to be equal may not be
exactly equal due to rounding errors that are always present in floating
point calculations. In such cases, the almostequal function can be
useful.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.almostequal(A, B) | Returns 1 if \ |
| | or equal to \ |
| | Returns 0 otherwise. |
+--------------------------------------+--------------------------------------+
| out = o.almostequal(A, B, relative | Returns 1 if \ |
| diff) | or equal to \ |
| | relative diff. Returns 0 otherwise. |
+--------------------------------------+--------------------------------------+
| out = o.almostequal(A, B, relative | Returns 1 if \ |
| diff, absolute diff) | or equal to \ |
| | relative diff or if \ |
| | less than or equal to absolute diff. |
| | Returns 0 otherwise. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.and`, :meth:`Lumerical.or`
Link
----
https://kb.lumerical.com/en/ref_scripts_almostequal.html
Note
----
Signature autogen'd from: `o.almostequal()`
"""
def amax(self, x: float, n: float, **kwargs: Any) -> float:
"""
Returns the maximum value in a specified dimension of a matrix. For
complex numbers, only the real part is considered.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.amax(x,n) | The maximum value in the specified |
| | dimension n of matrix x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.min`, :meth:`Lumerical.max`, :meth:`Lumerical.abs`, :meth:`Lumerical.mean`, :meth:`Lumerical.amin`
Link
----
https://kb.lumerical.com/en/ref_scripts_amax.html
Note
----
Signature autogen'd from: `o.amax(x,n)`
"""
def amin(self, x: float, n: float, **kwargs: Any) -> float:
"""
Returns the minimum value in a specified dimension of a matrix. For
complex numbers, only the real part is considered.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.amin(x,n) | The minimum value in the specified |
| | dimension n of matrix x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.min`, :meth:`Lumerical.max`, :meth:`Lumerical.abs`, :meth:`Lumerical.mean`, :meth:`Lumerical.amax`
Link
----
https://kb.lumerical.com/en/ref_scripts_amin.html
Note
----
Signature autogen'd from: `o.amin(x,n)`
"""
def analysis(self, **kwargs: Any) -> Any:
"""
Opens the MODE Solutions analysis window corresponding to the active
solver (FDE or EME).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.analysis() | Opens the analysis window |
| | corresponding to the active solver. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setanalysis`, :meth:`Lumerical.getanalysis`, :meth:`Lumerical.mesh`, :meth:`Lumerical.findmodes`, :meth:`Lumerical.frequencysweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_analysis.html
Note
----
Signature autogen'd from: `o.analysis())`
"""
def and_(self, **kwargs: Any) -> Any:
"""
Is the logical AND function. Imaginary components of x and y are
ignored.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = y & x() | If the real part of either or both |
| | of x,y are zero, then return 0. |
| | Otherwise return 1. |
+--------------------------------------+--------------------------------------+
| y o.and x() | Same as &. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.and`, :meth:`Lumerical.or`
Link
----
https://kb.lumerical.com/en/ref_scripts_and2.html
Note
----
Signature autogen'd from: `o.and()`
"""
def angle(self, x: float, **kwargs: Any) -> float:
"""
Returns the angle or phase of a complex number or matrix in radians.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.angle(x) | Returns the phase of x. The phase is |
| | evaluated between -pi and pi. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.real`, :meth:`Lumerical.imag`, :meth:`Lumerical.unwrap`
Link
----
https://kb.lumerical.com/en/ref_scripts_angle.html
Note
----
Signature autogen'd from: `o.angle(x)`
"""
def annotateproperty(self, element: Any, property: Any, annotate: Any, **kwargs: Any) -> Any:
"""
Enables ‘property’ annotation on a given ‘element’.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.annotateproperty | Enables ‘property’ annotation on a |
| (element,property,annotate) | given ‘element’. If ‘annotate’ is |
| | true the property is annotated, if |
| | ‘annotate’ is false the annotation |
| | is disable. The default value of |
| | ‘annotate’ is true. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.hideproperty`, :meth:`Lumerical.hidecategory`, :meth:`Lumerical.ispropertyactive`
Link
----
https://kb.lumerical.com/en/ref_scripts_annotateproperty.html
Note
----
Signature autogen'd from: `o.annotateproperty(element,property,annotate)`
"""
@overload
def any(self, A: float, **kwargs: Any) -> Any: ...
@overload
def any(self, A: float, n: float, **kwargs: Any) -> Any: ...
def any(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns 1 if any of the specified matrix entries are nonzero and returns
0 otherwise.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.any(A) | Will return 1 if any of the A matrix |
| | entries are nonzero and will return |
| | 0 otherwise. |
+--------------------------------------+--------------------------------------+
| out = o.any(A,n) | n is an optional parameter to |
| | analyze entries in a specific |
| | dimension |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.all`, :meth:`Lumerical.almostequal`
Link
----
https://kb.lumerical.com/en/ref_scripts_any.html
Note
----
Signature autogen'd from: `o.any(A)`, `o.any(A,n)`
"""
def appopen(self, fdtd: Any, **kwargs: Any) -> Any:
"""
A MATLAB command that opens a session of selected Lumerical tool via the
Matlab interoperability API. Once the session is opened, Lumerical can
be called from Matlab to execute Lumerical script command(s) and execute
them. Opened Lumerical session also allows Matlab to get variables from
Lumerical workspace.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| h=o.appopen('fdtd') | When executed in Matlab, this |
| | command will open a session of FDTD |
| | via the interoperability API. |
| | |
| | Accepted parameters: |
| | |
| | 'fdtd' |
| | |
| | 'mode' |
| | |
| | 'device' |
| | |
| | 'interconnect' |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.appclose`, :meth:`Lumerical.appevalscript`, :meth:`Lumerical.appgetvar`
Link
----
https://kb.lumerical.com/en/ref_scripts_appopen.html
Note
----
Signature autogen'd from: `o.appopen('fdtd')`
"""
def appclose(self, h: float, **kwargs: Any) -> Any:
"""
A MATLAB command that will close an active Lumerical session opened via
Matlab interoperability API.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.appclose(h) | Closes an active session h |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.appopen`, :meth:`Lumerical.appevalscript`, :meth:`Lumerical.appgetvar`
Link
----
https://kb.lumerical.com/en/ref_scripts_appclose.html
Note
----
Signature autogen'd from: `o.appclose(h)`
"""
def appevalscript(self, h: float, scriptcommand: Any, **kwargs: Any) -> Any:
"""
A Matlab command that will execute Lumerical script command(s) in an
active Lumerical session opened via Matlab interoperability API.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.appevalscript(h,'scriptcommand') | Executes an arbitrary Lumerical |
| | script command in an active session |
| | h |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.appopen`, :meth:`Lumerical.appclose`, :meth:`Lumerical.appgetvar`
Link
----
https://kb.lumerical.com/en/ref_scripts_appevalscript.html
Note
----
Signature autogen'd from: `o.appevalscript(h,'scriptcommand')`
"""
def appgetvar(self, h: str, T: str, **kwargs: Any) -> Any:
"""
A Matlab command that will retrieve a variable from Lumerical workspace
into Matlab workspace via Matlab interoperability API.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| x=o.appgetvar(h,'T') | Retrieves variable T from Lumerical |
| | workspace via an active session h |
| | and adds it into Matlab workspace as |
| | variable x |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.appopen`, :meth:`Lumerical.appclose`, :meth:`Lumerical.appevalscript`
Link
----
https://kb.lumerical.com/en/ref_scripts_appgetvar.html
Note
----
Signature autogen'd from: `o.appgetvar(h,'T')`
"""
def arrayperiodicdata(self, dataset: np.ndarray, count: float, **kwargs: Any) -> Any:
"""
Generates an array of periodic data from a unit cell dataset based on a
given plane of periodicity. This function is useful for obtaining the
complete form of data from a periodic simulation which only contains
data from one unit cell. Only unstructured datasets are supported by
this command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.arrayperiodicdata(dataset,'periodi | Unfolds data from a symmetric |
| c_plane',count) | dataset based on a given plane of |
| | symmetry. |
| | |
| | The first argument is a 2D or 3D |
| | unstructured dataset. The second |
| | argument is the plane with respect |
| | to which data is periodic in the |
| | format [+-][xyz], e.g. “-y” and |
| | refers to the axis of the plane of |
| | periodicity (i.e. the direction for |
| | the periodicity vector will be taken |
| | from the sign, and that plane, e.g. |
| | y-normal, will be used for |
| | arraying). The third argument count |
| | is number of unit cells to copy in |
| | the array (if 1, only returns the |
| | unit cell). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.unfoldsymmetricdata`, :meth:`Lumerical.unstructureddataset`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.addattribute`, :meth:`Lumerical.addparameter`, :meth:`Lumerical.visualize`, :meth:`Lumerical.getparameter`, :meth:`Lumerical.getattribute`, :meth:`Lumerical.matrixdataset`, :meth:`Lumerical.struct`
Link
----
https://kb.lumerical.com/en/ref_scripts_arrayperiodicdata.html
Note
----
Signature autogen'd from: `o.arrayperiodicdata(dataset,'periodi c_plane',count)`
"""
@overload
def asapexport(self, monitorname: str, **kwargs: Any) -> Any: ...
@overload
def asapexport(self, monitorname: str, f: float, **kwargs: Any) -> Any: ...
@overload
def asapexport(self, monitorname: str, f: float, filename: str, **kwargs: Any) -> Any: ...
def asapexport(self, *args: Any, **kwargs: Any) -> Any:
"""
Exports the desired monitor to a file for interfacing with BRO's ASAP.
These files have the .fld extension. The monitor must be a frequency
power or a frequency profile monitor.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.asapexport( "monitorname") | Export data from monitorname. By |
| | default, the first frequency point |
| | is exported. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.asapexport( "monitorname", f) | Exports the frequency point |
| | specified by the index f. |
+--------------------------------------+--------------------------------------+
| o.asapexport( "monitorname", f, | Exports to the specified "filename" |
| "filename") | without opening a file browser |
| | window. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.asapload`, :meth:`Lumerical.asapimport`, :meth:`Lumerical.addimportedsource`
Link
----
https://kb.lumerical.com/en/ref_scripts_asapexport.html
Note
----
Signature autogen'd from: `o.asapexport("monitorname")`, `o.asapexport("monitorname", f)`, `o.asapexport("monitorname", f, "filename")`
"""
@overload
def asapimport(self, sourcename: str, **kwargs: Any) -> Any: ...
@overload
def asapimport(self, sourcename: str, filename: str, **kwargs: Any) -> Any: ...
def asapimport(self, *args: Any, **kwargs: Any) -> Any:
"""
Imports an ASAP fld file into an ASAP source. This is equivalent to
editing the properties of the Import source, and clicking on the Import
Source button.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.asapimport( "sourcename") | Imports the fld file into the |
| | sourcename source. A file browser |
| | will open to select the file. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.asapimport( "sourcename", | Specify the file to open. |
| "filename") | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.asapexport`, :meth:`Lumerical.asapload`, :meth:`Lumerical.addimportedsource`, :meth:`Lumerical.fileexists`
Link
----
https://kb.lumerical.com/en/ref_scripts_asapimport.html
Note
----
Signature autogen'd from: `o.asapimport("sourcename")`, `o.asapimport("sourcename", "filename")`
"""
@overload
def asapload(self, **kwargs: Any) -> Any: ...
@overload
def asapload(self, filename: str, **kwargs: Any) -> Any: ...
def asapload(self, *args: Any, **kwargs: Any) -> Any:
"""
Loads data from an fld file from BRO's ASAP. asapload creates a d-card
structure called "fld_data" which contains all the data in the file. If
"fld_data" exists, it will be called "fld_data_2". After loading an
asapfile with asapload, you can extract any desired data., which can be
•Ex, Ey, Ez, Hx, Hy, Hz, x, y, z
•power, frequency, wavelength, index
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.asapload() | Select the file to load with the |
| | file browser. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.asapload( "filename") | Loads data from an fld file called |
| | "filename" without a file browser. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.asapexport`, :meth:`Lumerical.asapimport`, :meth:`Lumerical.addimportedsource`, :meth:`Lumerical.fileexists`
Link
----
https://kb.lumerical.com/en/ref_scripts_asapload.html
Note
----
Signature autogen'd from: `o.asapload())`, `o.asapload("filename")`
"""
def asin(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the inverse trigonometric sine function (arcsine). Angle
units are in radians. The function is defined for complex values. Phase
of a complex number is evaluated between -pi and pi. If x is complex, or
abs(x) > 1, the following equation is used:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.asin(x) | Returns the complex arcsine of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.sin`
Link
----
https://kb.lumerical.com/en/ref_scripts_asin.html
Note
----
Signature autogen'd from: `o.asin(x)`
"""
def atan(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the inverse trigonometric tangent function (arctangent).
Angle units are in radians. The function is defined for complex values.
Phase of a complex number is evaluated between -pi and pi. If x is
complex, or abs(x) > 1, the following equation is used:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.atan(x) | Returns the complex arctangent of x. |
| | The range of atan is -pi/2 to pi/2. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.atan2`, :meth:`Lumerical.tan`
Link
----
https://kb.lumerical.com/en/ref_scripts_atan.html
Note
----
Signature autogen'd from: `o.atan(x)`
"""
def atan2(self, y: float, x: float, **kwargs: Any) -> Any:
"""
Calculates the inverse trigonometric tangent function (arctangent) of
y/x, returning the angle in the correct quadrant. Angle units are in
radians. The function is defined for real values only.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.atan2(y,x) | x,y must be real. The range of atan2 |
| | is -pi to pi. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.atan`, :meth:`Lumerical.tan`
Link
----
https://kb.lumerical.com/en/ref_scripts_atan2.html
Note
----
Signature autogen'd from: `o.atan2(y,x)`
"""
def autoarrange(self, name: str, **kwargs: Any) -> Any:
"""
The script command arranges port positions and dimensions of compound or
scripted elements automatically. Equivalently it can also be done by
pressing ‘Arrange’ on the element port editor tab.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.autoarrange (name) | Arrange port positions and |
| | dimensions of compound or scripted |
| | elements automatically. This command |
| | does not return anything. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.createcompound`
Link
----
https://kb.lumerical.com/en/ref_scripts_autoarrange.html
Note
----
Signature autogen'd from: `o.autoarrange(name)`
"""
def autosaveoff(self, **kwargs: Any) -> Any:
"""
This command turns off the feature to automatically save the current
project before running a simulation.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.autosaveoff() | The project will not be saved |
| | automatically before running a |
| | simulation (default). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.autosaveon`
Link
----
https://kb.lumerical.com/en/ref_scripts_autosaveoff.html
Note
----
Signature autogen'd from: `o.autosaveoff())`
"""
def autosaveon(self, **kwargs: Any) -> Any:
"""
This command turns on the feature to automatically save the current
project before running a simulation.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.autosaveon() | Automatically saves current project |
| | before running a simulation. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.autosaveoff`
Link
----
https://kb.lumerical.com/en/ref_scripts_autosaveon.html
Note
----
Signature autogen'd from: `o.autosaveon())`
"""
@overload
def bar(self, y: float, **kwargs: Any) -> float: ...
@overload
def bar(self, x: float, y: float, **kwargs: Any) -> float: ...
@overload
def bar(self, x: float, y: float, title: str, **kwargs: Any) -> float: ...
def bar(self, *args: Any, **kwargs: Any) -> float:
"""
Plots a bar chart.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.bar(y) | Creates a bar plot where each bar |
| | corresponds to one element in y, |
| | which must be a 1D array. The figure |
| | number is returned. |
+--------------------------------------+--------------------------------------+
| o.bar(x,y) | x is a nx1 matrix. |
| | |
| | y is a nxm matrix. |
| | |
| | Creates m bar plots with n bars in |
| | the same figure for the elements in |
| | y at positions given by x. The |
| | figure number is returned. |
+--------------------------------------+--------------------------------------+
| o.bar(x,y, "x label", "y label", | Creates a bar plot of y vs x with |
| "title") | axis labels and a title, returns the |
| | figure number. The figure number is |
| | returned. |
+--------------------------------------+--------------------------------------+
+----+----+
+----+----+
See Also
--------
:meth:`Lumerical.histc`, :meth:`Lumerical.plot`
Link
----
https://kb.lumerical.com/en/ref_scripts_bar.html
Note
----
Signature autogen'd from: `o.bar(y)`, `o.bar(x,y)`, `o.bar(x,y, "x label", "y label", "title")`
"""
def besseli(self, nu: Any, z: float, **kwargs: Any) -> Any:
"""
Computes the modified Bessel function of the first kind.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.besseli(nu, z) | "nu" is the order and "z" could be |
| | an array. Both nu and z need to be |
| | real. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.bessely`, :meth:`Lumerical.besselj`, :meth:`Lumerical.besselk`
Link
----
https://kb.lumerical.com/en/ref_scripts_besseli.html
Note
----
Signature autogen'd from: `o.besseli(nu, z)`
"""
def besselj(self, nu: Any, z: float, **kwargs: Any) -> Any:
"""
Computes the Bessel function of the first kind.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.besselj(nu, z) | "nu" is the order and "z" could be |
| | an array. Both nu and z need to be |
| | real. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.bessely`, :meth:`Lumerical.besseli`, :meth:`Lumerical.besselk`
Link
----
https://kb.lumerical.com/en/ref_scripts_besselj.html
Note
----
Signature autogen'd from: `o.besselj(nu, z)`
"""
def besselk(self, nu: Any, z: float, **kwargs: Any) -> Any:
"""
Computes the modified Bessel function of the second kind.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.besselk(nu, z) | "nu" is the order and "z" could be |
| | an array. Both nu and z need to be |
| | real. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.bessely`, :meth:`Lumerical.besseli`, :meth:`Lumerical.besselj`
Link
----
https://kb.lumerical.com/en/ref_scripts_besselk.html
Note
----
Signature autogen'd from: `o.besselk(nu, z)`
"""
def bessely(self, nu: Any, z: float, **kwargs: Any) -> Any:
"""
Computes the Bessel function of the second kind.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.bessely(nu, z) | "nu" is the order and "z" could be |
| | an array. Both nu and z need to be |
| | real. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.besselj`, :meth:`Lumerical.besseli`, :meth:`Lumerical.besselk`
Link
----
https://kb.lumerical.com/en/ref_scripts_bessely.html
Note
----
Signature autogen'd from: `o.bessely(nu, z)`
"""
def bestoverlap(self, test_mode: str, **kwargs: Any) -> Any:
"""
Finds the mode with highest (best) overlap between the specified D-CARD
and the currently calculated modes in the mode list. Returns the name of
the mode with the best overlap. This function is used for tracking the
desired mode during parameter sweeps using the FDE solver.
See the overlap function for more details about overlap and coupling
calculations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.bestoverlap("test_mode") | Calculates the best overlap. |
| | |
| | •out: a string containing the name |
| | of the mode with the best overlap |
| | |
| | •test_mode: a string containing the |
| | name of a D-CARD mode |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.findmodes`, :meth:`Lumerical.coupling`, :meth:`Lumerical.overlap`, :meth:`Lumerical.propagate`, :meth:`Lumerical.expand`, :meth:`Lumerical.expand2`, :meth:`Lumerical.bestoverlap2`
Link
----
https://kb.lumerical.com/en/ref_scripts_bestoverlap.html
Note
----
Signature autogen'd from: `o.bestoverlap("test_mode")`
"""
@overload
def bestoverlap2(self, test_mode: str, **kwargs: Any) -> Any: ...
@overload
def bestoverlap2(self, test_mode: str, x: float, y: float, z: float, **kwargs: Any) -> Any: ...
def bestoverlap2(self, *args: Any, **kwargs: Any) -> Any:
"""
This function is similar to bestoverlap but it uses expand2 to get the
necessary parameters, which can be useful when an evanescent mode is
involved.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.bestoverlap2("test_mode") | Calculates the best overlap. |
| | |
| | •out: a string containing the name |
| | of the mode with the best overlap |
| | |
| | •test_mode: a string containing the |
| | name of a D-CARD mode |
+--------------------------------------+--------------------------------------+
| out = o.bestoverlap2("test_mode", | Calculates the best overlap. |
| x,y,z) | |
| | •out: a string containing the name |
| | of the mode with the best overlap |
| | |
| | •test_mode: a string containing the |
| | name of a D-CARD mode |
| | |
| | Mode alignment can be adjusted |
| | before best overlap is calculated. |
| | |
| | •x offset |
| | |
| | •y offset |
| | |
| | •z offset |
| | |
| | The offset is applied to the |
| | test_mode. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.findmodes`, :meth:`Lumerical.coupling`, :meth:`Lumerical.overlap`, :meth:`Lumerical.propagate`, :meth:`Lumerical.expand`, :meth:`Lumerical.expand2`, :meth:`Lumerical.bestoverlap`
Link
----
https://kb.lumerical.com/en/ref_scripts_bestoverlap2.html
Note
----
Signature autogen'd from: `o.bestoverlap2("test_mode")`, `o.bestoverlap2("test_mode", x,y,z)`
"""
def break_(self, **kwargs: Any) -> Any:
"""
Stops a script from executing.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.break() | Will stop a script file from |
| | executing at that line. A warning |
| | will be generated. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.pause`
Link
----
https://kb.lumerical.com/en/ref_scripts_break.html
Note
----
Signature autogen'd from: `o.break())`
"""
@overload
def cd(self, **kwargs: Any) -> Any: ...
@overload
def cd(self, directory: Any, **kwargs: Any) -> Any: ...
def cd(self, *args: Any, **kwargs: Any) -> Any:
"""
Changes the directory. The directory is where the file is saved by
default.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cd() | Opens a window to browse to a |
| | directory. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.cd("directory") | Changes the working directory to |
| | "directory". Whenever you open an |
| | fsp file or run a script file, it |
| | will set the working directory to |
| | the directory of the file opened. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.pwd`
Link
----
https://kb.lumerical.com/en/ref_scripts_cd.html
Note
----
Signature autogen'd from: `o.cd())`, `o.cd("directory")`
"""
def ceil(self, x: float, **kwargs: Any) -> Any:
"""
Rounds the input to the nearest integer greater than or equal to itself.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.ceil(x) | Returns the nearest integer greater |
| | than or equal to x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.floor`, :meth:`Lumerical.mod`
Link
----
https://kb.lumerical.com/en/ref_scripts_ceil.html
Note
----
Signature autogen'd from: `o.ceil(x)`
"""
def cell(self, n: float, **kwargs: Any) -> Any:
"""
Creates a cell array variable with specified number of elements. The
cell array element can be any data type, such as matrix, string, and
dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| a = o.cell(n) | Creates a cell array with n |
| | elements. |
+--------------------------------------+--------------------------------------+
| a{n} = "string"() | Adds a string to the specified |
| | element of the cell array. |
+--------------------------------------+--------------------------------------+
| a{n} = matrix(5,5) | Adds a field of matrix of 5x5 to the |
| | specified element of the cell array. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matrixdataset`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.struct`, :meth:`Lumerical.splitstring`
Link
----
https://kb.lumerical.com/en/ref_scripts_cell.html
Note
----
Signature autogen'd from: `o.cell(n)`
"""
def centroid(self, V: float, **kwargs: Any) -> Any:
"""
Returns the center of mass of a polygon assuming uniform density.
The polygon vertices are contained in a single matrix of dimension Nx2
(or 2xN), where N >= 3 is the number of vertices. The dimension 2
corresponds to the x,y positions. For example, a square of side length 1
can be described by V = [ 0,0; 1,0; 1,1; 0,1] or V = [ 0,1,1,0;0,0,1,1].
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.centroid(V) | Returns the center of mass of V, |
| | assuming uniform density. The output |
| | is a 2x1 matrix representing the x |
| | and y positions. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.polyarea`, :meth:`Lumerical.polyintersect`, :meth:`Lumerical.inpoly`, :meth:`Lumerical.polygrow`, :meth:`Lumerical.polyand`, :meth:`Lumerical.polyor`, :meth:`Lumerical.polydiff`, :meth:`Lumerical.polyxor`
Link
----
https://kb.lumerical.com/en/ref_scripts_centroid.html
Note
----
Signature autogen'd from: `o.centroid(V)`
"""
def chebin(self, f: float, x: float, xi: Any, xmin: float, xmax: float, **kwargs: Any) -> Any:
"""
Returns the Chebyshev interpolation of a sampled function. Chebyshev
interpolation is useful for accurately interpolating a smooth function
using a very small number of samples. The key requirement for this type
of interpolation to work is that the function is sampled on the
Chebyshev roots grid.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.chebin(f,x,xi,xmin,xmax) | Interpolates the function f onto the |
| | xi points. It assumes that f |
| | contains the samples of the function |
| | taken on the Chebyshev roots grid |
| | specified in x; x must be |
| | constructed by the call |
| | |
| | # x = chpts(xmin,xmax,NumPts), |
| | otherwise an error is returned. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dcht`, :meth:`Lumerical.chpts`, :meth:`Lumerical.icht`
Link
----
https://kb.lumerical.com/en/ref_scripts_chebin.html
Note
----
Signature autogen'd from: `o.chebin(f,x,xi,xmin,xmax)`
"""
def chebpol(self, N: float, xi: Any, xmin: float, xmax: float, **kwargs: Any) -> Any:
"""
Generates the Chebyshev polynomials of the first kind. This command can
be used in combination with dcht to calculate the Chebyshev
interpolation. Compared to the chebin command, using chebpol for the
interpolation offers additional control over the interpolation process
as it allows the user to specify the polynomial order.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.chebpol(N,xi,xmin,xmax) | This command generates a matrix |
| | containing the Chebyshev polynomials |
| | of the first kind of orders zero to |
| | N-1 evaluated at the xi points. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dcht`, :meth:`Lumerical.chpts`, :meth:`Lumerical.icht`, :meth:`Lumerical.chebin`, :meth:`Lumerical.chebpol1`
Link
----
https://kb.lumerical.com/en/ref_scripts_chebpol.html
Note
----
Signature autogen'd from: `o.chebpol(N,xi,xmin,xmax)`
"""
def chebpol1(self, N: float, xi: Any, xmin: float, xmax: float, **kwargs: Any) -> Any:
"""
Returns the first derivative of the Chebyshev polynomials of the first
kind.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.chebpol1(N,xi,xmin,xmax) | This command generates a matrix |
| | containing the Chebyshev polynomials |
| | of the first kind of orders zero to |
| | N-1 evaluated at the xi points. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dcht`, :meth:`Lumerical.chpts`, :meth:`Lumerical.icht`, :meth:`Lumerical.chebin`, :meth:`Lumerical.chebpol`
Link
----
https://kb.lumerical.com/en/ref_scripts_chebpol1.html
Note
----
Signature autogen'd from: `o.chebpol1(N,xi,xmin,xmax)`
"""
def checkout(self, licensefeature: Any, **kwargs: Any) -> Any:
"""
Obtains the given license feature from the license server and holds it
for the duration of the application's lifetime. Any additional checkout
attempts by the application for the license will not increment the
license count. Closing the application is the only way to release the
license back into the pool.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.checkout("licensefeature") | Obtains the given license feature |
| | from the license server and holds it |
| | for the duration of the |
| | application's lifetime. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_checkout.html
Note
----
Signature autogen'd from: `o.checkout("licensefeature")`
"""
def chol(self, A: float, **kwargs: Any) -> Any:
"""
Calculates the Cholesky lower triangular factorization or decomposition.
For a given matrix A, chol returns a lower triangular matrix L such that
A is the matrix product of L and its conjugate transpose. The matrix A
can be real or complex but it must be Hermitian and positive-definite.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| L = o.chol(A) | Returns a lower triangular matrix L |
| | that satisfies the equation A = |
| | mult(L,ctranspose(L)) |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.mult`, :meth:`Lumerical.ctranspose`
Link
----
https://kb.lumerical.com/en/ref_scripts_chol.html
Note
----
Signature autogen'd from: `o.chol(A)`
"""
def chpts(self, xmin: float, xmax: float, NumPts: float, option: float, **kwargs: Any) -> Any:
"""
Samples function on a Chebyshev grid. Chebyshev interpolation is useful
for accurately interpolating a smooth function using a very small number
of samples. The key requirement for this type of interpolation to work
is that the function is sampled on the Chebyshev roots grid, which can
be done by using this command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| x=o.chpts(xmin,xmax,NumPts,option) | Returns Chebyshev roots grid on |
| | interval between xmin and xmax that |
| | can be used to sample a smooth |
| | function. |
| | |
| | NumPts defines the number of points |
| | on given interval. |
| | |
| | Option: |
| | |
| | If option=1 is selected, the vector |
| | x will not include the endpoints |
| | |
| | If option=2 is selected, the vector |
| | x will include the endpoints |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dcht`, :meth:`Lumerical.chebin`, :meth:`Lumerical.icht`, :meth:`Lumerical.interp`
Link
----
https://kb.lumerical.com/en/ref_scripts_chpts.html
Note
----
Signature autogen'd from: `o.chpts(xmin,xmax,NumPts,option)`
"""
@overload
def clear(self, **kwargs: Any) -> Any: ...
@overload
def clear(self, var1: Any, var2: Any, **kwargs: Any) -> Any: ...
def clear(self, *args: Any, **kwargs: Any) -> Any:
"""
Clears all or specified stored workspace variables. This will not clear
any simulation data stored in d-cards. The variables c, pi, eps0, mu0
will be reset to their default values.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clear() | Clears all workspace variables. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.clear(var1, var2, ...) | Clears only the workspace variables |
| | with the specified names. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.cleardcard`
Link
----
https://kb.lumerical.com/en/ref_scripts_clear.html
Note
----
Signature autogen'd from: `o.clear())`, `o.clear(var1, var2, ...)`
"""
@overload
def clearanalysis(self, **kwargs: Any) -> Any: ...
@overload
def clearanalysis(self, name1: str, name2: str, **kwargs: Any) -> Any: ...
def clearanalysis(self, *args: Any, **kwargs: Any) -> Any:
"""
Clears analysis object results. This data is also cleared by switching
from Analysis Mode to Layout Mode.
Note: The analysis object results are calculated with the runanalysis
command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearanalysis() | Clears analysis object results. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.clearanalysis( "name1", "name2", | Clears data from specific analysis |
| ...) | objects. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.switchtolayout`, :meth:`Lumerical.getdata`, :meth:`Lumerical.runanalysis`, :meth:`Lumerical.havedata`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearanalysis.html
Note
----
Signature autogen'd from: `o.clearanalysis())`, `o.clearanalysis("name1", "name2", ...)`
"""
def cleardataset(self, **kwargs: Any) -> Any:
"""
This command clears the dataset from any current 'np Density' grid
attribute. This is only useful for keeping file size small.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cleardataset() | Clears the dataset from the selected |
| | grid attribute. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.importdataset`, :meth:`Lumerical.addgridattribute`
Link
----
https://kb.lumerical.com/en/ref_scripts_cleardataset.html
Note
----
Signature autogen'd from: `o.cleardataset())`
"""
@overload
def cleardcard(self, **kwargs: Any) -> Any: ...
@overload
def cleardcard(self, name1: str, name2: str, **kwargs: Any) -> Any: ...
def cleardcard(self, *args: Any, **kwargs: Any) -> Any:
"""
Clears global d-cards. Only global d-cards are cleared. Local d-cards
are associated with the current simulation and can only be cleared by
switching from Analysis Mode to Layout Mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cleardcard() | Clears all the global d-cards. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.cleardcard( "name1", "name2", ...) | Clears any number of specified |
| | d-cards. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.havedata`, :meth:`Lumerical.copydcard`
Link
----
https://kb.lumerical.com/en/ref_scripts_cleardcard.html
Note
----
Signature autogen'd from: `o.cleardcard())`, `o.cleardcard("name1", "name2", ...)`
"""
def clearjobs(self, solver: Any, **kwargs: Any) -> Any:
"""
Remove all jobs from the job manager queue.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearjobs("solver") | Remove all jobs from the job queue |
| | of the specified solver. If no |
| | solver is specified, jobs for all |
| | solvers will be removed from job |
| | manager queue. No solver argument is |
| | needed for INTERCONNECT. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addjob`, :meth:`Lumerical.runjobs`, :meth:`Lumerical.listjobs`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearjobs.html
Note
----
Signature autogen'd from: `o.clearjobs("solver")`
"""
def clearmodedata(self, **kwargs: Any) -> Any:
"""
Clears mode data for a mode expansion monitor in layout mode. This is
mainly useful to reduce file sizes when saving.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearmodedata() | Clears mode data for the selected |
| | mode expansion monitor. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.updatesourcemode`, :meth:`Lumerical.asapimport`, :meth:`Lumerical.asapload`, :meth:`Lumerical.asapexport`, :meth:`Lumerical.clearsourcedata`, :meth:`Lumerical.getresult`, :meth:`Lumerical.overlap`, :meth:`Lumerical.expand`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.geteigensolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearmodedata.html
Note
----
Signature autogen'd from: `o.clearmodedata())`
"""
def clearlogwindow(self, **kwargs: Any) -> Any:
"""
Clears the log output log window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearlogwindow() | clears output log window. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_clearlogwindow.html
Note
----
Signature autogen'd from: `o.clearlogwindow())`
"""
def clearpath(self, directory: Any, **kwargs: Any) -> Any:
"""
Removes all directories from the script path, except "./".
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearpath("directory") | Remove"directory" from the script |
| | path if it is there. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.addpath`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearpath.html
Note
----
Signature autogen'd from: `o.clearpath("directory")`
"""
def clearportmodedata(self, **kwargs: Any) -> Any:
"""
Clears mode data from selected FDTD port and ports in MODE Solutions'
EME solver. For more information about the port object see Ports.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearportmodedata() | Clears mode data from selected port. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addport`, :meth:`Lumerical.set`, :meth:`Lumerical.geteigensolver`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.updateportmodes`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearportmodedata.html
Note
----
Signature autogen'd from: `o.clearportmodedata())`
"""
def clearsourcedata(self, **kwargs: Any) -> Any:
"""
Clears source data for an imported source, or the selected mode for a
mode source.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.clearsourcedata() | Clears source data for the selected |
| | source. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.updatesourcemode`, :meth:`Lumerical.asapimport`, :meth:`Lumerical.asapload`, :meth:`Lumerical.asapexport`, :meth:`Lumerical.clearmodedata`, :meth:`Lumerical.getresult`, :meth:`Lumerical.overlap`, :meth:`Lumerical.expand`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.geteigensolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_clearsourcedata.html
Note
----
Signature autogen'd from: `o.clearsourcedata())`
"""
def cloneportdata(self, data_source: np.ndarray, **kwargs: Any) -> Any:
"""
Clones an existing data value. Used for Scripted Element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| data_destination = | Clones "data_source", returns the |
| o.cloneportdata(data_source) | data destination. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.popportdata`, :meth:`Lumerical.pushportdata`, :meth:`Lumerical.portdatasize`
Link
----
https://kb.lumerical.com/en/ref_scripts_cloneportdata.html
Note
----
Signature autogen'd from: `o.cloneportdata(data_source)`
"""
def closeall(self, **kwargs: Any) -> Any:
"""
Closes all open figure windows.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.closeall() | Close all open figure windows. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.image`, :meth:`Lumerical.exportfigure`
Link
----
https://kb.lumerical.com/en/ref_scripts_closeall.html
Note
----
Signature autogen'd from: `o.closeall())`
"""
def closesession(self, s: float, **kwargs: Any) -> Any:
"""
An interoperability command that will close an active server session of
a specified Lumerical product previously opened via automation API.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.closesession(s) | Closes an active session s |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.opensession`, :meth:`Lumerical.putremotedata`, :meth:`Lumerical.getremotedata`, :meth:`Lumerical.evalremote`
Link
----
https://kb.lumerical.com/en/ref_scripts_closesession.html
Note
----
Signature autogen'd from: `o.closesession(s)`
"""
def colormatch(self, spec: Any, lam: Any, functions: Any, **kwargs: Any) -> float:
"""
Returns the X, Y and Z tristimulus values calculated for a given
spectral power distribution (power per unit area per unit wavelength)
and a selected set of color matching functions. The colormatch function
assumes that the units of wavelength for the spectral power distribution
are nanometers, for example, W/(m2 nm). The available color functions
are the CIE 1931 and CIE 1964.
The X, Y, Z values have dimensions of power per unit area, in the units
used for the spectral power distribution. The expressions for
calculating the X, Y and Z values are:
where is the spectral power distribution and are the color matching
functions.
References:
https://en.wikipedia.org/wiki/CIE_1931_color_space
CIE Proceedings (1932), 1931. Cambridge: Cambridge University Press.
CIE Proceedings (1964) Vienna Session, 1963, Vol. B, pp. 209-220
(Committee Report E-1.4.1), Bureau Central de la CIE, Paris.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| cm = o.colormatch(spec, lam, | Returns X, Y, Z for the spectrum |
| "functions") | spec evaluated at the wavelength |
| | values in lam (units of meters), |
| | using the selected color functions. |
| | If no functions are specified, the |
| | "CIE 1931" set is used. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.colormatchfunction`, :meth:`Lumerical.colormatchxy`, :meth:`Lumerical.colormatchuv`
Link
----
https://kb.lumerical.com/en/ref_scripts_colormatch.html
Note
----
Signature autogen'd from: `o.colormatch(spec, lam, "functions")`
"""
@overload
def colormatchfunction(self, **kwargs: Any) -> Any: ...
@overload
def colormatchfunction(self, functions: Any, **kwargs: Any) -> Any: ...
def colormatchfunction(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the set of color matching functions selected by the user. These
functions are dimensionless. The available sets are the CIE 1931 and CIE
1964.
References:
CIE Proceedings (1932), 1931. Cambridge: Cambridge University Press.
CIE Proceedings (1964) Vienna Session, 1963, Vol. B, pp. 209-220
(Committee Report E-1.4.1), Bureau Central de la CIE, Paris.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.colormatchfunction() | Show the list of available color |
| | matching functions. |
+--------------------------------------+--------------------------------------+
| M = | Get the desired set of color |
| o.colormatchfunction("functions") | matching functions from the list of |
| | available ones. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plotxy`, :meth:`Lumerical.pinch`, :meth:`Lumerical.colormatch`, :meth:`Lumerical.colormatchxy`, :meth:`Lumerical.colormatchuv`
Link
----
https://kb.lumerical.com/en/ref_scripts_colormatchfunction.html
Note
----
Signature autogen'd from: `o.colormatchfunction())`, `o.colormatchfunction("functions")`
"""
def colormatchuv(self, lam: Any, functions: Any, **kwargs: Any) -> float:
"""
Returns the u' and v' chromaticity values calculated for a given
spectral power distribution (power per unit area per unit wavelength)
and a selected set of color matching functions. The colormatchuv
function assumes that the units of wavelength for the spectral power
distribution are nanometers, for example, W/(m2 nm). The available color
functions are the CIE 1931 and CIE 1964.
The u' and v' values are dimensionless and they are related to the X, Y
and Z values by:
References:
https://en.wikipedia.org/wiki/CIE_1931_color_space
http://en.wikipedia.org/wiki/CIELUV
CIE Proceedings (1932), 1931. Cambridge: Cambridge University Press.
CIE Proceedings (1964) Vienna Session, 1963, Vol. B, pp. 209-220
(Committee Report E-1.4.1), Bureau Central de la CIE, Paris.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| cmuv = | Returns u', v' for the spectrum spec |
| o.colormatchuv(colormatch(spec, lam, | evaluated at the wavelength values |
| "functions")) | in lam (units of meters), using the |
| | selected color functions. If no |
| | functions are specified, the "CIE |
| | 1931" set is used. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.colormatchfunction`, :meth:`Lumerical.colormatch`, :meth:`Lumerical.colormatchxy`
Link
----
https://kb.lumerical.com/en/ref_scripts_colormatchuv.html
Note
----
Signature autogen'd from: `o.colormatchuv(colormatch(spec, lam, "functions")`
"""
def colormatchxy(self, lam: Any, functions: Any, **kwargs: Any) -> float:
"""
Returns the x and y chromaticity values calculated for a given spectral
power distribution (power per unit area per unit wavelength) and a
selected set of color matching functions. The colormatchxy function
assumes that the units of wavelength for the spectral power distribution
are nanometers, for example, W/(m2 nm). The available color functions
are the CIE 1931 and CIE 1964.
The x and y values are dimensionless and they are related to the X, Y
and Z values by:
References:
https://en.wikipedia.org/wiki/CIE_1931_color_space
CIE Proceedings (1932), 1931. Cambridge: Cambridge University Press.
CIE Proceedings (1964) Vienna Session, 1963, Vol. B, pp. 209-220
(Committee Report E-1.4.1), Bureau Central de la CIE, Paris.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| cmxy = | Returns x, y for the spectrum spec |
| o.colormatchxy(colormatch(spec, lam, | evaluated at the wavelength values |
| "functions")) | in lam (units of meters), using the |
| | selected color functions. If no |
| | functions are specified, the "CIE |
| | 1931" set is used. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.colormatchfunction`, :meth:`Lumerical.colormatch`, :meth:`Lumerical.colormatchuv`
Link
----
https://kb.lumerical.com/en/ref_scripts_colormatchxy.html
Note
----
Signature autogen'd from: `o.colormatchxy(colormatch(spec, lam, "functions")`
"""
def comments(self, **kwargs: Any) -> Any:
"""
Comments script files. Anything after the # character is ignored.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| x=1; # set x to 1 | Anything after the # character is |
| | ignored. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_comments.html
Note
----
Signature autogen'd from: `o.comments()`
"""
def conj(self, x: float, **kwargs: Any) -> float:
"""
Returns the complex conjugate of a number or matrix.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.conj(x) | Returns the complex conjugate of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.real`, :meth:`Lumerical.imag`
Link
----
https://kb.lumerical.com/en/ref_scripts_conj.html
Note
----
Signature autogen'd from: `o.conj(x)`
"""
def connect(self, element1: Any, port1: Any, element2: Any, port2: Any, **kwargs: Any) -> Any:
"""
Connects one element to another via the specified ports.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.connect("element1", "port1", | Connects "port1" of "element1" to |
| "element2", "port2") | "element2" or "port2". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.disconnect`
Link
----
https://kb.lumerical.com/en/ref_scripts_connect.html
Note
----
Signature autogen'd from: `o.connect("element1", "port1", "element2", "port2")`
"""
def constructgeneratormatrix(self, parityin: Any, generatorout: Any, parityout: Any, **kwargs: Any) -> Any:
"""
Constructs a symmetric coding generator matrix. This command is
especially useful together with the FEC block.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.constructgeneratormatrix(parityin, | Constructs a symmetric coding |
| generatorout, parityout) | generator matrix ‘generatorout’ and |
| | the correspondent parity check |
| | matrix ‘parityout’ from a input |
| | parity check matrix ‘parityin’. The |
| | input and the generated files are |
| | AList formatted files. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_constructgeneratormatrix.html
Note
----
Signature autogen'd from: `o.constructgeneratormatrix(parityin, generatorout, parityout)`
"""
@overload
def copy(self, **kwargs: Any) -> Any: ...
@overload
def copy(self, dx: float, **kwargs: Any) -> Any: ...
@overload
def copy(self, dx: float, dy: float, **kwargs: Any) -> Any: ...
@overload
def copy(self, dx: float, dy: float, dz: float, **kwargs: Any) -> Any: ...
def copy(self, *args: Any, **kwargs: Any) -> Any:
"""
Creates a copy of the selected objects. The copied objects will
typically be identical (same name, position, etc). For some objects that
must have a unique name, '_1' will be appended to the name.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.copy() | Copy the selected objects. |
+--------------------------------------+--------------------------------------+
| o.copy(dx) | Same as copy; but with a specified |
| | move of dx. |
+--------------------------------------+--------------------------------------+
| o.copy(dx,dy) | Same as copy; but with a specified |
| | move of dx, dy. |
+--------------------------------------+--------------------------------------+
| o.copy(dx,dy,dz) | Same as copy; but with a specified |
| | move of dx, dy, dz. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.move`, :meth:`Lumerical.select`, :meth:`Lumerical.copytoclipboard`
Link
----
https://kb.lumerical.com/en/ref_scripts_copy.html
Note
----
Signature autogen'd from: `o.copy())`, `o.copy(dx)`, `o.copy(dx,dy)`, `o.copy(dx,dy,dz)`
"""
@overload
def copydcard(self, name: str, **kwargs: Any) -> Any: ...
@overload
def copydcard(self, name: str, newname: str, **kwargs: Any) -> Any: ...
def copydcard(self, *args: Any, **kwargs: Any) -> Any:
"""
Will create a global copy of any d-card currently in memory.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.copydcard( "name") | Will create a global copy of any |
| | d-card currently in memory called |
| | "name". By default, the new name |
| | will be "::global_name". For |
| | example, copydcard("mode1"); sends |
| | mode1 to the deck, named |
| | global_mode1. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.copydcard( "name", "newname") | Will create a global copy of any |
| | d-card currently in memory called |
| | "name". The new name will be |
| | "::newname". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.havedata`, :meth:`Lumerical.cleardcard`, :meth:`Lumerical.overlap`, :meth:`Lumerical.savedcard`
Link
----
https://kb.lumerical.com/en/ref_scripts_copydcard.html
Note
----
Signature autogen'd from: `o.copydcard("name")`, `o.copydcard("name", "newname")`
"""
def copymaterial(self, materialname: str, **kwargs: Any) -> Any:
"""
Makes a copy of a material in the material database.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.copymaterial("materialname") | Creates a copy of the material |
| | "materialname". The new name is |
| | returned. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.deletematerial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getmaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_copymaterial.html
Note
----
Signature autogen'd from: `o.copymaterial("materialname")`
"""
def copysweep(self, name: str, **kwargs: Any) -> Any:
"""
Copies a sweep/optimization/Monte Carlo analysis item to clipboard.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.copysweep("name") | Copies a sweep/optimization/Monte |
| | Carlo analysis item to clipboard. |
| | |
| | "name" is the absolute name of a |
| | sweep/optimization/Monte Carlo |
| | analysis (eg. |
| | ::optimization::sweep1) |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addsweep`, :meth:`Lumerical.deletesweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.addsweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepparameter`, :meth:`Lumerical.addsweepresult`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_copysweep.html
Note
----
Signature autogen'd from: `o.copysweep("name")`
"""
def copytoclipboard(self, **kwargs: Any) -> Any:
"""
Copies the selected objects into the system clipboard. Equivalent to
'Ctrl-C'.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.copytoclipboard() | Copies selected objects to the |
| | system clipboard |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.pastefromclipboard`, :meth:`Lumerical.copy`
Link
----
https://kb.lumerical.com/en/ref_scripts_copytoclipboard.html
Note
----
Signature autogen'd from: `o.copytoclipboard())`
"""
@overload
def corrcoef(self, A: float, **kwargs: Any) -> float: ...
@overload
def corrcoef(self, A: float, B: float, **kwargs: Any) -> float: ...
def corrcoef(self, *args: Any, **kwargs: Any) -> float:
"""
Calculates the correlation matrix. The input can be one matrix, which
contains the observations of a set of random variables, or two matrices,
each one representing a vector of observations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.corrcoef(A) o.corrcoef(A, B) | Calculate the correlation matrix. |
| | |
| | R = corrcoef(A) returns the matrix |
| | of correlation coefficients for A, |
| | where the columns of A represent |
| | random variables and the rows |
| | represent observations. |
| | |
| | R = corrcoef(A, B) returns the |
| | correlation coefficients between two |
| | random variables A and B. If A and B |
| | are vectors of observations with |
| | equal length, corrcoef(A, B) is the |
| | 2-by-2 correlation matrix; if A and |
| | B are matrices of observations, |
| | corrcoef(A, B) treats A and B as |
| | vectors and is equivalent to |
| | corrcoef(A(1:lenght(A)), |
| | B(1:length(B))). A and B must have |
| | equal size. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.cov`, :meth:`Lumerical.corrtransf`
Link
----
https://kb.lumerical.com/en/ref_scripts_corrcoef.html
Note
----
Signature autogen'd from: `o.corrcoef(A)`, `o.corrcoef(A, B)`
"""
def corrtransf(self, A: float, **kwargs: Any) -> Any:
"""
Calculates the transformation matrix to generate multiple sequences of
correlated random variables.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.corrtransf(A) | Calculate the transformation matrix |
| | to generate multiple sequences of |
| | correlated random variables given a |
| | correlation matrix A. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.cov`, :meth:`Lumerical.corrcoef`
Link
----
https://kb.lumerical.com/en/ref_scripts_corrtransf.html
Note
----
Signature autogen'd from: `o.corrtransf(A)`
"""
def cos(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the trigonometric cosine function. Angle units are in
radians. The function is defined for complex angles. Phase of a complex
number is evaluated between -pi and pi.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.cos(x) | Returns the complex cosine of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.acos`
Link
----
https://kb.lumerical.com/en/ref_scripts_cos.html
Note
----
Signature autogen'd from: `o.cos(x)`
"""
def coupling(self, **kwargs: Any) -> Any:
"""
Returns the complex coupling coefficient between two modes. The power
coupling can be calculated with the overlap function, or by the
following formula.
Reference: Allan W. Snyder and John D. Love, Optical Waveguide Theory.
Chapman & Hall, London, England, 1983.
See the overlap function for more details about overlap and coupling
calculations.
+--------------------------------------------------------------------------+
| Note: coupling command is deprecated, consider using expand |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.coupling(mode2, mode1) | •mode2, mode1: the mode names |
| | |
| | •out: the coupling coefficient |
+--------------------------------------+--------------------------------------+
| out = o.coupling(mode2, mode1, x, y) | Mode alignment can be adjusted |
| | before coupling is calculated. |
| | |
| | •x offset |
| | |
| | •y offset |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.copydcard`, :meth:`Lumerical.findmodes`, :meth:`Lumerical.coupling`, :meth:`Lumerical.overlap`, :meth:`Lumerical.bestoverlap`, :meth:`Lumerical.propagate`, :meth:`Lumerical.expand`, :meth:`Lumerical.expand2`
Link
----
https://kb.lumerical.com/en/ref_scripts_coupling.html
Note
----
Signature autogen'd from: `o.coupling()`
"""
@overload
def cov(self, A: float, **kwargs: Any) -> Any: ...
@overload
def cov(self, A: float, B: float, **kwargs: Any) -> Any: ...
def cov(self, *args: Any, **kwargs: Any) -> Any:
"""
Calculates the covariance matrix. The input can be one matrix, which
contains the observations of a set of random variables, or two matrices,
each one representing a vector of observations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cov(A) o.cov(A, B) | Calculate the covariance matrix. |
| | |
| | C = cov(A) returns the covariance. A |
| | is a matrix where columns represent |
| | random variables and rows represent |
| | observations; C is the covariance |
| | matrix with the corresponding column |
| | variances along the diagonal. |
| | |
| | C = cov(A, B) returns the covariance |
| | between two random variables A and |
| | B. If A and B are vectors of |
| | observations with equal length, |
| | cov(A, B) is the 2-by-2 covariance |
| | matrix; if A and B are matrices of |
| | observations, cov(A, B) treats A and |
| | B as vectors and is equivalent to |
| | cov(A(1:lenght(A)), B(1:length(B))). |
| | A and B must have equal size. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.corrcoef`, :meth:`Lumerical.corrtransf`
Link
----
https://kb.lumerical.com/en/ref_scripts_cov.html
Note
----
Signature autogen'd from: `o.cov(A)`, `o.cov(A, B)`
"""
def cp(self, file1: str, file2: str, **kwargs: Any) -> Any:
"""
Copies a file. The copy can be created in a specified path.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cp("file1","file2") | Makes a copy of file1 called file2. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.cp("path1\\file1","path2\\file2") | Copies file1 in path1 to file2 in |
| | path2. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.mv`, :meth:`Lumerical.pwd`
Link
----
https://kb.lumerical.com/en/ref_scripts_cp.html
Note
----
Signature autogen'd from: `o.cp("file1","file2")`
"""
def createbeam(self, **kwargs: Any) -> float:
"""
Creates a new Gaussian beam that is accessible from the deck/global
workspace. The Gaussian beam has the properties specified in the Overlap
analysis -> Beam tab of the eigensolver analysis window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.createbeam() | Creates a Gaussian beam in the |
| | deck/global workspace. |
| | |
| | Returns the name of the Gaussian |
| | beam created, which is by default |
| | "gaussian#" (# being the total |
| | number of Gaussian beams already |
| | existing in the current deck + 1). |
+--------------------------------------+--------------------------------------+
| out = o.createbeam() | Creates a Gaussian beam in the |
| | deck/global workspace and saves its |
| | name in the variable "out". |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_createbeam.html
Note
----
Signature autogen'd from: `o.createbeam())`
"""
def createcompound(self, **kwargs: Any) -> Any:
"""
The script command creates a compound element with the currently
selected elements.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.createcompound() | Creates a compound element with the |
| | currently selected elements. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.autoarrange`, :meth:`Lumerical.addproperty`, :meth:`Lumerical.setexpression`
Link
----
https://kb.lumerical.com/en/ref_scripts_createcompound.html
Note
----
Signature autogen'd from: `o.createcompound())`
"""
def createsphericalsurface(self, Y: float, radius: Any, lmax: float, **kwargs: Any) -> Any:
"""
Creates a triangulated spherical surface or a segmented circular arc. It
can be used to define the far-field points for a far field projection as
these are often specified using a spherical surface (3D simulations) or
a circular arc (2D simulations).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Creates an unstructured data set |
| o.createsphericalsurface([theta1,the | with a triangulated surface or a |
| ta2],[phi1,phi2], | segmented arc. Their dimensions are |
| [X,Y,Z],radius,lmax) | specified by the input angles, |
| | orientation axis and radius. The |
| | coarseness of the triangulation (or |
| | line segmentation) is specified as |
| | the maximum separation between |
| | adjacent points. The output data set |
| | contains the IDs of each element |
| | (triangles or lines) and the |
| | corresponding areas (only for |
| | triangles). |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| theta1 | optional | 0 | number | Starting value |
| | | | | of the |
| | | | | elevation |
| | | | | angle (theta) |
| | | | | range in |
| | | | | radians with |
| | | | | respect to the |
| | | | | reference |
| | | | | axis. |
+----------------+----------------+----------------+----------------+----------------+
| theta2 | optional | pi | number | End value of |
| | | | | the elevation |
| | | | | angle (theta) |
| | | | | range in |
| | | | | radians with |
| | | | | respect to the |
| | | | | reference |
| | | | | axis. |
+----------------+----------------+----------------+----------------+----------------+
| phi1 | optional | 0 | number | Starting value |
| | | | | of the |
| | | | | azimuthal |
| | | | | angle (phi) |
| | | | | range in |
| | | | | radians with |
| | | | | respect to the |
| | | | | reference |
| | | | | axis. |
+----------------+----------------+----------------+----------------+----------------+
| phi2 | optional | 2\*pi | number | End value of |
| | | | | the azimuthal |
| | | | | angle (phi) |
| | | | | range in |
| | | | | radians with |
| | | | | respect to the |
| | | | | reference |
| | | | | axis. |
+----------------+----------------+----------------+----------------+----------------+
| [X,Y,Z] | optional | [0,0,1] | vector | Orientation |
| | | | | axis: [1,0,0] |
| | | | | for X-axis, |
| | | | | [0,1,0] for |
| | | | | Y-axis and |
| | | | | [0,0,1] for |
| | | | | Z-axis. |
+----------------+----------------+----------------+----------------+----------------+
| radius | optional | 1 | number | Radius of the |
| | | | | sphere or arc |
| | | | | to be created |
| | | | | in meters. |
+----------------+----------------+----------------+----------------+----------------+
| lmax | optional | 0.2 | number | Maximum |
| | | | | separation |
| | | | | between two |
| | | | | adjacent data |
| | | | | points on far |
| | | | | field location |
| | | | | in meters. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.near2far`
Link
----
https://kb.lumerical.com/en/ref_scripts_createsphericalsurface.html
Note
----
Signature autogen'd from: `o.createsphericalsurface([theta1,the ta2],[phi1,phi2], [X,Y,Z],radius,lmax)`
"""
def cross(self, A: float, B: float, **kwargs: Any) -> Any:
"""
Calculates the vector cross product of two matrices, which must have the
same size. The cross product will be computed on the first dimension
that has a size of 3. There must be at least one dimension with a size
of 3.
Assume that A,B are 2D matrices, where the second dimension contains the
vector components. The size of the second dimension must be 3. Then the
elements of C will be calculated with the standard cross product
formulas.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| C = o.cross(A, B) | Returns the cross product of A and B |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dot`, :meth:`Lumerical.length`, :meth:`Lumerical.size`
Link
----
https://kb.lumerical.com/en/ref_scripts_cross.html
Note
----
Signature autogen'd from: `o.cross(A, B)`
"""
def ctranspose(self, x: float, **kwargs: Any) -> Any:
"""
Transposes a 1D or 2D matrix and takes the complex conjugate of each
element. The resulting matrix is the conjugate transpose or Hermitian
transpose.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| y = o.ctranspose(x) | If x is an N x M matrix, then y will |
| | be M x N, where the entries are |
| | y(j,i)=x(i,j)\*. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.transpose`
Link
----
https://kb.lumerical.com/en/ref_scripts_ctranspose.html
Note
----
Signature autogen'd from: `o.ctranspose(x)`
"""
def currentfilename(self, **kwargs: Any) -> Any:
"""
Returns the current project filename and directory.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.currentfilename() | Returns the current filename as a |
| | string. |
| | |
| | If the current filename is not |
| | defined, this function returns an |
| | empty string "". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fileexists`, :meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.fileextension`, :meth:`Lumerical.filebasename`, :meth:`Lumerical.filedirectory`, :meth:`Lumerical.currentscriptname`
Link
----
https://kb.lumerical.com/en/ref_scripts_current_filename.html
Note
----
Signature autogen'd from: `o.currentfilename())`
"""
def currentscriptname(self, **kwargs: Any) -> Any:
"""
Returns the current script filename and directory.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.currentscriptname() | Returns the current script filename |
| | as a string. |
| | |
| | If entered in the script prompt, |
| | this function returns the string |
| | "prompt". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fileexists`, :meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.fileextension`, :meth:`Lumerical.filebasename`, :meth:`Lumerical.filedirectory`, :meth:`Lumerical.currentfilename`
Link
----
https://kb.lumerical.com/en/ref_scripts_currentscriptname.html
Note
----
Signature autogen'd from: `o.currentscriptname())`
"""
def customlibrary(self, **kwargs: Any) -> Any:
"""
Returns the location (path) of the Custom library.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.customlibrary() | Returns the directory of the custom |
| | library. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.library`, :meth:`Lumerical.addtolibrary`
Link
----
https://kb.lumerical.com/en/ref_scripts_customlibrary.html
Note
----
Signature autogen'd from: `o.customlibrary())`
"""
def cwnorm(self, **kwargs: Any) -> Any:
"""
Uses CW normalization. All simulation data will be normalized to the
injected source power. Most users prefer to do their analysis in the CW
normalization state, since it removes any effect caused by the finite
pulse length of the source. It also converts the units of all
electromagnetic fields to be the same as in the time domain. Note, this
command works in both the Layout and Analysis mode.
This function controls the checkbox located in Settings - Normalization
state.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.cwnorm() | Use CW normalization. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.nonorm`
Link
----
https://kb.lumerical.com/en/ref_scripts_cwnorm.html
Note
----
Signature autogen'd from: `o.cwnorm())`
"""
@overload
def czt(self, Ex: Any, t: float, w: float, **kwargs: Any) -> Any: ...
@overload
def czt(self, Ex: Any, x: float, y: float, kx: Any, ky: Any, **kwargs: Any) -> Any: ...
def czt(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the chirped z-transform of a set of data. The czt function is
often more convenient than the standard fft functions because you can
specify an arbitrary range of k.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.czt(Ex,t,w) | Returns the chirped z-transform of |
| | Ex, function of t, at each desired |
| | angular frequency w. Note that w |
| | must be a linearly spaced set of |
| | angular frequencies but can cover |
| | any range. It is also possible for |
| | inverse transform, ie |
| | out=czt(Ex,w,t), see the |
| | interpolation example below for |
| | details. E can be a matrix where one |
| | of the two dimensions is the same as |
| | length. The Z-transform is computed |
| | along the dimension that matches |
| | length, and the output vector will |
| | be a matrix where the matched |
| | dimension is length(kx) and the |
| | other dimension is the same as E. |
| | This functionality allows to compute |
| | multiple 1D Z-transforms with a |
| | single function call. |
+--------------------------------------+--------------------------------------+
| o.czt(Ex,x,y,kx,ky) | The two dimensional chirped |
| | z-transform. kx and ky must be |
| | linearly spaced sets of wavenumbers |
| | but can cover any range. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fft`, :meth:`Lumerical.fftw`
Link
----
https://kb.lumerical.com/en/ref_scripts_czt.html
Note
----
Signature autogen'd from: `o.czt(Ex,t,w)`, `o.czt(Ex,x,y,kx,ky)`
"""
def dcht(self, f: float, option: float, **kwargs: Any) -> Any:
"""
Returns the Chebyshev interpolation coefficients. The amplitude of the
coefficients decreases exponentially and the last coefficient offers an
estimate of the relative accuracy of the interpolation.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| coeff=o.dcht(f,option) | Returns the Chebyshev interpolation |
| | coefficients of a sampled function |
| | f. The function f must be sampled on |
| | a Chebyshev roots grid. |
| | |
| | Option: |
| | |
| | If option=1 is selected, the vector |
| | x will not include the endpoints |
| | |
| | If option=2 is selected, the vector |
| | x will include the endpoints |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.chpts`, :meth:`Lumerical.chebin`, :meth:`Lumerical.icht`, :meth:`Lumerical.chebpol`, :meth:`Lumerical.chebpol1`
Link
----
https://kb.lumerical.com/en/ref_scripts_dcht.html
Note
----
Signature autogen'd from: `o.dcht(f,option)`
"""
def debug(self, **kwargs: Any) -> Any:
"""
Opens the debug utility window. This command is useful for debugging
purposes. When this command is used, script will run to the line before
the debug command. Then user can start to call other commands to test
commands that have been run. Once the utility window is closed, the
script lines will continue to run. Multiple debug commands are allowed.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.debug() | Opens the debug utility window. This |
| | command can also be used in the |
| | analysis script. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_debug.html
Note
----
Signature autogen'd from: `o.debug())`
"""
def del_(self, filename: str, **kwargs: Any) -> Any:
"""
Deletes a file. A path can be specified.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.del("filename") rm("filename") | Deletes the file "filename". |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.delete`, :meth:`Lumerical.rm`
Link
----
https://kb.lumerical.com/en/ref_scripts_del.html
Note
----
Signature autogen'd from: `o.del("filename")`
"""
def delete(self, **kwargs: Any) -> Any:
"""
Deletes selected objects.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.delete() | Deletes selected objects. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.groupscope`
Link
----
https://kb.lumerical.com/en/ref_scripts_delete.html
Note
----
Signature autogen'd from: `o.delete())`
"""
def deleteall(self, **kwargs: Any) -> Any:
"""
Deletes all objects in the current group scope.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.deleteall() | Deletes all objects in the current |
| | group scope. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.groupscope`
Link
----
https://kb.lumerical.com/en/ref_scripts_deleteall.html
Note
----
Signature autogen'd from: `o.deleteall())`
"""
def deletematerial(self, materialname: str, **kwargs: Any) -> Any:
"""
Deletes a material from the material database.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.deletematerial("materialname") | Deletes a material named |
| | "materialname" from the material |
| | database. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getmaterial`, :meth:`Lumerical.copymaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_deletematerial.html
Note
----
Signature autogen'd from: `o.deletematerial("materialname")`
"""
def deletesweep(self, name: str, **kwargs: Any) -> Any:
"""
Deletes a specified parameter sweep, optimization, or Monte Carlo
analysis task.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.deletesweep("name") | Deletes the sweep, optimization, or |
| | Monte Carlo analysis task with the |
| | specified name. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addsweep`, :meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_deletesweep.html
Note
----
Signature autogen'd from: `o.deletesweep("name")`
"""
def designmode(self, **kwargs: Any) -> Any:
"""
In INTERCONNECT, this script command can be used to determine whether
the simulation file is currently in DESIGN mode or in ANALYSIS mode. It
is important to use this command to check the status of the project file
once it is opened to avoid running into an error during the subsequent
operations if the file is not in the desired mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.designmode() | Returns 1 if in DESIGN mode, and 0 |
| | if in ANALYSIS mode. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.switchtolayout`, :meth:`Lumerical.layoutmode`, :meth:`Lumerical.switchtodesign`
Link
----
https://kb.lumerical.com/en/ref_scripts_designmode.html
Note
----
Signature autogen'd from: `o.designmode())`
"""
@overload
def dipolepower(self, f: float, **kwargs: Any) -> Any: ...
@overload
def dipolepower(self, f: float, name: str, **kwargs: Any) -> Any: ...
def dipolepower(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the power injected into the simulation region by a dipole
source. In 3D simulations, the units will be in Watts if cwnorm is used,
and Watts/Hertz2 if nonorm is used.
The dipolepower script command returns the power that was injected into
the simulation region, and is equivalent to measuring the power
transmitted out of a small box surrounding the dipole. In contrast,
sourcepower will return the power that the dipole would radiate in a
homogeneous material. dipolepower and sourcepower are equivalent for
dipoles in a homogeneous medium.
Advanced notes:
•If the dipole is located within a dispersive medium (with a non-zero
imaginary part of the refractive index), then the results of this
function are not reliable. In such situations, using a box of monitors
around the dipole is recommended.
•Numerical errors in this calculation may become noticeable when very
small simulation mesh sizes are used. If the mesh step is the order of,
or smaller than, λ/1000, verifying the dipolepower results by measuring
the radiated power with a small box of monitors surrounding the dipole
is recommended.
Please visit the Support Center for more assistance if you are using a
dipole in a dispersive medium.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.dipolepower(f) | Returns the amount of power radiated |
| | by the dipole source, at frequency |
| | points f. (f in Hz) |
+--------------------------------------+--------------------------------------+
| out = o.dipolepower(f, name) | This option allows you to obtain the |
| | power radiated by a single dipole, |
| | rather than the sum of all dipoles. |
| | This option is only needed for |
| | simulations with multiple dipoles. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.sourcenorm`, :meth:`Lumerical.sourcepower`, :meth:`Lumerical.sourcepower\_avg`, :meth:`Lumerical.sourcepower\_pavg`, :meth:`Lumerical.transmission`, :meth:`Lumerical.cwnorm`, :meth:`Lumerical.nonorm`
Link
----
https://kb.lumerical.com/en/ref_scripts_dipolepower.html
Note
----
Signature autogen'd from: `o.dipolepower(f)`, `o.dipolepower(f, name)`
"""
def dir(self, **kwargs: Any) -> Any:
"""
Lists files in a directory. Files other than Lumerical project files are
also listed.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.dir; out = ls() | The output is a string. |
| | |
| | Use ?dir; to write the value to the |
| | screen. |
+--------------------------------------+--------------------------------------+
| out = o.dir("o.directory") out = | Lists the files in the specified |
| ls("o.directory") | directory. For example, |
| | ?ls("C:\\Downloads"); |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.load`, :meth:`Lumerical.splitstring`
Link
----
https://kb.lumerical.com/en/ref_scripts_dir.html
Note
----
Signature autogen'd from: `o.dir()`
"""
def disconnect(self, element1: Any, port1: Any, element2: Any, port2: Any, **kwargs: Any) -> Any:
"""
Disconnects one element to another via the specified ports.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.disconnect("element1", "port1", | Deletes the connection between |
| "element2", "port2") | "port1" of "element1" and "port2" of |
| | "element2". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.connect`
Link
----
https://kb.lumerical.com/en/ref_scripts_disconnect.html
Note
----
Signature autogen'd from: `o.disconnect("element1", "port1", "element2", "port2")`
"""
def dot(self, A: float, B: float, **kwargs: Any) -> Any:
"""
Calculates the dot product of two matrices, which must have the same
number of elements. The dot product of matrices A and B will be computed
with the following formula:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| C = o.dot(A, B) | Returns the dot product of A and B |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.cross`, :meth:`Lumerical.length`, :meth:`Lumerical.size`
Link
----
https://kb.lumerical.com/en/ref_scripts_dot.html
Note
----
Signature autogen'd from: `o.dot(A, B)`
"""
def eig(self, A: float, **kwargs: Any) -> float:
"""
Finds the eigenvalue and/or eigenvector of a matrix. The matrix has to
be square.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.eig(A) out = o.eig(A, 1) | Returns the eigenvalues of matrix A. |
+--------------------------------------+--------------------------------------+
| out = o.eig(A, 2) | Returns the eigenvectors of matrix |
| | A. |
+--------------------------------------+--------------------------------------+
| out = o.eig(A, 3) | Returns both the eigenvalues and |
| | eigenvectors of matrix A. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.and`, :meth:`Lumerical.or`, :meth:`Lumerical.mult`, :meth:`Lumerical.permute`, :meth:`Lumerical.reshape`, :meth:`Lumerical.inv`
Link
----
https://kb.lumerical.com/en/ref_scripts_eig.html
Note
----
Signature autogen'd from: `o.eig(A)`
"""
def emepropagate(self, **kwargs: Any) -> Any:
"""
Propagates fields for EME profile monitor and calculates s-matrix and
user s-matrix results, as well as any error diagnostic results when in
Analysis mode using EME solver. This is equivalent to clicking the "eme
propagate" button.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.emepropagate() | Propagate fields and s-matrix |
| | results. This is equivalent to the |
| | "eme propagate" button in the |
| | graphical user interface. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.emesweep`, :meth:`Lumerical.getemesweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_emepropagate.html
Note
----
Signature autogen'd from: `o.emepropagate())`
"""
def emesweep(self, **kwargs: Any) -> Any:
"""
When in Analysis mode using EME solver, runs either propagation sweep
tool which sweeps the length of a cell group span or mode convergence
sweep tool which sweeps the number of modes. .
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.emesweep; o.emesweep("propagation | Run propagation sweep. |
| sweep") | |
+--------------------------------------+--------------------------------------+
| o.emesweep("mode convergence sweep") | Run mode convergence sweep. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setemeanalysis`, :meth:`Lumerical.getemesweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_emesweep.html
Note
----
Signature autogen'd from: `o.emesweep()`
"""
def encryptscript(self, new_filename: str, **kwargs: Any) -> Any:
"""
Save a copy of the specified script file in an encrypted format. The new
file will have a .lsfx file extension. Encrypting a script allows a
script to be shared with others, without allowing them to see the
contents of the script.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.encryptscript("filename.lsf") | Encrypt a copy of the script. The |
| | new file will be named |
| | "filename.lsfx". |
+--------------------------------------+--------------------------------------+
| o.encryptscript("filename.lsf", | Specify an alternate file name. |
| "new_filename") | |
+--------------------------------------+--------------------------------------+
~
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_encryptscript.html
Note
----
Signature autogen'd from: `o.encryptscript("filename.lsf", "new_filename")`
"""
def endl(self, **kwargs: Any) -> Any:
"""
Adds an end of line character to a string
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = "line1"+o.endl+"line2"() | Add an end of line character to the |
| | string. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.num2str`, :meth:`Lumerical.write`
Link
----
https://kb.lumerical.com/en/ref_scripts_endl.html
Note
----
Signature autogen'd from: `o.endl()`
"""
def erf(self, z: float, **kwargs: Any) -> Any:
"""
Calculates the error function as defined by the following equation:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.erf(z) | Returns error function of z where z |
| | is a scalar number or matrix of |
| | scalar numbers. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.erfc`, :meth:`Lumerical.erfinv`, :meth:`Lumerical.erfcinv`
Link
----
https://kb.lumerical.com/en/ref_scripts_erf.html
Note
----
Signature autogen'd from: `o.erf(z)`
"""
def erfc(self, z: float, **kwargs: Any) -> float:
"""
Calculates the complementary error function as defined by the following
equation:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.erfc(z) | Returns the complementary error |
| | function of z where z is a scalar |
| | number or matrix of scalar numbers. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.erf`, :meth:`Lumerical.erfinv`, :meth:`Lumerical.erfcinv`
Link
----
https://kb.lumerical.com/en/ref_scripts_erfc.html
Note
----
Signature autogen'd from: `o.erfc(z)`
"""
def erfcinv(self, z: float, **kwargs: Any) -> float:
"""
Calculates the inverse complementary error function as defined by the
following equation in relationship to the inverse error function erfinv:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.erfcinv(z) | Returns the inverse complementary |
| | error function of z where z is a |
| | scalar number or matrix of scalar |
| | numbers. |
| | |
| | For inputs outside the interval (0, |
| | 2), erfcinv returns NaN. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.erf`, :meth:`Lumerical.erfc`, :meth:`Lumerical.erfinv`
Link
----
https://kb.lumerical.com/en/ref_scripts_erfcinv.html
Note
----
Signature autogen'd from: `o.erfcinv(z)`
"""
def erfinv(self, z: float, **kwargs: Any) -> float:
"""
Calculates the inverse error function as defined by the following
equation:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.erfinv(z) | Returns the inverse error function |
| | of z where z is a scalar number or |
| | matrix of scalar numbers. |
| | |
| | For inputs outside the interval (-1, |
| | 1), erfinv returns NaN. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.erf`, :meth:`Lumerical.erfc`, :meth:`Lumerical.erfcinv`
Link
----
https://kb.lumerical.com/en/ref_scripts_erfinv.html
Note
----
Signature autogen'd from: `o.erfinv(z)`
"""
def eval(self, string: str, **kwargs: Any) -> Any:
"""
Executes a string containing Lumerical's scripting language.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.eval(string) | Executes the Lumerical script |
| | commands in string. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.feval`, :meth:`Lumerical.str2num`, :meth:`Lumerical.num2str`, :meth:`Lumerical.lower`, :meth:`Lumerical.upper`, :meth:`Lumerical.toscript`
Link
----
https://kb.lumerical.com/en/ref_scripts_eval.html
Note
----
Signature autogen'd from: `o.eval(string)`
"""
def evalremote(self, s: float, **kwargs: Any) -> Any:
"""
An interoperability command that will send a script commnad(s) to the
server product and executes it there
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.evalremote(s,"y=x^2;") | Sends command y=x^2; to the server |
| | via an open session s and executes |
| | it |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.opensession`, :meth:`Lumerical.closesession`, :meth:`Lumerical.putremotedata`, :meth:`Lumerical.getremotedata`
Link
----
https://kb.lumerical.com/en/ref_scripts_evalremote.html
Note
----
Signature autogen'd from: `o.evalremote(s,"y=x^2;")`
"""
def exist(self, x: float, **kwargs: Any) -> Any:
"""
Returns a number based on type of the string used in the command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exist("x") | Returns |
| | |
| | 0 if there is no variable, operator, |
| | built-in function or script file |
| | (x.lsf) in the current script path |
| | |
| | 1 if x is a variable, example: x=5; |
| | ?exist(“x”); |
| | |
| | 2 if x is an operator or built in |
| | keyword, example: ?exist(“\*”) or |
| | ?exist(“for”); |
| | |
| | 3 if x is a script file in the |
| | current script path, called “x.lsf” |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.newproject`, :meth:`Lumerical.fileexists`
Link
----
https://kb.lumerical.com/en/ref_scripts_exist.html
Note
----
Signature autogen'd from: `o.exist("x")`
"""
@overload
def exit(self, **kwargs: Any) -> Any: ...
@overload
def exit(self, option: float, **kwargs: Any) -> Any: ...
def exit(self, *args: Any, **kwargs: Any) -> Any:
"""
Exits the application.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exit() | Exits the application. Same as |
| | exit(1); |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.exit(option) | Exits the application. The option |
| | can be |
| | |
| | •1: Prompt user if a file needs |
| | saving before exiting. |
| | |
| | •2: Force the application to exit |
| | without prompting the user. |
| | |
| | The default option is 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.newproject`, :meth:`Lumerical.new`
Link
----
https://kb.lumerical.com/en/ref_scripts_exit.html
Note
----
Signature autogen'd from: `o.exit())`, `o.exit(option)`
"""
def exp(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the natural exponential function. Input can be complex.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.exp(x) | The natural exponential of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.log`
Link
----
https://kb.lumerical.com/en/ref_scripts_exp.html
Note
----
Signature autogen'd from: `o.exp(x)`
"""
def expand(self, monitor1: Any, monitor_ref: Any, x: float, y: float, z: float, **kwargs: Any) -> Any:
"""
Returns the expansion coefficients between the fields recorded at two
arbitrary DFT monitors or saved in two d-cards. The coefficients are
defined according to:
For more detail on how to use this command, definitions on the
parameters and how to interpret the results, please see Using Mode
Expansion Monitors. Note that N is the power of the waveguide mode.
conj(N) is equal to N if this is a real number. For the unconjugated
coefficients, see expand2.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.expand('monitor1','monitor_ref',x | outputs the expansion coefficients |
| ,y,z) | between the fields of two monitors |
| | (or d-cards) |
| | |
| | •'monitor1': name of the monitor (or |
| | d-card) containing the fields E1 and |
| | H1 of which the expansion is |
| | performed |
| | |
| | •'monitor_ref': name of the |
| | reference monitor (or d-card) |
| | containing E2 and H2 |
| | |
| | •x,y,z: spatial displacement of the |
| | fields from monitor1 with respect to |
| | those from monitor_ref |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setexpansion`, :meth:`Lumerical.removeexpansion`, :meth:`Lumerical.expand2`
Link
----
https://kb.lumerical.com/en/ref_scripts_expand.html
Note
----
Signature autogen'd from: `o.expand('monitor1','monitor_ref',x ,y,z)`
"""
def expand2(self, monitor1: Any, monitor_ref: Any, x: float, y: float, z: float, **kwargs: Any) -> Any:
"""
Returns the expansion coefficients in the unconjugated form between the
fields recorded at two arbitrary DFT monitors or saved in two d-cards.
The coefficients in the unconjugated form are defined according to:
For more detail on how to use this command, definitions on the
parameters and how to interpret the results, please see Using Mode
Expansion Monitors.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.expand2('monitor1','monitor_ref', | outputs the expansion coefficients |
| x,y,z) | between the fields of two monitors |
| | (or d-cards) in the unconjugated |
| | form |
| | |
| | •'monitor1': name of the monitor (or |
| | d-card) containing the fields E1 and |
| | H1 of which the expansion is |
| | performed |
| | |
| | •'monitor_ref': name of the |
| | reference monitor (or d-card) |
| | containing E2 and H2 |
| | |
| | •x,y,z: spatial displacement of the |
| | fields from monitor1 with respect to |
| | those from monitor_ref |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setexpansion`, :meth:`Lumerical.removeexpansion`, :meth:`Lumerical.expand`
Link
----
https://kb.lumerical.com/en/ref_scripts_expand2.html
Note
----
Signature autogen'd from: `o.expand2('monitor1','monitor_ref', x,y,z)`
"""
@overload
def exportcsvresults(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def exportcsvresults(self, filename: str, elementname: str, **kwargs: Any) -> Any: ...
def exportcsvresults(self, *args: Any, **kwargs: Any) -> Any:
"""
This script command can export the results of a simulation to comma
separated value formatted files, which can be opened by Microsoft Excel.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportcsvresults("filename") | exports the results of the entire |
| | simulation to multiple .cvs files, |
| | named filename_elementname.csv |
+--------------------------------------+--------------------------------------+
| o.exportcsvresults("filename", | exports the results of the specified |
| "elementname") | element to a .cvs file, named |
| | filename_elementname.csv |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the .csv file |
+-------------------------+-------------------------+-------------------------+
| elementname | string | name of the element. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportcsvresults.html
Note
----
Signature autogen'd from: `o.exportcsvresults("filename")`, `o.exportcsvresults("filename", "elementname")`
"""
@overload
def exportfigure(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def exportfigure(self, filename: str, xres: Any, yres: Any, **kwargs: Any) -> Any: ...
def exportfigure(self, *args: Any, **kwargs: Any) -> Any:
"""
Exports the current figure to a JPG image. If the file extension is not
specified, ".jpg" will be used. The image size will be the same as the
figure window size.
If a file is overwritten or if the export fails, a warning will be
generated.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportfigure("filename") | Exports the current figure to a JPG |
| | image with the name "filename". |
| | |
| | The exported image will have the |
| | same size as the current figure. |
+--------------------------------------+--------------------------------------+
| o.exportfigure("filename",xres,yres) | The exported image will have the |
| | specified resolution, xres,yres, in |
| | the x,y directions respectively. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.selectfigure`, :meth:`Lumerical.image`, :meth:`Lumerical.plot`, :meth:`Lumerical.setplot`, :meth:`Lumerical.closeall`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportfigure.html
Note
----
Signature autogen'd from: `o.exportfigure("filename")`, `o.exportfigure("filename",xres,yres)`
"""
def exporthtml(self, element_name: str, **kwargs: Any) -> Any:
"""
Generates an html file describing an element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exporthtml (element_name) | Generates an html file describing an |
| | element. The file lists the element |
| | type, symbol, and the list of |
| | properties. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.newproject`
Link
----
https://kb.lumerical.com/en/ref_scripts_exporthtml.html
Note
----
Signature autogen'd from: `o.exporthtml(element_name)`
"""
def exportimage(self, filename: str, **kwargs: Any) -> Any:
"""
Exports an image of the current circuit schematic.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportimage(filename) | Exports an image of the current |
| | circuit schematic. If the file has |
| | ‘png’ or no extension, a PNG |
| | (Portable Network Graphics) will be |
| | created. If the file has ‘svg’ |
| | extension, a SVG (Scalable Vector |
| | Graphics) file will be created. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_exportimage.html
Note
----
Signature autogen'd from: `o.exportimage(filename)`
"""
def exportlib(self, name: str, path: str, overwrite: Any, **kwargs: Any) -> Any:
"""
Exports the .lib file for a CML in the Custom folder.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportlib(name, path, overwrite) | Exports the .lib file for a CML in |
| | the Custom folder. |
| | |
| | name, the CML name in Custom |
| | |
| | path, where to save the exported |
| | .lib file. Use the current working |
| | directory if path is not provided. |
| | |
| | overwrite, boolean value to indicate |
| | whether or not to overwrite the file |
| | if it exists. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.packagedesignkit`, :meth:`Lumerical.installdesignkit`, :meth:`Lumerical.importschematic`, :meth:`Lumerical.exportschematic`, :meth:`Lumerical.customlibrary`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportlib.html
Note
----
Signature autogen'd from: `o.exportlib(name, path, overwrite)`
"""
@overload
def exportnetlist(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def exportnetlist(self, element: Any, filename: str, **kwargs: Any) -> Any: ...
def exportnetlist(self, *args: Any, **kwargs: Any) -> Any:
"""
Export a netlist for the current circuit.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportnetlist; o.exportnetlist | Export a netlist for the current |
| (filename) o.exportnetlist | circuit. ‘filename’ is the output |
| (element,filename,overwrite=true) | netlist name, ‘element’ is the |
| | compound element to be exported. If |
| | ‘overwrite’ is true, any existing |
| | netlist file with the same name as |
| | ‘filename’ will be overwritten. If |
| | ‘element’ is not provided, the |
| | currently selected compound element |
| | will be exported, otherwise the root |
| | element will be exported. |
+--------------------------------------+--------------------------------------+
=
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.importnetlist`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportnetlist.html
Note
----
Signature autogen'd from: `o.exportnetlist(filename)`, `o.exportnetlist(element,filename,overwrite=true)`
"""
def exportschematic(self, name: str, filename: str, **kwargs: Any) -> Any:
"""
Exports the schematic contents of a design kit element to a .osch file.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportschematic (name, filename) | Export the schematic contents of a |
| | design kit element to a .osch file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.importschematic`, :meth:`Lumerical.customlibrary`, :meth:`Lumerical.exportlib`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportschematic.html
Note
----
Signature autogen'd from: `o.exportschematic(name, filename)`
"""
def exportsweep(self, sweep_name: str, **kwargs: Any) -> Any:
"""
Exports S-parameter results from an S-parameter sweep task to a .dat
file which can be loaded by the Optical N-Port S-parameter element in
INTERCONNECT.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.exportsweep("sweep_name","filenam | Exports S-parameter results from the |
| e") | specified S-parameter sweep task to |
| | a .dat file with specified file name |
| | in the current working directory. |
| | |
| | If the maximum passivity over the |
| | frequency range is larger than 1.03 |
| | or the maximum reciprocity error |
| | over the frequency range exceeds |
| | 0.03, a warning message will appear |
| | in the script prompt when you export |
| | the data. |
| | |
| | If a file of the same name already |
| | exists, the existing file will be |
| | overwritten. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addsweep`, :meth:`Lumerical.runsweep`, :meth:`Lumerical.getsweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_exportsweep.html
Note
----
Signature autogen'd from: `o.exportsweep("sweep_name","filenam e")`
"""
def extractstructure(self, D: float, **kwargs: Any) -> Any:
"""
Creates an a polygon (in 2D) or a planar solid (in 3D) using the
finite-element geometric data stored in an unstructured dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.extractstructure(D) | Creates a polygon for 2D data and a |
| | planar solid for 3D data. The |
| | parameter D is the input |
| | unstructured dataset. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.extractstructure(D, | Same as the above command, but the |
| Rel_Coplanar_Tol) | relative tolerance to merge coplanar |
| | elements will be set to the value |
| | specified. |
+--------------------------------------+--------------------------------------+
| o.extractstructure(D, | Same as the above command, but uses |
| Rel_Coplanar_Tol, | Laplacian smoothing on the surface |
| Smoothing_Pass_Count) | mesh. The number of iteration is |
| | defined by the value specified. |
+--------------------------------------+--------------------------------------+
| o.extractstructure(D, | Same as the above command, but the |
| Rel_Coplanar_Tol, | allowed angular difference between |
| Smoothing_Pass_Count, | triangles around a vertex where the |
| Smoothing_Angle_Coplanar_Tol) | vertex can be moved is set to the |
| | value specified. |
+--------------------------------------+--------------------------------------+
| o.extractstructure(D, | Same as the above command, but |
| Rel_Coplanar_Tol, | allows re-triangulation of the |
| Smoothing_Pass_Count, | facets. |
| Smoothing_Angle_Coplanar_Tol, | |
| Allow_Tessalation) | |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameters | Type | Description |
+-------------------------+-------------------------+-------------------------+
| D | unstructured dataset | Input data that is used |
| | | to create the |
| | | structure. |
+-------------------------+-------------------------+-------------------------+
| Rel_Coplanar_Tol | number | (optional) Relative |
| | | tolerance to merge |
| | | coplanar elements. The |
| | | default value is 1e-6. |
+-------------------------+-------------------------+-------------------------+
| Smoothing_Pass_Count | number | (optional) In 3D only. |
| | | Enables Laplacian |
| | | smoothing on the |
| | | surface mesh before |
| | | surface extraction. The |
| | | default value is 0 and |
| | | the maximum allowed |
| | | value is 20. |
+-------------------------+-------------------------+-------------------------+
| Smoothing_Angle_Copla | number | (optional) Sets the |
| nar_Tol | | allowed angular |
| | | difference between |
| | | triangles around a |
| | | vertex where the vertex |
| | | can be moved. The |
| | | default value is 0.001. |
+-------------------------+-------------------------+-------------------------+
| Allow_Tessalation | number | (optional) In 3D only. |
| | | Allows re-triangulation |
| | | of the facets. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_extractstructure.html
Note
----
Signature autogen'd from: `o.extractstructure(D)`
"""
@overload
def eye(self, **kwargs: Any) -> Any: ...
@overload
def eye(self, n: float, **kwargs: Any) -> Any: ...
@overload
def eye(self, n: float, m: float, **kwargs: Any) -> Any: ...
def eye(self, *args: Any, **kwargs: Any) -> Any:
"""
Creates a 2D identity matrix.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| I = o.eye() | Returns a 1x1 matrix, value 1.0. |
+--------------------------------------+--------------------------------------+
| I = o.eye(n) | Returns nxn identity matrix. |
+--------------------------------------+--------------------------------------+
| I = o.eye(n,m) | Returns nxm matrix with ones on main |
| | diagonal |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matrixdataset`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.matlab`, :meth:`Lumerical.matrix`
Link
----
https://kb.lumerical.com/en/ref_scripts_eye.html
Note
----
Signature autogen'd from: `o.eye())`, `o.eye(n)`, `o.eye(n,m)`
"""
def farfield2d(self, mname: str, f: float, n: float, illumination: float, periods: Any, index: float, direction: Any, **kwargs: Any) -> Any:
"""
Projects a given power or field profile monitor to the far field to a 1
meter radius semi-circle. The electric field intensity \|E\|2 is
returned.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| E2 = o.farfield2d("mname", f, n, | Projects a given power or field |
| illumination, periods, index, | profile monitor to the far field at |
| direction) | the specified frequency points. |
| | |
| | The result is an NxM matrix where |
| | the first dimension is the |
| | resolution of the far field |
| | projection, and the second dimension |
| | is the number of frequency points |
| | projected. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | Name of the |
| | | | | monitor |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. f can |
| | | | | be a single |
| | | | | value, or a |
| | | | | vector of |
| | | | | frequency |
| | | | | points. |
| | | | | Multithreaded |
| | | | | projection was |
| | | | | introduced |
| | | | | since R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| n | optional | 2000 | number | The number of |
| | | | | points in the |
| | | | | far field. |
+----------------+----------------+----------------+----------------+----------------+
| illumination | optional | 1 | number | For periodic |
| | | | | structures |
| | | | | |
| | | | | Gaussian |
| | | | | illumination: |
| | | | | 1 |
| | | | | |
| | | | | Plane wave |
| | | | | illumination: |
| | | | | 2 |
+----------------+----------------+----------------+----------------+----------------+
| periods | optional | 1 | number | number of |
| | | | | periods to be |
| | | | | used |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
| direction | optional | direction of | number | Direction: |
| | | max power flow | | this can be +1 |
| | | | | or -1. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldangle`, :meth:`Lumerical.farfieldvector2d`, :meth:`Lumerical.farfieldpolar2d`, :meth:`Lumerical.farfieldexact2d`, :meth:`Lumerical.farfieldfilter`, :meth:`Lumerical.farfieldexact`, :meth:`Lumerical.farfield2dintegrate`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfield2d.html
Note
----
Signature autogen'd from: `o.farfield2d("mname", f, n, illumination, periods, index, direction)`
"""
def farfield2dintegrate(self, E2: Any, theta: Any, halfangle: Any, theta0: Any, **kwargs: Any) -> Any:
"""
Calculates the integral of the far field projection over some range of
theta in 2D simulation. Angles are specified in degrees, but the
integral is done in radians.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfield2dintegrate(E2, | Integrate 2D far field projection |
| theta, halfangle, theta0) | data. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| E2 | required | | matrix | E field data |
| | | | | from |
| | | | | farfield2d |
+----------------+----------------+----------------+----------------+----------------+
| theta | required | | matrix | Theta from |
| | | | | farfieldangle |
+----------------+----------------+----------------+----------------+----------------+
| halfangle | optional | 90 | vector | Half angle (in |
| | | | | degrees) of |
| | | | | the |
| | | | | integration |
| | | | | region. Must |
| | | | | have same |
| | | | | length as |
| | | | | theta0 or |
| | | | | length 1. Half |
| | | | | angle should |
| | | | | be between 0 |
| | | | | to 90 degrees. |
+----------------+----------------+----------------+----------------+----------------+
| theta0 | optional | 0 | vector | Center angle |
| | | | | (in degrees) |
| | | | | theta of the |
| | | | | integration |
| | | | | region. Must |
| | | | | have same |
| | | | | length as |
| | | | | halfangle or |
| | | | | length 1. |
| | | | | Theta0 should |
| | | | | be between -90 |
| | | | | to 90 degrees. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfield2dintegrate.html
Note
----
Signature autogen'd from: `o.farfield2dintegrate(E2, theta, halfangle, theta0)`
"""
def farfield3d(self, mname: str, f: float, na: Any, nb: Any, illumination: float, periodsa: Any, periodsb: Any, index: float, direction: Any, **kwargs: Any) -> Any:
"""
Projects a given power or field profile monitor to the far field in a 3D
simulation. The electric field intensity \|E\|2 is returned.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfield3d("mname",f, na, | Projects a given power or field |
| nb, illumination, periodsa, | profile monitor to the far field. |
| periodsb, index, direction) | |
| | This returns an NxM matrix if 1 |
| | frequency point is projected, or a |
| | NxMxP matrix if more than 1 |
| | frequency point is projected, where |
| | N and M correspond to the resolution |
| | of the projection (na, and nb), and |
| | P corresponds to the number of |
| | frequency points projected. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | Name of the |
| | | | | monitor |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | Multithreaded |
| | | | | projection to |
| | | | | allow multiple |
| | | | | frequency |
| | | | | points to be |
| | | | | projected |
| | | | | simultaneously |
| | | | | was introduced |
| | | | | in R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| na | optional | 150 | number | The number of |
| | | | | points in the |
| | | | | far field. |
+----------------+----------------+----------------+----------------+----------------+
| nb | optional | 150 | number | The number of |
| | | | | points in the |
| | | | | far field. |
+----------------+----------------+----------------+----------------+----------------+
| illumination | optional | 1 | number | For periodic |
| | | | | structures. |
| | | | | |
| | | | | Gaussian |
| | | | | illumination: |
| | | | | 1 |
| | | | | |
| | | | | Plane wave |
| | | | | illumination: |
| | | | | 2 |
+----------------+----------------+----------------+----------------+----------------+
| periodsa | optional | 1 | number | number of |
| | | | | periods to be |
| | | | | used for |
| | | | | periodic |
| | | | | illumination |
+----------------+----------------+----------------+----------------+----------------+
| periodsb | optional | 1 | number | number of |
| | | | | periods to be |
| | | | | used for |
| | | | | periodic |
| | | | | illumination |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
| direction | optional | direction of | number | Direction: |
| | | max power flow | | this can be +1 |
| | | | | or -1. |
+----------------+----------------+----------------+----------------+----------------+
The following table summarizes how to interpret the ux, uy coordinate
vectors and periods input properties for various monitor orientations.
+--------------------+--------------------+--------------------+--------------------+
| Monitor | Monitor surface | 'na', 'ux', | 'nb', 'uy', |
| orientation | normal | 'periods a' | 'periods b' |
| | | correspond to | correspond to |
+--------------------+--------------------+--------------------+--------------------+
| XY plane | Z | x axis | y axis |
+--------------------+--------------------+--------------------+--------------------+
| XZ plane | Y | x axis | z axis |
+--------------------+--------------------+--------------------+--------------------+
| YZ plane | X | y axis | z axis |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldvector3d`, :meth:`Lumerical.farfieldpolar3d`, :meth:`Lumerical.farfieldux`, :meth:`Lumerical.farfielduy`, :meth:`Lumerical.farfieldexact3d`, :meth:`Lumerical.farfieldfilter`, :meth:`Lumerical.farfield3dintegrate`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfield3d.html
Note
----
Signature autogen'd from: `o.farfield3d("mname",f, na, nb, illumination, periodsa, periodsb, index, direction)`
"""
def farfield3dintegrate(self, E2: Any, ux: Any, uy: Any, halfangle: Any, theta0: Any, phi0: Any, **kwargs: Any) -> Any:
"""
Integrates the far field projection over a cone centered at theta0 and
phi0, with a width specified by halfangle for 3D simulations. The far
field electric field is a function of the direction cosines (ux,uy), but
farfield3dintegrate automatically does the change of variables.
Similarly, angles are specified in degrees, but converted to radians
before the integral is calculated. See the farfield3d documentation for
information on interpreting ux, uy, na, nb for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfield3dintegrate(E2, ux, | Integrate 3D far field projection |
| uy, halfangle, theta0, phi0) | data. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| E2 | required | | matrix | E field data |
| | | | | from |
| | | | | farfield3d |
+----------------+----------------+----------------+----------------+----------------+
| ux | required | | vector | ux data from |
| | | | | farfieldux. |
| | | | | Note that the |
| | | | | result should |
| | | | | be a vector, |
| | | | | so it is |
| | | | | sufficient to |
| | | | | perform the |
| | | | | farfieldux |
| | | | | script command |
| | | | | for only 1 |
| | | | | frequency |
| | | | | point. |
+----------------+----------------+----------------+----------------+----------------+
| uy | required | | vector | uy data from |
| | | | | farfielduy. |
| | | | | Note that the |
| | | | | result should |
| | | | | be a vector, |
| | | | | so it is |
| | | | | sufficient to |
| | | | | perform the |
| | | | | farfieldux |
| | | | | script command |
| | | | | for only 1 |
| | | | | frequency |
| | | | | point. |
+----------------+----------------+----------------+----------------+----------------+
| halfangle | optional | 90 | vector | Half angle of |
| | | | | the |
| | | | | integration |
| | | | | cone. unit in |
| | | | | degrees. must |
| | | | | have length L |
| | | | | or 1. Half |
| | | | | angle should |
| | | | | be between 0 |
| | | | | to 90 degrees. |
+----------------+----------------+----------------+----------------+----------------+
| theta0 | optional | 0 | vector | Center angle |
| | | | | theta of the |
| | | | | integration |
| | | | | cone. unit in |
| | | | | degrees. must |
| | | | | have length L |
| | | | | or 1. Theta0 |
| | | | | should be |
| | | | | between 0 to |
| | | | | 90 degrees. |
+----------------+----------------+----------------+----------------+----------------+
| phi0 | optional | 0 | vector | Center angle |
| | | | | phi of the |
| | | | | integration |
| | | | | cone. unit in |
| | | | | degrees. must |
| | | | | have length L |
| | | | | or 1. Phi0 |
| | | | | should be |
| | | | | between 0 to |
| | | | | 360 degrees. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldux`, :meth:`Lumerical.farfielduy`, :meth:`Lumerical.farfieldspherical`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfield3dintegrate.html
Note
----
Signature autogen'd from: `o.farfield3dintegrate(E2, ux, uy, halfangle, theta0, phi0)`
"""
def farfieldangle(self, mname: str, f: float, n: float, index: float, **kwargs: Any) -> Any:
"""
Returns the vector of angles, in degrees, corresponding to the data from
farfield2d for a 2D simulation.Used for 2D simulations. This is required
because the farfield2d does not use a set of linearly spaced angles for
the projection. It is often useful to re-interpolate the data onto a set
of linearly spaced angles using the interp or spline functions.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| theta = o.farfieldangle( "mname", f, | Returns the matrix of angles |
| n, index) | corresponding to the data in |
| | farfield2d |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | Name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | If f is a |
| | | | | vector, the |
| | | | | second |
| | | | | dimension of |
| | | | | theta will |
| | | | | match the |
| | | | | length of the |
| | | | | vector of |
| | | | | frequency |
| | | | | points. |
| | | | | Multithreaded |
| | | | | projection was |
| | | | | introduced |
| | | | | since R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| n | optional | 2000 | number | The number of |
| | | | | points in the |
| | | | | far field. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldvector2d`, :meth:`Lumerical.farfieldpolar2d`, :meth:`Lumerical.interp`, :meth:`Lumerical.spline`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldangle.html
Note
----
Signature autogen'd from: `o.farfieldangle("mname", f, n, index)`
"""
@overload
def farfieldexact(self, mname: str, x: float, y: float, f: float, index: float, **kwargs: Any) -> Any: ...
@overload
def farfieldexact(self, mname: str, x: float, y: float, z: float, f: float, index: float, **kwargs: Any) -> Any: ...
def farfieldexact(self, *args: Any, **kwargs: Any) -> Any:
"""
Projects complete complex vector fields to specific locations. It is
expected to be correct down to distances on the order of one wavelength.
The projections from multiple monitors can be added to create a total
far field projection - see Projections from a monitor box.
farfieldexact projects any surface fields to a series of points defined
by vector lists. The x,y, z coordinates of each evaluation point are
taken element-by-element from the vector lists. i.e., the i-th point in
a 2D simulation would be at [x(i),y(i)].
3D
Vectors lists x,y,z must have the same length L or be length 1. The data
is returned in a matrix of dimension Lx3. The first index represents
positions defined by one element from each of x,y, z. [x(i),y(i),z(i)];
the second index represents Ex, Ey, and Ez.
2D
Vector lists x, y must have the same length L or be length 1. The data
is returned in the form of a matrix that is of dimension Lx3. The first
index represents positions defined by one element from each of x,y.
[x(i),y(i)]; The second index represents Ex, Ey, and Ez.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldexact("mname", x, y, | 2D far field exact projection |
| f, index) | |
+--------------------------------------+--------------------------------------+
| out = o.farfieldexact("mname", x, y, | 3D far field exact projection |
| z, f, index) | |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | Default | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| x | required | | vector | x coordinates |
| | | | | of points |
| | | | | where far |
| | | | | field is |
| | | | | calculated. |
| | | | | must have |
| | | | | length L or 1. |
+----------------+----------------+----------------+----------------+----------------+
| y | required | | vector | y coordinates |
| | | | | of points |
| | | | | where far |
| | | | | field is |
| | | | | calculated. |
| | | | | must have |
| | | | | length L or 1. |
+----------------+----------------+----------------+----------------+----------------+
| z | required | | vector | z coordinates |
| | | | | of points |
| | | | | where far |
| | | | | field is |
| | | | | calculated. |
| | | | | must have |
| | | | | length L or 1. |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | Multithreaded |
| | | | | projection was |
| | | | | introduced |
| | | | | since R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldexact2d`, :meth:`Lumerical.farfieldexact3d`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldexact.html
Note
----
Signature autogen'd from: `o.farfieldexact("mname", x, y, f, index)`, `o.farfieldexact("mname", x, y, z, f, index)`
"""
def farfieldexact2d(self, mname: str, x: float, y: float, f: float, index: float, **kwargs: Any) -> Any:
"""
This function projects complete complex vector fields to specific
locations. It is expected to be correct down to distances on the order
of one wavelength. The projections from multiple monitors can be added
to create a total far field projection - see Projections from a monitor
box.
farfieldexact2d projects any surface to the grid points defined by the
vectors x, y. The data is returned in the form of a matrix that is of
dimension NxMxPx3 where N is the length of the x vector, M is the length
of the y vector, P is the number of frequency points, and the final
index represents Ex, Ey, and Ez. Note that N and M can be 1; when they
are both 1, the function is the same as farfieldexact.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldexact2d( "mname", x, | Projects a given power or field |
| y, f, index) | profile monitor to the far field at |
| | grid points specified by the vectors |
| | x,y. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| x | required | | vector | x coordinates |
| | | | | of the grid |
| | | | | points where |
| | | | | far field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| y | required | | vector | y coordinates |
| | | | | of the grid |
| | | | | points where |
| | | | | far field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | Multithreaded |
| | | | | projection was |
| | | | | introduced |
| | | | | since R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | index at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldexact3d`, :meth:`Lumerical.farfieldexact`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldexact2d.html
Note
----
Signature autogen'd from: `o.farfieldexact2d("mname", x, y, f, index)`
"""
def farfieldexact3d(self, mname: str, x: float, y: float, z: float, f: float, index: float, **kwargs: Any) -> Any:
"""
The three dimension form of farfieldexact2d. This function projects
complete complex vector fields to specific locations. It is expected to
be correct down to distances on the order of one wavelength. The
projections from multiple monitors can be added to create a total far
field projection - see Projections from a monitor box.
farfieldexact3d projects any surface to the grid points defined by the
vectors x,y and z. The data is returned in a matrix of dimension NxMxKx3
if one frequency point is projected, and NxMxKx3xP if more than one
frequency point is projected where N is the length of the vector x, M
the length of the vector y, K is the length of the vector z, P is the
number of frequency points, and the fourth index represents Ex, Ey, and
Ez. Note that N, M and K can be 1, and when they are all 1, the function
is the same as farfieldexact.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldexact3d( "mname", x, | Projects a given power or field |
| y, z, f, index) | profile monitor to the far field at |
| | grid points specified by the vectors |
| | x,y,z. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| x | required | | vector | x coordinates |
| | | | | of the grid |
| | | | | points where |
| | | | | far field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| y | required | | vector | y coordinates |
| | | | | of the grid |
| | | | | points where |
| | | | | far field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| z | required | | vector | z coordinates |
| | | | | of the grid |
| | | | | points where |
| | | | | far field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | Multithreaded |
| | | | | projection was |
| | | | | introduced |
| | | | | since R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldexact2d`, :meth:`Lumerical.farfieldexact`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldexact3d.html
Note
----
Signature autogen'd from: `o.farfieldexact3d("mname", x, y, z, f, index)`
"""
def farfieldfilter(self, **kwargs: Any) -> Any:
"""
Sets or gets the filter width for far field filter which is used to
remove ripples in the far field projection due to clipping of the near
fields. It should be used when the near fields at the edge of the
monitor are small but not precisely zero.
+--------------------------------------+--------------------------------------+
| | The bumpy blue line of the figure |
| | shows the near field electric field |
| | that will be used for a far field |
| | projection. In this case, the field |
| | does not go to zero at the edge of |
| | the monitor, which will lead to |
| | ripples in the far field projection. |
| | The green line shows the spatial |
| | filter that will be applied to the |
| | fields, ensuring they go to zero. |
| | The filter parameter defines the |
| | width of the filter by the following |
| | formula: α=(a)/(a+b). |
+--------------------------------------+--------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldfilter() | Get the current far field filter |
| | setting. |
+--------------------------------------+--------------------------------------+
| o.farfieldfilter(α) | Set the current far field filter |
| | setting. α=(a)/(a+b). The far field |
| | filter has a single input parameter, |
| | which is a number between 0 and 1. |
| | By default, it is 0, which turns the |
| | filter off. This filter is applied |
| | to all far field projections. |
+--------------------------------------+--------------------------------------+
+--------------------------------------------------------------------------+
| Note: Periodic structures |
| |
| The far field filter option should not be used for periodic structures. |
| Set it to zero when using the 'assume periodic' option. |
+--------------------------------------------------------------------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfield3d`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldfilter.html
Note
----
Signature autogen'd from: `o.farfieldfilter()`
"""
def farfieldpolar2d(self, mname: str, **kwargs: Any) -> Any:
"""
Projects a given power or field profile monitor to the far field to a 1
meter radius semi-circle. This is similar to the farfield2d script
command except the complex electric fields are returned, rather than
field intensity. The data is returned as matrix of NxP if one frequency
point is projected, or NxPx3 when multiple frequency points are
projected where N is the resolution of the far field projection, P is
the number frequency points projected, and the last index refers to Er,
Eθ and Ez, in cylindrical coordinates. For TM simulations, this function
gives precisely the result of farfieldvector2d because the only non-zero
field component is Ez.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldpolar2d( | Returns the polar complex electric |
| "mname",...) | fields. Same arguments as |
| | farfield2d. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldvector2d`, :meth:`Lumerical.farfieldangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldpolar2d.html
Note
----
Signature autogen'd from: `o.farfieldpolar2d("mname",...)`
"""
def farfieldpolar3d(self, monitorname: str, **kwargs: Any) -> Any:
"""
The function farfieldpolar3d is similar to farfield3d, but it returns
the complex electric fields, rather than field intensity. The data is
returned as matrix of NxMx3 (if one frequency point is projected) or
NxMxPx3 (if more than 1 frequency point is projected), where N and M are
spatial indices, P is the number of frequency points, and the last index
refers to Er, Eθ and Eφ, in spherical coordinates. The components Er, Eθ
and Eφ are the complex components of the electric field vector. See the
farfield3d documentation for information on interpreting ux, uy, na, nb
for various monitor orientations.
Note: When viewing far fields from the GUI with the visualizer, three
Attributes are available: E2, Ep, Es. E2 corresponds to \|E\|^2, Ep to
Etheta, and Es to Ephi.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldpolar3d( | Returns the spherical complex |
| "monitorname",...) | electric fields. Same arguments as |
| | farfield3d. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldvector3d`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldpolar3d.html
Note
----
Signature autogen'd from: `o.farfieldpolar3d("monitorname",...)`
"""
def farfieldspherical(self, E2: Any, ux: Any, uy: Any, theta: Any, phi: Any, **kwargs: Any) -> Any:
"""
Interpolates far field data (3D simulations) from E(ux,uy) to spherical
coordinates E(theta,phi). The far field projections functions generally
return the projection as a function of ux,uy (direction cosines).
farfieldspherical can be used to interpolate this data into the more
common units of theta, phi. See the farfield3d documentation for
information on interpreting ux, uy, na, nb for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldspherical( E2, ux, | Interpolate far field data to |
| uy, theta, phi) | spherical coordinates. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| E2 | required | | matrix | E field data |
| | | | | from |
| | | | | farfield3d |
+----------------+----------------+----------------+----------------+----------------+
| ux | required | | vector | ux data from |
| | | | | farfieldux. |
| | | | | Note that the |
| | | | | result should |
| | | | | be a vector, |
| | | | | so it is |
| | | | | sufficient to |
| | | | | perform the |
| | | | | farfieldux |
| | | | | script command |
| | | | | for only 1 |
| | | | | frequency |
| | | | | point. |
+----------------+----------------+----------------+----------------+----------------+
| uy | required | | vector | uy data from |
| | | | | farfielduy. |
| | | | | Note that the |
| | | | | result should |
| | | | | be a vector, |
| | | | | so it is |
| | | | | sufficient to |
| | | | | perform the |
| | | | | farfieldux |
| | | | | script command |
| | | | | for only 1 |
| | | | | frequency |
| | | | | point. |
+----------------+----------------+----------------+----------------+----------------+
| theta | required | | vector | theta vector, |
| | | | | in degrees. |
| | | | | Must have |
| | | | | length L or 1. |
+----------------+----------------+----------------+----------------+----------------+
| phi | required | | vector | phi vector, in |
| | | | | degrees. Must |
| | | | | have length L |
| | | | | or 1. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldux`, :meth:`Lumerical.farfielduy`, :meth:`Lumerical.meshgridx`, :meth:`Lumerical.meshgridy`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldspherical.html
Note
----
Signature autogen'd from: `o.farfieldspherical(E2, ux, uy, theta, phi)`
"""
def farfieldux(self, mname: str, f: float, na: Any, nb: Any, index: float, **kwargs: Any) -> float:
"""
Returns the matrix of ux corresponding to the far field data from
farfield3d for a 3D simulation. See the farfield3d documentation for
information on interpreting ux, uy, na, nb for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | See farfield3d help. Arguments are |
| o.farfieldux("mname",f,na,nb,index) | same as for farfield3d. |
| | |
| | Note that the result is an NxM |
| | matrix where N is the spatial index |
| | and M is the number of frequency |
| | points. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfielduy`, :meth:`Lumerical.farfieldspherical`, :meth:`Lumerical.farfieldexact`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldux.html
Note
----
Signature autogen'd from: `o.farfieldux("mname",f,na,nb,index)`
"""
def farfielduy(self, mname: str, f: float, na: Any, nb: Any, index: float, **kwargs: Any) -> float:
"""
Returns the matrix of uy corresponding to the far field data from
farfield3d for a 3D simulation. See the farfield3d documentation for
information on interpreting ux, uy, na, nb for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | See farfield3d help. Arguments are |
| o.farfielduy("mname",f,na,nb,index) | same as for farfield3d. |
| | |
| | Note that the result is an NxM |
| | matrix where N is the spatial index |
| | and M is the number of frequency |
| | points. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldux`, :meth:`Lumerical.farfieldspherical`, :meth:`Lumerical.farfieldexact`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfielduy.html
Note
----
Signature autogen'd from: `o.farfielduy("mname",f,na,nb,index)`
"""
def farfieldvector2d(self, mname: str, **kwargs: Any) -> Any:
"""
Projects a given power or field profile monitor to the far field to a 1
meter radius semi-circle. This is similar to the farfield2d script
command except the complex electric fields are returned, rather than
field intensity. The data is returned as matrix of NxP if one frequency
point is projected, or NxPx3 when multiple frequency points are
projected where N is the resolution of the far field projection, P is
the number frequency points projected, and the last index refers to Ex,
Ey and Ez which are the complex components of the electric field vector
in Cartesian coordinates.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldvector2d( | Returns the Cartesian complex |
| "mname",...) | electric fields. Same arguments as |
| | farfield2d. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield2d`, :meth:`Lumerical.farfieldpolar2d`, :meth:`Lumerical.farfieldangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldvector2d.html
Note
----
Signature autogen'd from: `o.farfieldvector2d("mname",...)`
"""
def farfieldvector3d(self, monitorname: str, **kwargs: Any) -> Any:
"""
The function farfieldvector3d is similar to farfield3d, but it returns
the complex electric fields, rather than field intensity. The data is
returned as matrix of NxMx3 (if one frequency point is projected) or
NxMxPx3 (if more than 1 frequency point is projected), where N and M are
spatial indices, P is the number of frequency points, and the last index
refers to Ex, Ey and Ez. The components Ex, Ey and Ez are the complex
components of the electric field vector. See the farfield3d
documentation for information on interpreting ux, uy, na, nb for various
monitor orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.farfieldvector3d( | Returns the cartesian complex |
| "monitorname",...) | electric fields. Same arguments as |
| | farfield3d. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.farfield3d`, :meth:`Lumerical.farfieldpolar3d`
Link
----
https://kb.lumerical.com/en/ref_scripts_farfieldvector3d.html
Note
----
Signature autogen'd from: `o.farfieldvector3d("monitorname",...)`
"""
def feval(self, filename: str, **kwargs: Any) -> Any:
"""
Evaluates a string as script file. This function is useful for running
script files that are not in your path and files with spaces in the
name.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.feval(filename) | Execute string containing the name |
| | of a script file. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.eval`, :meth:`Lumerical.str2num`, :meth:`Lumerical.num2str`, :meth:`Lumerical.lower`, :meth:`Lumerical.upper`, :meth:`Lumerical.toscript`
Link
----
https://kb.lumerical.com/en/ref_scripts_feval.html
Note
----
Signature autogen'd from: `o.feval(filename)`
"""
@overload
def fft(self, Ex: Any, **kwargs: Any) -> Any: ...
@overload
def fft(self, Ex: Any, option1: float, option2: float, **kwargs: Any) -> Any: ...
def fft(self, *args: Any, **kwargs: Any) -> Any:
"""
Computes the 1D, 2D or 3D Fast Fourier Transform (FFT) of a matrix. In
the 1D case the transform is given by
The FFT, inverse FFT and all associated functions have an option (option
1 below) that controls the format used to store the frequency domain
data. When working with spectral data it is not possible to switch
between formats; there are no functions to convert between formats. This
implies that if you use option 1=n to produce a spectrum with fft, then
you must also use option 1=n if you want to pass that same spectral data
to invfft. Similarly, if you use option 1=n for fft, then you also need
to use option 1=n with fftw to get the proper frequency vector
corresponding to your spectrum. invfft and fftk work in the same way.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fft(Ex) | Returns the fast Fourier transform |
| | of Ex. Ex can be 1D, 2D or 3D. |
+--------------------------------------+--------------------------------------+
| out = o.fft(Ex,option1,option2) | option1 |
| | |
| | This option controls the format used |
| | to store the frequency domain data. |
| | The options are: |
| | |
| | •1 : the standard FFT (zero |
| | frequency is at the first element of |
| | the matrix). This is the default |
| | option. |
| | |
| | •2 : zero frequency is the first |
| | element, but only data up to and |
| | including the Nyquist frequency is |
| | stored. This option is only useful |
| | for real valued, 1D time/spatial |
| | signals. |
| | |
| | •3 : the FFT is shifted so zero |
| | frequency is the central element of |
| | the spectrum (more precisely, this |
| | means the zero frequency point is at |
| | element floor(N/2 + 1), where N is |
| | the number of samples). |
| | |
| | option2 |
| | |
| | This option is either a 1, 2 or 3 |
| | element vector depending on whether |
| | Ex is 1D, 2D or 3D. For each |
| | dimension, specify a value of either |
| | 0, 1 or N to obtain the desired 0 |
| | padding options. |
| | |
| | •0: no zero padding. |
| | |
| | •1: zero padding up to the next |
| | power of 2 longer than the length of |
| | Ex (default). |
| | |
| | •N: zero pad up to length N if N > |
| | length(Ex), where length of Ex is |
| | the length in a specific dimension. |
| | If N <= length(Ex), it will zero pad |
| | up to the next power of 2 longer |
| | than the length of Ex. For the |
| | fastest results, N should be a power |
| | of 2 and can be entered, for |
| | example, as 2^12. |
+--------------------------------------+--------------------------------------+
+--------------------------------------------------------------------------+
| Note: FFT Conventions |
| |
| There are different, but equivalent conventions for defining Fourier |
| transforms. Lumerical defines the forward FFT using a positive sign in |
| the exponential term, and the inverse FFT using a negative sign in the |
| exponential term. However, some other packages (e.g. MATLAB) use the |
| opposite convention, with a negative sign in the exponential for the |
| forward FFT and a positive sign in the exponential for the inverse FFT. |
| To convert between the different FFT conventions, switch the invfft and |
| fft and rescale the results. For a signal y with N elements this can be |
| done as follows: |
| |
| +--------------------------------------+-------------------------------- |
| ------+ |
| |
| |
| +--------------------------------------+-------------------------------- |
| ------+ |
| |
| |
| |
| |
| |
| |
| +--------------------------------------+-------------------------------- |
| ------+ |
+--------------------------------------------------------------------------+
See Also
--------
:meth:`Lumerical.invfft`, :meth:`Lumerical.fftw`, :meth:`Lumerical.fftk`, :meth:`Lumerical.czt`
Link
----
https://kb.lumerical.com/en/ref_scripts_fft.html
Note
----
Signature autogen'd from: `o.fft(Ex)`, `o.fft(Ex,option1,option2)`
"""
@overload
def fftk(self, x: float, **kwargs: Any) -> Any: ...
@overload
def fftk(self, x: float, option1: float, option2: float, **kwargs: Any) -> Any: ...
def fftk(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the spatial wavevector kx associated with the Fourier transform
of a function of x.
,
where M=length(x).
fftk and all related functions have an option (option 1 below) that
controls the format used to store the frequency domain data. When
working with spectral data it is not possible to switch between formats;
there are no functions to convert between formats. This implies that if
you use option1=n to produce a spectrum with fft, then you must also use
option1=n if you want to pass that same spectral data to invfft.
Similarly, if you use option1=n for fft, then you also need to use
option1=n with fftw to get the proper frequency vector corresponding to
your spectrum. invfft and fftk work in the same way.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fftk(x) | Returns the spatial wavevector kx |
| | associated with a fourier transform |
| | of a function of x.. |
+--------------------------------------+--------------------------------------+
| o.fftk(x,option1,option2) | option1 |
| | |
| | •1 : the standard FFT (zero |
| | frequency is at the first element of |
| | the matrix). This is the default |
| | option. |
| | |
| | •2 : zero frequency is the first |
| | element, but frequencies above the |
| | Nyquist frequency are removed. |
| | |
| | •3 : the FFT is shifted so zero |
| | frequency is the central element of |
| | the spectrum (more precisely, this |
| | means the zero frequency point is at |
| | element floor(N/2 + 1), where N is |
| | the number of samples). Both |
| | positive and negative frequencies |
| | are seen |
| | |
| | option2 |
| | |
| | •0: no zero padding. |
| | |
| | •1: zero padding up to the next |
| | power of 2 longer than the length of |
| | Ex (default). |
| | |
| | •N: zero pad up to length N if N > |
| | length(t). If N <= length(t), it |
| | will zero pad up to the next power |
| | of 2 longer than the length of t. |
| | For the fastest results, N should be |
| | a power of 2 and can be entered, for |
| | example, as 2^12. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fft`, :meth:`Lumerical.fftw`, :meth:`Lumerical.invfft`
Link
----
https://kb.lumerical.com/en/ref_scripts_fftk.html
Note
----
Signature autogen'd from: `o.fftk(x)`, `o.fftk(x,option1,option2)`
"""
@overload
def fftw(self, t: float, **kwargs: Any) -> Any: ...
@overload
def fftw(self, t: float, option1: float, option2: float, **kwargs: Any) -> Any: ...
def fftw(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the angular frequency vector corresponding to time vector t.
,
where M=length(t).
fftw and all related functions have an option (option 1 below) that
controls the format used to store the frequency domain data. When
working with spectral data it is not possible to switch between formats;
there are no functions to convert between formats. This implies that if
you use option1=n to produce a spectrum with fft, then you must also use
option1=n if you want to pass that same spectral data to invfft.
Similarly, if you use option1=n for fft, then you also need to use
option1=n with fftw to get the proper frequency vector corresponding to
your spectrum. invfft and fftk work in the same way.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fftw(t) | Returns the angular frequency vector |
| | corresponding to time vector t. |
+--------------------------------------+--------------------------------------+
| o.fftw(t,option1,option2) | option1 |
| | |
| | •1 : the standard FFT (zero |
| | frequency is at the first element of |
| | the matrix). This is the default |
| | option. |
| | |
| | •2 : zero frequency is the first |
| | element, but frequencies above the |
| | Nyquist frequency are removed. |
| | |
| | •3 : the FFT is shifted so zero |
| | frequency is the central element of |
| | the spectrum (more precisely, this |
| | means the zero frequency point is at |
| | element floor(N/2 + 1), where N is |
| | the number of samples). Both |
| | positive and negative frequencies |
| | are seen |
| | |
| | option2 |
| | |
| | •0: no zero padding. |
| | |
| | •1: zero padding up to the next |
| | power of 2 longer than the length of |
| | Ex (default). |
| | |
| | •N: zero pad up to length N if N > |
| | length(t). If N <= length(t), it |
| | will zero pad up to the next power |
| | of 2 longer than the length of t. |
| | For the fastest results, N should be |
| | a power of 2 and can be entered, for |
| | example, as 2^12. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fft`, :meth:`Lumerical.fftk`, :meth:`Lumerical.invfft`
Link
----
https://kb.lumerical.com/en/ref_scripts_fftw.html
Note
----
Signature autogen'd from: `o.fftw(t)`, `o.fftw(t,option1,option2)`
"""
def filebasename(self, **kwargs: Any) -> Any:
"""
Gets the file basename from a string.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.filebasename( | Returns the file basename as a |
| "location/filename.ext" ) | string. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.currentfilename`, :meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.filedirectory`, :meth:`Lumerical.fileextension`
Link
----
https://kb.lumerical.com/en/ref_scripts_file_basename.html
Note
----
Signature autogen'd from: `o.filebasename()`
"""
def filedirectory(self, **kwargs: Any) -> Any:
"""
Gets the file directory from a string.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.filedirectory( | Returns the file directory as a |
| "location/filename.ext" ) | string. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.currentfilename`, :meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.fileextension`, :meth:`Lumerical.filebasename`
Link
----
https://kb.lumerical.com/en/ref_scripts_file_directory.html
Note
----
Signature autogen'd from: `o.filedirectory()`
"""
def fileexists(self, filename: str, **kwargs: Any) -> Any:
"""
Checks if a file exists. The file extension (ie, .fsp, .lms, etc) must
be specified. By default, the entire path will be searched.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fileexists("filename") | Returns 1 if the file exists |
| | |
| | Returns 0 if the file does not |
| | exist. |
+--------------------------------------+--------------------------------------+
| out = | Search for a file not in the path |
| o.fileexists("c:\\temp\\file.txt") | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.load`, :meth:`Lumerical.loaddata`, :meth:`Lumerical.write`, :meth:`Lumerical.readdata`, :meth:`Lumerical.currentfilename`, :meth:`Lumerical.rm`, :meth:`Lumerical.exist`
Link
----
https://kb.lumerical.com/en/ref_scripts_file_exists.html
Note
----
Signature autogen'd from: `o.fileexists("filename")`
"""
def fileexpand(self, filename: str, **kwargs: Any) -> Any:
"""
Expands a file name by replacing any environmental variables.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.fileexpand(filename) | Expands a file name by replacing any |
| | environmental variables (defined by |
| | setsetting). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setsetting`
Link
----
https://kb.lumerical.com/en/ref_scripts_fileexpand.html
Note
----
Signature autogen'd from: `o.fileexpand(filename)`
"""
def fileextension(self, **kwargs: Any) -> str:
"""
Gets the file extension from a string.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fileextension( "name.ext") | Returns the file extension as a |
| | string. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.currentfilename`, :meth:`Lumerical.getpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`, :meth:`Lumerical.filedirectory`, :meth:`Lumerical.filebasename`
Link
----
https://kb.lumerical.com/en/ref_scripts_file_extension.html
Note
----
Signature autogen'd from: `o.fileextension()`
"""
def fileopendialog(self, **kwargs: Any) -> Any:
"""
Calls the standard windows file open dialog.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.fileopendialog() | Brings up the open file dialog box |
| | and returns the path that the user |
| | selects. |
+--------------------------------------+--------------------------------------+
| out = o.fileopendialog(".ext") | Brings up the open file dialog box, |
| | displaying only files with the |
| | extension .ext. Returns the path of |
| | the file that the user selects. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.filesavedialog`
Link
----
https://kb.lumerical.com/en/ref_scripts_fileopendialog.html
Note
----
Signature autogen'd from: `o.fileopendialog())`
"""
def filesavedialog(self, **kwargs: Any) -> Any:
"""
Calls the standard windows file save dialog.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.filesavedialog() | Brings up the save file dialog box |
| | and returns the path that the user |
| | selects. |
+--------------------------------------+--------------------------------------+
| out = o.filesavedialog(".ext") | Brings up the save file dialog box, |
| | displaying only files with the |
| | extension .ext. Returns the path of |
| | the file that the user selects. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.fileopendialog`
Link
----
https://kb.lumerical.com/en/ref_scripts_filesavedialog.html
Note
----
Signature autogen'd from: `o.filesavedialog())`
"""
def find(self, x: float, **kwargs: Any) -> Any:
"""
Searchs for entries in a matrix that meet some condition. The indices of
those values are returned. For multi-dimensional matrices, the find
function will still return a single index. This is useful when using the
output from find in a loop.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.find(x,5e-6) | Will return the index of x that |
| | corresponds to the closest value to |
| | 5e-6. |
+--------------------------------------+--------------------------------------+
| out = o.find(x>5) | Will return the indices of all |
| | values of x that are greater than 5. |
+--------------------------------------+--------------------------------------+
| out = o.find((x<7) & (x>=2)) | Will return the indices of all |
| | values of x that are greater than or |
| | equal to 2, AND less than 7. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.pinch`, :meth:`Lumerical.findpeaks`, :meth:`Lumerical.integrate`, :meth:`Lumerical.length`, :meth:`Lumerical.size`, :meth:`Lumerical.mod`, :meth:`Lumerical.meshgrid3dx`, :meth:`Lumerical.meshgrid3dy`, :meth:`Lumerical.meshgrid3dz`
Link
----
https://kb.lumerical.com/en/ref_scripts_find.html
Note
----
Signature autogen'd from: `o.find(x,5e-6)`
"""
def findmodes(self, **kwargs: Any) -> Any:
"""
Calculates the modes supported by the structure using the current
calculation settings. This function is the script equivalent to the
"Calculate Modes" button. Each mode will be saved as a D-CARD named
"modeX", where X is the xth mode found. The D-CARD saves data such as
effective index and mode profile.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| n=o.findmodes() | n will be equal to the number of |
| | modes found. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setanalysis`, :meth:`Lumerical.mesh`, :meth:`Lumerical.selectmode`, :meth:`Lumerical.frequencysweep`, :meth:`Lumerical.coupling`, :meth:`Lumerical.overlap`, :meth:`Lumerical.bestoverlap`, :meth:`Lumerical.propagate`
Link
----
https://kb.lumerical.com/en/ref_scripts_findmodes.html
Note
----
Signature autogen'd from: `o.findmodes())`
"""
@overload
def findpeaks(self, y: float, **kwargs: Any) -> float: ...
@overload
def findpeaks(self, y: float, n: float, **kwargs: Any) -> float: ...
def findpeaks(self, *args: Any, **kwargs: Any) -> float:
"""
Returns the position of peaks in a matrix. A peak (or local maximum) is
defined as a data point that is larger than its nearest neighbors.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.findpeaks(y) | Returns the position of the peak |
| | with the largest value in y. The |
| | length of y must be at least 2. If |
| | no peak is found in the data, a |
| | value of 1 is returned. |
+--------------------------------------+--------------------------------------+
| o.findpeaks(y,n) | Returns a matrix containing the |
| | positions of the largest n peaks |
| | found in the data. The returned |
| | values are ordered from largest to |
| | smallest. The returned matrix is |
| | always of dimension nX1. If less |
| | than n peaks are found, the |
| | remaining values of the returned |
| | matrix are 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.find`
Link
----
https://kb.lumerical.com/en/ref_scripts_findpeaks.html
Note
----
Signature autogen'd from: `o.findpeaks(y)`, `o.findpeaks(y,n)`
"""
def findproperty(self, property: Any, recursive: Any, **kwargs: Any) -> Any:
"""
This command returns a cell containing all elements in the circuit that
have a certain property.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.findproperty (property, recursive) | Returns a cell containing all |
| | elements in the circuit that have |
| | property ‘property’. If recursive is |
| | true, it will return a flat list |
| | (hierarchical) with all the elements |
| | in the current scope. The default |
| | value for recursive is false. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.findpropertyvalue`
Link
----
https://kb.lumerical.com/en/ref_scripts_findproperty.html
Note
----
Signature autogen'd from: `o.findproperty(property, recursive)`
"""
def findpropertyvalue(self, property: Any, value: float, recursive: Any, **kwargs: Any) -> Any:
"""
This command returns a cell containing all elements in the circuit that
have a certain property with a certain value.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.findpropertyvalue (property, | Returns a cell containing all |
| value, recursive) | elements in the circuit that have |
| | property ‘property’ with value |
| | ‘value’, if recursive is true, it |
| | will return a flat list |
| | (hierarchical) with all the elements |
| | in the current scope. The default |
| | value for recursive is false. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.findproperty`
Link
----
https://kb.lumerical.com/en/ref_scripts_findpropertyvalue.html
Note
----
Signature autogen'd from: `o.findpropertyvalue(property, value, recursive)`
"""
@overload
def findstring(self, s: float, s1: Any, **kwargs: Any) -> str: ...
@overload
def findstring(self, s: float, s1: Any, p0: Any, **kwargs: Any) -> str: ...
def findstring(self, *args: Any, **kwargs: Any) -> str:
"""
Returns the position of a given substring in a string.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| pos = o.findstring(s,s1) | Returns the position of the first |
| | instance substring s1 in s. If s1 is |
| | not found in s, it returns -1. |
+--------------------------------------+--------------------------------------+
| pos = o.findstring(s,s1,p0) | Returns the position of the first |
| | instance substring s1 in s, starting |
| | at position p0. If s1 is not found |
| | in s, starting from p0, it returns |
| | -1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.length`, :meth:`Lumerical.substring`, :meth:`Lumerical.replace`, :meth:`Lumerical.replacestring`, :meth:`Lumerical.str2num`, :meth:`Lumerical.num2str`, :meth:`Lumerical.splitstring`, :meth:`Lumerical.lower`, :meth:`Lumerical.upper`, :meth:`Lumerical.toscript`
Link
----
https://kb.lumerical.com/en/ref_scripts_findstring.html
Note
----
Signature autogen'd from: `o.findstring(s,s1)`, `o.findstring(s,s1,p0)`
"""
def finite(self, x: float, **kwargs: Any) -> Any:
"""
Returns 1 (true) if a value is finite. Numbers such as NaN or #1.INF
return 0 (false).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.finite(x) | Returns a matrix of the same size as |
| | x. The values are 1 for values of x |
| | that are finite and 0 for values |
| | that are NaN. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lineintersect`, :meth:`Lumerical.linecross`
Link
----
https://kb.lumerical.com/en/ref_scripts_finite.html
Note
----
Signature autogen'd from: `o.finite(x)`
"""
def flip(self, A: float, dim: Any, **kwargs: Any) -> Any:
"""
Flips (reverses the order of) a matrix along a given dimension.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| C = o.flip(A, dim) | Flips the matrix A along the |
| | dimension dim. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.size`, :meth:`Lumerical.length`, :meth:`Lumerical.pinch`, :meth:`Lumerical.transpose`, :meth:`Lumerical.reshape`, :meth:`Lumerical.permute`
Link
----
https://kb.lumerical.com/en/ref_scripts_flip.html
Note
----
Signature autogen'd from: `o.flip(A, dim)`
"""
def flipelement(self, element: Any, **kwargs: Any) -> Any:
"""
Flips element in the schematic editor.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.flipelement("element") | Flips element in the schematic |
| | editor. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.rotateelement`
Link
----
https://kb.lumerical.com/en/ref_scripts_flipelement.html
Note
----
Signature autogen'd from: `o.flipelement("element")`
"""
def floor(self, X: float, **kwargs: Any) -> Any:
"""
Rounds the input to the nearest integer less than or equal to itself.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.floor(X) | Returns the nearest integer less |
| | than or equal to X. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.ceil`, :meth:`Lumerical.mod`
Link
----
https://kb.lumerical.com/en/ref_scripts_floor.html
Note
----
Signature autogen'd from: `o.floor(X)`
"""
def for_(self, **kwargs: Any) -> Any:
"""
Starts a for loop to allow some operations to be repeated a number of
times. A while loop can be implemented when using the three argument
version of a for loop.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.for(x=1:100) { print x; } | Single argument for loop. The loop |
| | will be sequentially executed for |
| | each value of x. |
+--------------------------------------+--------------------------------------+
| o.for(x=1; x<= 100; x=x+1) { print | Three argument for loop. |
| x; } | |
| | x=1 at the start of the loop. The |
| | loop continues while x <=100 and |
| | sets x=x+1 at each pass. |
+--------------------------------------+--------------------------------------+
| x=1; o.for(0; x<10; 0) { print x; | This is equivalent to a while loop |
| x=x+1; } | that will execute while x<10. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.if`
Link
----
https://kb.lumerical.com/en/ref_scripts_for.html
Note
----
Signature autogen'd from: `o.for()`
"""
def format(self, **kwargs: Any) -> Any:
"""
Toggles the script interpreter between 2 output precision states. The
commands print (?) and num2str() use this state to determine how many
digits of precision to output.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.format long() | Set script interpreter to 16 digits |
| | of precision. |
+--------------------------------------+--------------------------------------+
| o.format short() | Set script interpreter to 6 digits |
| | of precision (maximum). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.num2str`
Link
----
https://kb.lumerical.com/en/ref_scripts_format.html
Note
----
Signature autogen'd from: `o.format()`
"""
def framerate(self, num_frames: float, zoom: Any, **kwargs: Any) -> Any:
"""
Orbits the perspective view and returns the framerate. This can be
useful for estimating your graphics performance. If comparing the
performance of two computers, be sure to use exactly the same simulation
file.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| fr = o.framerate(num_frames, zoom) | num_frames - Number of frames to |
| | draw |
| | |
| | zoom - Zoom factor used in |
| | perspective view |
| | |
| | fr - number of frames / wall time |
| | required to complete orbit. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setview`, :meth:`Lumerical.getview`, :meth:`Lumerical.orbit`
Link
----
https://kb.lumerical.com/en/ref_scripts_framerate.html
Note
----
Signature autogen'd from: `o.framerate(num_frames, zoom)`
"""
def frequencysweep(self, **kwargs: Any) -> Any:
"""
Performs a frequency sweep using the current settings within the
frequency analysis tab. Produces a D-CARD called "frequencysweep" that
contains dispersion, effective index, and other data for as a function
of frequency.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.frequencysweep() | Perform a frequency sweep with the |
| | current settings. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setanalysis`, :meth:`Lumerical.mesh`, :meth:`Lumerical.findmodes`, :meth:`Lumerical.selectmode`
Link
----
https://kb.lumerical.com/en/ref_scripts_frequencysweep.html
Note
----
Signature autogen'd from: `o.frequencysweep())`
"""
def gdsaddcircle(self, f: float, layer: Any, x: float, y: float, r: float, n: float, **kwargs: Any) -> Any:
"""
This function adds an approximation of a circle to a GDSII file stream.
GDSII files do not support circles, so this is just a convenient
function to create a polygon representation of a circle. Polygons can
only be added in a GDSII cell, so this command can be called only if a
cell has been created.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsaddcircle(f, layer, x, y, r, n) | Adds an approximation of a circle on |
| | a layer with x-, y-coordinates, |
| | radius and number of polygon sides. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
| layer | number | layer number for this |
| | | structure. |
+-------------------------+-------------------------+-------------------------+
| x | number | x-coordinate of the |
| | | center position in |
| | | meters. |
+-------------------------+-------------------------+-------------------------+
| y | number | y-coordinate of the |
| | | center position in |
| | | meters. |
+-------------------------+-------------------------+-------------------------+
| r | number | radius of the circle in |
| | | meters. |
+-------------------------+-------------------------+-------------------------+
| n | number | number of sides to use |
| | | in the polygon |
| | | approximation. It is 64 |
| | | by default. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsaddref`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsaddcircle.html
Note
----
Signature autogen'd from: `o.gdsaddcircle(f, layer, x, y, r, n)`
"""
def gdsaddpoly(self, f: float, layer: Any, **kwargs: Any) -> Any:
"""
This function adds a polygon element to a GDSII file stream. Polygons
are also known as boundary elements in GDS terminology. This command can
be called only if a cell has been created.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsaddpoly(f, layer, [vertices]) | Adds a polygon element on a layer |
| | with vertices. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
| layer | number | layer number for this |
| | | structure. |
+-------------------------+-------------------------+-------------------------+
| vertices | matrix | vertices of the |
| | | polygon, in a Nx2 |
| | | matrix where the first |
| | | column represents x and |
| | | the second column |
| | | represents y, e.g., |
| | | [x1,y1; |
| | | x2,y2;...xn,yn]. The |
| | | values are in meters. |
| | | The first and last |
| | | values should not be |
| | | the same, the polygon |
| | | will be automatically |
| | | closed. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddcircle`, :meth:`Lumerical.gdsaddref`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsaddpoly.html
Note
----
Signature autogen'd from: `o.gdsaddpoly(f, layer, [vertices])`
"""
def gdsaddrect(self, f: float, layer: Any, x: float, y: float, width: float, height: float, **kwargs: Any) -> Any:
"""
This function adds a rectangle element to a GDSII file stream. This is
just a convenient function to create a polygon for the case of a
rectangle. Other element type for rectangle (such as, box) is not
supported at this moment. Polygons can only be added in a GDSII cell, so
this command can be called only if a cell has been created.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsaddrect(f, layer, x, y, width, | Adds a rectangle element on a layer |
| height) | with x-, y-coordinates, width and |
| | height. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
| layer | number | layer number for this |
| | | structure. |
+-------------------------+-------------------------+-------------------------+
| x | number | x-coordinate of the |
| | | center position in |
| | | meters. |
+-------------------------+-------------------------+-------------------------+
| y | number | y-coordinate of the |
| | | center position in |
| | | meters. |
+-------------------------+-------------------------+-------------------------+
| width | number | width of the rectangle |
| | | in meters. |
+-------------------------+-------------------------+-------------------------+
| height | number | height of the rectangle |
| | | in meters. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsaddref`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsaddrect.html
Note
----
Signature autogen'd from: `o.gdsaddrect(f, layer, x, y, width, height)`
"""
def gdsaddref(self, f: float, cellname: str, dx: float, dy: float, **kwargs: Any) -> Any:
"""
This function adds a reference to another cell to the current cell in
the GDSII file stream. This function replicates the referenced cell (has
to be previously opened and finished) to the current cell, to create a
nested hierarchy. The layer numbers of the replicated structures follow
the referenced cell. References can only be added in a GDSII cell, so
this command can be called only if a current cell has been created. In
addition, the cell to be replicated has to exist before it is
referenced.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsaddref(f, "cellname", dx, dy) | Adds a reference to another cell |
| | ("cellname") to the current cell, |
| | with a specified move of dx and dy. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
| cellname | string | name of the referenced |
| | | cell. |
+-------------------------+-------------------------+-------------------------+
| dx | number | x-movement of the |
| | | replicated cell in the |
| | | current cell. |
+-------------------------+-------------------------+-------------------------+
| dy | number | y-movement of the |
| | | replicated cell in the |
| | | current cell. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsaddcircle`, :meth:`Lumerical.gdsaddrect`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsaddref.html
Note
----
Signature autogen'd from: `o.gdsaddref(f, "cellname", dx, dy)`
"""
def gdsbegincell(self, f: float, cellname: str, **kwargs: Any) -> Any:
"""
This function creates a cell in a GDSII file. All GDS elements
(polygons, boxes, references, array references, etc) must be placed
inside a cell, so this function must be called before adding any
elements. When finished adding elements, gdsendcell can be called to
finish the cell. Cells cannot be nested, so after calling gdsbegincell,
a new cell cannot be called again until the first called cell has been
closed. Although the GDSII file is a flat list of cells, cells can
reference other cells, thus creating a nested hierarchy. See gdsaddref
for more details. A GDS "cell" exists as a "structure group" when
imported to FDTD, see gdsimport for more details.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsbegincell(f, "cellname") | Creates a new cell in a GDSII file. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
| cellname | string | name of the cell. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsaddref`, :meth:`Lumerical.gdsimport`, :meth:`Lumerical.cell`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsbegincell.html
Note
----
Signature autogen'd from: `o.gdsbegincell(f, "cellname")`
"""
def gdsclose(self, filename: str, **kwargs: Any) -> Any:
"""
This function closes a GDSII file for writing. Before calling this
command, a .gds file has to be previously opened, see gdsopen.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsclose("filename") | closes a .gds file in the current |
| | working directory. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the GDSII file |
| | | to export, may also |
| | | contain a file path. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsclose.html
Note
----
Signature autogen'd from: `o.gdsclose("filename")`
"""
def gdsendcell(self, f: float, **kwargs: Any) -> Any:
"""
This function finishes a cell in a GDSII file. This function ends the
current cell in the GDSII file stream. The command gdsbegincell has to
be called before closing a cell.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.gdsendcell(f) | Finishes the previously created cell |
| | in a GDSII file. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| f | string | a file handle that was |
| | | previously opened with |
| | | gdsopen. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.gdsopen`, :meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsendcell.html
Note
----
Signature autogen'd from: `o.gdsendcell(f)`
"""
@overload
def gdsimport(self, filename: str, cellname: str, layer: Any, **kwargs: Any) -> Any: ...
@overload
def gdsimport(self, filename: str, cellname: str, layer: Any, material: Any, **kwargs: Any) -> Any: ...
@overload
def gdsimport(self, filename: str, cellname: str, layer: Any, material: Any, zmin: float, zmax: float, **kwargs: Any) -> Any: ...
def gdsimport(self, *args: Any, **kwargs: Any) -> Any:
"""
This command imports a cell from a .gds file into the layout
environment. This is equivalent to performing a GDSII import through the
FILE->IMPORT menu. See the Layout editor reference guide on GDSII import
for more information.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| n = o.gdsimport("filename", | Imports the specified layer from the |
| "cellname", layer) | specified cell in the specified file |
| | into the current simulation |
| | environment. The objects created |
| | will have their material set to an |
| | object defined dielectric. In 3D, |
| | the 2D geometric data will be |
| | extruded to default values in the Z |
| | dimension. The optional returned |
| | value, n, is the number of objects |
| | that were imported from the gds |
| | file. |
+--------------------------------------+--------------------------------------+
| n = o.gdsimport("filename", | Same as the above command, but the |
| "cellname", layer, "material") | material of the imported object will |
| | be set to the value specified. |
+--------------------------------------+--------------------------------------+
| n = o.gdsimport("filename", | This form of the command is only |
| "cellname", layer, "material", zmin, | allowed in 3D layouts. The behavior |
| zmax) | is the same as the above command, |
| | but the structures will be extruded |
| | in the Z dimension to the specified |
| | z min and z max values |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the GDSII file |
| | | to import. It can |
| | | contain a complete path |
| | | to file, or path |
| | | relative to the current |
| | | working directory. |
+-------------------------+-------------------------+-------------------------+
| cellname | string | name of the cell to |
| | | import from the GDSII |
| | | file. |
+-------------------------+-------------------------+-------------------------+
| layer | number or string | the layer number from |
| | | the GDSII file to |
| | | import. If only |
| | | elements matching a |
| | | certain data type are |
| | | desired, this can be |
| | | specified by using a |
| | | string of the form: |
| | | |
| | | "6:2" |
| | | |
| | | where the desired layer |
| | | is 6 and the desired |
| | | data type is 2. |
+-------------------------+-------------------------+-------------------------+
| material | string | a valid name of a |
| | | material in your |
| | | current layout |
| | | environment. Partial |
| | | names of materials can |
| | | be matched starting at |
| | | the beginning of the |
| | | string. For example, |
| | | "Al (3" would match "Al |
| | | (300nm)". |
+-------------------------+-------------------------+-------------------------+
| zmin | number | the minimum z value for |
| | | extruding 2D GDSII data |
| | | into 3D objects |
+-------------------------+-------------------------+-------------------------+
| zmax | number | the maximum z value for |
| | | extruding 2D GDSII data |
| | | into 3D objects |
+-------------------------+-------------------------+-------------------------+
-
See Also
--------
:meth:`Lumerical.setnamed`, :meth:`Lumerical.fileexists`, :meth:`Lumerical.gdsopen`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsimport.html
Note
----
Signature autogen'd from: `o.gdsimport("filename", "cellname", layer)`, `o.gdsimport("filename", "cellname", layer, "material")`, `o.gdsimport("filename", "cellname", layer, "material", zmin, zmax)`
"""
def gdsopen(self, filename: str, userUnit: Any, dataBaseUnit: np.ndarray, **kwargs: Any) -> Any:
"""
This function creates a new .gds file and returns a file handle that can
be used with the other GdsWriter functions to write the file. The
default database units are in 0.1nm and the user units are microns. The
GDSII export function works as a group of commands, shown below as an
example. For more information, please see Userguide - GDSII - Import and
export.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| f = o.gdsopen("filename", | Opens a .gds file in the current |
| "userUnit", "dataBaseUnit") | directory, specifies the size of |
| | user units and size of the GDSII |
| | file units. f is a file handle to |
| | open the GDSII file. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the GDSII file |
| | | to export, may also |
| | | contain a file path. |
+-------------------------+-------------------------+-------------------------+
| userUnit | number | size of user units in |
| | | GDSII file units. |
+-------------------------+-------------------------+-------------------------+
| databaseUnit | number | size of the GDSII file |
| | | units in meters. |
+-------------------------+-------------------------+-------------------------+
=
See Also
--------
:meth:`Lumerical.gdsclose`, :meth:`Lumerical.gdsbegincell`, :meth:`Lumerical.gdsendcell`, :meth:`Lumerical.gdsaddpoly`, :meth:`Lumerical.gdsimport`
Link
----
https://kb.lumerical.com/en/ref_scripts_gdsopen.html
Note
----
Signature autogen'd from: `o.gdsopen("filename", "userUnit", "dataBaseUnit")`
"""
@overload
def get(self, **kwargs: Any) -> Any: ...
@overload
def get(self, property: Any, **kwargs: Any) -> Any: ...
@overload
def get(self, property: Any, i: float, **kwargs: Any) -> Any: ...
def get(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets a property from selected objects. The property names for the get
command are the same as the property names in the Edit dialogue box.
For example, if you see a property called "mesh accuracy", then you can
use the command get("mesh accuracy"); to get that property. It is
possible to get numeric, string, drop down and checkbox properties.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.get() | Returns a list of the properties of |
| | the selected object(s). |
+--------------------------------------+--------------------------------------+
| out = o.get("property") | Gets the requested property value |
| | from the currently selected object. |
| | It cannot be used to get the |
| | property value of a selected object |
| | in a group. |
| | |
| | If multiple objects are selected |
| | get("property") is the same as |
| | get("property",i), where i is the |
| | number of the first selected objects |
| | with the requested property. |
| | |
| | Out can be a matrix or a string, |
| | depending on the property requested. |
+--------------------------------------+--------------------------------------+
| o.get("property",i) | Gets the property of the ith |
| | selected object. Use this to act on |
| | a series of objects. It cannot be |
| | used to get the value of a selected |
| | object in a group. |
| | |
| | The objects are ordered by their |
| | location in the object tree. The |
| | uppermost selected object is given |
| | the index 1, and the index numbers |
| | increase as you go down the tree. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getnumber`, :meth:`Lumerical.getnamed`, :meth:`Lumerical.getnamednumber`, :meth:`Lumerical.set`, :meth:`Lumerical.haveproperty`, :meth:`Lumerical.runsetup`
Link
----
https://kb.lumerical.com/en/ref_scripts_get.html
Note
----
Signature autogen'd from: `o.get())`, `o.get("property")`, `o.get("property",i)`
"""
def getactivesolver(self, **kwargs: Any) -> Any:
"""
Gets the active solver. This could be the FDE, varFDTD, or EME solvers
in MODE Solutions.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getactivesolver() | List the active solver. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setactivesolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_getactivesolver.html
Note
----
Signature autogen'd from: `o.getactivesolver())`
"""
@overload
def getanalysis(self, **kwargs: Any) -> Any: ...
@overload
def getanalysis(self, property: Any, **kwargs: Any) -> Any: ...
def getanalysis(self, *args: Any, **kwargs: Any) -> Any:
"""
Sets calculation parameters in MODE Solutions' FDE and DEVICE analysis
window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getanalysis() | Lists all the parameters in the |
| | analysis window. |
+--------------------------------------+--------------------------------------+
| o.getanalysis("property") | Returns the current value for the |
| | particular property on the analysis |
| | window |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.mesh`, :meth:`Lumerical.findmodes`, :meth:`Lumerical.frequencysweep`, :meth:`Lumerical.analysis`, :meth:`Lumerical.setanalysis`
Link
----
https://kb.lumerical.com/en/ref_scripts_getanalysis.html
Note
----
Signature autogen'd from: `o.getanalysis())`, `o.getanalysis("property")`
"""
@overload
def getattribute(self, R: float, **kwargs: Any) -> Any: ...
@overload
def getattribute(self, a: float, **kwargs: Any) -> Any: ...
def getattribute(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets an attribute from an existing dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getattribute(R) | Returns the names of all the |
| | attributes in the dataset R. |
+--------------------------------------+--------------------------------------+
| Attribute = R.o.getattribute("a") | Retrieves the attribute a from the |
| | existing dataset R. The result |
| | "Attribute" is a matrix in one of |
| | the forms below depending on the |
| | type of atrribute: |
| | |
| | vertex_scalar_attribute[npts; |
| | npar_1; npar_2; ...1] |
| | |
| | vertex_vector_attribute[npts; |
| | npar_1; npar_2; ...3] |
| | |
| | cell_scalar_attribute[ncells; 1] |
| | |
| | cell_vector_attribute[ncells; 3] |
| | |
| | "npts" is the number of vertices |
| | which is equal tothe length of |
| | geometric parameters 'x', 'y', 'z' |
| | |
| | "ncells" is the number of elements |
| | equal to number of rows of geometry |
| | parameter 'elements' |
+--------------------------------------+--------------------------------------+
| Attribute = getparameter(R,"a") | Retrieves the attribute a from the |
| | existing dataset R. The result |
| | "Attribute" is a matrix in one of |
| | the forms below depending on the |
| | type of atrribute: |
| | |
| | vertex_scalar_attribute[npts; |
| | npar_1; npar_2; ...1] |
| | |
| | vertex_vector_attribute[npts; |
| | npar_1; npar_2; ...3] |
| | |
| | cell_scalar_attribute[ncells; 1] |
| | |
| | cell_vector_attribute[ncells; 3] |
| | |
| | "npts" is the number of vertices |
| | which is equal tothe length of |
| | geometric parameters 'x', 'y', 'z' |
| | |
| | "ncells" is the number of elements |
| | equal to number of rows of geometry |
| | parameter 'elements' |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matrixdataset`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.getresult`, :meth:`Lumerical.getparameter`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_getattribute.html
Note
----
Signature autogen'd from: `o.getattribute(R)`, `o.getattribute("a")`
"""
def getcelllist(self, **kwargs: Any) -> Any:
"""
Returns the list of cells associated with the gds file that has been
loaded into a layer builder object. There needs to be a layer builder
object selected, with a gds file loaded.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getcelllist() | Returns the list of cells associated |
| | with the loaded gds file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addlayerbuilder`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`, :meth:`Lumerical.loadgdsfile`, :meth:`Lumerical.addlayer`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`
Link
----
https://kb.lumerical.com/en/ref_scripts_getcellist.html
Note
----
Signature autogen'd from: `o.getcelllist())`
"""
def getcommands(self, **kwargs: Any) -> Any:
"""
Returns the list of available script commands in the current script
workspace.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getcommands() | Returns a list of available script |
| | commands |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_getcommands.html
Note
----
Signature autogen'd from: `o.getcommands())`
"""
def getcompositionfraction(self, name: str, property: Any, **kwargs: Any) -> Any:
"""
This command is used to set the composition fraction of two materials in
an alloy.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getcompositionfraction(name, | Get the composition fraction of two |
| property) | materials in an alloy. Property can |
| | be fixed, linear x, linear y, linear |
| | z, or custom. |
| | |
| | This command only works if the |
| | material of the specified structure |
| | is an alloy. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setcompositionfraction`
Link
----
https://kb.lumerical.com/en/ref_scripts_getcompositionfraction.html
Note
----
Signature autogen'd from: `o.getcompositionfraction(name, property)`
"""
@overload
def getdata(self, **kwargs: Any) -> Any: ...
@overload
def getdata(self, monitor: Any, **kwargs: Any) -> Any: ...
@overload
def getdata(self, monitor: Any, dataname: str, **kwargs: Any) -> Any: ...
@overload
def getdata(self, monitor: Any, dataname: str, option: float, **kwargs: Any) -> Any: ...
@overload
def getdata(self, monitor: Any, result: Any, **kwargs: Any) -> Any: ...
@overload
def getdata(self, monitor: Any, result: Any, dataname: str, **kwargs: Any) -> Any: ...
def getdata(self, *args: Any, **kwargs: Any) -> Any:
"""
Get raw data from a simulation object. In most cases, it is more
convenient to get a complete dataset with getresult, rather than getting
individual data elements with getdata.
Remember to run the simulation before using getdata.
For FDTD and MODE,
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getdata() | Returns names of all objects with |
| | data. |
+--------------------------------------+--------------------------------------+
| print o.getdata("monitor") | Returns list of of data within the |
| | simulation object. |
+--------------------------------------+--------------------------------------+
| out = o.getdata( "monitor", | Gets data from a monitor. For |
| "dataname") | example, you can use |
| | |
| | •Ex = getdata("monitor1","Ex"); |
| | |
| | to get the Ex field data from |
| | monitor1. |
+--------------------------------------+--------------------------------------+
| out = o.getdata( "monitor", | The optional argument, option, can |
| "dataname", option) | have a value of 1 or 2. If it is 2, |
| | the data is unfolded where possible |
| | according to the symmetry or |
| | anti-symmetric boundaries if it |
| | comes from a monitor that intersect |
| | such a boundary at x min, y min or z |
| | min. The default value of option is |
| | 2. |
| | |
| | For Propagator simulations in MODE |
| | Solutions, this options also allow |
| | users to choose whether to expand |
| | the data to the correct size for |
| | dimensions where the field component |
| | is zero. Option 1 will return a |
| | singleton value of 0 for the field |
| | component in that dimension, and |
| | option 2 will return a matrix |
| | (composed of zeros) that matches the |
| | size of the other field components. |
+--------------------------------------+--------------------------------------+
For DEVICE,
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getdata() | Returns names of all objects with |
| | data. |
+--------------------------------------+--------------------------------------+
| print o.getdata("monitor") | Returns list of of results within |
| | the simulation object. |
+--------------------------------------+--------------------------------------+
| print o.getdata( "monitor", | Returns list of of data within the |
| "result") | simulation object result. |
+--------------------------------------+--------------------------------------+
| out = o.getdata( "monitor", | Gets the simulation data. |
| "result", "dataname") | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getresult`, :meth:`Lumerical.havedata`, :meth:`Lumerical.getelectric`, :meth:`Lumerical.getmagnetic`, :meth:`Lumerical.nonorm`, :meth:`Lumerical.cwnorm`, :meth:`Lumerical.getsweepdata`, :meth:`Lumerical.getsweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_getdata.html
Note
----
Signature autogen'd from: `o.getdata())`, `o.getdata("monitor")`, `o.getdata("monitor", "dataname")`, `o.getdata("monitor", "dataname", option)`, `o.getdata("monitor", "result")`, `o.getdata("monitor", "result", "dataname")`
"""
def getdgtdindex(self, materialname: str, f: float, fmin: float, fmax: float, **kwargs: Any) -> Any:
"""
Returns the complex refractive index of a material in the Materials
Group with material fit that will be used in a DGTD simulation.
Many materials (such as sampled materials) have properties that depend
on frequency. Using getdgtdindex, you can specify frequency range, and
the fitting routine will find a best fit of the material data over that
range. The refractive index evaluated at the specified frequencies is
then returned.
Note that the fit result depends on the fit parameters, Max coefficients
and Tolerance set for the material, thus getdgtdindex result depends on
those parameters as well. Tips for setting these parameters can be found
at Modifying the material fits.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getdgtdindex( | Returns the complex index of the |
| "materialname", f, fmin, fmax) | material with the given name. The |
| | index is returned for the specified |
| | frequency f. Similar to getindex, |
| | but you also specify fmin and fmax, |
| | the span of frequency of the DGTD |
| | simulation. All frequency units are |
| | in Hz. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.adddgtdsolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_getdgtdindex.html
Note
----
Signature autogen'd from: `o.getdgtdindex("materialname", f, fmin, fmax)`
"""
@overload
def geteigensolver(self, **kwargs: Any) -> Any: ...
@overload
def geteigensolver(self, property: Any, **kwargs: Any) -> Any: ...
def geteigensolver(self, *args: Any, **kwargs: Any) -> Any:
"""
Mode sources and mode expansion monitors in FDTD Solutions and MODE
Solutions, and ports in FDTD Solutions have embedded eigensolvers. This
script command makes it possible to get the properties of that
eigensolver without using the GUI.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.geteigensolver() | Returns a list of the properties of |
| | the embedded eigensolver |
+--------------------------------------+--------------------------------------+
| o.geteigensolver("property") | This will get the eigensolver |
| | properties of the currently selected |
| | objects. The returned value may be a |
| | number or a string, depending on the |
| | property. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmode`, :meth:`Lumerical.addmodeexpansion`, :meth:`Lumerical.addport`, :meth:`Lumerical.clearsourcedata`, :meth:`Lumerical.clearmodedata`, :meth:`Lumerical.clearportmodedata`, :meth:`Lumerical.getresult`, :meth:`Lumerical.seteigensolver`, :meth:`Lumerical.geteigensolver`, :meth:`Lumerical.updatemodes`, :meth:`Lumerical.updatesourcemode`, :meth:`Lumerical.updateportmodes`
Link
----
https://kb.lumerical.com/en/ref_scripts_geteigensolver.html
Note
----
Signature autogen'd from: `o.geteigensolver())`, `o.geteigensolver("property")`
"""
def getelectric(self, monitorname: str, option: float, **kwargs: Any) -> Any:
"""
Returns the sum of the amplitude squares for all electric field
components, i.e. it returns \|Ex\|2+\|Ey\|2+\|Ez\|2.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getelectric( "monitorname") | Returns \ |
| | the monitor. |
+--------------------------------------+--------------------------------------+
| o.getelectric( "monitorname", | The optional argument, option, can |
| option) | have a value of 1 or 2. If it is 2, |
| | the data is unfolded where possible |
| | according to the symmetry or |
| | anti-symmetric boundaries if it |
| | comes from a monitor that intersect |
| | such a boundary at x min, y min or z |
| | min. The default value of option is |
| | 2. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getdata`, :meth:`Lumerical.getmagnetic`, :meth:`Lumerical.cwnorm`, :meth:`Lumerical.nonorm`
Link
----
https://kb.lumerical.com/en/ref_scripts_getelectric.html
Note
----
Signature autogen'd from: `o.getelectric("monitorname", option)`
"""
@overload
def getemeanalysis(self, **kwargs: Any) -> Any: ...
@overload
def getemeanalysis(self, property: Any, **kwargs: Any) -> Any: ...
def getemeanalysis(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets calculation parameters in MODE Solutions' EME analysis window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getemeanalysis() | Lists all the parameters in the |
| | analysis window. |
+--------------------------------------+--------------------------------------+
| o.getemeanalysis("property") | Gets the value of the calculation |
| | parameter named "property" in EME |
| | solver analysis window. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setemeanalysis`
Link
----
https://kb.lumerical.com/en/ref_scripts_getemeanalysis.html
Note
----
Signature autogen'd from: `o.getemeanalysis())`, `o.getemeanalysis("property")`
"""
def getemesweep(self, S: float, **kwargs: Any) -> Any:
"""
Gets the user s-matrix result from a propagation sweep or a mode
convergence sweep.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getemesweep("S") | Gets the user s-matrix result from |
| | an EME propagation sweep named "S". |
+--------------------------------------+--------------------------------------+
| o.getemesweep("S_mode_convergence\ | Gets the user s-matrix result from |
| _sweep") | an EME mode convergence sweep named |
| | "S_mode_convergence_sweep". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setemeanalysis`, :meth:`Lumerical.emesweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_getemesweep.html
Note
----
Signature autogen'd from: `o.getemesweep("S")`
"""
@overload
def getfdtdindex(self, materialname: str, f: float, fmin: float, fmax: float, **kwargs: Any) -> Any: ...
@overload
def getfdtdindex(self, materialname: str, f: float, fmin: float, fmax: float, component: Any, **kwargs: Any) -> Any: ...
def getfdtdindex(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the complex refractive index of a material in the database with
material fit that will be used in a simulation in FDTD Solutions.
Many materials (such as Sampled materials) have properties that depend
on frequency. Using getfdtdindex, you can specify frequency range, and
the fitting routine will find a best fit of the material data over that
range. The refractive index evaluated at the specified frequencies is
then returned.
Note that the fit result depends on the fit parameters, Max coefficients
and Tolerance set for the material, thus getfdtdindex result depends on
those parameters as well. Tips for setting these parameters can be found
at Modifying the material fits.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getfdtdindex( | Returns the complex index of the |
| "materialname", f, fmin, fmax) | material with the given name. The |
| | index is returned for the specified |
| | frequency f. Similar to getindex, |
| | but you also specify fmin and fmax, |
| | the span of frequency of the FDTD |
| | simulation. All frequency units are |
| | in Hz. |
+--------------------------------------+--------------------------------------+
| o.getfdtdindex("materialname", | Optional argument component can be |
| f,fmin, fmax, component) | 1, 2 or 3 to specify the x, y or z |
| | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getindex`, :meth:`Lumerical.getmodeindex`, :meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getnumericalpermittivity`
Link
----
https://kb.lumerical.com/en/ref_scripts_getfdtdindex.html
Note
----
Signature autogen'd from: `o.getfdtdindex("materialname", f, fmin, fmax)`, `o.getfdtdindex("materialname", f,fmin, fmax, component)`
"""
@overload
def getfdtdsurfaceconductivity(self, materialname: str, f: float, fmin: float, fmax: float, **kwargs: Any) -> Any: ...
@overload
def getfdtdsurfaceconductivity(self, f: float, fmin: float, fmax: float, component: Any, **kwargs: Any) -> Any: ...
def getfdtdsurfaceconductivity(self, *args: Any, **kwargs: Any) -> Any:
"""
For materials which use a surface conductivity material model (such as
Graphene), this function returns the surface conductivity of the
material in the database as it will be used in an actual simulation. For
a list of materials which use the surface conductivity model, see
Material conductivity models.
The conductivity evaluated at the specified frequencies is returned.
Note that the fit result depends on the fit parameters, Max coefficients
and Tolerance set for the material, thus getfdtdsurfaceconductivity
result depends on those parameters as well.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getfdtdsurfaceconductivity( | Returns the surface conductivity (in |
| "materialname", f, fmin, fmax) | units of S) of the material with the |
| | given name. The surface conductivity |
| | is returned for the specified |
| | frequency f. Similar to |
| | getsurfaceconductivity, but you also |
| | specify fmin and fmax, the span of |
| | frequency range of the simulation. |
| | All frequency units are in Hz. |
+--------------------------------------+--------------------------------------+
| o.getfdtdsurfaceconductivity("materi | Optional argument component can be |
| alname", | 1, 2 or 3 to specify the x, y or z |
| f,fmin, fmax, component) | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getsurfaceconductivity`
Link
----
https://kb.lumerical.com/en/ref_scripts_getfdtdsurfaceconductivity.html
Note
----
Signature autogen'd from: `o.getfdtdsurfaceconductivity("materialname", f, fmin, fmax)`, `o.getfdtdsurfaceconductivity("materi alname", f,fmin, fmax, component)`
"""
def getfield(self, input: Any, field: np.ndarray, **kwargs: Any) -> float:
"""
The script command returns the value of a field from structure input.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| value= o.getfield(input, field) | Returns the value of a ‘field’ from |
| | structure ‘input’. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.isfield`, :meth:`Lumerical.setfield`
Link
----
https://kb.lumerical.com/en/ref_scripts_getfield.html
Note
----
Signature autogen'd from: `o.getfield(input, field)`
"""
@overload
def getglobalmonitor(self, **kwargs: Any) -> float: ...
@overload
def getglobalmonitor(self, property: Any, **kwargs: Any) -> float: ...
def getglobalmonitor(self, *args: Any, **kwargs: Any) -> float:
"""
Sets global monitor properties. This command will return an error in
analysis mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getglobalmonitor() | Returns a list of the global monitor |
| | properties |
+--------------------------------------+--------------------------------------+
| print o.getglobalmonitor("property") | Returns the value of the requested |
| | property. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.setglobalmonitor`, :meth:`Lumerical.setglobalsource`, :meth:`Lumerical.getglobalsource`
Link
----
https://kb.lumerical.com/en/ref_scripts_getglobalmonitor.html
Note
----
Signature autogen'd from: `o.getglobalmonitor())`, `o.getglobalmonitor("property")`
"""
@overload
def getglobalsource(self, **kwargs: Any) -> float: ...
@overload
def getglobalsource(self, property: Any, **kwargs: Any) -> float: ...
def getglobalsource(self, *args: Any, **kwargs: Any) -> float:
"""
Sets global monitor properties. This command will return an error in
analysis mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getglobalsource() | Returns a list of the global source |
| | properties |
+--------------------------------------+--------------------------------------+
| o.getglobalsource("property") | Returns the value of the requested |
| | property. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.setglobalmonitor`, :meth:`Lumerical.getglobalmonitor`, :meth:`Lumerical.setglobalsource`
Link
----
https://kb.lumerical.com/en/ref_scripts_getglobalsource.html
Note
----
Signature autogen'd from: `o.getglobalsource())`, `o.getglobalsource("property")`
"""
@overload
def getindex(self, materialname: str, f: float, **kwargs: Any) -> Any: ...
@overload
def getindex(self, materialname: str, f: float, component: Any, **kwargs: Any) -> Any: ...
def getindex(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns the complex refractive index of a material in the material
database. The refractive index at the specified frequency is linearly
interpolated from the neighboring frequencies where the data is
available.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getindex("materialname", f) | Returns the complex index of the |
| | material with the given name. The |
| | index is returned for the specified |
| | frequency f. Frequency f is in Hz. |
+--------------------------------------+--------------------------------------+
| o.getindex("materialname", f, | Optional argument component can be |
| component) | 1, 2 or 3 to specify the x, y or z |
| | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getfdtdindex`, :meth:`Lumerical.getmodeindex`, :meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getsurfaceconductivity`
Link
----
https://kb.lumerical.com/en/ref_scripts_getindex.html
Note
----
Signature autogen'd from: `o.getindex("materialname", f)`, `o.getindex("materialname", f, component)`
"""
def getlayerlist(self, **kwargs: Any) -> Any:
"""
Returns the list of layers associated with the loaded gds file. There
needs to be a layer builder object selected, with a gds file loaded.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getlayerlist() | Returns the list of layers |
| | associated with the loaded gds file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addlayerbuilder`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`, :meth:`Lumerical.loadgdsfile`, :meth:`Lumerical.addlayer`, :meth:`Lumerical.getcelllist`, :meth:`Lumerical.setlayer`
Link
----
https://kb.lumerical.com/en/ref_scripts_getlayerlist.html
Note
----
Signature autogen'd from: `o.getlayerlist())`
"""
def getmagnetic(self, monitorname: str, option: float, **kwargs: Any) -> Any:
"""
Returns the sum of the amplitude squares for all magnetic field
components, i.e. it returns \|Hx\|2+\|Hy\|2+\|Hz\|2.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getmagnetic( "monitorname") | Returns \ |
| | the monitor. |
+--------------------------------------+--------------------------------------+
| o.getmagnetic( "monitorname", | The optional argument, option, can |
| option) | have a value of 1 or 2. If it is 2, |
| | the data is unfolded where possible |
| | according to the symmetry or |
| | anti-symmetric boundaries if it |
| | comes from a monitor that intersect |
| | such a boundary at x min, y min or z |
| | min. The default value of option is |
| | 2. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getdata`, :meth:`Lumerical.getelectric`, :meth:`Lumerical.cwnorm`, :meth:`Lumerical.nonorm`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmagnetic.html
Note
----
Signature autogen'd from: `o.getmagnetic("monitorname", option)`
"""
@overload
def getmaterial(self, materialname: str, **kwargs: Any) -> Any: ...
@overload
def getmaterial(self, materialname: str, propertyname: str, **kwargs: Any) -> Any: ...
def getmaterial(self, *args: Any, **kwargs: Any) -> Any:
"""
Returns properties of a material in the material database.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getmaterial( "materialname") | Displays the property names of the |
| | specified material that can be |
| | modified. |
+--------------------------------------+--------------------------------------+
| out = o.getmaterial( "materialname", | Returns the property named |
| "propertyname") | "propertyname" of the material with |
| | the name "materialname". The |
| | returned variable is either a matrix |
| | or a string, depending on the |
| | property in the query. |
+--------------------------------------+--------------------------------------+
+----+
+----+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getindex`, :meth:`Lumerical.getfdtdindex`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmaterial.html
Note
----
Signature autogen'd from: `o.getmaterial("materialname")`, `o.getmaterial("materialname", "propertyname")`
"""
def getmeshcontours(self, dataset: np.ndarray, **kwargs: Any) -> Any:
"""
Gets information about the contours between different domains in an
unstructured (finite-element) dataset. The dataset must contain the
"ID" attribute (a unique identified for each domain in the
finite-element mesh generated by DEVICE).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| A = o.getmeshcontours(dataset) | Returns information about the |
| | contours between different domains |
| | of the unstructured dataset named |
| | "dataset". The output is provided |
| | as a cell array. Each entry is a |
| | struct with three fields: |
| | |
| | ID: An integer ID that is unique |
| | for that contour. |
| | |
| | adjacent: Two integers representing |
| | the IDs of the adjacent domains. |
| | |
| | elements: For 2D, Nx2 array and for |
| | 3D, Nx3 array of integers that are |
| | the indexes to the vertices for each |
| | face on the boundary. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.unstructureddataset`, :meth:`Lumerical.mesh`, :meth:`Lumerical.getresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmeshcontours.html
Note
----
Signature autogen'd from: `o.getmeshcontours(dataset)`
"""
@overload
def getmodeindex(self, materialname: str, f: float, **kwargs: Any) -> Any: ...
@overload
def getmodeindex(self, materialname: str, f: float, component: Any, **kwargs: Any) -> Any: ...
@overload
def getmodeindex(self, materialname: str, f: float, component: Any, fitsampled: Any, fitanalytic: Any, fmin: float, fmax: float, **kwargs: Any) -> Any: ...
def getmodeindex(self, *args: Any, **kwargs: Any) -> Any:
"""
This function returns the material index of a material in the database
as it will be used in an actual MODE simulation.
Many materials (such as Sampled Materials) have properties that depend
on frequency. Using getmodeindex, you can obtain the refractive index as
a function of the specified frequency, f, as it will be used in MODE
calculations.
Note that the fit result depends on the fit parameters, Max coefficients
and Tolerance set for the material, thus getfdtdindex result depends on
those parameters as well. Tips for setting these parameters can be found
at Modifying the material fits.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getmodeindex( | Returns the complex index of the |
| "materialname", f) | material with the given name. The |
| | index is returned for the specified |
| | frequency f. This result is |
| | identical to getindex unless the |
| | optional arguments fitsampled and |
| | fitanalytic are used. All frequency |
| | units are in Hz. |
+--------------------------------------+--------------------------------------+
| o.getmodeindex("materialname", | Optional argument component can be |
| f,component) | 1, 2 or 3 to specify the x, y or z |
| | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
| o.getmodeindex("materialname", | Optional arguments to specify if |
| f,component, fitsampled, | Sampled Materials or Analytic |
| fitanalytic, fmin, fmax) | Materials should be fitted using |
| | Lumerical's multi-coefficient model |
| | (MCM), which is commonly used in |
| | FDTD simulations. If either of these |
| | options are set to 1 (true) then you |
| | must supply a minimum and maximum |
| | frequency for fitting. The MCM is |
| | typically used in MODE Solutions for |
| | |
| | •Sampled Materials when calculating |
| | waveguide dispersion, and for |
| | |
| | •Analytic Materials only for the |
| | purpose of using precisely the same |
| | materials in both FDTD and MODE |
| | simulations. |
| | |
| | The default values are 0 (false) for |
| | fitsampled and fitanalytic. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getindex`, :meth:`Lumerical.getfdtdindex`, :meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmodeindex.html
Note
----
Signature autogen'd from: `o.getmodeindex("materialname", f)`, `o.getmodeindex("materialname", f,component)`, `o.getmodeindex("materialname", f,component, fitsampled, fitanalytic, fmin, fmax)`
"""
def getmonitorframe(self, port: Any, start: Any, count: float, **kwargs: Any) -> Any:
"""
Reads the available frames from an analyzer input port.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| signalIn = | For a scripted element, this command |
| o.getmonitorframe(port,start,count) | reads the available frames from an |
| | analyzer input port. Analyzer input |
| | ports store the signal frames in an |
| | internal buffer. This function |
| | allows for accessing these frames |
| | from a starting point ‘start’ with |
| | length defined by ‘count’. Different |
| | from ‘popportrame’ where header and |
| | data contains one structure each, |
| | the data member returned from this |
| | function is cell containing multiple |
| | data values. |
| | |
| | Refer to ‘popportframe’ for the list |
| | of supported frame types and |
| | examples. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.popportdata`, :meth:`Lumerical.pushportdata`, :meth:`Lumerical.cloneportdata`, :meth:`Lumerical.portdatasize`, :meth:`Lumerical.popportframe`, :meth:`Lumerical.pushportframe`, :meth:`Lumerical.getmonitorwaveform`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmonitorframe.html
Note
----
Signature autogen'd from: `o.getmonitorframe(port,start,count)`
"""
def getmonitorwaveform(self, port: Any, **kwargs: Any) -> Any:
"""
Returns a structure containing a waveform from an analyzer input port.
This command is specific for building analyzers.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| signalIn = | For a scripted element, this command |
| o.getmonitorwaveform(port,domain=”ti | returns a structure containing a |
| me”) | waveform from an analyzer input |
| | port. Results can be provided in |
| | “time” or “frequency’ domains. This |
| | command is specific for building |
| | analyzers. |
+--------------------------------------+--------------------------------------+
Implementation Details
Digital signal waveform:
The waveform contains the signal bitrate and two vectors: the time and
amplitude values.
#digital signal waveform
bitrate
time=matrix;
value=matrix;
Electrical signal frame:
The waveform contains the signal value and its bandwidth. Frequency or
time domain values are available.
#electrical signal frame
bandwidth=struct
bandwidth.frequency
bandwidth.sample_rate
bandwidth.time_window
value=struct
value.amplitude = matrix
value.frequency = matrix
Optical signal frame:
The waveform contains the signal channel. The signal channel is a cell
which contains the bandwidth, value and mode structs.
#optical signal frame
signal=cell
signal.channel=cell
signal.channel.bandwidth=struct
signal.channel.bandwidth.frequency
signal.channel.bandwidth.sample_rate
signal.channel.bandwidth.time_window
signal.channel.value=struct
signal.channel.value.amplitude
signal.channel.value.frequency
signal.channel.mode=struct
signal.channel.mode.label
signal.channel.mode.orthogonal_identifier
signal.channel.mode.uid
See Also
--------
:meth:`Lumerical.popportdata`, :meth:`Lumerical.pushportdata`, :meth:`Lumerical.cloneportdata`, :meth:`Lumerical.portdatasize`, :meth:`Lumerical.popportframe`, :meth:`Lumerical.pushportframe`, :meth:`Lumerical.getmonitorframe`
Link
----
https://kb.lumerical.com/en/ref_scripts_getmonitorwaveform.html
Note
----
Signature autogen'd from: `o.getmonitorwaveform(port,domain=”ti me”)`
"""
@overload
def getname(self, a: float, **kwargs: Any) -> Any: ...
@overload
def getname(self, **kwargs: Any) -> Any: ...
def getname(self, *args: Any, **kwargs: Any) -> Any:
"""
The script command getname is used to get the name of a datset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getname(a) | Returns the name of the dataset of |
| | the variable a. |
+--------------------------------------+--------------------------------------+
| print a.o.getname() | Returns the name of the dataset of |
| | the variable a. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setname`
Link
----
https://kb.lumerical.com/en/ref_scripts_getname.html
Note
----
Signature autogen'd from: `o.getname(a)`, `o.getname())`
"""
@overload
def getnamed(self, name: str, **kwargs: Any) -> Any: ...
@overload
def getnamed(self, name: str, property: Any, **kwargs: Any) -> Any: ...
@overload
def getnamed(self, name: str, property: Any, i: float, **kwargs: Any) -> Any: ...
@overload
def getnamed(self, property: Any, **kwargs: Any) -> Any: ...
def getnamed(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets a property from objects with a given name.
If multiple objects are selected, and the values are different, the
smallest value is returned. To be certain of the results, be sure that
only one object is selected, or use the form of getnamed that allows a
specific object to be selected.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getnamed("name") | Returns a list of the properties of |
| | the objects called name. |
+--------------------------------------+--------------------------------------+
| out = o.getnamed("name", "property") | The same as get, but acts on objects |
| | with a specific name, instead of |
| | selected objects. |
+--------------------------------------+--------------------------------------+
| out=o.getnamed("name", "property", | Gets the property of the ith named |
| i) | object. Use this to act on a series |
| | of objects. |
| | |
| | The objects are ordered by their |
| | location in the object tree. The |
| | uppermost selected object is given |
| | the index 1, and the index numbers |
| | increase as you go down the tree. |
+--------------------------------------+--------------------------------------+
| out = o.getnamed("groupname::name", | The same as get, but acts on objects |
| "property") | named "name" located in the group |
| | "groupname", instead of selected |
| | objects. |
+--------------------------------------+--------------------------------------+
| out = o.getnamed("groupname::name", | Gets the property of the ith object |
| "property") | named "name" located in the group |
| | "groupname". Use this to act on a |
| | series of objects. |
| | |
| | The objects are ordered by their |
| | location in the object tree. The |
| | uppermost selected object is given |
| | the index 1, and the index numbers |
| | increase as you go down the tree. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.getnumber`, :meth:`Lumerical.getnamednumber`, :meth:`Lumerical.set`, :meth:`Lumerical.setnamed`
Link
----
https://kb.lumerical.com/en/ref_scripts_getnamed.html
Note
----
Signature autogen'd from: `o.getnamed("name")`, `o.getnamed("name", "property")`, `o.getnamed("name", "property", i)`, `o.getnamed("groupname::name", "property")`
"""
def getnamednumber(self, name: str, **kwargs: Any) -> Any:
"""
Gets the number of objects with a given name.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getnamednumber( "name") | The same as getnumber, but acts on |
| | objects with a specific name, |
| | instead of selected objects. |
+--------------------------------------+--------------------------------------+
| out = o.getnamednumber( | The same as getnumber, but acts on |
| "groupname::name") | all objects named "name" in the |
| | group "groupname", instead of |
| | selected objects. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.getnamed`, :meth:`Lumerical.getnumber`, :meth:`Lumerical.set`, :meth:`Lumerical.setnamed`
Link
----
https://kb.lumerical.com/en/ref_scripts_getnamednumber.html
Note
----
Signature autogen'd from: `o.getnamednumber("name")`
"""
def getnumber(self, **kwargs: Any) -> Any:
"""
Gets the number of objects that are selected.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getnumber() | Returns the number of objects that |
| | are selected; |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.getnamed`, :meth:`Lumerical.getnamednumber`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_getnumber.html
Note
----
Signature autogen'd from: `o.getnumber())`
"""
@overload
def getnumericalpermittivity(self, materialname: str, f: float, fmin: float, fmax: float, dt: Any, **kwargs: Any) -> Any: ...
@overload
def getnumericalpermittivity(self, f: float, fmin: float, fmax: float, dt: Any, component: Any, **kwargs: Any) -> Any: ...
@overload
def getnumericalpermittivity(self, f: float, fmin: float, fmax: float, dt: Any, component: Any, use_bfast: Any, **kwargs: Any) -> Any: ...
def getnumericalpermittivity(self, *args: Any, **kwargs: Any) -> Any:
"""
This advanced function returns the permittivity of a material in the
database as it will be used in an actual FDTD simulation, including the
effects of a finite time step, dt. In FDTD, the relationship between the
displacement field, D, and the electric field, E, is given by
In the limit where dt tends to zero, we have
where n(ω) is the refractive index returned by the script function
getfdtdindex, or shown in the Materials Explorer. If you set dt to zero
when calling this function, it will return exactly the same result as
the square of getfdtdindex.
The name of the function is a reminder that it returns the numerical
permittivity, i.e., the ratio of D and E, which is different from the
refractive index, i.e. the ratio of the speed of light in a vacuum to
the phase velocity of light in the medium. To understand the
relationship between them, we must consider the full, numerical
dispersion relation between ω and k, which is given by
In the limit where dt, dx, dy and dz tend to zero, it is easy to show
that we have the expected result
The spatial FDTD mesh and time step are generally chosen to obtain a
desired level of simulation accuracy, essentially by ensuring that the
arguments of the sine functions are sufficiently small that sin(x)~x and
that the simulation is stable. For some materials, it may be desired to
further reduce the value of the time step, dt, without modifying the
spatial FDTD mesh, in order to obtain a higher level of accuracy for
εr(ω,dt). This script function makes it possible to calculate, in
advance, the value of dt required to obtain the desired accuracy for the
permittivity.
The results from getnumericalpermittivity will be different if the
Broadband Fixed Angle Source Technique (BFAST) is used. Since the script
function does not require a calculation being performed beforehand, the
user needs to specify if the computation uses BFAST or not. See the
BFAST page for more details about this technique.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getnumericalpermittivity ( | Returns the complex permittivity of |
| "materialname", f, fmin, fmax, dt) | the material with the given name. |
| | The permittivity is returned for the |
| | specified frequency f. This is |
| | similar to getfdtdindex except for |
| | the additional parameter dt. All |
| | frequency units are in Hz. |
+--------------------------------------+--------------------------------------+
| o.getnumericalpermittivity("material | Optional argument component can be |
| name", | 1, 2 or 3 to specify the x, y or z |
| f,fmin, fmax, dt, component) | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
| o.getnumericalpermittivity("material | Optional argument use_bfast can be |
| name", | 0 or 1. It indicates whether the |
| f,fmin, fmax, dt, component, | simulation is performed using the |
| use_bfast) | Broadband Fixed Angle Source |
| | Technique (BFAST) or not. The |
| | default is 0. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getindex`, :meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getfdtdindex`
Link
----
https://kb.lumerical.com/en/ref_scripts_getnumericalpermittivity.html
Note
----
Signature autogen'd from: `o.getnumericalpermittivity("materialname", f, fmin, fmax, dt)`, `o.getnumericalpermittivity("material name", f,fmin, fmax, dt, component)`, `o.getnumericalpermittivity("material name", f,fmin, fmax, dt, component, use_bfast)`
"""
@overload
def getparameter(self, R: float, **kwargs: Any) -> Any: ...
@overload
def getparameter(self, p: float, **kwargs: Any) -> Any: ...
@overload
def getparameter(self, R: float, p: float, **kwargs: Any) -> Any: ...
def getparameter(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets a parameter from an existing dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getparameter(R) | Returns the names of all the |
| | parameters in the dataset R. |
+--------------------------------------+--------------------------------------+
| Parameter = R.o.getparameter("p") | Retrieves the parameter p from the |
| | existing dataset R. The result |
| | "Parameter" is a scalar matrix. |
| | |
| | See Dataset introduction for details |
| | about dimensions of attribute data. |
+--------------------------------------+--------------------------------------+
| Parameter = o.getparameter(R,"p") | Retrieves the parameter p from the |
| | existing dataset R. The result |
| | "Parameter" is a scalar matrix. |
| | |
| | See Dataset introduction for details |
| | about dimensions of attribute data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matrixdataset`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.getresult`, :meth:`Lumerical.getattribute`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_getparameter.html
Note
----
Signature autogen'd from: `o.getparameter(R)`, `o.getparameter("p")`, `o.getparameter(R,"p")`
"""
def getpath(self, **kwargs: Any) -> str:
"""
Gets the current path. By default, the current working directory and the
script sub-directory of the installation (eg. C:\\Program
Files\\Lumerical\\FDTD\\scripts) are in the path.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getpath() | Returns the current path as a |
| | string. |
| | |
| | Use ?getpath; to print it to the |
| | screen. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addpath`, :meth:`Lumerical.clearpath`, :meth:`Lumerical.which`, :meth:`Lumerical.pwd`
Link
----
https://kb.lumerical.com/en/ref_scripts_getpath.html
Note
----
Signature autogen'd from: `o.getpath())`
"""
def getperiodicity(self, solvername: str, **kwargs: Any) -> Any:
"""
Returns the periodicity vector(s) associated with the active periodic
boundary conditions in the specified solver.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getperiodicity("solvername") | Returns the periodicity vector(s) of |
| | the system based on the active |
| | periodic boundary conditions in the |
| | named solver. The output is a [3XN] |
| | matrix where N is the number of |
| | dimensions that have active periodic |
| | boundary conditions (typically one |
| | or two). |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| solvername | required | | string | Name of the |
| | | | | solver from |
| | | | | which to |
| | | | | extract the |
| | | | | periodicity |
| | | | | vector(s). |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.getsourcedirection`, :meth:`Lumerical.gratingorders`, :meth:`Lumerical.gratingprojection`
Link
----
https://kb.lumerical.com/en/ref_scripts_getperiodicity.html
Note
----
Signature autogen'd from: `o.getperiodicity("solvername")`
"""
def getports(self, name: str, **kwargs: Any) -> Any:
"""
Returns a list of ports available in an element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getports("name") | Gets a list of available ports. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| name | string | name of the element. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_getports.html
Note
----
Signature autogen'd from: `o.getports("name")`
"""
def getposition(self, element: Any, **kwargs: Any) -> Any:
"""
Gets the current horizontal or vertical position of an element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.getposition("element",”x”) | Returns the current horizontal |
| | position of an element. |
+--------------------------------------+--------------------------------------+
| out=o.getposition("element",”y”) | Returns the current vertical |
| | position of an element. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setposition`, :meth:`Lumerical.getrectangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_getposition.html
Note
----
Signature autogen'd from: `o.getposition("element",”x”)`
"""
def getrectangle(self, element: Any, **kwargs: Any) -> Any:
"""
Gets the width or height of an element rectangle.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.getrectangle ("element",”w”) | Returns the width of an element |
| | rectangle. |
+--------------------------------------+--------------------------------------+
| out=o.getrectangle ("element",”h”) | Returns the height of an element |
| | rectangle. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setrectangle`, :meth:`Lumerical.getposition`
Link
----
https://kb.lumerical.com/en/ref_scripts_getrectangle.html
Note
----
Signature autogen'd from: `o.getrectangle("element",”w”)`
"""
def getremotedata(self, s: float, x: float, **kwargs: Any) -> Any:
"""
An interoperability command that will get a variable from the server
workspace into the client workspace via an active session
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| y=o.getremotedata(s,'x') | Creates variable y in the local |
| | client workspace that has value of x |
| | in the server workspace via an |
| | active session s |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.opensession`, :meth:`Lumerical.closesession`, :meth:`Lumerical.putremotedata`, :meth:`Lumerical.evalremote`
Link
----
https://kb.lumerical.com/en/ref_scripts_getremotedata.html
Note
----
Signature autogen'd from: `o.getremotedata(s,'x')`
"""
@overload
def getresult(self, monitor_name: str, **kwargs: Any) -> Any: ...
@overload
def getresult(self, monitor_name: str, T: str, **kwargs: Any) -> Any: ...
def getresult(self, *args: Any, **kwargs: Any) -> Any:
"""
Get results from simulation objects. Results will be returned as
datasets.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getresult("monitor_name") | Returns the names of all the results |
| | for the monitor. All the dataset and |
| | scalar matrix results will be |
| | returned in this case. |
+--------------------------------------+--------------------------------------+
| R = o.getresult("monitor_name","T") | Returns the result T from the |
| | monitor. T is a dataset. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.haveresult`, :meth:`Lumerical.visualize`, :meth:`Lumerical.getdata`, :meth:`Lumerical.rectilineardataset`, :meth:`Lumerical.matrixdataset`, :meth:`Lumerical.getattribute`, :meth:`Lumerical.addattribute`, :meth:`Lumerical.splitstring`
Link
----
https://kb.lumerical.com/en/ref_scripts_getresult.html
Note
----
Signature autogen'd from: `o.getresult("monitor_name")`, `o.getresult("monitor_name","T")`
"""
@overload
def getresultdata(self, **kwargs: Any) -> Any: ...
@overload
def getresultdata(self, analyzer: Any, **kwargs: Any) -> Any: ...
@overload
def getresultdata(self, analyzer: Any, result: Any, **kwargs: Any) -> Any: ...
def getresultdata(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets results from an analyzer. This differs from the "getresult"
function in that the results are returned as matrices, not Datasets.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getresultdata() | Returns the names of all elements in |
| | the current simulation that contain |
| | results. |
+--------------------------------------+--------------------------------------+
| print o.getresultdata("analyzer") | Returns all available results for |
| | "analyzer". |
+--------------------------------------+--------------------------------------+
| out = o.getresultdata("analyzer", | Returns the result "result" for |
| "result") | "analyzer". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setresult`, :meth:`Lumerical.getresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_getresult2.html
Note
----
Signature autogen'd from: `o.getresultdata())`, `o.getresultdata("analyzer")`, `o.getresultdata("analyzer", "result")`
"""
def getsetting(self, name: str, **kwargs: Any) -> float:
"""
Returns the value of a user defined setting. This command can be used
with setsetting.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getsetting("name") | Gets the value of a user defined |
| | setting. |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| name | string | name of the setting. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.setsetting`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsetting.html
Note
----
Signature autogen'd from: `o.getsetting("name")`
"""
def getsolver(self, **kwargs: Any) -> Any:
"""
Returns the solver that is currently active.
+--------------------------------------------------------------------------+
| Note: 'getsolver' is deprecated, use 'getactivesolver' instead |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getsolver() | Returns the solver that is currently |
| | active. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setactivesolver`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsolver.html
Note
----
Signature autogen'd from: `o.getsolver()`
"""
def getsourceangle(self, sourcename: str, f: float, **kwargs: Any) -> Any:
"""
Returns the source angle theta as a function of frequency. Broadband
sources inject fields that have a constant in-plane wavevector at all
frequencies. This implies injection angle must change as a function of
frequency. The in-plane wavevector is chosen such that the incidence
angle at the center frequency of the simulation (fSIM) will match the
source angle theta (thetaSIM) specified in the source properties. Higher
frequencies will be injected at smaller angles, while lower frequencies
will be injected at larger angles. This 'theta vs wavelength' plot in
the beam source edit window shows the same function.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| theta = o.getsourceangle( | Returns the source angle theta |
| "sourcename", f) | (degrees) as a function of |
| | frequency. f is a vector of |
| | frequencies (Hz). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.sourcepower`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsourceangle.html
Note
----
Signature autogen'd from: `o.getsourceangle("sourcename", f)`
"""
def getsourcedirection(self, sourcename: str, **kwargs: Any) -> Any:
"""
Returns a unit vector in the direction of the wave vector (or k-vector)
of the specified source. The unit vector has three elements
corresponding to the X,Y and Z directions.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Returns a [3x1] matrix with a unit |
| o.getsourcedirection("sourcename") | vector in the direction of the |
| | specified source wave vector. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| sourcename | required | | string | Name of the |
| | | | | source. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.getperiodicity`, :meth:`Lumerical.gratingorders`, :meth:`Lumerical.gratingprojection`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsourcedirection.html
Note
----
Signature autogen'd from: `o.getsourcedirection("sourcename")`
"""
@overload
def getsurfaceconductivity(self, materialname: str, f: float, **kwargs: Any) -> Any: ...
@overload
def getsurfaceconductivity(self, materialname: str, f: float, component: Any, **kwargs: Any) -> Any: ...
def getsurfaceconductivity(self, *args: Any, **kwargs: Any) -> Any:
"""
For materials which use a surface conductivity material model (such as
Graphene), this function returns the complex index of any material that
is in the material database. The surface conductivity at the specified
frequency is interpolated from the neighboring frequencies where the
conductivity data is available. For a list of materials which use the
surface conductivity model, see Material conductivity models.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.getsurfaceconductivity( | Returns the surface conductivity (in |
| "materialname", f) | units of S) of the material with the |
| | given name. The surface conductivity |
| | is returned for the specified |
| | frequency f where f is in units of |
| | Hz. |
+--------------------------------------+--------------------------------------+
| o.getsurfaceconductivity( | Optional argument component can be |
| "materialname", f, component) | 1, 2 or 3 to specify the x, y or z |
| | component for anisotropic materials. |
| | The default is 1. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getfdtdsurfaceconductivity`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsurfaceconductivity.html
Note
----
Signature autogen'd from: `o.getsurfaceconductivity("materialname", f)`, `o.getsurfaceconductivity("materialname", f, component)`
"""
@overload
def getsweep(self, name: str, property_name: str, **kwargs: Any) -> float: ...
@overload
def getsweep(self, name: str, **kwargs: Any) -> float: ...
def getsweep(self, *args: Any, **kwargs: Any) -> float:
"""
Gets a property from a parameter sweep/optimization/Monte
Carlo/S-parameter sweep item.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.getsweep("name", "property_name") | Gets a property from a parameter |
| | sweep/optimization/Monte |
| | Carlo/S-parameter sweep item. |
| | |
| | "name" is the absolute name of an |
| | analysis item. |
| | |
| | "property_name" is the property |
| | showed in the edit window. |
| | |
| | Returns the value of the property. |
+--------------------------------------+--------------------------------------+
| print o.getsweep("name") | Lists the properties that are |
| | available from the analysis item. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.deletesweep`, :meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.addsweep`, :meth:`Lumerical.insertsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepparameter`, :meth:`Lumerical.addsweepresult`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsweep.html
Note
----
Signature autogen'd from: `o.getsweep("name", "property_name")`, `o.getsweep("name")`
"""
@overload
def getsweepdata(self, **kwargs: Any) -> Any: ...
@overload
def getsweepdata(self, sweep_name: str, **kwargs: Any) -> Any: ...
@overload
def getsweepdata(self, sweep_name: str, data: np.ndarray, **kwargs: Any) -> Any: ...
def getsweepdata(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets raw data from a parameter sweep/optimization/Monte Carlo analysis.
In most cases, it is more convenient to get a complete dataset with
getsweepresult, rather than getting individual data elements with
getsweepdata.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getsweepdata() | Returns names of all sweep, |
| | optimization, and Monte Carlo |
| | analysis objects. |
+--------------------------------------+--------------------------------------+
| print o.getsweepdata("sweep_name") | Returns all the names of the |
| | available data which is stored in |
| | the sweep, optimization, or Monte |
| | Carlo analysis object. |
+--------------------------------------+--------------------------------------+
| out = o.getsweepdata("sweep_name", | Returns parameter sweep, |
| "data") | optimization, or Monte Carlo |
| | analysis data. |
| | |
| | The following data can be obtained |
| | from an optimization: |
| | |
| | •fomTrend - Figure of merit as a |
| | function of generation |
| | |
| | •fomHistory - Figure of merit |
| | history (for each generation there |
| | will be generation size number) |
| | |
| | •bestFom - Best figure of merit |
| | obtained during sweep |
| | |
| | •bestParameter - Parameter which |
| | corresponds to bestFom |
| | |
| | •paramHistory - Parameter history |
| | |
| | For a parameter sweep and Monte |
| | Carlo analysis, this command returns |
| | both parameters and results. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getdata`, :meth:`Lumerical.runsweep`, :meth:`Lumerical.havesweepdata`, :meth:`Lumerical.savedata`, :meth:`Lumerical.getsweepresult`, :meth:`Lumerical.savesweep`, :meth:`Lumerical.loadsweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsweepdata.html
Note
----
Signature autogen'd from: `o.getsweepdata())`, `o.getsweepdata("sweep_name")`, `o.getsweepdata("sweep_name", "data")`
"""
@overload
def getsweepresult(self, **kwargs: Any) -> Any: ...
@overload
def getsweepresult(self, sweep_name: str, **kwargs: Any) -> Any: ...
@overload
def getsweepresult(self, sweep_name: str, result: Any, **kwargs: Any) -> Any: ...
def getsweepresult(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets the parameter parameter sweep/optimization/Monte Carlo/S-parameter
sweep results in the form of a dataset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.getsweepresult() | Returns names of all sweep, |
| | optimization, Monte Carlo, and |
| | S-parameter sweep objects with |
| | available results. |
+--------------------------------------+--------------------------------------+
| print | Returns names of the available |
| o.getsweepresult("sweep_name") | results from the specified sweep, |
| | optimization,Monte Carlo, or |
| | S-parameter sweep task. |
+--------------------------------------+--------------------------------------+
| out = | Returns the specified result dataset |
| o.getsweepresult("sweep_name", | from the specified parameter sweep, |
| "result") | optimization, Monte Carlo, or |
| | S-parameter sweep task. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.runsweep`, :meth:`Lumerical.havesweepresult`, :meth:`Lumerical.getresult`, :meth:`Lumerical.savedata`, :meth:`Lumerical.getsweepdata`, :meth:`Lumerical.savesweep`, :meth:`Lumerical.loadsweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_getsweepresult.html
Note
----
Signature autogen'd from: `o.getsweepresult())`, `o.getsweepresult("sweep_name")`, `o.getsweepresult("sweep_name", "result")`
"""
@overload
def getvalue(self, element: Any, parameter: Any, **kwargs: Any) -> Any: ...
@overload
def getvalue(self, element: Any, parameter: Any, type: str, **kwargs: Any) -> Any: ...
def getvalue(self, *args: Any, **kwargs: Any) -> Any:
"""
Gets an internal value for an element's internal ‘s parameters’.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| value=o.getvalue("element", | Gets an internal value for an |
| "parameter") | element's internal ‘parameter’. |
| value=o.getvalue("element", | Different from ‘set’ or ‘getnamed’, |
| "parameter", "type") | ‘getvalue’ can have direct access to |
| | internal element parameters. ‘type’ |
| | allows for variations for a given |
| | ‘parameter’. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setvalue`
Link
----
https://kb.lumerical.com/en/ref_scripts_getvalue.html
Note
----
Signature autogen'd from: `o.getvalue("element", "parameter")`, `o.getvalue("element", "parameter", "type")`
"""
@overload
def getview(self, **kwargs: Any) -> float: ...
@overload
def getview(self, property: Any, **kwargs: Any) -> float: ...
def getview(self, *args: Any, **kwargs: Any) -> float:
"""
This command allows the viewing properties of the Layout Editor to be
retrieved.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| outstring = o.getview() | Returns a list of the view |
| | properties that can be set. The |
| | command |
| | |
| | ?getview; |
| | |
| | will return |
| | |
| | extent, zoom, theta, phi |
+--------------------------------------+--------------------------------------+
| out = o.getview("property") | Returns the current value of any of |
| | the view properties. For example, |
| | |
| | zoom_level = getview("zoom"); |
| | |
| | will return the current zoom setting |
| | of the perspective view relative to |
| | the default level. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.setview`, :meth:`Lumerical.orbit`, :meth:`Lumerical.redraw`
Link
----
https://kb.lumerical.com/en/ref_scripts_getview.html
Note
----
Signature autogen'd from: `o.getview())`, `o.getview("property")`
"""
def global_(self, name: str, **kwargs: Any) -> float:
"""
The script command returns the value of a global variable specified.
Global variables are root element properties.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.global (name) | Returns the value of a global |
| | variable. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_global.html
Note
----
Signature autogen'd from: `o.global(name)`
"""
def grating(self, monitorname: str, f: float, index: float, direction: Any, **kwargs: Any) -> Any:
"""
Returns the fraction of transmitted power to each physical grating
orders for a given simulation. Results are normalized such that the sum
of all the orders is equal to 1. To convert these values into fractions
of the source power, multiply by the the transmission script function.
3D simulations: Data is returned in a NxMxP matrix where N,M are the
number of grating orders, and P is the number of frequency points.
2D simulations: Data is returned in a NxP matrix where N is the number
of grating orders, and P is the number of frequency points.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.grating("monitorname",f, | Returns the strength of all physical |
| index, direction ) | grating orders from monitorname. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| monitorname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
| | | | | Multithreaded |
| | | | | projection to |
| | | | | allow multiple |
| | | | | frequency |
| | | | | points to be |
| | | | | calculated |
| | | | | simultaneously |
| | | | | was introduced |
| | | | | in R2016b. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
| direction | optional | direction of | number | Direction: |
| | | max power flow | | this can be +1 |
| | | | | or -1. |
+----------------+----------------+----------------+----------------+----------------+
The following table summarizes how to interpret the coordinate vector
properties for various monitor orientations.
+--------------------+--------------------+--------------------+--------------------+
| Monitor | Monitor surface | 'N', 'ux', | 'M', 'uy', |
| orientation | normal | 'gratingn', | 'gratingm', |
| | | 'gratingperiod1', | 'gratingperiod2', |
| | | 'gratingu1', | 'gratingu2', |
| | | 'gratingbloch1', | 'gratingbloch2' |
| | | correspond to | correspond to |
+--------------------+--------------------+--------------------+--------------------+
| XY plane | Z | x axis | y axis |
+--------------------+--------------------+--------------------+--------------------+
| XZ plane | Y | x axis | z axis |
+--------------------+--------------------+--------------------+--------------------+
| YZ plane | X | y axis | z axis |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.gratingn`, :meth:`Lumerical.gratingperiod1`, :meth:`Lumerical.gratingbloch1`, :meth:`Lumerical.gratingu1`, :meth:`Lumerical.gratingangle`, :meth:`Lumerical.gratingpolar`, :meth:`Lumerical.gratingvector`
Link
----
https://kb.lumerical.com/en/ref_scripts_grating.html
Note
----
Signature autogen'd from: `o.grating("monitorname",f, index, direction)`
"""
def gratingangle(self, monitorname: str, **kwargs: Any) -> float:
"""
Returns the angle vector corresponding to the values returned by
grating, in degrees, for 2D simulations. For 3D simulations, use
gratingu1 and gratingu2.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingangle( "monitorname", | Same arguments as grating function. |
| ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingu1`, :meth:`Lumerical.gratingu2`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingangle.html
Note
----
Signature autogen'd from: `o.gratingangle("monitorname", ...)`
"""
def gratingbloch1(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the bloch vector (kin_1 and kin_2) used in the grating
calculation. This corresponds to the bloch vector setting in the
simulation region. gratingbloch1 gives the bloch vector for the first
dimension (2D and 3D). gratingbloch2 gives the bloch vector for the 2nd
dimension (3D only). See the grating function documentation for
information on interpreting N, M, ux, uy for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingbloch1( | Same arguments as grating function. |
| "monitorname", ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingbloch2`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingbloch1.html
Note
----
Signature autogen'd from: `o.gratingbloch1("monitorname", ...)`
"""
def gratingbloch2(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the bloch vector (kin_1 and kin_2) used in the grating
calculation. This corresponds to the bloch vector setting in the
simulation region. gratingbloch1 gives the bloch vector for the first
dimension (2D and 3D). gratingbloch2 gives the bloch vector for the 2nd
dimension (3D only). See the grating function documentation for
information on interpreting N, M, ux, uy for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingbloch2( | Same arguments as grating function. |
| "monitorname", ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingbloch1`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingbloch2.html
Note
----
Signature autogen'd from: `o.gratingbloch2("monitorname", ...)`
"""
def gratingm(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns a vector of the grating order numbers (i.e. zeroeth order, first
order) corresponding to the data from the grating function. gratingn
gives the order numbers for the first dimension of the data (2D and 3D).
gratingm gives the order numbers for the 2nd dimension (3D only). See
the grating function documentation for information on interpreting N, M,
ux, uy for various monitor orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingm( "monitorname",...) | Same arguments as grating function. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingn`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingm.html
Note
----
Signature autogen'd from: `o.gratingm("monitorname",...)`
"""
def gratingn(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns a vector of the grating order numbers (i.e. zeroeth order, first
order) corresponding to the data from the grating function. gratingn
gives the order numbers for the first dimension of the data (2D and 3D).
gratingm gives the order numbers for the 2nd dimension (3D only). See
the grating function documentation for information on interpreting N, M,
ux, uy for various monitor orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingn( "monitorname",...) | Same arguments as grating function. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingm`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingn.html
Note
----
Signature autogen'd from: `o.gratingn("monitorname",...)`
"""
def gratingordercount(self, monitorname: str, f: float, index: float, direction: Any, **kwargs: Any) -> float:
"""
Returns the total number of supported grating numbers.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingordercount( | Returns the total number of |
| "monitorname", f, index, direction) | supported grating orders. Same |
| | arguments as grating script command. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingn`, :meth:`Lumerical.gratingm`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingordercount.html
Note
----
Signature autogen'd from: `o.gratingordercount("monitorname", f, index, direction)`
"""
def gratingorders(self, period: Any, source: Any, frequency: Any, index: float, **kwargs: Any) -> Any:
"""
Returns a matrix data set with the propagating grating orders, a unit
vector in the direction of the wave vector (or k-vector) of each order,
and the grating angles. The grating orders are the same as those used by
the gratingprojection command to perform a projection.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingorders(period, | Returns a matrix data set with the |
| source, frequency, index) | propagating grating orders (integers |
| | n and m), a unit vector in the |
| | direction of the k-vector of each |
| | order (call them u(n,m)) and their |
| | corresponding angles (theta and |
| | phi). The parameters of the data set |
| | are n,m and frequency. Indexes n and |
| | m correspond to the first and second |
| | periodicity directions specified by |
| | the input periodicity vectors. The |
| | attributes of the data set are the |
| | unit vectors u(n,m) and their |
| | corresponding angles (theta and |
| | phi). The grating angles are defined |
| | with respect to the normal incidence |
| | direction of the source (call it the |
| | n-axis). The first angle (theta) is |
| | an elevation from the n-axis and the |
| | and the second angle (phi) is a |
| | rotation around the n-axis starting |
| | from the first periodicity vector. |
| | Angle phi is only returned when two |
| | periodicity vectors are specified. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| period | required | | vector | [3x1] or [3x2] |
| | | | | matrix with |
| | | | | the |
| | | | | periodicity |
| | | | | vectors. These |
| | | | | are typically |
| | | | | retrieved |
| | | | | using the |
| | | | | getperiodicity |
| | | | | command. |
+----------------+----------------+----------------+----------------+----------------+
| source | required | | vector | [3x1] vector |
| | | | | with the |
| | | | | normalized |
| | | | | source |
| | | | | k-vector. This |
| | | | | is typically |
| | | | | retrieved |
| | | | | using the |
| | | | | getsourcedirec |
| | | | | tion |
| | | | | command. |
+----------------+----------------+----------------+----------------+----------------+
| frequency | required | | vector | Vector of |
| | | | | frequencies |
| | | | | (in Hz). |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | 1.0 | number or | Refractive |
| | | | vector | index of the |
| | | | | background |
| | | | | medium |
| | | | | (typically the |
| | | | | substrate or |
| | | | | superstrate). |
| | | | | It can be a |
| | | | | scalar or a |
| | | | | vector of the |
| | | | | same size as |
| | | | | the frequency |
| | | | | vector. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.getperiodicity`, :meth:`Lumerical.getsourcedirection`, :meth:`Lumerical.gratingprojection`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingorders.html
Note
----
Signature autogen'd from: `o.gratingorders(period, source, frequency, index)`
"""
def gratingperiod1(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the grating period (i.e. the simulation span) used in the
grating calculations. gratingperiod1 gives the grating period for the
first dimension (2D and 3D). gratingperiod2 gives the period of the 2nd
dimension (3D only). See the grating function documentation for
information on interpreting N, M, ux, uy for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingperiod1( | Same arguments as grating function. |
| "monitorname", ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingperiod2`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingperiod1.html
Note
----
Signature autogen'd from: `o.gratingperiod1("monitorname", ...)`
"""
def gratingperiod2(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the grating period (i.e. the simulation span) used in the
grating calculations. gratingperiod1 gives the grating period for the
first dimension (2D and 3D). gratingperiod2 gives the period of the 2nd
dimension (3D only). See the grating function documentation for
information on interpreting N, M, ux, uy for various monitor
orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingperiod2( | Same arguments as grating function. |
| "monitorname", ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingperiod1`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingperiod2.html
Note
----
Signature autogen'd from: `o.gratingperiod2("monitorname", ...)`
"""
def gratingpolar(self, mname: str, f: float, index: float, direction: Any, **kwargs: Any) -> Any:
"""
Returns the relative strength of all physical grating orders where
vector field information is returned in spherical coordinates. This is
useful when studying the polarization effects. The data is normalized
such that the sum of \|Er\|^2+\|Etheta\|^2+ \|Ephi\|^2 over all grating
orders equals 1. See the grating function documentation for information
on interpreting N, M, ux, uy for various monitor orientations.
3D simulations: Data is returned in a NxMxPx3 matrix where N,M are the
number of grating orders. P is the number of frequency points. The third
dimension is Er, Etheta, Ephi.
2D simulations: Data is returned in a NxPx3 matrix where N is the number
of grating orders. P is the number of frequency points. The second
dimension is Er, Etheta, Ephi.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingpolar( "mname", f, | Returns the strength of all physical |
| index, direction) | grating orders from the monitor. |
| | Output is in spherical coordinates. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | acan be a |
| | | | | single number |
| | | | | of a vector. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
| direction | optional | direction of | number | Direction: |
| | | max power flow | | this can be +1 |
| | | | | or -1. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingn`, :meth:`Lumerical.gratingperiod1`, :meth:`Lumerical.gratingbloch1`, :meth:`Lumerical.gratingu1`, :meth:`Lumerical.gratingangle`, :meth:`Lumerical.gratingvector`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingpolar.html
Note
----
Signature autogen'd from: `o.gratingpolar("mname", f, index, direction)`
"""
def gratingprojection(self, nearfield: np.ndarray, period: Any, source: Any, index: float, **kwargs: Any) -> Any:
"""
Takes the near fields from a frequency domain monitor together with the
periodicity vectors of the system, the source wave vector and the
background refractive index and performs a far field projection to
determine the relative power in each propagating grating order.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingprojection(nearfield, | Returns a matrix data set with all |
| period, source, index) | the projection results. The |
| | parameters of the data set are the |
| | grating orders (integers n and m) |
| | and frequency. Indexes n and m |
| | correspond to the first and second |
| | periodicity directions specified by |
| | the input periodicity vectors. The |
| | attributes of the data set are the |
| | same as those returned by the |
| | gratingorders command with the |
| | addition of the relative power into |
| | each propagating grating order |
| | (called projection). The projection |
| | result is normalized so that its sum |
| | over all grating orders is always |
| | equal to one. The frequency |
| | parameter is the same as that of the |
| | input field data. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| nearfield | required | | unstructured | Field data |
| | | | data set | from a |
| | | | | frequency |
| | | | | domain |
| | | | | monitor. |
+----------------+----------------+----------------+----------------+----------------+
| period | required | | vector | Periodicity |
| | | | | vector(s) as |
| | | | | returned by |
| | | | | the |
| | | | | getperiodicity |
| | | | | command. |
+----------------+----------------+----------------+----------------+----------------+
| source | required | | vector | Source unit |
| | | | | wave vector as |
| | | | | returned by |
| | | | | the |
| | | | | getsourcedirec |
| | | | | tion |
| | | | | command. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | 1.0 | number or | Refractive |
| | | | vector | index of the |
| | | | | background |
| | | | | medium |
| | | | | (typically the |
| | | | | substrate or |
| | | | | superstrate). |
| | | | | It can be a |
| | | | | scalar or a |
| | | | | vector of the |
| | | | | same size as |
| | | | | the frequency |
| | | | | vector. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.getperiodicity`, :meth:`Lumerical.getsourcedirection`, :meth:`Lumerical.gratingorders`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingprojection.html
Note
----
Signature autogen'd from: `o.gratingprojection(nearfield, period, source, index)`
"""
def gratingu1(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the grating order direction unit vectors (u1 and u2)
corresponding to the data from the grating function from 3D simulation.
For 2D simulations, use the gratingangle function. See the grating
function documentation for information on interpreting N, M, ux, uy for
various monitor orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingu1( "monitorname", | Same arguments as grating function. |
| ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingu2`, :meth:`Lumerical.gratingangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingu1.html
Note
----
Signature autogen'd from: `o.gratingu1("monitorname", ...)`
"""
def gratingu2(self, monitorname: str, **kwargs: Any) -> Any:
"""
Returns the grating order direction unit vectors (u1 and u2)
corresponding to the data from the grating function from 3D simulation.
For 2D simulations, use the gratingangle function. See the grating
function documentation for information on interpreting N, M, ux, uy for
various monitor orientations.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingu2( "monitorname", | Same arguments as grating function. |
| ...) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingu1`, :meth:`Lumerical.gratingangle`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingu2.html
Note
----
Signature autogen'd from: `o.gratingu2("monitorname", ...)`
"""
def gratingvector(self, mname: str, f: float, index: float, direction: Any, **kwargs: Any) -> Any:
"""
Returns the relative strength of all physical grating orders where
vector field information is returned in Cartesian coordinates. This is
useful when studying the polarization effects. The data is normalized
such that the sum of \|Ex\|^2+\|Ey\|^2+ \|Ez\|^2 over all grating orders
equals 1. See the grating function documentation for information on
interpreting N, M, ux, uy for various monitor orientations.
3D simulations: Data is returned in a NxMxPx3 matrix where N,M are the
number of grating orders. P is the number of frequency points. The third
dimension is Ex, Ey, Ez.
2D simulations: Data is returned in a NxPx3 matrix where N is the number
of grating orders. P is the number of frequency points. The second
dimension is Ex, Ey, Ez.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.gratingvector( "mname", f, | Returns the strength of all physical |
| index, direction) | grating orders from monitorname. |
| | Output is in Cartesian coordinates. |
+--------------------------------------+--------------------------------------+
+----------------+----------------+----------------+----------------+----------------+
| Parameter | | Default value | Type | Description |
+----------------+----------------+----------------+----------------+----------------+
| mname | required | | string | name of the |
| | | | | monitor from |
| | | | | which far |
| | | | | field is |
| | | | | calculated |
+----------------+----------------+----------------+----------------+----------------+
| f | optional | 1 | vector | Index of the |
| | | | | desired |
| | | | | frequency |
| | | | | point. This |
| | | | | can be a |
| | | | | single number |
| | | | | or a vector. |
+----------------+----------------+----------------+----------------+----------------+
| index | optional | value at | number | The index of |
| | | monitor center | | the material |
| | | | | to use for the |
| | | | | projection. |
+----------------+----------------+----------------+----------------+----------------+
| direction | optional | direction of | number | Direction: |
| | | max power flow | | this can be +1 |
| | | | | or -1. |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.grating`, :meth:`Lumerical.gratingn`, :meth:`Lumerical.gratingperiod1`, :meth:`Lumerical.gratingbloch1`, :meth:`Lumerical.gratingu1`, :meth:`Lumerical.gratingangle`, :meth:`Lumerical.gratingpolar`
Link
----
https://kb.lumerical.com/en/ref_scripts_gratingvector.html
Note
----
Signature autogen'd from: `o.gratingvector("mname", f, index, direction)`
"""
@overload
def groupscope(self, **kwargs: Any) -> Any: ...
@overload
def groupscope(self, group_name: str, **kwargs: Any) -> Any: ...
def groupscope(self, *args: Any, **kwargs: Any) -> Any:
"""
Changes the group scope. Script commands that add or modify simulation
object use the groupscope property to know where to act within the
object tree. For example, if you want to delete everything within a
particular group, set the groupscope to that group (i.e.
::model::my_group). If you want to delete all objects in the
simulation, set the group scope the root level (i.e. ::model).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.groupscope() | returns the current group scope |
+--------------------------------------+--------------------------------------+
| o.groupscope("group_name") | changes the group scope |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.delete`, :meth:`Lumerical.selectall`, :meth:`Lumerical.select`
Link
----
https://kb.lumerical.com/en/ref_scripts_groupscope.html
Note
----
Signature autogen'd from: `o.groupscope())`, `o.groupscope("group_name")`
"""
def h5info(self, filename: str, **kwargs: Any) -> Any:
"""
Returns information about the structure of an HDF5 file.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| info = o.h5info("filename") | Returns a struct "info" that |
| | contains information about the |
| | structure of the HDF5 file named |
| | "filename." |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the HDF5 file. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.h5read`, :meth:`Lumerical.h5readattr`
Link
----
https://kb.lumerical.com/en/ref_scripts_h5info.html
Note
----
Signature autogen'd from: `o.h5info("filename")`
"""
def h5read(self, filename: str, dataset_name: str, **kwargs: Any) -> Any:
"""
Reads data from an HDF5 file. The command supports a large number of
dataset types such as integer, float, double, string, compound, etc.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| data = o.h5read("filename", | Reads data in the dataset named |
| "dataset_name") | "dataset_name" within the HDF5 file |
| | named "filename." |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the HDF5 file. |
+-------------------------+-------------------------+-------------------------+
| datasetname | string | name (path) of the |
| | | dataset to be read. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.h5info`, :meth:`Lumerical.h5readattr`
Link
----
https://kb.lumerical.com/en/ref_scripts_h5read.html
Note
----
Signature autogen'd from: `o.h5read("filename", "dataset_name")`
"""
def h5readattr(self, filename: str, attr_path: str, attr_name: str, **kwargs: Any) -> Any:
"""
Reads attributes from an HDF5 file.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| attr = o.h5readattr("filename", | Reads the attribute named |
| "attr_path", "attr_name") | "attr_name" at the location |
| | "attr_path" within the HDF5 file |
| | named "filename." |
+--------------------------------------+--------------------------------------+
+-------------------------+-------------------------+-------------------------+
| Parameter | Type | Description |
+-------------------------+-------------------------+-------------------------+
| filename | string | name of the HDF5 file. |
+-------------------------+-------------------------+-------------------------+
| attr_path | string | name (path) of the |
| | | dataset or group to |
| | | which the attribute |
| | | belongs to. |
+-------------------------+-------------------------+-------------------------+
| attr_name | string | name of the attribute |
| | | to be read. |
+-------------------------+-------------------------+-------------------------+
See Also
--------
:meth:`Lumerical.h5info`, :meth:`Lumerical.h5read`
Link
----
https://kb.lumerical.com/en/ref_scripts_h5readattr.html
Note
----
Signature autogen'd from: `o.h5readattr("filename", "attr_path", "attr_name")`
"""
@overload
def havedata(self, **kwargs: Any) -> Any: ...
@overload
def havedata(self, name: str, **kwargs: Any) -> Any: ...
@overload
def havedata(self, name: str, data: np.ndarray, **kwargs: Any) -> Any: ...
def havedata(self, *args: Any, **kwargs: Any) -> Any:
"""
Used to see a simulation object (such as a monitor) has any data. This
command is very similar to haveresult, but is intended to be used with
the getdata command, rather than getresult.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.havedata() | Returns 1 if any simulation objects |
| | have raw data, and 0 if none have |
| | any raw data. |
+--------------------------------------+--------------------------------------+
| o.havedata("name") | Returns 1 if "name" has raw data, |
| | and 0 if it does not have any raw |
| | data. |
+--------------------------------------+--------------------------------------+
| o.havedata("name","data") | Returns 1 if "name" has the raw data |
| | named "data", and 0 if it does not |
| | have that data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getdata`, :meth:`Lumerical.haveresult`, :meth:`Lumerical.getresult`, :meth:`Lumerical.copydcard`, :meth:`Lumerical.cleardcard`, :meth:`Lumerical.workspace`, :meth:`Lumerical.havesweepdata`
Link
----
https://kb.lumerical.com/en/ref_scripts_havedata.html
Note
----
Signature autogen'd from: `o.havedata())`, `o.havedata("name")`, `o.havedata("name","data")`
"""
def haveproperty(self, property: Any, **kwargs: Any) -> float:
"""
Returns the number of selected objects with a particular property.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.haveproperty("property") | Returns the number of selected |
| | objects with the specified property. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.get`, :meth:`Lumerical.set`
Link
----
https://kb.lumerical.com/en/ref_scripts_haveproperty.html
Note
----
Signature autogen'd from: `o.haveproperty("property")`
"""
@overload
def haveresult(self, **kwargs: Any) -> Any: ...
@overload
def haveresult(self, name: str, **kwargs: Any) -> Any: ...
@overload
def haveresult(self, name: str, data: np.ndarray, **kwargs: Any) -> Any: ...
def haveresult(self, *args: Any, **kwargs: Any) -> Any:
"""
Used to see a simulation object (such as a monitor) has any results.
Note: This command is very similar to havedata, but is intended to be
used with the getresult command, rather than getdata.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.haveresult() | Returns 1 if any simulation objects |
| | currently have any results. |
+--------------------------------------+--------------------------------------+
| o.haveresult("name") | Returns 1 if "name" has any results, |
| | and 0 if it does not. |
+--------------------------------------+--------------------------------------+
| o.haveresult("name","data") | Returns 1 if the "name" has a result |
| | named "data", and 0 if it does not. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getresult`, :meth:`Lumerical.havedata`, :meth:`Lumerical.getdata`, :meth:`Lumerical.copydcard`, :meth:`Lumerical.cleardcard`, :meth:`Lumerical.workspace`, :meth:`Lumerical.havesweepdata`
Link
----
https://kb.lumerical.com/en/ref_scripts_haveresult.html
Note
----
Signature autogen'd from: `o.haveresult())`, `o.haveresult("name")`, `o.haveresult("name","data")`
"""
@overload
def havesweepdata(self, **kwargs: Any) -> Any: ...
@overload
def havesweepdata(self, name: str, **kwargs: Any) -> Any: ...
@overload
def havesweepdata(self, name: str, data: np.ndarray, **kwargs: Any) -> Any: ...
def havesweepdata(self, *args: Any, **kwargs: Any) -> Any:
"""
Checks whether a parameter sweep/optimization/Monte Carlo analysis has
data. Similar to the script command havedata.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.havesweepdata() | Returns 1 if any sweeps, |
| | optimizations or Monte Carlo |
| | analysis have data. Returns 0 if |
| | data is not available. |
+--------------------------------------+--------------------------------------+
| print o.havesweepdata("name") | Returns 1 if the specified sweep, |
| | optimization or Monte Carlo analysis |
| | has data. |
+--------------------------------------+--------------------------------------+
| print o.havesweepdata("name","data") | Returns 1 if the specified sweep, |
| | optimization or Monte Carlo analysis |
| | named "name" has the specified data |
| | "data". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.runsweep`, :meth:`Lumerical.getsweepdata`, :meth:`Lumerical.getdata`, :meth:`Lumerical.havedata`
Link
----
https://kb.lumerical.com/en/ref_scripts_havesweepdata.html
Note
----
Signature autogen'd from: `o.havesweepdata())`, `o.havesweepdata("name")`, `o.havesweepdata("name","data")`
"""
@overload
def havesweepresult(self, **kwargs: Any) -> Any: ...
@overload
def havesweepresult(self, name: str, **kwargs: Any) -> Any: ...
@overload
def havesweepresult(self, name: str, data: np.ndarray, **kwargs: Any) -> Any: ...
def havesweepresult(self, *args: Any, **kwargs: Any) -> Any:
"""
Checks whether a parameter parameter sweep/optimization/Monte
Carlo/S-parameter sweep has results. Similar to haveresult.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.havesweepresult() | Returns 1 if any sweeps or |
| | optimizations, Monte Carlo analysis, |
| | or S-parameter sweeps have results. |
| | Returns 0 if data is not available. |
+--------------------------------------+--------------------------------------+
| print o.havesweepresult("name") | Returns 1 if the specified sweep, |
| | optimization, Monte Carlo, or |
| | S-parameter sweep has results. |
+--------------------------------------+--------------------------------------+
| print | Returns 1 if the sweep, |
| o.havesweepresult("name","data") | optimization, Monte Carlo, or |
| | S-parameter sweep named "name" has |
| | the specified result "data". |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.runsweep`, :meth:`Lumerical.getsweepresult`, :meth:`Lumerical.getresult`, :meth:`Lumerical.haveresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_havesweepresult.html
Note
----
Signature autogen'd from: `o.havesweepresult())`, `o.havesweepresult("name")`, `o.havesweepresult("name","data")`
"""
def help(self, **kwargs: Any) -> Any:
"""
Opens the Lumerical Knowledge Base using the default web browser.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.help(argument=””) | Opens the Lumerical knowledge base |
| | using the default web browser. If no |
| | arguments are provided the web |
| | browser will open the page with the |
| | alphabetical list of all script |
| | commands, otherwise it will run a |
| | search using the ‘argument’ |
| | parameter and open the page with the |
| | search results for the ‘argument’ |
| | parameter. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_help.html
Note
----
Signature autogen'd from: `o.help()`
"""
def hide(self, **kwargs: Any) -> Any:
"""
Hides the graphical user interface, can be used with the show command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.hide() | hides the GUI. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.show`
Link
----
https://kb.lumerical.com/en/ref_scripts_hide.html
Note
----
Signature autogen'd from: `o.hide())`
"""
def hidecategory(self, element: Any, category: Any, hide: Any, **kwargs: Any) -> Any:
"""
Hides all properties of a given ‘category' of a given ‘element’.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.hidecategory(element,category, | Hides all properties of a given |
| hide) | ‘category' of a given ‘element’. The |
| | argument 'hide' is a boolean value. |
| | If ‘hide’ is true the category is |
| | invisible, if 'hide' is false the |
| | category is visible. The default |
| | value of ‘hide’ is true. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.hideproperty`, :meth:`Lumerical.annotateproperty`, :meth:`Lumerical.ispropertyactive`
Link
----
https://kb.lumerical.com/en/ref_scripts_hidecategory.html
Note
----
Signature autogen'd from: `o.hidecategory(element,category, hide)`
"""
def hideproperty(self, element: Any, property: Any, hide: Any, **kwargs: Any) -> Any:
"""
Hides the ‘property’ of a given ‘element’.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.hideproperty | Hides the ‘property’ of a given |
| (element,property,hide) | ‘element’. The argument 'hide' is a |
| | boolean value. If ‘hide’ is true the |
| | property is invisible, if 'hide' is |
| | false the property is visible. The |
| | default value of ‘hide' is true. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.hidecategory`, :meth:`Lumerical.annotateproperty`, :meth:`Lumerical.ispropertyactive`
Link
----
https://kb.lumerical.com/en/ref_scripts_hideproperty.html
Note
----
Signature autogen'd from: `o.hideproperty(element,property,hide)`
"""
@overload
def histc(self, y: float, **kwargs: Any) -> float: ...
@overload
def histc(self, y: float, n: float, **kwargs: Any) -> float: ...
@overload
def histc(self, y: float, n: float, title: str, **kwargs: Any) -> float: ...
def histc(self, *args: Any, **kwargs: Any) -> float:
"""
Creates a histogram plot.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.histc(y) | Creates a histogram plot of y. |
| | |
| | Returns the figure number. |
+--------------------------------------+--------------------------------------+
| o.histc(y,n) | Creates a histogram plot of y, using |
| | n bins. |
| | |
| | Returns the figure number. |
+--------------------------------------+--------------------------------------+
| o.histc (y,n, "x label", "y label", | Creates a histogram plot of y, using |
| "title") | n bins, with axis labels and a |
| | title. |
| | |
| | Returns the figure number. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.histogram`, :meth:`Lumerical.legend`, :meth:`Lumerical.plot`, :meth:`Lumerical.closeall`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_histc.html
Note
----
Signature autogen'd from: `o.histc(y)`, `o.histc(y,n)`, `o.histc(y,n, "x label", "y label", "title")`
"""
@overload
def histogram(self, y: float, **kwargs: Any) -> Any: ...
@overload
def histogram(self, y: float, n: float, **kwargs: Any) -> Any: ...
def histogram(self, *args: Any, **kwargs: Any) -> Any:
"""
Create a matrix containing the histogram count of a yield analysis
result.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.histogram(y) | Returns a matrix containing the |
| | histogram count of y. |
+--------------------------------------+--------------------------------------+
| out = o.histogram(y,n) | Returns a matrix containing the |
| | histogram count of y, using n bins. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.histc`
Link
----
https://kb.lumerical.com/en/ref_scripts_histogram.html
Note
----
Signature autogen'd from: `o.histogram(y)`, `o.histogram(y,n)`
"""
def historyoff(self, **kwargs: Any) -> Any:
"""
Disables taking snapshots (history) of the current schematic for undo
redo functionality.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.historyoff() | Disables taking snapshots (history) |
| | of the current schematic for undo |
| | redo functionality, when running |
| | co-simulation this will increase |
| | simulation performance. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.undo`, :meth:`Lumerical.redo`, :meth:`Lumerical.historyon`
Link
----
https://kb.lumerical.com/en/ref_scripts_historyoff.html
Note
----
Signature autogen'd from: `o.historyoff())`
"""
def historyon(self, **kwargs: Any) -> Any:
"""
Enables taking snapshots (history) for the current schematic for undo
redo functionality.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.historyon() | Enables taking snapshots (history) |
| | for the current schematic for undo |
| | redo functionality. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.undo`, :meth:`Lumerical.redo`, :meth:`Lumerical.historyoff`
Link
----
https://kb.lumerical.com/en/ref_scripts_historyon.html
Note
----
Signature autogen'd from: `o.historyon())`
"""
def holdoff(self, **kwargs: Any) -> Any:
"""
Switches off the holdon mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.holdoff() | Switches off the mode to hold |
| | multiple mathematical functions on |
| | the same figure. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.holdon`
Link
----
https://kb.lumerical.com/en/ref_scripts_holdoff.html
Note
----
Signature autogen'd from: `o.holdoff())`
"""
def holdon(self, **kwargs: Any) -> Any:
"""
Holds multiple functions on a single plot. Note that, only the labeling
and plot options of the first plot are taken into account; a warning is
reported in this case. The command setplot can be used instead.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.holdon() | Switches on the mode to hold |
| | multiple mathematical functions on |
| | the same figure. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.plotxy`, :meth:`Lumerical.legend`, :meth:`Lumerical.setplot`, :meth:`Lumerical.log`, :meth:`Lumerical.log10`, :meth:`Lumerical.holdoff`
Link
----
https://kb.lumerical.com/en/ref_scripts_holdon.html
Note
----
Signature autogen'd from: `o.holdon())`
"""
def icht(self, coeff: Any, option: float, **kwargs: Any) -> Any:
"""
Takes the Chebyshev interpolation coefficients and returns the
corresponding function samples.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.icht(coeff,option) | Returns function samples from |
| | Chebyshev interpolation coefficients |
| | coeff. |
| | |
| | Option: |
| | |
| | If option=1 is selected, the vector |
| | x will not include the endpoints |
| | |
| | If option=2 is selected, the vector |
| | x will include the endpoints |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.dcht`, :meth:`Lumerical.chpts`, :meth:`Lumerical.chebin`
Link
----
https://kb.lumerical.com/en/ref_scripts_icht.html
Note
----
Signature autogen'd from: `o.icht(coeff,option)`
"""
def if_(self, **kwargs: Any) -> Any:
"""
Starts an if statement. The scripting language supports if statements in
the following forms:
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.if(x < 5) { y = x^2; } | Simple if statement on one line. |
+--------------------------------------+--------------------------------------+
| o.if(x < 5) { y = x^2; } | Multi-line if statement |
+--------------------------------------+--------------------------------------+
| o.if(x < 5) { y = x^2; } else { y = | If else statement. |
| x^3; } | |
+--------------------------------------+--------------------------------------+
| o.if(x < 5) { o.if(x > 0) {y = x^2;} | Nested if statement with else. |
| } else { y = x^3; } | |
+--------------------------------------+--------------------------------------+
| o.if(x < 5) { y = x^2; } else o.if ( | Chained if else if statement. |
| x > 10 ) { y = 2\*x; } | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.for`, :meth:`Lumerical.almostequal`
Link
----
https://kb.lumerical.com/en/ref_scripts_if.html
Note
----
Signature autogen'd from: `o.if()`
"""
def imag(self, x: float, **kwargs: Any) -> float:
"""
Returns the imaginary part of a number or matrix.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.imag(x) | Returns the imaginary part of x. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.real`, :meth:`Lumerical.conj`
Link
----
https://kb.lumerical.com/en/ref_scripts_imag.html
Note
----
Signature autogen'd from: `o.imag(x)`
"""
@overload
def image(self, x: float, y: float, z: float, **kwargs: Any) -> Any: ...
@overload
def image(self, x: float, y: float, z: float, title: str, **kwargs: Any) -> Any: ...
@overload
def image(self, x: float, y: float, z: float, title: str, options: float, **kwargs: Any) -> Any: ...
def image(self, *args: Any, **kwargs: Any) -> Any:
"""
Creates 2D image plots.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.image(x,y,z) | Creates a 2D image plot of the data |
| | in z. If x is of dimension N x 1 and |
| | y is of dimension M x 1, then z must |
| | be of dimension N x M. The figure |
| | number is returned. |
+--------------------------------------+--------------------------------------+
| o.image(x,y,z, "x label", "y label", | Creates a 2D image plot with axis |
| "title") | labels and a title. The figure |
| | number is returned. |
+--------------------------------------+--------------------------------------+
| o.image(x,y,z, "x label", "y label", | Creates a 2D image plot with axis |
| "title", "options") | labels and options, options can be |
| | |
| | •logplot |
| | |
| | •polar |
| | |
| | •red2blue |
| | |
| | •any comma separated list of the |
| | above |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.plot`, :meth:`Lumerical.closeall`, :meth:`Lumerical.setplot`, :meth:`Lumerical.exportfigure`, :meth:`Lumerical.visualize`, :meth:`Lumerical.polarimage`, :meth:`Lumerical.vectorplot`
Link
----
https://kb.lumerical.com/en/ref_scripts_image.html
Note
----
Signature autogen'd from: `o.image(x,y,z)`, `o.image(x,y,z, "x label", "y label", "title")`, `o.image(x,y,z, "x label", "y label", "title", "options")`
"""
def importbinary(self, filename: str, file_units: str, x0: Any, y0: Any, z0: Any, **kwargs: Any) -> Any:
"""
Import binary data (1s and 0s) over an entire volume from a file. The
object will be present wherever the binary data is 1 and not when it is
0. This command only applies to import primitives. The function returns
1 if the data is successfully imported. Example script files showing how
to use these functions can be found in the Online Help. See the User
Guide, Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import binary data from filename in |
| o.importbinary(filename,file_units, | three dimensional simulations. All |
| x0,y0,z0,reverse_index_order) | arguments after the filename are |
| | optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the file |
| | | | with binary data |
| | | | to import. May |
| | | | contain complete |
| | | | path to file, or |
| | | | path relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| file_units | "m" | string | The optional |
| | | | string argument |
| | | | file_units can be |
| | | | "m", "cm, "mm", |
| | | | "microns" or "nm" |
| | | | to specify the |
| | | | units in the file. |
+--------------------+--------------------+--------------------+--------------------+
| x0 | 0 | number | The optional |
| | | | arguments x0, y0 |
| | | | and z0 specify the |
| | | | data origin in the |
| | | | global coordinates |
| | | | of the Graphical |
| | | | Layout Editor. For |
| | | | example, if you |
| | | | defined your |
| | | | volume with |
| | | | respect to a |
| | | | particular point |
| | | | in space, for |
| | | | example (0,0,-5) |
| | | | microns, then you |
| | | | should set z0 to |
| | | | -5 microns. |
+--------------------+--------------------+--------------------+--------------------+
| y0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| z0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| reverse_index_or | 0 | number | The optional |
| der | | | argument |
| | | | reverse_index_or |
| | | | der |
| | | | can be set to 1 to |
| | | | reverse how the |
| | | | indices are |
| | | | interpreted in the |
| | | | file. It is best |
| | | | to verify the |
| | | | correct setting |
| | | | with a graphical |
| | | | import before |
| | | | using the script |
| | | | command. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importbinary2`
Link
----
https://kb.lumerical.com/en/ref_scripts_importbinary.html
Note
----
Signature autogen'd from: `o.importbinary(filename,file_units, x0,y0,z0,reverse_index_order)`
"""
def importbinaryobfuscated(self, key: Any, file_units: str, x0: Any, y0: Any, z0: Any, **kwargs: Any) -> Any:
"""
This command is identical to importbinary but makes it possible to
import data from a file that has been obfuscated. For details on how to
obfuscate the data files, please see the Online Help in the User Guide,
Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import binary data from filename in |
| o.importbinaryobfuscated(key,filenam | three dimensional simulations. All |
| e,file_units,x0,y0,z0,reverse_inde | arguments after the filename are |
| x_order) | optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| key | required | string | The key that is |
| | | | used to decrypt |
| | | | the obfuscated |
| | | | file. |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the file |
| | | | with binary data |
| | | | to import. May |
| | | | contain complete |
| | | | path to file, or |
| | | | path relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| file_units | "m" | string | The optional |
| | | | string argument |
| | | | file_units can be |
| | | | "m", "cm, "mm", |
| | | | "microns" or "nm" |
| | | | to specify the |
| | | | units in the file. |
+--------------------+--------------------+--------------------+--------------------+
| x0 | 0 | number | The optional |
| | | | arguments x0, y0 |
| | | | and z0 specify the |
| | | | data origin in the |
| | | | global coordinates |
| | | | of the Graphical |
| | | | Layout Editor. For |
| | | | example, if you |
| | | | defined your |
| | | | volume with |
| | | | respect to a |
| | | | particular point |
| | | | in space, for |
| | | | example (0,0,-5) |
| | | | microns, then you |
| | | | should set z0 to |
| | | | -5 microns. |
+--------------------+--------------------+--------------------+--------------------+
| y0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| z0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| reverse_index_or | 0 | number | The optional |
| der | | | argument |
| | | | reverse_index_or |
| | | | der |
| | | | can be set to 1 to |
| | | | reverse how the |
| | | | indices are |
| | | | interpreted in the |
| | | | file. It is best |
| | | | to verify the |
| | | | correct setting |
| | | | with a graphical |
| | | | import before |
| | | | using the script |
| | | | command. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importbinary`
Link
----
https://kb.lumerical.com/en/ref_scripts_importbinaryobfuscated.html
Note
----
Signature autogen'd from: `o.importbinaryobfuscated(key,filenam e,file_units,x0,y0,z0,reverse_inde x_order)`
"""
def importbinary2(self, binary: Any, x: float, y: float, z: float, **kwargs: Any) -> Any:
"""
Import binary data (1s and 0s) over an entire volume from script
variables. The object will be present wherever the binary data is 1 and
not when it is 0. This command only applies to import primitives. The
function returns 1 if the data is successfully imported. Example script
files showing how to use these functions can be found in the Online
Help. See the User Guide, Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.importbinary2(binary,x,y,z) | Import binary data from script |
| | variables in three dimensional |
| | simulations. All arguments are |
| | required. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| binary | required | matrix | The binary data |
| | | | This should be an |
| | | | NxMxP matrix in |
| | | | three dimensions |
| | | | and an NxM matrix |
| | | | in two dimensions. |
| | | | It should have |
| | | | only values of 0 |
| | | | or 1. If other |
| | | | values are |
| | | | present, all |
| | | | non-zero values |
| | | | will be |
| | | | interpreted as 1. |
+--------------------+--------------------+--------------------+--------------------+
| x | required | matrix | If n is an NxMxP |
| | | | matrix, then x |
| | | | should have |
| | | | dimension Nx1. For |
| | | | two dimensional |
| | | | simulation, if n |
| | | | is an NxM matrix |
| | | | then x should have |
| | | | dimension Nx1. |
| | | | Values of x must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
| y | required | matrix | If n is an NxMxP |
| | | | matrix, then y |
| | | | should have |
| | | | dimension Mx1. For |
| | | | two dimensional |
| | | | simulation, if n |
| | | | is an NxM matrix |
| | | | then y should have |
| | | | dimension Mx1. |
| | | | Values of y must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
| z | 1 | number | If n is an NxMxP |
| | | | matrix, then z |
| | | | should have |
| | | | dimension Px1. |
| | | | Values of z must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importbinary`
Link
----
https://kb.lumerical.com/en/ref_scripts_importbinary2.html
Note
----
Signature autogen'd from: `o.importbinary2(binary,x,y,z)`
"""
@overload
def importcsvlc(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def importcsvlc(self, filename: str, option: float, **kwargs: Any) -> Any: ...
@overload
def importcsvlc(self, filename: str, option: float, rotations: Any, **kwargs: Any) -> Any: ...
def importcsvlc(self, *args: Any, **kwargs: Any) -> Any:
"""
This command adds a LC grid attribute or analysis group containing a
liquid crystal structure and LC grid attribute with data imported from a
specified csv (comma separated value) file without using the GUI import
wizard. The arguments allow you to make the same choices that are
available in the GUI. For more information about the GUI import wizard,
see Import object - Liquid crystal from CSV.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.importcsvlc(filename) | Import the csv file from the |
| | specified filename. All arguments |
| | after the filename are optional. |
+--------------------------------------+--------------------------------------+
| out = o.importcsvlc(filename,option) | Import the csv file but specify if |
| | it should be imported as a single |
| | grid attribute or added to an |
| | analysis group LC structure. |
+--------------------------------------+--------------------------------------+
| out = | Import the csv file and specify if |
| o.importcsvlc(filename,option,export | it was originally exported from the |
| ed_from_xz_plane) | x-z plane. This option only applies |
| | to 2D datasets but is critical to |
| | get the orientation of the LC |
| | structure correct when it is |
| | imported into FDTD Solutions in the |
| | x-y plane. |
+--------------------------------------+--------------------------------------+
| out = | Import the csv file with additional |
| o.importcsvlc(filename,option,export | axis rotations. |
| ed_from_xz_plane,rotations) | |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | The name of the |
| | | | csv file to |
| | | | import. May |
| | | | contain complete |
| | | | path to file, or |
| | | | path relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| option | true | boolean | When set to 1 |
| | | | (true) the import |
| | | | will create an |
| | | | analysis group |
| | | | structure with the |
| | | | grid attribute and |
| | | | a rectangle, the |
| | | | same as when using |
| | | | the graphical |
| | | | import. When set |
| | | | to 0 (false) it |
| | | | will import only |
| | | | the grid |
| | | | attribute. This |
| | | | argument is |
| | | | optional |
+--------------------+--------------------+--------------------+--------------------+
| exported_from_xz | true | boolean | Applies to 2D |
| _plane | | | datasets only. |
| | | | This indicates |
| | | | that the data was |
| | | | originally |
| | | | exported from the |
| | | | x-z plane and this |
| | | | should be |
| | | | accounted for when |
| | | | it is imported |
| | | | into the x-y |
| | | | plane. |
+--------------------+--------------------+--------------------+--------------------+
| rotations | [0,0,0] | matrix | The optional |
| | | | argument allows |
| | | | you to specify 3 |
| | | | rotations around |
| | | | the x, y and z |
| | | | axes respectively |
| | | | that are used |
| | | | exactly the same |
| | | | way as the |
| | | | graphical import |
| | | | wizard. The matrix |
| | | | must have 3 |
| | | | elements and each |
| | | | value will be |
| | | | rounded to the |
| | | | nearest 90 |
| | | | degrees. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.addgridattribute`, :meth:`Lumerical.cleardataset`, :meth:`Lumerical.importdataset`
Link
----
https://kb.lumerical.com/en/ref_scripts_importcsvlc.html
Note
----
Signature autogen'd from: `o.importcsvlc(filename)`, `o.importcsvlc(filename,option)`, `o.importcsvlc(filename,option,export ed_from_xz_plane,rotations)`
"""
@overload
def importdataset(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def importdataset(self, charge: Any, **kwargs: Any) -> Any: ...
def importdataset(self, *args: Any, **kwargs: Any) -> Any:
"""
This command can be used to import a rectilinear or unstructured dataset
into a simulation object.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.importdataset("filename") | Imports the dataset the specified |
| | Matlab file from the current working |
| | directory. The object to load data |
| | into must be selected. |
+--------------------------------------+--------------------------------------+
| o.importdataset(charge) | Imports the data from the specified |
| | dataset in the script workspace. |
| | Dataset can be loaded from a Matlab |
| | file to the script workspace using |
| | the matlabload command. The object |
| | to load data into must be selected. |
+--------------------------------------+--------------------------------------+
There are several cases where this command can be used
1. Import data into a grid attribute (data could be from charge monitor
or temperature monitor in DEVICE).
2. Import doping data into a selected 'import doping' object.
3. Import optical generation data into a selected 'import generation'
object.
4. Import field data to an import source (FDTD Solutions).
5. Import field data to a port object (FDTD Solutions and MODE
Solutions).
The command can be used in two ways. The dataset can be saved inside a
matlab (.mat) file which can be called to load the data or, the command
can directly call the dataset from the script workspace to load it into
the simulation object. In both cases, the dataset need to have the
following properties:
+----------------+----------------+----------------+----------------+----------------+
| Data | Simulation | Dataset type | Name for | Name for |
| | object | | variables | variables |
| | | | defining | defining |
| | | | coordinate | actual data |
| | | | data | |
+----------------+----------------+----------------+----------------+----------------+
| Liquid crystal | 'lc | Rectilinear | x, y, z | u |
| orientation (3 | orientation' | | | |
| element unit | grid attribute | | | |
| vector) | | | | |
+----------------+----------------+----------------+----------------+----------------+
| Rotation | 'permittivity | Rectilinear | x, y, z | theta, phi, |
| angles in | rotation' grid | | | psi |
| radians | attribute | | | |
+----------------+----------------+----------------+----------------+----------------+
| Unitary | 'matrix | Rectilinear | x, y, z | U |
| transform | transform' | | | |
| matrix (3x3 | grid attribute | | | |
| tensor) | | | | |
+----------------+----------------+----------------+----------------+----------------+
| Charge density | 'np density' | Unstructured | x, y, z, C | n, p |
| | grid attribute | | | |
+----------------+----------------+----------------+----------------+----------------+
| Doping profile | 'Import | Unstructured | x, y, z, C | N |
| | doping' object | or rectangular | (unstructured) | |
| | | | ; | |
| | | | x, y, z | |
| | | | (rectangular) | |
+----------------+----------------+----------------+----------------+----------------+
| Optical | Import | Rectangular | x, y, z | G |
| generation | generation' | | | |
| rate | object | | | |
+----------------+----------------+----------------+----------------+----------------+
| Temperature in | 'temperature' | Unstructured | x, y, z, | N |
| Kelvin | grid attribute | | elements | |
| | | | | |
| | | | (see Dataset | |
| | | | builder for | |
| | | | more | |
| | | | information) | |
+----------------+----------------+----------------+----------------+----------------+
| E and H field | Import source | Rectilinear | x, y, z, f | E (required), |
| data | in FDTD | | (optional) | H (optional) |
| | Solutions | | | |
| | | | (see Sources - | |
| | | | Import for | |
| | | | more | |
| | | | information) | |
+----------------+----------------+----------------+----------------+----------------+
| E and H field | Port in FDTD | Rectilinear | x,y,z | E, H |
| data | Solutions or | | | |
| | MODE Solutions | | (see Importing | |
| | EME solver | | arbitrary | |
| | (note that | | source fields | |
| | only 1 mode | | for more | |
| | can be | | information) | |
| | imported at a | | | |
| | time for each | | | |
| | port) | | | |
+----------------+----------------+----------------+----------------+----------------+
See Also
--------
:meth:`Lumerical.cleardataset`, :meth:`Lumerical.matlabload`, :meth:`Lumerical.addgridattribute`, :meth:`Lumerical.unstructureddataset`
Link
----
https://kb.lumerical.com/en/ref_scripts_importdataset.html
Note
----
Signature autogen'd from: `o.importdataset("filename")`, `o.importdataset(charge)`
"""
def importnetlist(self, filename: str, **kwargs: Any) -> Any:
"""
This script command can import an optical SPICE netlist.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.importnetlist("compound name", | imports an optical SPICE netlist. |
| "filename") | The "compound name" is optional, if |
| | not specified, the Root Element |
| | level circuit configuration will be |
| | imported; if specified, the |
| | sub-circuit will be imported to this |
| | specified compound. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| compound name | optional | string | name of the |
| | | | compound |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the |
| | | | netlist. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.exportnetlist`
Link
----
https://kb.lumerical.com/en/ref_scripts_importnetlist.html
Note
----
Signature autogen'd from: `o.importnetlist("compound name", "filename")`
"""
def importnk(self, filename: str, file_units: str, x0: Any, y0: Any, z0: Any, **kwargs: Any) -> Any:
"""
Imports the refractive index (n and k) over an entire volume or surface
from a file. This command only applies to import primitives. The
function returns 1 if the data is successfully imported. It is possible
to import anisotropic nk data.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import n (and k) data from filename |
| o.importnk(filename,file_units, | in three dimensional (or two |
| x0,y0,z0,reverse_index_order) | dimensional) simulations. All |
| | arguments after the filename are |
| | optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the file |
| | | | with n (and k) |
| | | | data to import. |
| | | | May contain |
| | | | complete path to |
| | | | file, or path |
| | | | relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| file_units | "m" | string | The optional |
| | | | string argument |
| | | | file_units can be |
| | | | "m", "cm, "mm", |
| | | | "microns" or "nm" |
| | | | to specify the |
| | | | units in the file. |
+--------------------+--------------------+--------------------+--------------------+
| x0 | 0 | number | The optional |
| | | | arguments x0, y0 |
| | | | and z0 specify the |
| | | | data origin in the |
| | | | global coordinates |
| | | | of the Graphical |
| | | | Layout Editor. For |
| | | | example, you can |
| | | | define your volume |
| | | | with respect to a |
| | | | particular point |
| | | | in space, for |
| | | | example (0,0,-5) |
| | | | microns. |
+--------------------+--------------------+--------------------+--------------------+
| y0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| z0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| reverse_index_or | 0 | number | The optional |
| der | | | argument |
| | | | reverse_index_or |
| | | | der |
| | | | can be set to 1 to |
| | | | reverse how the |
| | | | indices are |
| | | | interpreted in the |
| | | | file. It is best |
| | | | to verify the |
| | | | correct setting |
| | | | with a graphical |
| | | | import before |
| | | | using the script |
| | | | command. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importnk2`
Link
----
https://kb.lumerical.com/en/ref_scripts_importnk.html
Note
----
Signature autogen'd from: `o.importnk(filename,file_units, x0,y0,z0,reverse_index_order)`
"""
def importnkobfuscated(self, key: Any, filename: str, x0: Any, y0: Any, z0: Any, **kwargs: Any) -> Any:
"""
This command is identical to importnk but makes it possible to import
data from a file that has been obfuscated. For details on how to
obfuscate the data files, please see the Online Help in the User Guide,
Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import n (and k) data from filename |
| o.importnkobfuscated(key,filename,fi | in three dimensional simulations. |
| le_units,x0,y0,z0,reverse_index_o | All arguments after the filename are |
| rder) | optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| key | required | string | The key that is |
| | | | used to decrypt |
| | | | the obfuscated |
| | | | file. |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the file |
| | | | with n (and k) |
| | | | data to import. |
| | | | May contain |
| | | | complete path to |
| | | | file, or path |
| | | | relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| file_units | "m" | string | The optional |
| | | | string argument |
| | | | file_units can be |
| | | | "m", "cm, "mm", |
| | | | "microns" or "nm" |
| | | | to specify the |
| | | | units in the file. |
+--------------------+--------------------+--------------------+--------------------+
| x0 | 0 | number | The optional |
| | | | arguments x0, y0 |
| | | | and z0 specify the |
| | | | data origin in the |
| | | | global coordinates |
| | | | of the Graphical |
| | | | Layout Editor. For |
| | | | example, if you |
| | | | defined your |
| | | | volume with |
| | | | respect to a |
| | | | particular point |
| | | | in space, for |
| | | | example (0,0,-5) |
| | | | microns, then you |
| | | | should set z0 to |
| | | | -5 microns. |
+--------------------+--------------------+--------------------+--------------------+
| y0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| z0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| reverse_index_or | 0 | number | The optional |
| der | | | argument |
| | | | reverse_index_or |
| | | | der |
| | | | can be set to 1 to |
| | | | reverse how the |
| | | | indices are |
| | | | interpreted in the |
| | | | file. It is best |
| | | | to verify the |
| | | | correct setting |
| | | | with a graphical |
| | | | import before |
| | | | using the script |
| | | | command. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importnk`, :meth:`Lumerical.importbinaryobfuscated`
Link
----
https://kb.lumerical.com/en/ref_scripts_importnkobfuscated.html
Note
----
Signature autogen'd from: `o.importnkobfuscated(key,filename,fi le_units,x0,y0,z0,reverse_index_o rder)`
"""
def importnk2(self, n: float, x: float, y: float, z: float, **kwargs: Any) -> Any:
"""
Imports the refractive index (n and k) over an entire volume or surface
from script variables. This command only applies to import primitives.
The function returns 1 if the data is successfully imported. It is
possible to import anisotropic nk data.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.importnk2(n,x,y,z) | Import n (and k) data from script |
| | variables in three dimensional |
| | simulations, n can be complex. All |
| | arguments are required. n must be of |
| | dimension NxMxP or NxMxPx3 with N >= |
| | 2, M >= 2 and P >= 2. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| n | required | matrix | The refractive |
| | | | index. If it is |
| | | | complex-valued, |
| | | | then the imaginary |
| | | | part is |
| | | | interpreted as k. |
| | | | For isotropic |
| | | | material, this |
| | | | should be an NxMxP |
| | | | matrix in three |
| | | | dimensions and an |
| | | | NxMx2 matrix in |
| | | | two dimensions. |
| | | | For anisotropic |
| | | | material, this |
| | | | should be an |
| | | | NxMxPx3 matrix in |
| | | | three dimensions |
| | | | and an NxMx2x3 |
| | | | matrix in two |
| | | | dimensions. |
+--------------------+--------------------+--------------------+--------------------+
| x | required | matrix | If n is an NxMxP |
| | | | matrix, then x |
| | | | should have |
| | | | dimension Nx1. For |
| | | | two dimensional |
| | | | simulation, if n |
| | | | is an NxMx2 matrix |
| | | | then x should have |
| | | | dimension Nx1. |
| | | | Values of x must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
| y | required | matrix | If n is an NxMxP |
| | | | matrix, then y |
| | | | should have |
| | | | dimension Mx1. For |
| | | | two dimensional |
| | | | simulation, if n |
| | | | is an NxMx2 matrix |
| | | | then y should have |
| | | | dimension Mx1. |
| | | | Values of y must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
| z | required | matrix | If n is an NxMxP |
| | | | matrix, then z |
| | | | should have |
| | | | dimension Px1. For |
| | | | two dimensional |
| | | | simulation, if n |
| | | | is an NxMx2 matrix |
| | | | then z should have |
| | | | dimension 2x1. |
| | | | Values of z must |
| | | | be uniformly |
| | | | spaced. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importnk`
Link
----
https://kb.lumerical.com/en/ref_scripts_importnk2.html
Note
----
Signature autogen'd from: `o.importnk2(n,x,y,z)`
"""
def importschematic(self, name: str, filename: str, **kwargs: Any) -> Any:
"""
Imports the schematic contents from a file into an existing design kit
element.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.importschematic (name, filename) | Imports the schematic contents from |
| | a file into an existing design kit |
| | element. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.exportschematic`, :meth:`Lumerical.customlibrary`, :meth:`Lumerical.exportlib`
Link
----
https://kb.lumerical.com/en/ref_scripts_importschematic.html
Note
----
Signature autogen'd from: `o.importschematic(name, filename)`
"""
@overload
def importsurface(self, filename: str, file_units: str, x0: Any, y0: Any, z0: Any, invertXY: Any, **kwargs: Any) -> Any: ...
@overload
def importsurface(self, filename: str, file_units: str, x0: Any, y0: Any, invertXY: Any, **kwargs: Any) -> Any: ...
def importsurface(self, *args: Any, **kwargs: Any) -> Any:
"""
Imports surface data. This command only applies to import primitives.
The function returns 1 if the data is successfully imported. Example
script files showing how to use these functions can be found in the
Online Help. See the User Guide, Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import a surface from the file in |
| o.importsurface(filename,upper_surf | the string filename in a three |
| ace,file_units,x0,y0,z0,invertXY) | dimensional simulation. All |
| | arguments after filename are |
| | optional. |
+--------------------------------------+--------------------------------------+
| out = | Import a surface from the file in |
| o.importsurface(filename,upper_surf | the string filename in a two |
| ace,file_units,x0,y0,invertXY) | dimensional simulation. All |
| | arguments after filename are |
| | optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| filename | required | string | name of the file |
| | | | with surface data |
| | | | to import. May |
| | | | contain complete |
| | | | path to file, or |
| | | | path relative to |
| | | | current working |
| | | | directory |
+--------------------+--------------------+--------------------+--------------------+
| upper_surface | 1 | number | This optional |
| | | | argument should be |
| | | | 1 to import the |
| | | | upper surface and |
| | | | 0 to import the |
| | | | lower surface. |
+--------------------+--------------------+--------------------+--------------------+
| file_units | "m" | string | The optional |
| | | | string argument |
| | | | file_units can be |
| | | | "m", "cm, "mm", |
| | | | "microns" or "nm" |
| | | | to specify the |
| | | | units in the file. |
+--------------------+--------------------+--------------------+--------------------+
| x0 | 0 | number | The optional |
| | | | arguments x0, y0 |
| | | | and z0 specify the |
| | | | data origin in the |
| | | | global coordinates |
| | | | of the Graphical |
| | | | Layout Editor. For |
| | | | example, if you |
| | | | are importing a |
| | | | surface defined by |
| | | | an AFM that is on |
| | | | a slab of Si that |
| | | | ranges from 0 to 2 |
| | | | microns, you |
| | | | should set z0 to 2 |
| | | | microns. |
+--------------------+--------------------+--------------------+--------------------+
| y0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| z0 | 0 | number | |
+--------------------+--------------------+--------------------+--------------------+
| invertXY | 0 | number | The optional |
| | | | argument invertXY |
| | | | can be used to |
| | | | reverse how the x |
| | | | and y axes are |
| | | | read from the |
| | | | file. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importsurface2`
Link
----
https://kb.lumerical.com/en/ref_scripts_importsurface.html
Note
----
Signature autogen'd from: `o.importsurface(filename,upper_surf ace,file_units,x0,y0,z0,invertXY)`, `o.importsurface(filename,upper_surf ace,file_units,x0,y0,invertXY)`
"""
def importsurface2(self, Z: float, x: float, y: float, **kwargs: Any) -> Any:
"""
Imports surface data from script variables. This command only applies to
import primitives. The function returns 1 if the data is successfully
imported. Example script files showing how to use these functions can be
found in the Online Help. See the User Guide, Structures section.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = | Import a surface from the variables |
| o.importsurface2(Z,x,y,upper_surfac | Z, x and y in three dimensional |
| e) | simulations. The upper_surface |
| | argument is optional. |
+--------------------------------------+--------------------------------------+
+--------------------+--------------------+--------------------+--------------------+
| Parameter | Default value | Type | Description |
+--------------------+--------------------+--------------------+--------------------+
| Z | required | matrix | The two |
| | | | dimensional matrix |
| | | | that defines the |
| | | | surface. |
+--------------------+--------------------+--------------------+--------------------+
| x | required | matrix | If Z is an NxM |
| | | | matrix, then x |
| | | | should have |
| | | | dimension Nx1. For |
| | | | two dimensional |
| | | | simulation, if Y |
| | | | is an Nx1 matrix |
| | | | then x should have |
| | | | dimension Nx1. |
+--------------------+--------------------+--------------------+--------------------+
| y | required | matrix | If Z is an NxM |
| | | | matrix, then y |
| | | | should have |
| | | | dimension Mx1. |
+--------------------+--------------------+--------------------+--------------------+
| upper_surface | 1 | number | This optional |
| | | | argument should be |
| | | | 1 to import the |
| | | | upper surface and |
| | | | 0 to import the |
| | | | lower surface. |
+--------------------+--------------------+--------------------+--------------------+
| Y | required | matrix | This argument |
| | | | should be an Nx1 |
| | | | matrix that |
| | | | defines the |
| | | | surface for two |
| | | | dimensional |
| | | | simulations. |
+--------------------+--------------------+--------------------+--------------------+
See Also
--------
:meth:`Lumerical.importsurface`
Link
----
https://kb.lumerical.com/en/ref_scripts_importsurface2.html
Note
----
Signature autogen'd from: `o.importsurface2(Z,x,y,upper_surfac e)`
"""
def inpoly(self, V: float, x: float, y: float, **kwargs: Any) -> Any:
"""
Determines if a point is inside or outside a polygon. The function is
vectorized so it can be used to create a mesh of a polygon.
The polygon vertices are contained in a single matrix of dimension Nx2
(or 2xN), where N >= 3 is the number of vertices. The dimension 2
corresponds to the x,y positions. For example, a square of side length 1
can be described by V = [ 0,0; 1,0; 1,1; 0,1] or V = [ 0,1,1,0;0,0,1,1].
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.inpoly(V,x,y) | Returns a matrix of the same |
| | dimension of x with 1 if the |
| | corresponding point is inside the |
| | polygon and 0 otherwise. The |
| | matrices x and y must have the same |
| | length, or one of them can be a |
| | singleton. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.polyarea`, :meth:`Lumerical.centroid`, :meth:`Lumerical.polyintersect`, :meth:`Lumerical.polygrow`, :meth:`Lumerical.polyand`, :meth:`Lumerical.polyor`, :meth:`Lumerical.polydiff`, :meth:`Lumerical.polyxor`, :meth:`Lumerical.meshgridx`, :meth:`Lumerical.meshgridy`
Link
----
https://kb.lumerical.com/en/ref_scripts_inpoly.html
Note
----
Signature autogen'd from: `o.inpoly(V,x,y)`
"""
def insert(self, association: Any, **kwargs: Any) -> Any:
"""
Inserts an object into an existing cell in a lookup table.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out{1}.association = o.insert( | Inserts an object into an existing |
| out{1}.association, association, | cell. |
| cell number ) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`
Link
----
https://kb.lumerical.com/en/ref_scripts_insert.html
Note
----
Signature autogen'd from: `o.insert(out{1}.association, association, cell number)`
"""
def insertsweep(self, name: str, **kwargs: Any) -> Any:
"""
Inserts a sweep/optimization/Monte Carlo item as a parent to an existing
analysis item. The existing item becomes a child of the newly inserted
sweep.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.insertsweep("name") | Inserts a sweep/optimization/Monte |
| | Carlo item as a child to a parent |
| | analysis item. |
| | |
| | "name" is the absolute name of the |
| | existing analysis item. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.deletesweep`, :meth:`Lumerical.copysweep`, :meth:`Lumerical.pastesweep`, :meth:`Lumerical.addsweep`, :meth:`Lumerical.getsweep`, :meth:`Lumerical.setsweep`, :meth:`Lumerical.addsweepparameter`, :meth:`Lumerical.addsweepresult`, :meth:`Lumerical.removesweepparameter`, :meth:`Lumerical.removesweepresult`
Link
----
https://kb.lumerical.com/en/ref_scripts_insertsweep.html
Note
----
Signature autogen'd from: `o.insertsweep("name")`
"""
def installdesignkit(self, filename: str, path: str, overwrite: Any, **kwargs: Any) -> Any:
"""
Installs a design kit file to the Design Kits folder.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.installdesignkit(filename, path, | Installs a design kit file named |
| overwrite) | ‘filename.cml’ and directs its |
| | contents to a user defined ‘path’. |
| | The design kit will be available in |
| | the element library ‘Design kits’ |
| | folder. If ‘overwrite’ is true, it |
| | will overwrite an existing design |
| | kit with the same name, if |
| | ‘overwrite’ is false, it will ask |
| | the user for confirmation before |
| | overwriting. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.packagedesignkit`, :meth:`Lumerical.importschematic`, :meth:`Lumerical.exportschematic`, :meth:`Lumerical.customlibrary`, :meth:`Lumerical.exportlib`
Link
----
https://kb.lumerical.com/en/ref_scripts_installdesignkit.html
Note
----
Signature autogen'd from: `o.installdesignkit(filename, path, overwrite)`
"""
@overload
def integrate(self, A: float, n: float, x1: Any, **kwargs: Any) -> float: ...
@overload
def integrate(self, A: float, d: float, x1: Any, x2: Any, **kwargs: Any) -> float: ...
def integrate(self, *args: Any, **kwargs: Any) -> float:
"""
Returns the integral over the specified dimension of a matrix.
Integrals over singleton dimensions will return zero (i.e. the area
under a single point is zero). See integrate2 for an alternate behavior.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.integrate(A, n, x1) | Integrates A over the nth dimension |
| | in the matrix. |
| | |
| | x1 is the corresponding position |
| | vector for that dimension. |
+--------------------------------------+--------------------------------------+
| out = o.integrate(A, d, x1, x2, ...) | Calculates the integral of A over |
| | the specified list of dimension(s) |
| | d. |
| | |
| | d is a vector containing the |
| | dimensions over which to integrate. |
| | |
| | xi are the position vectors |
| | corresponding to the dimensions of A |
| | over which the integration is |
| | occurring. |
| | |
| | For example |
| | |
| | •power = integrate(A,1:2,x,y) will |
| | integrate A over an x-y surface. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.integrate2`, :meth:`Lumerical.max`, :meth:`Lumerical.min`, :meth:`Lumerical.interp`, :meth:`Lumerical.find`, :meth:`Lumerical.pinch`, :meth:`Lumerical.round`, :meth:`Lumerical.getdata`, :meth:`Lumerical.sum`, :meth:`Lumerical.length`
Link
----
https://kb.lumerical.com/en/ref_scripts_integrate.html
Note
----
Signature autogen'd from: `o.integrate(A, n, x1)`, `o.integrate(A, d, x1, x2, ...)`
"""
@overload
def integrate2(self, A: float, x1: Any, **kwargs: Any) -> Any: ...
@overload
def integrate2(self, A: float, d: float, x1: Any, x2: Any, **kwargs: Any) -> Any: ...
def integrate2(self, *args: Any, **kwargs: Any) -> Any:
"""
Very similar to the standard integrate function, except that singleton
dimensions are ignored.
As described in the integrate function description, integrating over
dimensions with a single value (singleton dimensions) returns zero
because the area under a single point is zero. In some cases,
particularly when you are not sure which dimensions are singleton, this
behavior can cause difficulties. The integrate2 function automatically
ignores all dimensions with a size of one, which avoids the problem of a
zero valued integrals due to singleton dimensions.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.integrate2(A, 1, x1) | Integrates A over the first |
| | dimension in the matrix. |
| | |
| | x1 is the corresponding position |
| | vector. |
+--------------------------------------+--------------------------------------+
| out = o.integrate2(A, d, x1, x2, | Calculates the integral of A over |
| ...) | the specified dimension(s) d. |
| | |
| | d is a vector containing the |
| | dimensions over which to integrate. |
| | |
| | xi is the position vector |
| | corresponding to the dimensions of A |
| | over which the integration is |
| | occurring. If any of the xi vectors |
| | only have 1 element, integrate |
| | returns 0. |
| | |
| | For example |
| | |
| | •power = integrate2(A,1:2,x,y) will |
| | integrate A over an x-y surface. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.integrate`, :meth:`Lumerical.max`, :meth:`Lumerical.min`, :meth:`Lumerical.interp`, :meth:`Lumerical.find`, :meth:`Lumerical.pinch`, :meth:`Lumerical.round`, :meth:`Lumerical.getdata`, :meth:`Lumerical.sum`, :meth:`Lumerical.length`
Link
----
https://kb.lumerical.com/en/ref_scripts_integrate2.html
Note
----
Signature autogen'd from: `o.integrate2(A, 1, x1)`, `o.integrate2(A, d, x1, x2, ...)`
"""
@overload
def interp(self, Ex: Any, xold: Any, xnew: Any, **kwargs: Any) -> Any: ...
@overload
def interp(self, Ex: Any, xold: Any, yold: Any, xnew: Any, ynew: Any, **kwargs: Any) -> Any: ...
@overload
def interp(self, Ex: Any, xold: Any, yold: Any, zold: Any, xnew: Any, ynew: Any, znew: Any, **kwargs: Any) -> Any: ...
@overload
def interp(self, Ex: Any, xold: Any, yold: Any, zold: Any, told: Any, xnew: Any, ynew: Any, znew: Any, tnew: Any, **kwargs: Any) -> Any: ...
def interp(self, *args: Any, **kwargs: Any) -> Any:
"""
Calculates the linear interpolation of a given data set. The data can be
complex.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.interp(Ex, xold, xnew) | Does a linear interpolation of a 1D |
| | data set. |
| | |
| | •Ex is existing data |
| | |
| | •xold specifies the points where Ex |
| | is sampled |
| | |
| | •xnew specifies new point to |
| | interpolate the data. |
| | |
| | The xnew does not have to be within |
| | the bounds of xold. |
+--------------------------------------+--------------------------------------+
| o.interp(Ex, xold, yold, xnew, ynew) | The 2D version of interp. |
+--------------------------------------+--------------------------------------+
| o.interp(Ex, xold, yold, zold, xnew, | The 3D version of interp. |
| ynew, znew) | |
+--------------------------------------+--------------------------------------+
| o.interp(Ex, xold, yold, zold, told, | The 4D version of interp. |
| xnew, ynew, znew, tnew) | |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.spline`, :meth:`Lumerical.plotxy`
Link
----
https://kb.lumerical.com/en/ref_scripts_interp.html
Note
----
Signature autogen'd from: `o.interp(Ex, xold, xnew)`, `o.interp(Ex, xold, yold, xnew, ynew)`, `o.interp(Ex, xold, yold, zold, xnew, ynew, znew)`, `o.interp(Ex, xold, yold, zold, told, xnew, ynew, znew, tnew)`
"""
def interptet(self, tet: np.ndarray, vtx: np.ndarray, u: float, xi: Any, yi: Any, zi: Any, extrap_val: Any, **kwargs: Any) -> Any:
"""
Interpolates a data set in 3D from a tetrahedral to a rectangular grid.
The data can be complex.
This function is typically used for resampling data evaluated originally
in a finite element mesh (monitor data from DEVICE, for example) to a
new rectilinear grid.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.interptet(tet, vtx,u, xi, | Does a tetrahedral to rectilinear |
| yi,zi,extrap_val) | interpolation of a function and |
| | outputs a PxQxR array of |
| | interpolated values, f(xi,yi,zi). |
| | |
| | •u is existing data of the finite |
| | element mesh (Nx1) |
| | |
| | •xi, yi and zi are arrays with |
| | length P, Q and R, respectively. |
| | They specify the points where u is |
| | to be sampled on the rectilinear |
| | mesh, in the x-direction, |
| | y-direction and z-direction |
| | |
| | •tet is the connectivity array, Mx4, |
| | containing row entries that index |
| | the 4 vertices of M tetrahedra. |
| | Taken from the simulation region |
| | |
| | •vtx is a matrix with the vertices |
| | of the tetrahedral mesh, Nx3, |
| | containing row entries of (x,y,z) |
| | pairs. Taken from the simulation |
| | region |
| | |
| | •extrap_val(optional): if an |
| | interpolation point is outside of |
| | the finite element mesh, the point |
| | will be assigned this value (default |
| | is Inf) |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.quadtet`, :meth:`Lumerical.quadtri`, :meth:`Lumerical.interptri`
Link
----
https://kb.lumerical.com/en/ref_scripts_interptet.html
Note
----
Signature autogen'd from: `o.interptet(tet, vtx,u, xi, yi,zi,extrap_val)`
"""
def interptri(self, tri: np.ndarray, vtx: np.ndarray, u: float, xi: Any, yi: Any, extrap_val: Any, **kwargs: Any) -> Any:
"""
Interpolates a data set from a triangular to a rectilinear grid. The
data can be complex.
This function is typically used for resampling data evaluated originally
in a finite element mesh (monitor data from DEVICE, for example) to a
new rectilinear grid.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.interptri(tri, vtx,u, xi, | Does a triangular to rectilinear |
| yi,extrap_val) | grid interpolation of a function and |
| | outputs a PxQ array of interpolated |
| | values, z(xi,yi). |
| | |
| | •u is existing data of the finite |
| | element mesh (size Nx1) |
| | |
| | •xi and yi are arrays with length P |
| | and Q, respectively. They specify |
| | the points where u is to be sampled |
| | on the rectilinear mesh, in the |
| | x-direction and y-direction |
| | |
| | •tri is the connectivity array, Mx3, |
| | containing row entries that index |
| | the three vertices of M triangles. |
| | Taken from the simulation region |
| | |
| | •vtx is a matrix with the vertices |
| | of the triangular mesh, Nx2, |
| | containing row entries of (x,y) |
| | pairs. Taken from the simulation |
| | region |
| | |
| | •extrap_val(optional): if an |
| | interpolation point is outside of |
| | the finite element mesh, the point |
| | will be assigned this value (default |
| | is Inf) |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.quadtri`, :meth:`Lumerical.interptet`, :meth:`Lumerical.quadtet`
Link
----
https://kb.lumerical.com/en/ref_scripts_interptri.html
Note
----
Signature autogen'd from: `o.interptri(tri, vtx,u, xi, yi,extrap_val)`
"""
def inv(self, A: float, **kwargs: Any) -> Any:
"""
Calculates the inverse of a matrix. The matrix has to be invertible.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.inv(A) | Returns the inverse of matrix A |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.and`, :meth:`Lumerical.or`, :meth:`Lumerical.eig`, :meth:`Lumerical.mult`
Link
----
https://kb.lumerical.com/en/ref_scripts_inv.html
Note
----
Signature autogen'd from: `o.inv(A)`
"""
@overload
def invfft(self, Ew: Any, **kwargs: Any) -> Any: ...
@overload
def invfft(self, Ew: Any, option1: float, option2: float, **kwargs: Any) -> Any: ...
def invfft(self, *args: Any, **kwargs: Any) -> Any:
"""
Computes the 1D, 2D or 3D inverse Fast Fourier Transform (FFT) of a
matrix. In the 1D case the transform is given by
The inverse FFT, FFT and all related functions have an option (option 1
below) that controls the format used to store the frequency domain data.
When working with spectral data it is not possible to switch between
formats; there are no functions to convert between formats. This implies
that if you use option1=n to produce a spectrum with fft, then you must
also use option1=n if you want to pass that same spectral data to
invfft. Similarly, if you use option1=n for fft, then you also need to
use option1=n with fftw to get the proper frequency vector corresponding
to your spectrum. invfft and fftk work in the same way.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.invfft(Ew) | Returns the inverse fast Fourier |
| | transform of Ew. Ew can 1D,2D or 3D. |
+--------------------------------------+--------------------------------------+
| out = o.invfft(Ew,option1,option2) | option1 |
| | |
| | This option controls the format used |
| | to store the frequency domain data. |
| | The options are: |
| | |
| | •1 : the standard FFT (zero |
| | frequency is at the first element of |
| | the matrix). This is the default |
| | option. |
| | |
| | •2 : zero frequency is the first |
| | element, but only data up to and |
| | including the Nyquist frequency is |
| | stored. This option is only useful |
| | for real valued, 1D time/spatial |
| | signals. |
| | |
| | •3 : the FFT is shifted so zero |
| | frequency is the central element of |
| | the spectrum (more precisely, this |
| | means the zero frequency point is at |
| | element floor(N/2 + 1), where N is |
| | the number of samples). |
| | |
| | option2 |
| | |
| | This option is either a 1, 2 or 3 |
| | element vector depending on whether |
| | Ex is 1D, 2D or 3D. For each |
| | dimension, specify a value of either |
| | 0, 1 or N to obtain the desired 0 |
| | padding options. |
| | |
| | •0: no zero padding |
| | |
| | •1: zero padding up to the next |
| | power of 2 longer than the length of |
| | Ex (default) |
| | |
| | •N: zero pad up to length N if N > |
| | length(Ex), where length of Ex is |
| | the length in a specific dimension. |
| | If N <= length(Ex), it will zero pad |
| | up to the next power of 2 longer |
| | than the length of Ex. For the |
| | fastest results, N should be a power |
| | of 2 and can be entered, for |
| | example, as 2^12. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.fft`, :meth:`Lumerical.fftw`, :meth:`Lumerical.fftk`
Link
----
https://kb.lumerical.com/en/ref_scripts_invfft.html
Note
----
Signature autogen'd from: `o.invfft(Ew)`, `o.invfft(Ew,option1,option2)`
"""
def iscell(self, input: Any, **kwargs: Any) -> Any:
"""
The script command checks whether input is a cell.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| value= o.iscell(input) | Determine whether ‘input is a cell. |
| | It returns logical 1 (true) if |
| | ‘input’ is a cell and logical 0 |
| | (false) otherwise. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.issweep`, :meth:`Lumerical.isstruct`, :meth:`Lumerical.isfield`
Link
----
https://kb.lumerical.com/en/ref_scripts_iscell.html
Note
----
Signature autogen'd from: `o.iscell(input)`
"""
def isfield(self, input: Any, field: np.ndarray, **kwargs: Any) -> Any:
"""
The script command checks whether input is a field.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| value= o.isfield(input, field) | Determine whether ‘input contains |
| | filed name ‘field’. It returns |
| | logical 1 (true) if ‘input contains |
| | ‘field’, and logical 0 (false) |
| | otherwise. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.issweep`, :meth:`Lumerical.isstruct`, :meth:`Lumerical.iscell`, :meth:`Lumerical.getfield`, :meth:`Lumerical.setfield`
Link
----
https://kb.lumerical.com/en/ref_scripts_isfield.html
Note
----
Signature autogen'd from: `o.isfield(input, field)`
"""
def ispropertyactive(self, element: Any, property: Any, **kwargs: Any) -> Any:
"""
Returns true if the property ‘property’ from element ‘element’ is
active.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out=o.ispropertyactive | Returns true if the property |
| (element,property) | ‘property’ from element ‘element’ is |
| | active. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.hideproperty`, :meth:`Lumerical.hidecategory`, :meth:`Lumerical.annotateproperty`
Link
----
https://kb.lumerical.com/en/ref_scripts_ispropertyactive.html
Note
----
Signature autogen'd from: `o.ispropertyactive(element,property)`
"""
def isstruct(self, input: Any, **kwargs: Any) -> Any:
"""
The script command checks whether input is a structure.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| value= o.isstruct(input) | Determine whether ‘input’ is a |
| | structure. It returns logical 1 |
| | (true) if ‘input’ is a structure and |
| | logical 0 (false) otherwise. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`, :meth:`Lumerical.issweep`, :meth:`Lumerical.iscell`, :meth:`Lumerical.isfield`
Link
----
https://kb.lumerical.com/en/ref_scripts_isstruct.html
Note
----
Signature autogen'd from: `o.isstruct(input)`
"""
def issweep(self, **kwargs: Any) -> Any:
"""
The script command checks if the simulation is in sweep mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.issweep() | Returns true (1 or 0) if the |
| | simulation is currently in sweep |
| | mode. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.runsweep`, :meth:`Lumerical.havesweepdata`, :meth:`Lumerical.getsweepresult`, :meth:`Lumerical.loadsweep`, :meth:`Lumerical.savesweep`, :meth:`Lumerical.isstruct`, :meth:`Lumerical.iscell`, :meth:`Lumerical.isfield`
Link
----
https://kb.lumerical.com/en/ref_scripts_issweep.html
Note
----
Signature autogen'd from: `o.issweep())`
"""
def killwizard(self, **kwargs: Any) -> Any:
"""
This closes the wizard window. It should only be called after a wizard
window has been created with the newwizard command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.killwizard() | This closes the wizard window. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.newwizardpage`
Link
----
https://kb.lumerical.com/en/ref_scripts_killwizard.html
Note
----
Signature autogen'd from: `o.killwizard())`
"""
def layoutmode(self, **kwargs: Any) -> Any:
"""
This script command can be used to determine whether the simulation file
is currently in LAYOUT mode or in ANALYSIS mode. It is important to use
this command to check the status of the project file once it is opened
to avoid running into an error during the subsequent operations if the
file is not in the desired mode.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| print o.layoutmode() | Returns 1 if in LAYOUT mode (DESIGN |
| | mode for INTERCONNECT), and 0 if in |
| | ANALYSIS mode. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.switchtolayout`, :meth:`Lumerical.designmode`
Link
----
https://kb.lumerical.com/en/ref_scripts_layoutmode.html
Note
----
Signature autogen'd from: `o.layoutmode())`
"""
def legend(self, **kwargs: Any) -> Any:
"""
Adds a legend to a line plot.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.legend("o.legend1","o.legend2",... | Adds a legend to the selected |
| , | figure. |
| "o.legendn") | |
| | Parameters can be strings, or an |
| | array (cell) of strings |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.legend`, :meth:`Lumerical.plot`, :meth:`Lumerical.closeall`, :meth:`Lumerical.visualize`
Link
----
https://kb.lumerical.com/en/ref_scripts_legend.html
Note
----
Signature autogen'd from: `o.legend()`
"""
def length(self, x: float, **kwargs: Any) -> float:
"""
Returns the number of elements in a matrix. If the argument is a string,
it will return the length of the string.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| y = o.length(x) | y the number of elements in a |
| | matrix. For example, if x is an n by |
| | m matrix, y = length( x ) = n \* m. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.size`, :meth:`Lumerical.transpose`, :meth:`Lumerical.flip`, :meth:`Lumerical.substring`, :meth:`Lumerical.findstring`, :meth:`Lumerical.replace`, :meth:`Lumerical.replacestring`
Link
----
https://kb.lumerical.com/en/ref_scripts_length.html
Note
----
Signature autogen'd from: `o.length(x)`
"""
def library(self, **kwargs: Any) -> Any:
"""
Returns a list of elements available in the currently installed element
library, including custom elements.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.library() | Returns a list of elements available |
| | in the currently installed element |
| | libraries, including custom |
| | elements. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addtolibrary`, :meth:`Lumerical.customlibrary`
Link
----
https://kb.lumerical.com/en/ref_scripts_library.html
Note
----
Signature autogen'd from: `o.library())`
"""
def linecross(self, L1: Any, L2: Any, **kwargs: Any) -> Any:
"""
Determines if two line segments in the x-y plane cross each other.
Line segments are contained in a single matrix of dimension 2\*Nx2,
where there are N line segments. For example, the matrix L = [ 0,0; 1,1;
0,0; 0,1]; represents two lines segments, one from (0,0) to (1,1) and
another from (0,0) to (0,1).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.linecross(L1,L2) | Returns an array of dimension N |
| | which determines if the N line |
| | segments in L1 and the N line |
| | segments in L2 cross; the comparison |
| | is done pairwise as in the |
| | lineintersect command. L1 and L2 |
| | must have the same size (2\*Nx2 for |
| | N line segments). The elements in |
| | the output array are 0 if the |
| | segments do not cross, 1 if they |
| | cross and 0.5 if the endpoint of one |
| | segment touches the other. Line |
| | segments that are coincident and |
| | touch also return a value of 0.5 |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lineintersect`, :meth:`Lumerical.finite`
Link
----
https://kb.lumerical.com/en/ref_scripts_linecross.html
Note
----
Signature autogen'd from: `o.linecross(L1,L2)`
"""
def lineintersect(self, L1: Any, L2: Any, **kwargs: Any) -> Any:
"""
Returns the intersection points of two lines in the x-y plane. Note that
the intersection point does not have to lie on the segments that define
the lines. Use the command linecross to determine if the line segments
actually cross .
Line segments are contained in a single matrix of dimension 2\*Nx2,
where there are N line segments. For example, the matrix L = [ 0,0; 1,1;
0,0; 0,1]; represents two lines segments, one from (0,0) to (1,1) and
another from (0,0) to (0,1).
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lineintersect(L1,L2) | Returns the intersection of the |
| | lines represented by the segments in |
| | L1 and L2. L1 and L2 must have the |
| | same size (2\*Nx2 for N line |
| | segments). The result is a sequence |
| | of x,y points in the form Nx2 |
| | representing the pairwise |
| | intersections of the N lines. There |
| | are special cases when |
| | |
| | •The lines are parallel. In this |
| | case, the position returned is |
| | (1.#INF,b). The presence of 1.#INF |
| | can be tested using the script |
| | command finite. The value of b is 0 |
| | if the lines coincide and 1 if they |
| | do not. |
| | |
| | •The points in a segment are |
| | degenerate, i.e., the same. In this |
| | case, the position returned is |
| | (1.#INF,b), where b is 0, 1 or 2 if |
| | both line segments are degenerate, |
| | the first is degenerate, or the |
| | second is degenerate, respectively. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.linecross`, :meth:`Lumerical.finite`
Link
----
https://kb.lumerical.com/en/ref_scripts_lineintersect.html
Note
----
Signature autogen'd from: `o.lineintersect(L1,L2)`
"""
def linspace(self, min: float, max: float, num: float, **kwargs: Any) -> Any:
"""
Creates a linearly spaced array.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| x = o.linspace(min,max,num) | x will be an array with num |
| | elements, linearly spaced between |
| | min and max. If num is set to 1, |
| | then x will be the average of min |
| | and max. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_linspace.html
Note
----
Signature autogen'd from: `o.linspace(min,max,num)`
"""
def listjobs(self, solver: Any, **kwargs: Any) -> Any:
"""
Lists all the jobs in the job manager queue.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.listjobs("solver") | Lists all the jobs in the Job queue |
| | for specified solver. If the solver |
| | is not specified, all the jobs for |
| | all solvers will be listed. No |
| | argument is necessary for this |
| | command in INTERCONNECT. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.run`, :meth:`Lumerical.runsweep`, :meth:`Lumerical.addjob`, :meth:`Lumerical.clearjobs`, :meth:`Lumerical.save`, :meth:`Lumerical.load`
Link
----
https://kb.lumerical.com/en/ref_scripts_listjobs.html
Note
----
Signature autogen'd from: `o.listjobs("solver")`
"""
def load(self, filename: str, **kwargs: Any) -> Any:
"""
Loads an simulation project file. If the simulation has been run, the
file will also contain the simulation results.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.load(filename) | Loads the simulation file. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.loaddata`, :meth:`Lumerical.save`, :meth:`Lumerical.savedata`, :meth:`Lumerical.savedcard`, :meth:`Lumerical.fileexists`, :meth:`Lumerical.dir`
Link
----
https://kb.lumerical.com/en/ref_scripts_load.html
Note
----
Signature autogen'd from: `o.load(filename)`
"""
def loadcustom(self, path: str, **kwargs: Any) -> Any:
"""
Redirects the location of the element library ‘Custom’ folder and
reloads the contents of the folder.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loadcustom (path) | Redirects the location of the |
| | element library ‘Custom’ folder to a |
| | user defined ‘path’. It also reloads |
| | the contents of the ‘Custom’ folder |
| | in the element library. |
+--------------------------------------+--------------------------------------+
See Also
--------
Link
----
https://kb.lumerical.com/en/ref_scripts_loadcustom.html
Note
----
Signature autogen'd from: `o.loadcustom(path)`
"""
def loaddata(self, filename: str, **kwargs: Any) -> Any:
"""
Loads workspace variables or d-card data from a Lumerical data file
(ldf) file. If any current variables exist with the same names as those
in the file, the current values will be overwritten.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loaddata("filename") | Reads data script variables or |
| | d-card data from the specified file. |
| | |
| | This function does not return any |
| | data. |
| | |
| | Note: This function will check for |
| | the file in the current working |
| | directory. If the file to read from |
| | is in a different directory, either |
| | specify the full path or change the |
| | current working directory. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.savedata`, :meth:`Lumerical.savedcard`, :meth:`Lumerical.workspace`, :meth:`Lumerical.load`, :meth:`Lumerical.fileexists`
Link
----
https://kb.lumerical.com/en/ref_scripts_loaddata.html
Note
----
Signature autogen'd from: `o.loaddata("filename")`
"""
def loaddesignkit(self, name: str, path: str, **kwargs: Any) -> Any:
"""
Loads a design kit and directs its contents to a user defined path.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loaddesignkit ("name", "path") | Loads a design kit named ‘name’ and |
| | directs its contents to a user |
| | defined ‘path’. The design kit will |
| | be available in the element library |
| | ‘Design kits’ folder. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.removedesignkit`, :meth:`Lumerical.reloaddesignkit`
Link
----
https://kb.lumerical.com/en/ref_scripts_loaddesignkit.html
Note
----
Signature autogen'd from: `o.loaddesignkit("name", "path")`
"""
def loadelement(self, name: str, **kwargs: Any) -> Any:
"""
Loads an element from a file created using the saveelement command in
the current working directory. The element will be placed in the current
schematic editor window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loadelement ("name") | Loads an element from the file in |
| | the current working directory with |
| | extension ICE. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.library`, :meth:`Lumerical.addtolibrary`, :meth:`Lumerical.probe`, :meth:`Lumerical.saveelement`
Link
----
https://kb.lumerical.com/en/ref_scripts_loadelement.html
Note
----
Signature autogen'd from: `o.loadelement("name")`
"""
def loadgdsfile(self, **kwargs: Any) -> Any:
"""
Loads a gds file to a layer builder object. The command only functions
properly when a layer builder object is included in the simulation and
is selected.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loadgdsfile("gds_example.gds") | Loads the gds file named |
| | "gds_example" to the layer builder |
| | object. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addlayerbuilder`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`, :meth:`Lumerical.addlayer`, :meth:`Lumerical.getcelllist`, :meth:`Lumerical.getlayerlist`, :meth:`Lumerical.setlayer`
Link
----
https://kb.lumerical.com/en/ref_scripts_loadgdsfile.html
Note
----
Signature autogen'd from: `o.loadgdsfile()`
"""
@overload
def loadsweep(self, **kwargs: Any) -> Any: ...
@overload
def loadsweep(self, name: str, **kwargs: Any) -> Any: ...
def loadsweep(self, *args: Any, **kwargs: Any) -> Any:
"""
Loads the sweep object with the previously generated sweep result.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.loadsweep() | Loads previously generated sweep |
| | result to all the sweep objects in |
| | simulation. |
+--------------------------------------+--------------------------------------+
| o.loadsweep("name") | Loads previously generated sweep |
| | result to the specified sweep |
| | objects in simulation. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.getdata`, :meth:`Lumerical.runsweep`, :meth:`Lumerical.havesweepdata`, :meth:`Lumerical.savedata`, :meth:`Lumerical.getsweepresult`, :meth:`Lumerical.savesweep`
Link
----
https://kb.lumerical.com/en/ref_scripts_loadsweep.html
Note
----
Signature autogen'd from: `o.loadsweep())`, `o.loadsweep("name")`
"""
def log(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the natural logarithm function. Input can be complex or
negative.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.log(x) | The natural logarithm of x. Input |
| | can be complex or negative. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.log10`, :meth:`Lumerical.exp`
Link
----
https://kb.lumerical.com/en/ref_scripts_log.html
Note
----
Signature autogen'd from: `o.log(x)`
"""
def log10(self, x: float, **kwargs: Any) -> Any:
"""
Calculates the base 10 logarithm function. Input can be complex or
negative.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.log10(x) | The base 10 logarithm of x. Input |
| | can be complex or negative. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.log`
Link
----
https://kb.lumerical.com/en/ref_scripts_log10.html
Note
----
Signature autogen'd from: `o.log10(x)`
"""
def logmessage(self, **kwargs: Any) -> Any:
"""
This function sends messages from scripted elements to the INTERCONNECT
output window.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.logmessage() | This function sends messages from |
| | scripted elements to the |
| | INTERCONNECT output window. It is |
| | specially useful to debug scripted |
| | elements. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.~~~~~~~~`
Link
----
https://kb.lumerical.com/en/ref_scripts_logmessage.html
Note
----
Signature autogen'd from: `o.logmessage())`
"""
def lognrnd(self, mean: Any, stddev: Any, **kwargs: Any) -> Any:
"""
Generates a log-normal distributed random number. In order to reset the
generator seed use the command randreset.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lognrnd (mean,stddev) | Generates a lognormal distributed |
| | random number with user defined mean |
| | value and standard deviation. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.randreset`, :meth:`Lumerical.randn`, :meth:`Lumerical.histc`
Link
----
https://kb.lumerical.com/en/ref_scripts_lognrnd.html
Note
----
Signature autogen'd from: `o.lognrnd(mean,stddev)`
"""
def lookupappend(self, filename: str, table: Any, design: Any, extracted: Any, **kwargs: Any) -> Any:
"""
Inserts a new association into an existing lookup table.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.lookupappend("filename", "table", | Inserts a new association into an |
| design, "extracted") | existing lookup table. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupappend.html
Note
----
Signature autogen'd from: `o.lookupappend("filename", "table", design, "extracted")`
"""
def lookupclose(self, filename: str, **kwargs: Any) -> Any:
"""
Closes a lookup table file previously created with a lookupopen command.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.lookupclose ("filename") | Closes a file previously created |
| | with a lookupopen command. This |
| | command is required in order to |
| | close any file open by lookupopen. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupclose.html
Note
----
Signature autogen'd from: `o.lookupclose("filename")`
"""
def lookupopen(self, filename: str, table: Any, **kwargs: Any) -> Any:
"""
Opens a file to write a lookup table.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.lookupopen ("filename","table") | Opens a file to write a lookup |
| | table. This command is required |
| | before any calls to lookupwrite can |
| | be made. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupopen.html
Note
----
Signature autogen'd from: `o.lookupopen("filename","table")`
"""
@overload
def lookupread(self, filename: str, table: Any, design: Any, **kwargs: Any) -> Any: ...
@overload
def lookupread(self, filename: str, **kwargs: Any) -> Any: ...
def lookupread(self, *args: Any, **kwargs: Any) -> Any:
"""
Finds the nearest extracted value from a file containing a lookup table
of design and extracted parameters.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lookupread | Finds the nearest extracted value |
| ("filename","table",design,"extracte | from a file containing a lookup |
| d") | table of design and extracted |
| | parameters. Parameter table is the |
| | name of the lookup table located |
| | inside the file, design is a cell |
| | containing multiple structures that |
| | define the design parameters to |
| | search, and extracted is the name of |
| | the parameter to be extracted. It |
| | will return the value located at the |
| | nearest design parameters. |
+--------------------------------------+--------------------------------------+
| out = o.lookupread ("filename") | Returns a script object, in this |
| | case a cell array containing all the |
| | contents of the xml file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupread.html
Note
----
Signature autogen'd from: `o.lookupread("filename","table",design,"extracte d")`, `o.lookupread("filename")`
"""
def lookupreadnportsparameter(self, filename: str, table: Any, design: Any, **kwargs: Any) -> Any:
"""
Returns an interpolated s-parameter cell from a file containing a lookup
table of design and extracted parameters.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lookupreadnportsparameter | Returns an interpolated s-parameter |
| ("filename","table",design,"extracte | cell from a file containing a lookup |
| d") | table of design and extracted |
| | parameters. Parameter table is the |
| | name of the lookup table located |
| | inside the file, design is a cell |
| | containing multiple structures that |
| | define the design parameters to |
| | search, and extracted is the name of |
| | the parameter to be extracted. |
| | S-parameter file format must be |
| | compatible with the ‘Optical N Port |
| | S-Parameter’. |
| | |
| | Notes: The s-parameter files in the |
| | lookup-table should be in exact the |
| | same format. The s-parameter files |
| | shouldn't contain any header. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupreadnportsparameter.html
Note
----
Signature autogen'd from: `o.lookupreadnportsparameter("filename","table",design,"extracte d")`
"""
def lookupreadtable(self, filename: str, table: Any, design: Any, **kwargs: Any) -> Any:
"""
Returns an interpolated matrix from a file containing a lookup table of
design and extracted parameters.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lookupreadtable | Returns an interpolated matrix from |
| ("filename","table",design,"extracte | a file containing a lookup table of |
| d") | design and extracted parameters. |
| | Parameter table is the name of the |
| | lookup table located inside the |
| | file, design is a cell containing |
| | multiple structures that define the |
| | design parameters to search, and |
| | extracted is the name of the |
| | parameter to be extracted. It will |
| | return a matrix that contains |
| | multiple columns. The first column |
| | is the independent variable. e.g. |
| | frequency dependent transmission |
| | values. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupreadtable.html
Note
----
Signature autogen'd from: `o.lookupreadtable("filename","table",design,"extracte d")`
"""
def lookupreadvalue(self, filename: str, table: Any, design: Any, **kwargs: Any) -> Any:
"""
Finds the value from a file containing a lookup table of design and
extracted parameters.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lookupreadvalue | Find the value from a file |
| ("filename","table",design,"extracte | containing a lookup table of design |
| d") | and extracted parameters. Parameter |
| | table is the name of the lookup |
| | table located inside the file, |
| | design is a cell containing multiple |
| | structures that define the design |
| | parameters to search, and extracted |
| | is the name of the parameter to be |
| | extracted. It will return the value |
| | is interpolated at the design |
| | parameters. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupwrite`, :meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupreadvalue.html
Note
----
Signature autogen'd from: `o.lookupreadvalue("filename","table",design,"extracte d")`
"""
@overload
def lookupwrite(self, filename: str, table: Any, design: Any, extracted: Any, **kwargs: Any) -> Any: ...
@overload
def lookupwrite(self, filename: str, **kwargs: Any) -> Any: ...
def lookupwrite(self, *args: Any, **kwargs: Any) -> Any:
"""
Writes to a lookup table file with a design and an extracted parameter
pair. This function must be called after lookupopen and before
lookupclose.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.lookupwrite | Writes to a lookup table with a |
| ("filename","table",design, | design and an extracted parameter |
| "extracted") | pair. The design and extracted |
| | parameters are cells that contain |
| | multiple structures, allowing for |
| | mapping between multiple design and |
| | extracted parameters. This function |
| | can be called multiple times, for |
| | each call the design and extracted |
| | parameters will be appended to the |
| | current file. This function must be |
| | called after lookupopen and before |
| | lookupclose. |
+--------------------------------------+--------------------------------------+
| out = o.lookupwrite ("filename") | Takes a script object, in this case |
| | a cell array containing all the |
| | contents of the xml file, and save |
| | it to a file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.lookupclose`, :meth:`Lumerical.lookupopen`, :meth:`Lumerical.lookupread`, :meth:`Lumerical.lookupreadtable`, :meth:`Lumerical.lookupreadvalue`, :meth:`Lumerical.lookupreadnportsparameter`, :meth:`Lumerical.lookupappend`, :meth:`Lumerical.insert`
Link
----
https://kb.lumerical.com/en/ref_scripts_lookupwrite.html
Note
----
Signature autogen'd from: `o.lookupwrite("filename","table",design, "extracted")`, `o.lookupwrite("filename")`
"""
def lower(self, string: str, **kwargs: Any) -> Any:
"""
Converts all the characters in a string to lower case.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.lower(string) | Converts a string to lower case. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.length`, :meth:`Lumerical.substring`, :meth:`Lumerical.findstring`, :meth:`Lumerical.replace`, :meth:`Lumerical.str2num`, :meth:`Lumerical.num2str`, :meth:`Lumerical.splitstring`, :meth:`Lumerical.upper`, :meth:`Lumerical.toscript`
Link
----
https://kb.lumerical.com/en/ref_scripts_lower.html
Note
----
Signature autogen'd from: `o.lower(string)`
"""
@overload
def ls(self, **kwargs: Any) -> Any: ...
@overload
def ls(self, directory: Any, **kwargs: Any) -> Any: ...
def ls(self, *args: Any, **kwargs: Any) -> Any:
"""
Lists files in a directory. Files other than Lumerical project files are
also listed.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = dir; out = o.ls() | The output is a string. |
| | |
| | Use ?dir; to write the value to the |
| | screen. |
+--------------------------------------+--------------------------------------+
| out = dir("directory") out = | Lists the files in the specified |
| o.ls("directory") | directory. For example, |
| | ?ls("C:\\Downloads"); |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.load`, :meth:`Lumerical.splitstring`
Link
----
https://kb.lumerical.com/en/ref_scripts_ls.html
Note
----
Signature autogen'd from: `o.ls())`, `o.ls("directory")`
"""
@overload
def mapfind(self, filename: str, x: float, y: float, **kwargs: Any) -> float: ...
@overload
def mapfind(self, filename: str, x: float, y: float, z: float, **kwargs: Any) -> float: ...
@overload
def mapfind(self, filename: str, x: float, y: float, z: float, w: float, **kwargs: Any) -> float: ...
def mapfind(self, *args: Any, **kwargs: Any) -> float:
"""
Returns the nearest value from a file containing a map of values. It
returns the string value located at the specified nearest point.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| out = o.mapfind (filename,x,y) | Find the nearest value from a file |
| | containing a map of values. It |
| | returns the string value located at |
| | the nearest point (x,y). |
+--------------------------------------+--------------------------------------+
| out = o.mapfind (filename,x,y,z) | Find the nearest value from a file |
| | containing a map of values. It |
| | returns the string value located at |
| | the nearest point (x,y,z). |
+--------------------------------------+--------------------------------------+
| out = o.mapfind (filename,x,y,z,w) | Find the nearest value from a file |
| | containing a map of values. It |
| | returns the string value located at |
| | the nearest point (x,y,z,w). |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.read`, :meth:`Lumerical.readdata`
Link
----
https://kb.lumerical.com/en/ref_scripts_mapfind.html
Note
----
Signature autogen'd from: `o.mapfind(filename,x,y)`, `o.mapfind(filename,x,y,z)`, `o.mapfind(filename,x,y,z,w)`
"""
def materialexists(self, materialname: str, **kwargs: Any) -> Any:
"""
Returns a boolean indicating whether or not a material exists in the
material database.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.materialexists("materialname") | Returns 1 if the material named |
| | "materialname" is present in the |
| | material database. Otherwise return |
| | 0. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.addmaterial`, :meth:`Lumerical.deletematerial`, :meth:`Lumerical.setmaterial`, :meth:`Lumerical.getmaterial`, :meth:`Lumerical.copymaterial`
Link
----
https://kb.lumerical.com/en/ref_scripts_materialexists.html
Note
----
Signature autogen'd from: `o.materialexists("materialname")`
"""
def matlab(self, **kwargs: Any) -> Any:
"""
Runs a MATLAB command from the Lumerical script prompt. This gives
access to extended mathematical and visualization functionality from the
Lumerical script environment. If the MATLAB script integration is not
enabled, this function will return an error.
The first time a MATLAB function (matlab, matlabget or matlabput) is
called, a MATLAB session will be started and a connection will be
established with the Lumerical scripting environment. Once this
connection is established, MATLAB commands can be run using the matlab
function. It is important to understand that the MATLAB and the
Lumerical script variable workspaces are completely separate and
independent. A MATLAB command cannot act on a variable defined in the
Lumerical workspace, and vice-versa. Variables must be passed between
the workspaces using the matlabget and matlabput functions. At any time
you may examine the MATLAB workspace or interact with the MATLAB
environment by typing commands at the MATLAB script prompt. The working
directory of the MATLAB instance is always set to match the working
directory of the Lumerical application.
The output from the MATLAB commands will be printed at the Lumerical
script prompt. One limitation of the matlab function is that no error
reporting is provided to either the Lumerical script prompt or the
MATLAB prompt. MATLAB commands should be tested by typing them directly
into the MATLAB prompt before they are called from a Lumerical script.
The output buffer length is roughly 1e5 characters. Additional output
will be truncated.
When you have a long sequence of MATLAB commands, you may find it more
convenient to save them in a MATLAB m-file. Then, you can simply call
the m-file by running a single command.
+--------------------------------------------------------------------------+
| See MATLAB integration setup for installation and configuration |
| instructions. Additional tips (particularly for plotting data in |
| Matlab) can be found in the MATLAB section of the online help. |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.matlab("command") | command: a string containing one or |
| | more valid MATLAB commands. |
+--------------------------------------+--------------------------------------+
| o.matlab(" command_1 command_2 ") | Multi-line strings can be used in |
| | script files to contain a block of |
| | MATLAB commands. Multi-line strings |
| | are not supported at the script |
| | command prompt. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matlabget`, :meth:`Lumerical.matlabput`
Link
----
https://kb.lumerical.com/en/ref_scripts_matlab.html
Note
----
Signature autogen'd from: `o.matlab()`
"""
def matlabget(self, **kwargs: Any) -> Any:
"""
Copies a variable from the MATLAB workspace to the script variable
workspace. The resulting variable will have the same name as the MATLAB
variable, and will overwrite any existing variable with the same name.
If the variable does not exist in MATLAB, the command will return an
error. For more information, please see the matlab command description.
+--------------------------------------------------------------------------+
| Note: Matlab script integration must be enabled in order to use this |
| command. For more information on how to set this up see the Matlab |
| script integration page. |
+--------------------------------------------------------------------------+
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.matlabget(var1, var2,...varN) | The arguments to this command are |
| | one or more variable names that |
| | refer to variables in the MATLAB |
| | workspace. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matlab`, :meth:`Lumerical.matlabput`
Link
----
https://kb.lumerical.com/en/ref_scripts_matlabget.html
Note
----
Signature autogen'd from: `o.matlabget()`
"""
def matlabload(self, filename: str, **kwargs: Any) -> Any:
"""
Load Matlab .mat data into workspace
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.matlabload("filename") | Load to the workspace the data of |
| | the specified .mat file. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matlabput`, :meth:`Lumerical.matlabsavelegacy`, :meth:`Lumerical.matlabsave`
Link
----
https://kb.lumerical.com/en/ref_scripts_matlabload.html
Note
----
Signature autogen'd from: `o.matlabload("filename")`
"""
def matlabput(self, var1: Any, var2: Any, **kwargs: Any) -> Any:
"""
Copies a variable from Lumerical's Script Workspace to the MATLAB
workspace. The resulting variable in the MATLAB workspace will have the
same name as in Lumerical, and will overwrite any existing variable with
the same name. If the variable does not exist in the Lumerical
workspace, the command will return an error.
For more information, please see the matlab command description.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.matlabput(var1, var2,...varN) | The arguments to this command are |
| | one or more variable names that |
| | exist in the Lumerical variable |
| | workspace. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
See Also
--------
:meth:`Lumerical.matlab`, :meth:`Lumerical.matlabget`
Link
----
https://kb.lumerical.com/en/ref_scripts_matlabput.html
Note
----
Signature autogen'd from: `o.matlabput(var1, var2,...varN)`
"""
@overload
def matlabsave(self, filename: str, **kwargs: Any) -> Any: ...
@overload
def matlabsave(self, filename: str, var1: Any, varN: Any, **kwargs: Any) -> Any: ...
def matlabsave(self, *args: Any, **kwargs: Any) -> Any:
"""
Save workspace data to Matlab .mat data files.
+--------------------------------------+--------------------------------------+
| Syntax | Description |
+--------------------------------------+--------------------------------------+
| o.matlabsave("") | Save all workspace variables to a |
| | .mat file that has the same name as |
| | the simulation file. |
| | |
| | This function does not return any |
| | data. |
+--------------------------------------+--------------------------------------+
| o.matlabsave("filename") | Saves all workspace variables to the |
| | specified .mat file. |
+--------------------------------------+---------------------
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment