# Space-Time Modulation
In active nanophotonic devices such as electro-optical modulators, materials can be modulated in both space and time. In Tidy3D, space-time modulations can be applied to a regular Medium, or a dispersive medium such as Lorentz, or even a spatially varying medium such as CustomMedium.
To apply spatio-temporal modulations to permittivity and/or electric conductivity, you have to check the Space-Time Modulation option in medium definition. Then, expand the Permittivity and/or Conductivity menus to set the modulation parameters.
The full space-time modulation is .
# Time Modulation
Modulation with a harmonic time dependence. If you include modulation to both permittivity and electrical conductivity, the same time modulation parameters are applied.
The time modulation is given by .
freq0 (): Modulation frequency.
Type: floating-point number
- Unit: Hz (default) or THz
- Constraint: greater than or equal 0
- Required field
amplitude (): Real-valued maximum amplitude of the time dependence.
Type: floating-point number
- Unit: It takes the unit of whatever is being modulated.
- Constraint: greater than or equal 0
- Default: 1
phase (): Phase shift of the time dependence.
Type: floating-point number
- Unit: rad or degree (default)
- Default: 0
# Space Modulation
The modulation profile with a uniform or user-supplied spatial distribution of amplitude and phase. You can set different space modulation parameters to permittivity and electrical conductivity.
The space modulation is given by .
amplitude (): Amplitude of space modulation. To obtain a uniform space modulation throughout the medium, set a real value in the edit box. Or upload a user-supplied amplitude distribution HDF5 dataset.
Type: floating-point number
- Unit: It takes the unit of whatever is being modulated.
- Constraint: greater than or equal 0
- Default: 1
To generate a
HDF5dataset in a correct shape, create a SpaceModulation (opens new window) object using the Python interface and use the to_hdf5(filename) (opens new window) method.
phase (): Phase of space modulation. To obtain a uniform phase throughout the medium, set a real value in the edit box. Or upload a user-supplied phase distribution HDF5 dataset.
Type: floating-point number
- Unit: rad or degree (default)
- Default: 0
To generate a
HDF5dataset in a correct shape, create a SpaceModulation (opens new window) object using the Python interface and use the to_hdf5(filename) (opens new window) method.
interp_method: Interpolation method used to obtain the values at spatial locations on the Yee grid.
Options:
- nearest (default)
- linear
# Notes
- Currently, these mediums DO NOT support space-time modulation:
- Make
allow_gain=Trueto set space-time modulation for dispersive medium. - Nonlinearity and Space-Time Modulation are not simultaneously supported.
- The value of must be higher than medium permittivity.