FDTD product reference manual-Material properties

Material Database in FDTD and MODE

FDTD MODE

ref_FDTD_matDB_database.png

The Material Database allows you to manage (create, modify, delete) the materials that are available for use in your simulations. The Material Database window can be opened by clicking the Materials button at the top left of the FDTD toolbar:

alt

The Material Database allows for the definition of complex materials using experimental data or parametrized models. The Material Database stores the material data to be used in the simulation. It also provides an interface to change material properties like color, mesh order, and model parameters. Experimental data can also be loaded into the database. To view the refractive index as a function of frequency, use the Material Explorer. 

Default Material Database

The default optical material database includes refractive index data for a number of common materials. When creating a new simulation, the default database will be loaded. The default materials cannot be edited directly. However, if you wish to modify one of the default materials, a copy of the material needs to be created, which can then be edited.

Materials in the Default Material Database

The following materials are included in the default material database.

Handbook of Optical Constants of Solids I - III by E. Palik
MaterialReference

Ag (Silver)

Handbook of Optical Constants of Solids I - III by E. Palik

Al (Aluminum)

Handbook of Optical Constants of Solids I - III by E. Palik

Al2O3 (Aluminum Oxide)

Handbook of Optical Constants of Solids I - III by E. Palik

Au (Gold)

Handbook of Optical Constants of Solids I - III by E. Palik

Cr (Chromium)

Handbook of Optical Constants of Solids I - III by E. Palik

Cu (Copper)

Handbook of Optical Constants of Solids I - III by E. Palik

Fe (Iron)

Handbook of Optical Constants of Solids I - III by E. Palik

GaAs (Gallium Arsenide)

Handbook of Optical Constants of Solids I - III by E. Palik

Ge (Germanium)

Handbook of Optical Constants of Solids I - III by E. Palik

H2O (Water)

Handbook of Optical Constants of Solids I - III by E. Palik

In (Indium)

Handbook of Optical Constants of Solids I - III by E. Palik

InAs (Indium Arsenide)

Handbook of Optical Constants of Solids I - III by E. Palik

InP (Indium Phosphide)

Handbook of Optical Constants of Solids I - III by E. Palik

Ni (Nickel)

Handbook of Optical Constants of Solids I - III by E. Palik

Pd (Palladium)

Handbook of Optical Constants of Solids I - III by E. Palik

Pt (Platinum)

Handbook of Optical Constants of Solids I - III by E. Palik

Rh (Rhodium)

Handbook of Optical Constants of Solids I - III by E. Palik

Si (Silicon)

Handbook of Optical Constants of Solids I - III by E. Palik

SiO2 (Glass)

Handbook of Optical Constants of Solids I - III by E. Palik

Sn (Tin)

Handbook of Optical Constants of Solids I - III by E. Palik

Ti (Titanium)

Handbook of Optical Constants of Solids I - III by E. Palik

TiN (Titanium Nitride)

Handbook of Optical Constants of Solids I - III by E. Palik

W (Tungsten)

Handbook of Optical Constants of Solids I - III by E. Palik

CRC Handbook of Chemistry & Physics
MaterialReference

Ag (Silver)

Hagemann, H. J., Gudat, W., and Kunz, C., J. Opt. Soc. Am., 65, 742, 1975

Al (Aluminum)

Shiles, E., Sasaki, T., Inokuti, M., and Smith, D. Y., Phys. Rev. Sect. B, 22, 1612, 1980

Au (Gold)

Olson, C. G., Lynch, D. W., and Weaver, J. H., unpublished

Cr (Chromium)

Bos, L. W., and Lynch, D. W., Phys. Rev. Sect. B, 2, 4567, 1970

Cu (Copper)

Hagemann, H. J., Gudat, W., and Kunz, C., J. Opt. Soc. Am., 65, 742, 1975

Fe (Iron)

Weaver, J. H., Colavita, E., Lynch, D. W., and Rosei, R., Phys. Rev. Sect. B, 19, 3850, 1979

Ge (Germanium)

Potter, R. F., in HOC-I, p.465

Ni (Nickel)

Lynch, D. W., Rosei, R., and Weaver, J. H., Solid State Commun., 9, 2195, 1971

Ta (Tantalum)

Weaver, J. H., Lynch, D. W., and Olson, D. G., Phys. Rev. Sect. B, 10, 501, 1973

Ti (Titanium)

Johnson, P. B., and Christy, R. W., Phys. Rev. Sect. B, 9, 5056, 1974

V (Vanadium)

Olson, C. G., Lynch, D. W., and Weaver, J. H., unpublished

W (Tungsten)

Weaver, J. H., Lynch, D. W., and Olson, C. G., Phys. Rev. Sect. B, 12, 1293, 1975

Johnson and Christy
MaterialReference

Ag (Silver)

Johnson and Christy, "Optical Constants of Noble metals", Phys Rev B, 6, 4370, (1972)

Au (Gold)

Johnson and Christy, "Optical Constants of Noble metals", Phys Rev B, 6, 4370, (1972)

Liquid Crystal Materials
MaterialReference

5CB - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

5PCH - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

6241-000 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

E44 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

E7 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

MLC-6608 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

MLC-9200-000 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

MLC-9200-100 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

TL-216 - Li

Li, J., "Refractive Indices Of Liquid Crystals And Their Applications In Display And Photonic Devices", Electronic Theses and Dissertations, University of Central Florida, 2004-2019, 4460 (2005)

Other
MaterialReference

Etch

PEC (Perfect Electrical Conductor)

C (graphene) - Falkovsky (mid-IR)

Graphene

Si3N4 (Silicon Nitride) - Phillip

H. R. Philipp. Optical properties of silicon nitride, J. Electrochim. Soc. 120, 295-300 (1973)

Si3N4 (Silicon Nitride) - Kischkat

J. Kischkat et al, Appl. Opt. 51, 6789-6798 (2012)

Si3N4 (Silicon Nitride) - Luke

K. Luke, Y. Okawachi, M. R. E. Lamont, A. L. Gaeta, M. Lipson. Broadband mid-infrared frequency comb generation in a Si3N4 microresonator, Opt. Lett. 40, 4823-4826 (2015)

TiO2 (Titanium Dioxide) - Kischkat

J. Kischkat, S. Peters, B. Gruska, M. Semtsiv, M. Chashnikova, M. Klinkmüller, O. Fedosenko, S. Machulik, A. Aleksandrova, G. Monastyrskyi, Y. Flores, and W. T. Masselink. Mid-infrared optical properties of thin films of aluminum oxide, titanium dioxide, silicon dioxide, aluminum nitride, and silicon nitride, Appl. Opt. 51, 6789-6798 (2012)

TiO2 (Titanium Dioxide) - Sarkar

S. Sarkar, V. Gupta, M. Kumar, J. Schubert, P.T. Probst, J. Joseph, T.A.F. König, Hybridized guided-mode resonances via colloidal plasmonic self-assembled grating, ACS Appl. Mater. Interfaces, 11, 13752-13760 (2019)

TiO2 (Titanium Dioxide) - Siefke

T. Siefke, S. Kroker, K. Pfeiffer, O. Puffky, K. Dietrich, D. Franta, I. Ohlídal, A. Szeghalmi, E.-B. Kley, A. Tünnermann. Materials pushing the application limits of wire grid polarizers further into the deep ultraviolet spectral range, Adv. Opt. Mater. 4, 1780–1786 (2016)

TiO2 (Titanium Dioxide) - Devore

J. R. Devore. Refractive indices of rutile and sphalerite, J. Opt. Soc. Am. 41, 416-419 (1951)

Modifying the Default Material Database

These instructions describe how to create a new Default material database. To modify the default materials that appear when you create a new simulation:

  1. Locate the defaults sub-directory of the installation. By default it will be located at:
  • Windows: C:\Program Files\Lumerical\<version>\defaults
  • Linux: /opt/lumerical/<version>/defaults
  • Mac: /Applications/Lumerical/<version>.app /Contents/Applications/FDTD\ Solutions.app/Contents/Resources/defaults
  1. Copy the default simulation file to your desktop.  Optionally, you may also want to make a backup of this file.
  2. Open the file on your desktop and make all required modifications to the material database in this file. This might include deleting unused materials and creating new materials.
  3. Copy this file back into the defaults sub-directory. This generally requires Administrator access.
  4. Next time you start the product, the updated material database should appear automatically.

Note:

  • Materials currently used in the simulation cannot be deleted. If the material is being used in the current project, a no delete icon

    material_no_delete.png

    will indicate that the material can be modified but not erased. To delete these materials, first modify the simulation so they are not used.
  • The Base Material property is only used for plugin material models.
  • The revert to base material for conformal mesh cells property allows the user to use conformal mesh cells from the base material for plugin materials. For more information, see mesh refinement options and non-linear simulation methodology.

III-V Semiconductor Optical Materials

Optical material data for certain ternary and quaternary III-V semiconductor can be generated from theoretical models using the tool provided on the III-V Semiconductor Optical Material Data Tool page.

III-V Semiconductor Optical Material Data Tool

FDTD MODE DGTD FEEM

Optical material properties for ternary and quaternary III-V semiconductors are not included in the default optical Material Database included with Lumerical FDTD, MODE, DGTD, and FEEM. The script files attached to this page provide a tool for calculating the optical properties of various III-V semiconductors and adding the results into the Material Database in FDTD and MODE or the 'materials' folder in the objects tree in DGTD and FEEM.

The material properties are calculated as a function of composition and wavelength using published theoretical models and are added to the Material Database or the 'materials' folder in the objects tree as Sampled 3D Data materials. Multiple models may be provided for a given material.

This page describes the workflow for adding new III-V materials through a GUI and through script and provides a list of available materials and models along with their corresponding references.

Adding New III-V Materials With the GUI

The attached script files provide a GUI for adding new III-V materials:

GUI_screenshot.png

Note that while this GUI window is open it will not be possible to interact with the other windows, including the main window and plot windows.

To add new III-V materials to the Material Database or the 'materials' folder in the objects tree with the GUI:

  1. Download the attached files (found at the top right of this page).
  2. Run GUI.lsf. The Compound Material Wizard window should appear.
  3. Select a material and model from the Material Database drop-down list.
  4. Set the x and y composition of the material. The y field will have no effect if there is no y in the material model name. Both x and y must be between 0 and 1.
  5. Set start and stop to the start and stop wavelengths of the generated data and set num points to the number of generated data points.
  6. (Optional) Click Visualize to create a plot of the generated material data. The imaginary part of the index will also be plotted if it is included in the model, otherwise only the real part will be plotted.
  7. (Optional) Select Visualize benchmark data instead if available and click Visualize to plot the generated material data along with theoretical or experimental benchmark data. The reference for the benchmark data will be given in the title of the plot. If no benchmark data is available for the selected material a plot will not appear.
  8. Click Add to add the generated model to the Material Database or the 'materials' folder in the objects tree. The name of the generated material will be the name of the material model with the composition appended to the end. If the model doesn’t calculate the imaginary part of the refractive index it is set to zero.
  9. Click Cancel to close the tool.

Note:

  • The material models are only valid in a limited wavelength range. The exact range will depend on the model. A warning will appear if the selected wavelength range is outside the recommended range for the model.
  • The number of data points should be chosen such that there are enough data points to resolve the features in the material data. The default value of 100 should be sufficient in most cases, though a higher value can be used without drastically affecting simulation speed or performance.

Adding New III-V Materials Through Script

A number of custom functions are defined in the attached script files for creating new ternary and quaternary III-V semiconductor materials and adding them to the Material Database or the 'materials' folder in the objects tree. Running the script III_V_index_models.lsf will define these functions, allowing you to use them in your own scripts.

To add new III-V materials with this tool through script:

  1. Make sure the working directory is set to the root directory of the provided files.
  2. Run the script III_V_index_models.lsf. This can be done in a script with the command III_V_index_models; if the script file is in the working directory.
  3. Create the material index values with the getmyindex function.
  4. Add the material with the add_my_material function.

The script file scripted_commands_example_without_GUI.lsf included with this tool provides an example of how to create new materials with this scripted approach.

Function Syntax

The syntax for the script functions getmyindex and add_may_material is described below.

FunctionDescription
getmyindex(material,model,x,freq)

Calculates the refractive index of the chosen material at the provided frequency points.

Inputs are:

  • material (string): The material name, e.g. “Al(x)Ga(1-x)As” or "(Al0.48In0.52As)x(Ga0.47In0.53As)1-x". 
  • model (string): The model name, e.g. “default” or “adachi”. 
  • x (number or matrix): The composition. For materials with only an x composition this should be a single number. For materials with both an x and y composition this should be a matrix with values [x, y].
  • freq (matrix): The frequency points where the material data will be calculated.

Returns a struct with fields:

  • n (matrix): The calculated complex refractive index data as a function of frequency.
  • warning (string): A warning may be included with the returned struct if the selected wavelength range is outside the range of validity for the model.
  • err (string): An error will be included with the returned struct if the provided material/model combination doesn’t exit. In this case, the refractive index will be zero.
add_my_material(name, f, n, color)

Adds the material to the database or the objects tree as a sampled 3D data material. It removes any existing material of the same name. The "color" input is purely for rendering in the UI and has nothing to do with the physical properties of the material. Doesn’t return anything.

Inputs are:

  • name (string): name of the material
  • f (matrix): frequency in Hz
  • n (matrix): complex refractive index
  • color (matrix): the color as [Red, Green, Blue, Alpha].

Available Materials

The following table lists the available materials and their corresponding models provided with this tool:

MaterialModelsNotes

Al(x)Ga(1-x)As

default, adachi

Ga(x)In(1-x)As

default, alam

Al(x)In(1-x)As

default

GaAs(x)P(1-x)

default

Al(x)Ga(1-x)P

default

Al(x)In(1-x)P

default

Ga(x)In(1-x)P

default

Ga(x)In(1-x)As(y)P(1-y)

default

In(1-x-y)Al(x)Ga(y)As

default

Al(x)Ga(y)In(1-x-y)P

default

(Al0.48In0.52As)x(Ga0.47In0.53As)1-x

default, ivanov

Lattice matched to InP

(AlxGa1-x)0.5In0.5P

default, kaneko, kato

Lattice matched to GaAs

In(1-x)Ga(x)As(f(x))P(1-f(x))

default, seifert

Lattice matched to InP. See below for definition of f(x)

.

For a material lattice matched to InP, the material "In(1-x)Ga(x)As(f(x))P(1-f(x))" has a y that depends on the function f(x)

, given in "S. L. Chuang, Physics of Optoelectronic Devices":

y=f(x)=0.4184x0.013x+0.1894

Material Models

The optical index models included in the database are taken from reliable and benchmarked sources cited below. New models can be added upon user request.

default

This model is available for most materials as it is based on interpolation of material properties such as band gap from binaries (for ternaries) and from ternaries (for quaternaries). However, it may not always be the most accurate, so it is recommended to use other models if they are available and only use this model if there are no other models available.

In deciding which model to use the user may also first plot the benchmark data, if available. The model is derived for photon energies up to the band gap and it is usually a good approximation for energies slightly above the band gap, but it should be used with care for photon energies much above the band gap.

Reference: Guden and J. Piprek, "Material parameters for quaternary III-V semiconductors for multilayer mirrors at 1550 nm wavelength", Modelling Simul. Mater. Sci. Eng. 4 (1996) 349–357.

adachi

This model is the same as default, but with slightly different values for some parameters used in the interpolation.

Reference: Adachi, "GaAs, AlAs, and AlxGa1-xAs: Material parameters for use in research and device applications", J. Appl. Phys., 1985, 58, 3, DOI:10.1063/1.336070.

alam

This model is the same as default, but with slightly different values of some parameters used in the interpolation.

Reference: Alam, M. S., Rahman, M. S., Islam, M. R., Bhuiyan, A. G., and Yamada, M., "Refractive Index, Absorption Coefficient, and Photoelastic Constant: Key Parameters of InGaAs Material Relevant to InGaAs-Based Device Performance", 02 July 2007, 2007 IEEE 19th International Conference on Indium Phosphide and Related Materials, DOI:10.1109/ICIPRM.2007.381193.

ivanov

Reference: Ivanov A. V., Kurnosov V. D., Kurnosov K. V., et al., "Refractive indices of solid AlGaInAs solutions", Quantum Electronics 37 (6) 545, 2007, DOI:10.1070/QE2007v037n06ABEH013442.

kaneko

Reference: Kaneko and K. Kishino, "Refractive indices measurement of (GaInP)m/(AlInP)n quasi-quaternaries and GaInP/AlInP multiple quantum wells", J. Appl. Phys., 1994, 76(3): 1809-1818.

kato

Reference: Kato, S. Adachi, H. Nakanishi, and K. Ohtsuka, “Model dielectric function (MDF) for (AlxGa1-x)0.5In0.5P latticed matched to GaAs”, Jpn. J. Appl. Phys., 1994, 33(1R): 186.

seifert

Reference: Seifert and P. Runge, "Revised refractive index and absorption of In1-xGaxAsyP1-y lattice-matched to InP in transparent and absorption IR-region", Opt. Mater., 2016, 6(2): 629-639.

Models With Imaginary Refractive Index

Some models include the imaginary part of index, but not all. The models with nonzero imaginary parts are: "(AlxGa1-x)0.5In0.5P::kato" and "In(1-x)Ga(x)As(f(x))P(1-f(x))::seifert".

The models without imaginary parts are typically created for photon energies up to and around the band gap, where the imaginary part is still small. Some application areas for these models are:

  • Simulation of light generation devices. These devices operate around the band gap and the imaginary part of index is dominated by gain (or exciton absorption) and free carrier absorption, which are calculated separately from the bulk index model. Here, you can successfully use these index models to calculate the effective and group index and the mode confinement factor. For example, look at step 1 in this edge emitting laser application: example Self-heating in AlGaInAs-InP multi-quantum well (MQW) laser – Lumerical Support, or this electro-absorption modulator example: GaAs-AlGaAs Electro Absorption Modulator – Lumerical Support.
  • Simulations for photon energies up to the band gap, or best-case results for higher photon energies.

Using the Material Explorer to view and adjust optical material models

FDTD MODE DGTD FEEM

ref_FDTD_matDB_explorer.png

The Material Explorer is used to check the material fits that will be used in the simulation. This is most important when using the Sampled data material type, although it can be used to check material properties for all material types. If the fit for a Sampled data material is not good enough, the Tolerance and Max coefficient properties and the wavelength range of the source can be edited in the Material Explorer.

Material settings

PropertyDescription

Material

Select the material to check.

Axis

If the material is anisotropic, select the axis to check.

Fit Tolerance

The Tolerance setting of the material. Only applies to fitted materials.

Max Coefficients

The Max coefficients setting of the material. Only applies to fitted materials.

Show/Hide Advanced

Show or hide the advanced options.

Imaginary weight

Increasing the weight increases the importance of the imaginary part of the permittivity when calculating a fit. A weight of 1 gives equal weight to the imaginary and real parts of the permittivity.

Make fit passive

Check to prevent the material fit from having gain at any frequency. By default this is checked in order to prevent diverging simulations.

Improve stability

Check to restrict the range of coefficients in the material fit in order to reduce numerical instabilities which cause simulations to diverge.

Specify fit range

Decouple the bandwidth used to generate the material fit and the source bandwidth.

Bandwidth range of fit

The frequency/wavelength range used for the fit if specify fit range is selected. The bandwidth of the fit should cover the simulation bandwidth.

Save fit parameters

Update the Material Database with the new Tolerance and Max coefficients values.

Simulation bandwidth settings

PropertyDescription

Bandwidth units

Specify range in units of wavelength or frequency. Specify range by Min/Max or Center/Span.

Bandwidth range

The frequency/wavelength range of interest. By default, this is the source limits.

Save source bandwidth

Update the source limits with these values.

View Settings

PropertyDescription

Vertical axis

Plot permittivity or index

Show material data

Show the experimental data on the plot windows

Standard view

Plot the fit over the specified bandwidth range

Extended view range

Plot the fit over a wider bandwidth range

Specify view range

Specify the range to plot the fit

Plot in new window

Plots fit and data in a new window

Fit and plot buttons

PropertyDescription

Plot in new window

Plot data in a new window

Fit and Plot

Calculate and plot the material fit

Fit analysis

PropertyDescription

Standard RMS error

The RMS error of the fit. The fitting algorithm will use the minimum number of coefficients required to achieve an RMS error less than the value specified by the Tolerance property of that material. If Imaginary Weight =1, then Standard RMS = Weighted RMS. If Imaginary Weight ≠ 1, then refer to the Weighted RMS error below.

Weighted RMS error

The weighted RMS error of the fit, calculated using the Imaginary Weight property of the material. The fitting algorithm will use the minimum number of coefficients required to achieve a weighted RMS error less than the value specified by the Tolerance property of the material.

Number of coefficients

The number of coefficients used in the fit.

Using the Material Explorer with varFDTD 

When using the varFDTD solver, the Material Explorer will show the material properties of all the generated effective materials (ie. the core material as well as all of the test materials).

The effective materials are generated using the methods described in 2.5D varFDTD Physics. If BROADBAND is selected for the simulation bandwidth (under the Effective index tab), a sampled dataset of effective material data will be generated over the specified bandwidth (ie. the "Material data" shown above), which will then be fitted using the multi-coefficient material model (ie. the "Propagator model" shown above). Alternatively, if NARROWBAND is selected, an (n,k) material will be generated for each at the specified frequency. Note that the effective material properties shown here include both contributions from the original material dispersion of the 3D structure, as well as the waveguide dispersion. This is important for obtaining accurate broadband simulation results.

 Unlike the Material Explorer for other types of solvers, the SPECIFY FIT RANGE section is not available for the Propagator. This is because the slab mode data is always generated for the full bandwidth range of the source, and not outside this range.

Tips for improving the quality of optical material fits

FDTD MODE

improving_fitting.PNG

This section describes how to modify the automatically generated material fits of Sampled Data materials. 

The Sampled data material model allows materials to be defined based on experimental n,k vs frequency data. However, the experimental data cannot be used directly in the simulation. Instead, an analytic material model based on the experimental data is automatically generated and will be used in the simulation. Before simulating, you should check the model (fit) with the Material Explorer. If the fit is not very good, some fitting parameters can be adjusted.

Fit Parameters

Fit tolerance

Tolerance specifies the target RMS error between the experimental data and the calculated model. The fitting routine attempts to find a model that gives an RMS error below the tolerance value. The fitting routine will use the fewest number of model coefficients that give an RMS error below the tolerance.

In most cases, setting the fit tolerance to zero is recommended, which means the fitting routines will select the best fit that can be found.

Max coefficients

Max coefficients sets the maximum number of coefficients allowed in the model. More coefficients allow more complicated features to be fit, but at the expense of more memory and simulation time. The fitting routine will use the fewest number of coefficients that give an RMS error below the tolerance. If the RMS error cannot be achieved, then the model with the smallest RMS error will be used.

Adjusting Max coefficients

By default, a Sampled data material has a tolerance of 0.1 and max coefficients of 6. In many cases, these are reasonable values. However, it is always a good practice to check the fit before running the simulation. Using excessive number of coefficients can result in the fitting being too sensitive to the noise present in the data, while having too few coefficients will result in significant errors in the fit. The following examples show an example of each case.

Too few coefficients

usr_pt_fit_4_coefficients.jpg

   

usr_pt_fit_5_coefficients.jpg

 The left image is the fit of Pt (Platinum) with 4 coefficients; its rms error is 8.04. The right image uses 5 coefficients and the rms error is 3.67. The additional coefficient clearly improves the fit, as shown in the plots, and lowers the rms error value.

 Too many coefficients

usr_ag_fit_4_coefficients.jpg

   

usr_ag_fit_7_coefficients.jpg

 

The left image is the fit of Ag (Silver) with 4 coefficients; its rms error is 0.14. The right image uses 7 coefficients and the rms error is 0.11.

 In this case, even though more coefficients has lowered the rms error, the fit 'looks' worse due to the feature at 0.435 um. The material properties at this wavelength will have a large error when 7 coefficients are used. In this case, the 4 coefficient is probably the better fit.

Advanced Settings

imaginary weight

Typically, the fitting routine gives equal weight to fitting the real and imaginary parts of the permittivity. Use the Imaginary weight parameter to give more or less weight (consideration) to the imaginary part of the permittivity. A value of 10 gives 10 times more consideration to the imaginary part, while 0.1 gives 10 times more consideration to the real part. This parameter is most useful when the real part is much larger or smaller than the imaginary part, and it is important to get a better fit to the smaller part.

make fit passive

The automatic fitting routine restricts the range of coefficients used in the material model so that the fit does not have any gain if the imported material data does not have gain. Uncheck 'make fit passive' to allow material models with gain. Take care using this option since even if you introduce gain far from the simulation bandwidth, it is possible to obtain diverging fields.

improve stability

Restrict the range of coefficients in the material model in order to minimize numerical instabilities which can cause simulations to diverge. By default, this is selected to make the simulation more stable. Unselecting this option might give a better fit, but the model is more likely to be unstable and the simulation might diverge. Reducing the dt stability factor can sometimes fix this type of divergence.

specify fit range and Bandwidth range of fit

Decouple the bandwidth used to generate the material fit from the source bandwidth. Use this option to specify the frequency/wavelength range to be used by the fitting algorithm, rather than using the frequency range of the source.

Discontinuity and noise in experimental data

Noise or other errors in experimental data can make the automatic fitting difficult. In these cases, the fitting might be poor. One solution is to edit the data so that a reasonable fit can be generated. If the data was imported from a text file, simply edit your text file and import data again as if it were a new material. Otherwise, edit the data directly in the material database. If you intend to edit any of the predefined materials in the material database that came with the Lumerical Solutions installation, you have to make a copy of the original materials. The predefined materials cannot be changed. For more info, please visit Material Database and Creating sampled data materials.

 

Standard optical permittivity material models in FDTD and MODE

FDTD MODE

This section describes the basic permittivity (or refractive index) material models supported by the Material Database. Model parameters can be edited in the Material property panel of the Material Database window.

Sampled 3D data

The Sampled data model is used to import experimental material data. The experimental data can be imported from a text file with the Import data button. This method can be used to create a lossless material.

There are two types of sampled data models available: Sampled 3D data and Sampled 2D data. Sampled 2D data can be used for importing the surface conductivity data from 2D materials such as graphene. For more information about the Sampled 2D data material, see  Material conductivity models

Note: The Sampled data material definition uses an automatic fitting routine to generate a multi-coefficient material model of the experimental data over the frequency range specified by the source. The fits can be checked and adjusted in the Material Explorer.

  • TOLERANCE: The desired RMS error between the permittivity of the experimental data and the material fit. The fitting routine will use the least number of coefficients that produce a fit with an RMS error less than the tolerance.
  • MAX COEFFICIENTS: The maximum number of coefficients allowed to be used in the material fit. More coefficients can produce a more accurate fit, but will make the simulation slower.

 The following advanced options can be set in the Material Explorer: 

  • MAKE FIT PASSIVE: Set to be true to prevent the fit from having gain at any frequency. By default this is true in order to prevent diverging simulations.
  • IMPROVE STABILITY: If this setting is true, the fitting routine restricts the range of coefficients in the fit in order to reduce numerical instabilities which cause simulations to diverge.
  • IMAGINARY WEIGHT: Increasing the weight increases the importance of the imaginary part of the permittivity when calculating a fit. A weight of 1 gives equal weight to the imaginary and real parts of the permittivity.
  • SPECIFY FIT RANGE: Set to true to decouple the bandwidth used to generate the material fit and the source bandwidth. This option is used in parameter sweeps where the source frequency is changed, and where it is important to keep the material parameters constant over the whole parameter sweep. The fit range should cover the simulation bandwidth.
  • BANDWIDTH RANGE: Bandwidth to be used for the fit when Specify Fit Range is true.

Examples and more information

Creating sampled data materialsChecking material fits with the material explorer

Dielectric

The Dielectric model is used to create a material with a constant real index. This material will have the specified index at all frequencies (non-dispersive). 

  • REFRACTIVE INDEX: The refractive index of the material. Must be >= 1.

(n,k) material

The (n,k) material model is used to create a material with a specific value of n and k at a single frequency. 

  • REFRACTIVE INDEX: Real part of the index at the center frequency of the simulation. Must be > 0.
  • IMAGINARY REFRACTIVE INDEX: Imaginary part of the index at the center frequency of the simulation. Positive values correspond to loss, negative values will produce gain.

Examples and more information

n,k material modelChecking material fits with the material explorer 

NOTE: Single frequency simulations only!

This type of material model should only be used for single frequency simulations. The implementation of the (n,k) material model is such that the material properties will only be correct at the center frequency of the simulation.

Conductive 3D

The Conductive model is used to create a material with the the following relative permittivity.     

εtotal(f)=ε+iσ2π⋅fε0

  • ε
  • : permittivity
  • σ
  • : conductivity in units of (Ωm)-1 

Note: Comparison with PEC

As the conductivity becomes very large, the performance of this model approaches the ideal PEC (Perfect Electrical Conductor) model described below.

Plasma (Drude)

The Plasma model is used to create a material with the the following relative permittivity.    

 εtotal(f)=ε−ω2p2π⋅f(iνc+2π⋅f)

  • ε
  • : permittivity
  • ωp
  • : plasma resonance in units of rad/s
  • νc
  • : plasma collision in units of rad/s

Debye

The Debye model is used to create a material with the the following relative permittivity.    

εtotal(f)=ε−εdebye⋅νcνc+i2π⋅f

  • ε
  • : permittivity
  • εDebye
  • : Debye permittivity
  • νc
  • : Debye collision in units of rad/s

Lorentz

The Lorentz model is used to create a material with the the following relative permittivity. 

εtotal(f)=ε+εlorentz⋅ω20ω20−2iδ02π⋅f−(2π⋅f)2

  • ε
  • : permittivity
  • εlorentz
  • : Lorentz permittivity
  • ω0
  • : Lorentz resonance in units of rad/s
  • δ0
  • : Lorentz linewidth in units of rad/s 

NOTE: Lorentz model reference

Kurt Oughstun and Natalie Cartwright, "On the Lorentz-Lorenz formula and the Lorentz model of dielectric dispersion," Opt. Express 11, 1541-1546 (2003)

Sellmeier

The Sellmeier model is used to create a material defined by the following formula. The C coefficients have dimensions of micrometers squared (mm2). 

εtotal(λ)=A1+B1λ2λ2−C1+B2λ2λ2−C2+B3λ2λ2−C3

NOTE: Single frequency simulations only!

This type of material model should only be used for single frequency simulations. The implementation of the Sellmeier model is such that the material properties will only be correct at the center frequency of the simulation.

PEC

A Perfect Electrical Conductor (PEC). The Electric field within this material must be zero. It will have 100% reflection and 0% absorption.  There are no parameters for this model.

Understanding the refractive index of PEC as reported in the Material Explorer and Refractive index monitors

The refractive index of PEC is not well defined. This can be understood by considering the PEC material as a conductive material with an infinite conductivity.  As the conductivity sigma goes to infinity, the permittivity goes to infinity.  Having the Material explorer and Refractive index monitor return infinite values is not ideal, so they report the permittivity as eps = 1+ 1e6i, meaning the refractive index is reported as sqrt(1+ 1e6i)=707+707i.  It is important to understand that these values are only for the purpose of reporting by the Material Explorer and Refractive index monitors.  The actual solver engine uses an ideal model (ie. infinite conductivity). 

εtotal(f)=ε+iσ2π⋅fε0,σ→∞

 εtotal(f)=ε+i∞

Note: Spatial absorption measurements

It is possible for the difference between the permittivity used in the solver (infinite) and the permittivity reported by the Refractive index monitor (1e6) to cause problems with the spatial absorption monitors.  This will not be an issue when measuring the total absorbed power with a box of monitors.  Contact Lumerical support for further details.

Analytic material

The analytic material model allows the user to enter an equation for the real and imaginary part of the permittivity or refractive index which can depend on the predefined variables listed below. For an example, see the  page.

Examples and more information

Simple analytic material model, Graphene material (volumetric approach)Checking material fits with the material explorer

The predefined variables that can be used in the equations for "real" and "imaginary" are:

  • f: the frequency in the specified frequency units
  • l0: the free space wavelength in the specified length units
  • w: 2*pi*f in the specified units
  • k0: 2*pi/l0 where l0 is in the specified length units
  • pi: the number pi
  • c: the speed of light in a vacuum, ALWAYS in SI units, ie, always equal to 3e8
  • x1,...,x10: numeric values that represent a parameter of interest

 

Creating new sampled data materials in FDTD

FDTD MODE

usr_sampled_data_1.png

This section describes how to import experimental material data into the Material database, and how to check the material fit with the Material Explorer. The Sampled 2D Data or Sampled 3D Data material type should be used when creating materials from measured data.  

Alternative video source in Mandarin, click here

Adding a new material from a .txt data file

1. Create wavelength/frequency vs index/permittivity text file.

Save the experimental data in a 3 column text file, as shown below, and in the text file below.

420  5.08894  0.237724
440  4.78731  0.169323
460  4.57592  0.130235
480  4.4202   0.0933521
500  4.29748  0.0728287
520  4.19996  0.0568346
540  4.11973  0.0472312
560  4.05256  0.0362285
580  3.99543  0.027335
600  3.94724  0.0256523
620  3.90579  0.022
640  3.86838  0.0178648
660  3.83622  0.0159291
680  3.80661  0.013161
700  3.78304  0.0125603

The first column of the material files should contain the wavelength or frequency, and the second and third columns should contain the corresponding real and imaginary parts of the refractive index (n,k) or permittivity when specifying a Sampled 3D Data type material. When specifying a Sampled 2D Data type material,  the second and third columns should contain the corresponding real and imaginary parts of the conductivity or resistivity. In this example, we will illustrate a Sampled 3D Data material with refractive index data over wavelength.

2. Open the Material Database and click the Add button.

Select the Sampled 3D Data option. This will create a new entry in the Material list. Set the material name and color by clicking on those fields.

usr_sampled_data_1.png

3. Click on the Import Data button to import the material data from the text file.

Select the File to import, and the units of the data. Click Next.

usr_sampled_data_2.png

  

4. Specify the column ordering

If the columns in the text file are not in the standard order of Wavelength - Real index - Imaginary index, use the following form to specify the order of the columns.

usr_sampled_data_3.png

  

 5.Automated error checking

If there are no errors, click Finish.

usr_sampled_data_4.png

Adding a new material from a .yml data file

1. Identify material of interest from database.

Once you found the material of interest from the database, you can download the .yml file from Full database record option. From the list of available YAML files, tabulated n (example 2) and tabulated nk (example 3 and example 5) are the only types that can be imported. An example of tabulated nk is shown below:

# this file is part of refractiveindex.info database
# refractiveindex.info database is in the public domain
# copyright and related rights waived via CC0 1.0
REFERENCES: "G. M. Hale and M. R. Querry. Optical constants of water in the 200-nm to 200-µm
wavelength region, <a href=\"https://doi.org/10.1364/AO.12.000555\"><i>Appl. Opt.</i> <b>12</b>,
555-563 (1973)</a><br>See also <a href=\"https://refractiveindex.info/?shelf=main&book=H2O&page=Segelstein\"><i>
Segelstein 1981</i></a> for more recent data from the same group."
COMMENTS: "Liquid water (H<sub>2</sub>O) at 25 °C"
DATA:
  - type: tabulated nk
    data: |
        0.200 1.396 1.10E-7
        0.225 1.373 4.90E-8
        0.250 1.362 3.35E-8
        0.275 1.354 2.35E-8
        0.300 1.349 1.60E-8
        0.325 1.346 1.08E-8
        0.350 1.343 6.50E-9
        0.375 1.341 3.50E-9
        0.400 1.339 1.86E-9
        0.425 1.338 1.30E-9
        0.450 1.337 1.02E-9
        0.475 1.336 9.35E-10
        0.500 1.335 1.00E-9

The first column of the material files is wavelength, and the second and third columns should contain the corresponding real and imaginary parts of the refractive index (n,k) when specifying a Sampled 3D Data type material.

2. Open the Material Database and click the Add button.

Select the Sampled 3D Data option. This will create a new entry in the Material list. Set the material name and color by clicking on those fields. 

usr_sampled_data_1.png

3. Import Data button to import the material data from the .yml file.

Select the File to import, and the units of the data will be automatically updated to index and wavelength (μm). Click Next.

usr_sampled_data_6.png

4. If there are no errors, click Finish.

usr_sampled_data_4.png

Adding a new material with a script

Use the addmaterial and setmaterial script commands to automatically create new materials. See the setmaterial script command documentation page for details, or this page for an example Importing arbitrary dispersive models.

Check the material fit

FDTD will fit the experimental data to a generalized multi-coefficient model supported in the FDTD simulation. The fitting routine only uses data within the frequency range of the source, it is best to setup the source frequency/wavelength settings before using the Material Explorer.

Once the source is setup, click the Material Explorer button to view the material fits. Select the material name and set the vertical axis to either index or permittivity. Click the Fit and Plot button.

usr_sampled_data_5.png

 The RMS error of this fit in the 400-700nm range of the source is quite small. This is not surprising, since these numbers are based on Silicon, which tends to fit very nicely. See the Modify material fits section for information about how to modify the material fits.

Anisotropic materials

It is also possible to create anisotropic sampled data materials if we set the 'anisotropy' property to 'diagonal'. The data import process is the same as above, except for the text file format. The file usr_sampled_data_anistropic.txt shows the required format for anisotropic data

400 5.57 0.387 2.785 0.1935 1.85667 0.129
420 5.08894 0.237724 2.54447 0.118862 1.69631 0.0792415
440 4.78731 0.169323 2.39366 0.0846613 1.59577 0.0564409
460 4.57592 0.130235 2.28796 0.0651175 1.52531 0.0434116
480 4.4202 0.0933521 2.2101 0.0466761 1.4734 0.0311174
500 4.29748 0.0728287 2.14874 0.0364144 1.43249 0.0242762
520 4.19996 0.0568346 2.09998 0.0284173 1.39999 0.0189449
540 4.11973 0.0472312 2.05986 0.0236156 1.37324 0.0157437
560 4.05256 0.0362285 2.02628 0.0181143 1.35085 0.0120762
580 3.99543 0.027335 1.99772 0.0136675 1.33181 0.00911168
600 3.94724 0.0256523 1.97362 0.0128262 1.31575 0.00855078
620 3.90579 0.022 1.9529 0.011 1.30193 0.00733333
640 3.86838 0.0178648 1.93419 0.0089324 1.28946 0.00595494
660 3.83622 0.0159291 1.91811 0.00796453 1.27874 0.00530969
680 3.80661 0.013161 1.9033 0.00658052 1.26887 0.00438701
700 3.78304 0.0125603 1.89152 0.00628013 1.26101 0.00418676

The first column is wavelength (or frequency). The second and third columns are the real and imaginary parts of the refractive index (or permittivity) in the X direction. Columns 4 and 5 are the real and imaginary parts of the index (or permittivity) in the Y direction, and columns 6 and 7 are the real and imaginary parts of the index (or permittivity) in the Z direction.

When using the Material Explorer to check the material fits, use the Axis drop down to view the material properties for each direction.

III-V Semiconductor Optical Materials

Optical material data for certain ternary and quaternary III-V semiconductor can be generated from theoretical models using the tool provided on the III-V Semiconductor Optical Material Data Tool page.

 

Tips for using the (n,k) material model in FDTD

FDTD MODE

This page describes how to define a material based on a single complex refractive index value (e.g., n + ik = 2 + 0.05i) for single frequency simulation. This example shows images from FDTD but the same information is applicable to (n,k) material models in CHARGE, HEAT, DGTD and FEEM.

user_guide_nk_matDB_narrowband.png

 

user_guide_nk_matDB_broadband.png

For broadband simulations, n,k material is cannot be used as discussed below.

Note: For materials with n∈R

, the situation is simplified as you can simply use a 'Dielectric' material model to avoid the following complications.

Narrowband simulations

In some cases, it may be convenient to define the refractive index of a material based on a single n,k value (e.g. n + ik = 2 + 0.05i). If you are using a single frequency source (i.e. the source 'Start' and 'Stop' wavelengths are equal), the best solution is likely to add an (n,k) Material to the database, as shown in the above screenshot. The n,k material allows you to enter the desired n,k values.

It is important to remember that the (n,k) Material model should ONLY be used for single frequency sources. The implementation of the (n,k) Material model is such that it only gives the desired refractive index values at the center frequency of the source. Obviously, if the source is single frequency, this is not a problem. However, for a broadband source, the resulting refractive index near the start and stop wavelengths can differ substantially from the desired values. The following figures show the desired (Blue) and actual (Green) refractive index values that will occur for source bandwidth set to 500nm and 400-700nm. The two lines will always agree at the center frequency, but not necessary at other frequencies.

Example

user_guide_nk_matExp_narrowband1.png

Source wavelength limits: 500-500nm

(n,k) Material values: 2, 0.05

user_guide_nk_matExp_broadband1.png

Source wavelength limits: 400-700nm

(n,k) Material values: 2, 0.05

Notice the substantial variation, especially in the imaginary part, near 400 and 700nm.

Broadband simulations

In some cases, you may hope to define the broadband refractive index of a material as a constant value of n,k (e.g n + ik = 2 + 0.05i). Unfortunately, this is a challenging problem. The root of the problem comes from the fact that FDTD is a time domain technique, while the refractive index is known in the frequency domain. We are restricted to describing the refractive index with a particular class of functions that are compatible with a time domain solver. Unfortunately, a constant n,k as a function of frequency is not something that can be described perfectly with this restriction. While we can often still get very good fits, they will never be perfect.

Option 1 - Sampled data

The best option for adding such a material to the database is with the Sampled data material, where you import a list of n,k data as a function of wavelength, as described on the Creating sampled data materials page. The resulting material is shown in the above screenshot. The imported data would look something like this, with a constant value of n,k

wavelength    n k
390    2    0.05
400    2    0.05
410    2    0.05
420    2    0.05
430    2    0.05
440    2    0.05
...

 The next step is to adjust the fit with the Material Explorer, as shown below. By adjusting the fitting parameters, it is often possible to get a good (but not perfect) fit to the material data. In the screenshot below, we can see that the desired n,k value is 2 + 0.05i. The actual fit varies from n = 1.992 - 2.007 and k = 0.0497 - 0.0506. While not perfect, the fit is quite good, especially when you consider that the experimental errors in refractive index measurements are often quite large.

 

user_guide_nk_matExp_broadband2.png

Option 2 - (n,k) Material (Not recommended)

This option is not recommended. It is only included here to describe the short comings of this method.

A common error is to use the (n,k) Material model when trying to create these types of materials. Unfortunately, this model is only designed for narrowband simulations. This model will give the desired n,k values at the center frequency of the source, but not at other wavelengths. These differences can be seen with the Material Explorer, and will lead to errors in your simulation. Rather than using the (n,k) Material model, it is better to use the Sampled data model described above, which allows you to adjust the fitting parameters to get a better fit.

 

user_guide_nk_matExp_broadband1.png

Tips and simple example for using the analytic material model in FDTD

FDTD MODE

usr_analytic_material_simple.jpg

This section describes the Analytic material model.

Simple example

Suppose we have two materials: material A has a refractive index of na and material B has a refractive index of nb. These two materials can be combined to produce a composite material. The refractive index of this composite material is simply the weighted average a of the refractive index of the two base materials, as shown in the following formula.

index=naα+nb(1−α)

This type of material model can be implemented in the material database using the Analytic material model. This model makes it possible to define a material via an analytic function. In this case, our function has three variables: the index of materials A and B, and the fraction of material A in the mixture. The variables of the analytic model have fixed names, such as x1, x2, x3 and so on. Therefore, we must write the formula as:

index=x1x3+x2(1−x3)

where x1=na,x2=nb,x3=α

materials_analytic_screenshot.png

FDTD example

It is important to understand that the analytic equation is not directly used in the simulation. It is necessary for FDTD to create a 'fit' for this material, in the same way that it must fit the Sampled data materials. In this example, the fit is perfect because the material is a simple lossless, non-dispersive model. For more complex materials, the quality of the fit may be lower.

It's always a good idea to use the Material explorer to check the quality of the fit, just like you should check the fits of Sampled data materials.

MODE example

The simulation files usr_analytic_material1.fsp and usr_analytic_material1.lms contain this material. Using MODE, open the lms file, then run usr_analytic_material1.lsf to calculate the effective index of the fundamental mode as a function of the weighted average a. The following figure shows the final result of the simulation. The blue line shows the effective index of the mode, while the green line shows the actual material index, as calculated via the above formula. As expected, the mode effective index is always less than the material index. 

usr_analytic_material_simple.jpg

For dispersive materials where the index or permittivity are defined as complex equations, please see Importing arbitrary dispersive models 

Note: The predefined variables that can be used in the equations for "real" and "imaginary" are:

  • f: the frequency in the specified frequency units
  • l0: the free space wavelength in the specified length units
  • w: 2 * π
  • *f in the specified units
  • k0: 2* π
  • /l0 where l0 is in the specified length units
  • pi: the number π
  • .
  • c: the speed of light in a vacuum, ALWAYS in SI units, i.e., always equal to 3e8
  • x1,...,x10: numeric values that represent a parameter of interest

 

Standard optical conductivity material models in FDTD and MODE

FDTD MODE

Materials specified using a conductive model can be specified for 2D rectangle and polygon objects.

Behavior of Material Explorer, meshing algorithm and index monitor

The material explorer will display the surface conductivity. The surface conductivity can be displayed by a refractive index monitor, or in the FDE solver it can be displayed in the modal analysis tab. The meshing algorithm will attempt to automatically place a mesh cell on the boundaries of each planar structure (2D rectangle or 2D polygon), yet there will be situations where it is not possible to align the mesh with all 2D objects. In this situations any planar objects which are not aligned with the mesh will be snapped the nearest mesh cell.

Conductive 2D

Parameters and units

  • Layer thickness: physical thickness of the sheet which will be represented as a 2D sheet in the simulation [m]
  • Conductivity: bulk conductivity of the material [S/m]

The surface conductivity that will be simulated will be the multiplication of conductivity and layer thickness.

Conductive 3D

This material is implemented as a 3D permittivity. For additional details about this model see the Conductive 3D section in Material permittivity models.

Graphene

This material employs the surface conductivity to model the optical properties of a graphene sheet. No base material is needed.

Parameters and units

  • Scattering Rate: the scattering rate is related to the sample purity of the graphene sheet. This parameter may be available from the graphene manufacturer, other literature or users' own requirement for this parameter. [eV]
  • Chemical potential: chemical potential [eV]
  • Temperature: temperature [K]
  • Conductivity scaling: This number is typically 1, for a layer of graphene. Under some circumstances, this model can also be used to represent multiple layers by scaling the total conductivity by the number of layers, for example, 2 for two layers of graphene.

Examples and more information

Graphene material approach

PEC

A Perfect Electrical Conductor (PEC). The Electric field within this material must be zero. It will have 100% reflection and 0% absorption.  There are no parameters for this model.

Index monitor results

The conductivity of this material is infinite, however since an infinite number cannot be represented in an index monitor plot, index monitors will report a finite but high value of refractive index and surface conductivity.

RLC

The RLC material is used to specify a lumped element with a given resistance (R), inductance (L), and capacitance (C). The material is implemented as a distributed surface conductivity is calculated based on the lumped R, L, C values and the length of the object along the current flow direction.

 The RLC material is defined from the Materials tab of a 2D rectangle object when the material selected for the object is <RLC>. RLC materials will not appear in the Material Database or Material Explorer.

 Any combination of R, L, and C can be enabled by selecting the check boxes next to the R, L, and C parameters. If multiple options are selected, the R, L, and C components are added in parallel.

Parameters and units

  • R: resistance [ohm]
  • L: impedance [H]
  • C: capacitance [F]
  • current flow direction: the direction of current flow in the plane of the sheet (x, y, or z)

Sampled 2D data

The Sampled data material definition uses an automatic fitting routine to generate a multi-coefficient material model of the experimental data over the frequency range specified by the source. The fits can be checked and adjusted in the Material Explorer.

Parameters and units

  • Conductivity or resistivity: Bulk conductivity [S/m] or resistivity [Ωm] of the material.
  • Layer thickness: Thickness of the physical sheet which will be represented as a 2D sheet in the simulation. [m]
  • Tolerance: The desired RMS error between the surface conductivity of the experimental data and the material fit. The fitting routine will use the least number of coefficients that produce a fit with an RMS error less than the tolerance.
  • Max coefficients: The maximum number of coefficients allowed to be used in the material fit. More coefficients can produce a more accurate fit, but will make the simulation slower.

The following advanced options can be set in the Material Explorer:

  •  MAKE FIT PASSIVE: Set to be true to prevent the fit from having gain at any frequency. By default this is true in order to prevent diverging simulations.
  • IMPROVE STABILITY: If this setting is true, the fitting routine restricts the range of coefficients in the fit in order to reduce numerical instabilities which cause simulations to diverge.
  • IMAGINARY WEIGHT: Increasing the weight increases the importance of the imaginary part of the conductivity when calculating a fit. A weight of 1 gives equal weight to the imaginary and real parts of the conductivity.
  • SPECIFY FIT RANGE: Set to true to decouple the bandwidth used to generate the material fit and the source bandwidth. This option is used in parameter sweeps where the source frequency is changed, and where it is important to keep the material parameters constant over the whole parameter sweep. The fit range should cover the simulation bandwidth.
  • BANDWIDTH RANGE: Bandwidth to be used for the fit when Specify Fit Range is true.

Examples and more information

For an example showing how 2D conductivity models can be generated from 3D material permittivity data. 

Tutorial on creating sampled data materials from the graphical user interface and from the script:

Creating anisotropic optical materials in FDTD and MODE

FDTD MODE

Anisotropic materials can be represented by a 9 element permittivity tensor εij

such that the electric and displacement fields are related via the relation.

Di=εijEj

where summation over j is implied on the right hand side. The full anisotropy tensor can be written as

ε=⎡⎢⎣ε11ε12ε13ε21ε22ε23ε31ε32ε33⎤⎥⎦

The input of anisotropic materials is simple when the permittivity tensor is diagonal

ε=⎡⎢⎣εx000εy000εz⎤⎥⎦

Users may find the  Liquid crystal simulation  video helpful.

Diagonal anisotropic materials

To define an anisotropic material, set the Anisotropy field in the  Material database  to Diagonal and specify the material model parameters for each diagonal component. When viewing the material data with the material explorer, use the 'axis' property to select the diagonal component to visualize.

General anisotropic materials

If you have a more general form of anisotropy, you must first diagonalize the permittivity matrix (use the eig script command) and find both the eigenvalues and the unitary transformation that makes the permittivity diagonal in the following form

εD=UεU†

where U

is a unitary matrix, U†=U−1 is the complex conjugate transpose of U and εD is diagonal. U=V† where V is the eigenvector matrix of ε

returned by eig

The diagonal values of εD

should be entered into the materials database then a matrix transformation grid attribute needs to be added using U. Thus you are required to define U, the matrix transformation grid attribute and εD

the diagonal material anisotropy.

Please note that convention used above for matrix diagonalization may be different from the convention used elsewhere, such as the script command eig, where the equation is typically written in the form εD=V†εV

where V is the eigenvector matrix of ε. In other words, U above is the complex conjugate transpose of the eigenvector matrix V of ε returned by eig: U=V†

.

Simple anisotropic indices

Anisotropic index values can be set using the material tab in a structure, if a dielectric material is used. To specify an anisotropic refractive index, use a semicolon to separate the diagonal xx

, yy, zz

indices. Eg. 1;1.5;1.

Example diagonal anisotropic simulation

materials_diagonal_anisotropy_screenshot.png

ε=⎡⎢⎣εx000εy000εz⎤⎥⎦

The diagonally anisotropic material in the example file has a permittivity of n_xx, n_yy, n_zz = [2, 2, 1.001]. The anisotropic nature of the material is easily visible by comparing the field profiles of the Ex and Ez fields. Notice the reflection and refraction visible in the Ex fields that is not present in the Ez fields.

materials_diagonal_anisotropy_E_fields.png

For more information, see the following sub-topics:

Grid attribute tips and introduction 

LC rotation grid attribute

Permittivity rotation grid attribute 

Matrix transformation grid attribute

For examples of using a diagonalized permittivity matrix, see:

Magneto-optical Kerr Effect

Faraday effect and optical isolator

 

LC Rotation - Simulation object

FDTD MODE

LC_rot_obj.PNG

The Liquid crystal (LC) rotation grid attribute allows you to specify a spatially varying LC director orientation in terms of theta, phi.

Liquid crystals are composed of rod-like molecular structures which have rotational symmetry with respect to a long axis. Therefore, liquid crystals have spatially varying uni-axial optical properties. The refractive indices with respect to the long and short molecular axes are called extraordinary ne

and ordinary no

respectively, see figure above.

Rotational symmetry allows the transformation matrix to be reduced to a function of two rotational angles (θ,ϕ)

.

U=UzUy=⎡⎢⎣cosϕ−sinϕ0sinϕcosϕ0001⎤⎥⎦⎡⎢⎣cosθ0sinθ010−sinθ0cosθ⎤⎥⎦=⎡⎢⎣cosθcosϕ−sinθsinθsinϕcosθsinϕcosϕsinθsinϕ−sinθ0cosθ⎤⎥⎦

and the permittivity tensor in the reference (or simulation ) coordinate system (x,y,z)

is transformed to the principal coordinate system (X,Y,Z)

via a rotation about z, and the y.

~εD=U∗(θ,ϕ)~εU(θ,ϕ)=⎡⎢⎣ε0000ε0000ε0⎤⎥⎦=⎡⎢ ⎢⎣n20000n20000n2e⎤⎥ ⎥⎦

Properties Editor tab

  • NAME: Object name
  • ENABLED: Determines if the object will be included in the simulation
  • USE RELATIVE COORDINATES: If this is enabled then the source will use the center or the solver as its origin (reference).  If disabled then it will use the absolute center (0,0,0) as its origin.
  • X, Y, Z: The center position of the object
  • RESAMPLE FOR VIEWING: If this is enabled, NX, NY, NZ are used to resample the drawing of object in the layout editor. NX, NY, NZ are the maximum allowed resolution shown in the CAD view. These numbers are for graphical rendering and should have no effect to the simulation results. These options are only available when spatially-varying data is imported
  • X SPAN, Y SPAN, Z SPAN: The size of the object. This is greyed out and not editable in the GUI. The numbers are updated when data with spatial distribution are imported.
  • RESCALE AXES INDEPENDENTLY: If this is enabled, then X SCALE, Y SCALE, Z SCALE can be set differently to rescale the object. If disabled, then X SCALE, Y SCALE, Z SCALE can only be set equally. These options are only available when spatially-varying data is imported
  • ENABLE CONFORMAL MESHING: See grid attribute tips for details. 
  • THETA, PHI: Defines the liquid crystal director orientation vectors.
  • UX, UY, UZ: The orientation unit vectors. This is greyed out and not editable in the GUI. The numbers are updated based on THETA, PHI
  • IMPORT DATA: Import the orientation unit vector UX, UY, UZ saved in a .mat file or THETA, PHI saved in a .csv file
  • CLEAR DATA: Clear the imported data

In the following sections, we explain how to set up an an uniform and a spatially varying orientation distribution of LCs, respectively. Note the order in which these angles are defined is important since rotations are in general non-commuting relations.

Uniform distribution

As an example, we set up LCs with ne=1.74 and no=1.53 where the orientation angle of LCs is defined as θ =30° and φ=150°. Add a LC attribute object by selecting Attributes => LC orientation on the tool bar,

LC_add_LC_attribute.jpg

and set the properties "theta" and 'phi" in the edit window as shown below.

LC_attribute_theta_phi_setting.jpg

By setting these angles, FDTD creates the transformation matrix U automatically. Next, we open material database and define a diagonal anisotropic material as show below.

Note : Ordinary and Extraordinary refractive indices

It is important that nxx and nyy are set to be the Ordinary index, and nzz is set to the Extraordinary index.

LC_material_database_neno.jpg

Once we define the transformation matrix U and the diagonal refractive indexes, we assign these to "material" and "grid attribute names" properties on the Material tab of a structure object which we want to setup as liquid crystal.

LC_material_grid_attribute.jpg

Spatially varying orientation distribution of LCs

Method 1: Importing data using the script environment

In this case, we can use the addgridattribute , and optionally the importdataset script command to add the LC attribute and to set the spatially varying LC orientation. For example, if we want to set up LCs which are twisted in z direction as shown below, where the components of the LC director are given by ux(x,y,z)=cos(z*π), uy(x,y,z)=sin(z*π) and uz(x,y,z)=0,

material_LC_twist.png

we define the director distribution in a matrix variable and put the matrix into the LC attribute property. In the following script, matrix "n" is used to define the director distribution of the twisted nematic LCs, and this information is put into a dataset called LC which contains the x, y, z position data and the director orientations in an attribute called "u". At the second last line where addgridattribute command is used, a LC attribute is added to the simulation and the director distribution is set up.

Note : Magnitude of spatially varying orientation unit vector

When specifying the LC orientation, it is important that the magnitude of the orientation vector be exactly 1, except in regions where you don't want the LC orientation to be set where the magnitude of the vector should be set to 0.

# define x/y/z
x = 0;
y = 0;
z = linspace(0e-6,5e-6,100);
X = meshgrid3dx(x,y,z);
Y = meshgrid3dy(x,y,z);
Z = meshgrid3dz(x,y,z);
n = matrix(length(x),length(y),length(z),3);

# define the orientation function
n(1:length(x),1:length(y),1:length(z),1) = cos(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),2) = sin(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),3) = 0;

# create dataset containing orientation vectors and position parameters
LC=rectilineardataset("LC",x,y,z);
LC.addattribute("u",n);

# add LC import grid attribute
addgridattribute("lc orientation",LC);
setnamed("LC attribute","nz",50); # set resolution

Note : When setting angle theta via 'set' script command, the input must be in radians. For example:

setnamed("LC attribute","theta",pi/4);

We then add a material with diagonal anisotropy components and set up the object to use the LC attribute similarly to the case of uniform distribution.

Method 2: Importing data from .mat file using the graphical user interface

In the edit window of the grid attribute, it is possible to import a .mat file containing a dataset with the required director distribution data by clicking on the "Import data..." button. The following code shows an example of how to save a .mat file to be imported by using the matlabsave script command.

# define x/y/z
x = 0;
y = 0;
z = linspace(0e-6,5e-6,100);
X = meshgrid3dx(x,y,z);
Y = meshgrid3dy(x,y,z);
Z = meshgrid3dz(x,y,z);
n = matrix(length(x),length(y),length(z),3);

# define the orientation function
n(1:length(x),1:length(y),1:length(z),1) = cos(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),2) = sin(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),3) = 0;

# create dataset containing orientation vectors and position parameters
LC=rectilineardataset("LC",x,y,z);
LC.addattribute("u",n);
 
# save data to .mat file
matlabsave("LC_import.mat",LC);

We then add a material with diagonal anisotropy components and set up the object to use the LC attribute similarly to the case of uniform distribution.

Method 3: Importing data from a CSV (comma-separated values) file

From the Import menu in the top toolbar, click on Import from CSV to open the import wizard which allows you to select the CSV file to import. This file is typically created with TechWiz LCD from Sanayi System Co., Ltd. (사나이시스템).

LC_import_from_CSV.jpg

For more details on the file format and steps for importing the data from the graphical wizard, see  Import object - Liquid crystal from CSV.

The same data can also be imported using the importcsvlc script command.

Permittivity Rotation - Simulation object

FDTD MODE

permittivity_rotation_grid_attribute.jpg

The permittivity rotation object allows you to specify the orientation of an anisotropic material in terms of the  Euler angles. This type of grid attribute can be used for anisotropic materials that have a diagonal permittivity tensor in some principle coordinate frame X,Y,Z. but have some other orientation in the simulation. The Euler angles are used to define the orientation of the material in the simulation.

~εD(X,Y,Z)=⎡⎢⎣εXX000εYY000εZZ⎤⎥⎦

The default Euler rotation used by the permittivity rotation attribute is Z-Y'-Z''.  With this convention, the first angle (Phi) specifies a rotation around the Z axis (Z). The second angle (Theta) specifies a rotation around the new Y axis (ie. after the first rotation has been applied). The third angle (Psi) specifies the final rotation around the new Z axis (i.e. after the first two rotations have been applied). The rotation attribute is drawn as 3 colored arrows, where the colors correspond to the principle coordinate frame Blue=X, Green=Y, Red=Z. The orientation of the arrows as drawn in the CAD viewports can be used to confirm you have correctly entered the Euler angles.

Properties tab

  • NAME: Object name
  • ENABLED: Determines if the object will be included in the simulation
  • USE RELATIVE COORDINATES: If this is enabled then the source will use the center or the CHARGE solver as its origin (reference).  If disabled then it will use the absolute center (0,0,0) as its origin.
  • RESAMPLE FOR VIEWING: If this is enabled, NX, NY, NZ are used to resample the drawing of object in the layout editor. NX, NY, NZ are the maximum allowed resolution shown in the CAD view. These numbers are for graphical rendering and should have no effect to the simulation results. These options are only available when spatially-varying data is imported
  • X, Y, Z: The center position of the object
  • X SPAN, Y SPAN, Z SPAN: The size of the object. This is greyed out and not editable in the GUI. The numbers are updated when data with spatial distribution are imported.
  • RESCALE AXES INDEPENDENTLY: If this is enabled, then X SCALE, Y SCALE, Z SCALE can be set differently to rescale the object. If disabled, then X SCALE, Y SCALE, Z SCALE can only be set equally. These options are only available when spatially-varying data is imported
  • ENABLE CONFORMAL MESHING: See grid attribute tips for details. 
  • ANGLE CONVENTION: Euler rotation definition.
  • PHI, THETA, PSI: Rotation angles.
  • IMPORT DATA: Import the permittivity rotation matrix saved in a .mat file
  • CLEAR DATA: Clear the imported data

Uniform Rotation

If we want to simulate an anisotropic material whose diagonal tensor is given by

~εD(X,Y,Z)=⎡⎢ ⎢⎣(1.5+0.2j)2000(1.4+0.1j)20001.22⎤⎥ ⎥⎦

and it's orientation in the simulation is given by the Euler angles ϕ=10∘,θ=20∘,ψ=30∘

we first add permittivity rotation grid attribute to layout editor and open the edit window and set the Euler angles as shown above. After setting the angles, go to the material database and create a new material. Finally, in the Materials tab of the structure object, set the material and grid attribute properties as shown below.

permittivity_rotation1.jpg

permittivity_rotation3.jpg

Spatially-varying permittivity rotation

Spatially-varying theta, phi, and psi rotation angles can be specified over a rectangular grid. The following code shows an example which generates the spatially-varying data and adds the data to a dataset.

# Specify x, y, z positions (in this case a over a 1D line in the z-direction)
x = 0;
y = 0;
z = linspace(0e-6,1e-6,100);

# Specify rotations
phi = linspace(0,pi/2,length(z));
theta = 0*phi;
psi = 0*theta;

# Generate dataset
PR=rectilineardataset("PR",x,y,z);
PR.addattribute("phi",phi);
PR.addattribute("theta",theta);
PR.addattribute("psi",psi);

Note : Rotation angle units

Although in the graphical user interface, angles are specified in units of degrees, when specifying angles in the script, the rotation angle units are in radians.

To add the grid attribute and import the data from the PR dataset defined above, the following code can be used:

# add grid attribute and import data from PR dataset
addgridattribute("permittivity rotation",PR); 

or

addgridattribute("permittivity rotation"); # add grid attribute
importdataset(PR); # import data from PR dataset

This example generates a grid attribute where the rotation around the z-axis changes from 0 to 90 degrees along the z-direction between z=0 to z=1 um, as illustrated below:

permittivity_rotation_spatially_varying.jpg

It is also possible to first save the dataset to a .mat file which can be imported from the grid attribute's edit window with the "Import data..." button, or from the script using the importdataset script command":

matlabsave("rotation_data.mat",PR); # save the PR dataset to a .mat file
addgridattribute("permittivity rotation"); # add grid attribute
importdataset("rotation_data.mat"); # import data from .mat file

Once the grid attribute has been set up with spatially-varying rotation data, a new anisotropic material with diagonal anisotropy can be added and the grid attribute can be applied to the object, like illustrated in the uniform rotation section above.

 

Matrix Transformation - Simulation object

FDTD MODE

The matrix transformation grid attribute is the most general type of unitary transformation, allowing the user to directly specify the full transformation matrix.  Advanced material properties such as the Magneto-Optical Kerr Effect (MOKE) can be implemented using this object.

Matrix transformation is used when a permittivity tensor ~ε

is given by a general form as

~ε(x,y,z)=⎡⎢⎣εxxεxyεxzεyxεyyεyzεzxεzyεzz⎤⎥⎦

We first need to calculate diagonal elements of ~εD

and transformation matrix U, which are the required inputs into FDTD. Since diagonal elements of ~εD are given by eigenvalues of ~ε  and transformation matrix U is composed of the complex conjugate transpose of the eigenvectors of ~ε

, we use eig script command to calculate these values.

Properties Editor tab

  • NAME: Object name
  • ENABLED: Determines if the object will be included in the simulation
  • USE RELATIVE COORDINATES: If this is enabled then the source will use the center of the CHARGE solver as its origin (reference).  If disabled then it will use the absolute center (0,0,0) as its origin.
  • RESAMPLE FOR VIEWING: If this is enabled, NX, NY, NZ are used to resample the drawing of object in the layout editor. NX, NY, NZ are the maximum allowed resolution shown in the CAD view. These numbers are for graphical rendering and should have no effect to the simulation results. These options are only available when spatially-varying data is imported
  • X, Y, Z: The center position of the object
  • X SPAN, Y SPAN, Z SPAN: The size of the object. This is greyed out and not editable in the GUI. The numbers are updated when data with spatial distribution are imported.
  • RESCALE AXES INDEPENDENTLY: If this is enabled, then X SCALE, Y SCALE, Z SCALE can be set differently to rescale the object. If disabled, then X SCALE, Y SCALE, Z SCALE can only be set equally. These options are only available when spatially-varying data is imported
  • ENABLE CONFORMAL MESHING: See grid attribute tips for details. 
  • TRANSFORM U: The 3x3 transformation matrix.
  • IMPORT DATA: Import the transformation matrix saved in a .mat file
  • CLEAR DATA: Clear the imported data

Uniform Transform

If we want to set an anisotropic material with permittivity tensor

~ε(x,y,z)=⎡⎢⎣1.520−21.50001.2⎤⎥⎦

we first calculate the eigenvalues as shown below.

# permittivity tensor in the reference coordinate system(x,y,z) 
A = [ 1.5, 2,0;-2, 1.5,0;0,0,1.2];
Evl=eig(A,1);   # calculate eigenvalues

After getting the eigenvalues, we create a new material and define the diagonal elements of refractive indexes using setmaterial script commands as shown below.

# diagonal elements of refractive indexes
DeR=[sqrt(Evl(1));sqrt(Evl(2));sqrt(Evl(3))];

mymaterial = addmaterial("(n,k) Material");
setmaterial(mymaterial,"name","MOKE");
setmaterial("MOKE", "Anisotropy", 1); # enable diagonal anisotropy
setmaterial("MOKE","Refractive Index", real(DeR));
setmaterial("MOKE","Imaginary Refractive Index", imag(DeR)); 

If we open the material database, we can see that a new material is created as shown below.

arbitrary_anisotropy_matrix_grid3.jpg

Next, to setup transformation matrix we calculate eigenvectors using eig script command as show below.

A = [ 1.5, 2,0;-2, 1.5,0;0,0,1.2];
Evc=eig(A,2); # calculate eigenvectors

Once you get the eigenvectors, you add Matrix attribute object into the layout editor using addgridattribute script command and set the eigenvectors to the property "U" of the Matrix attribute object using set script command as shown below.

addgridattribute("matrix transform"); # add matrix transform grid attribute

# set the complex conjugate transpose of Evc to grid attribute property U 
set("U",ctranspose(Evc));
set("name","kerr attribute"); # set Evc to grid attribute property U

If you open edit window of the Matrix attribute and double click the "Value" field, you can check the elements of the matrix U.

arbitrary_anisotropy_matrix_grid1.png

After setting the matrix, we assign the Matrix attribute and the material to"grid attribute names" and "material" properties on the Material tab of a structure object which we want to setup an anisotropic material as shown below.

arbitrary_anisotropy_matrix_grid2.jpg

Spatially-varying Transform

Let's say we have an anisotropic material where the permittivity at each location varies as a function of the z location, so the permittivity tensor is:

~ε(x,y,z)=⎡⎢⎣1.52z0−2z1.50001.2⎤⎥⎦

We can use a loop to loop through the z-positions of the object, and calculate the diagonal anisotropy and required unitary transform matrix at each location. The diagonal anisotropy values can be imported in an  (n,k) import  object, and the unitary transform matrix can be applied to the import object. This is done in the matrix_transform_spatially_varying.lsf file.

Tips and background information when using grid attributes

FDTD MODE

In this page, we will provide some tips for simulations using LC rotation, permittivity rotation, and matrix transform grid attribute objects. These tips don't apply to the np Density and Temperature grid attributes.

Grid attribute introduction

The constitutive relation between the electric field E and the electric displacement D for an anisotropic material in a reference coordinate system (x,y,z) can be written as

D(x,y,z)=ε0ε(x,y,z)E(x,y,z)

where ε

is the relative permittivity tensor and is given by

ε(x,y,z)=⎡⎢⎣εxxεxyεxzεyxεyyεyzεzxεzyεzz⎤⎥⎦

Using a unitary matrix transformation U, the the permittivity tensor ε

can be diagonalized as below.

εD=UεU†

εD=⎡⎢⎣n2x000n2y000n2z⎤⎥⎦

In FDTD, instead of using the elements of ε

we use the diagonal elements of εD and the transformation matrix U as input parameters. U can be determined using the script command eig with U=V† where V is the eigenvector matrix of ε

.

 The basic steps to set up anisotropy in FDTD which performs a simulation in a reference coordinate system (x,y,z) are as follows.

  1. Set the transformation matrix U using an appropriate grid attribute object,
  2. In the material database, create a new material using the diagonalized permittivity elements and
  3. On the Material tab of a structure object which we want to set up an anisotropic material
    • Select the grid attribute defined in 1)
    • Select the material defined in 2).

 In FDTD, three types of grid attribute named LC rotation, Permittivity rotation, and Matrix transformation are provided to define the matrix U. In the following pages, we will explain how to use these grid attributes.

Note: Comparing Matrix transformation, Permittivity rotation, and Liquid crystal grid attributes

Matrix transformation: the most general form of permittivity transformation. In principle, the matrix transformation object could be used in place of the Permittivity rotation or Liquid crystal grid attributes.

Permittivity rotation: A simpler form of the transformation, appropriate for situations when the transformation matrix corresponds to a simple spatial rotation. In such cases, this object allows you to specify the transformation via the rotation angles theta, phi, psi.

Liquid Crystal: An even simpler transformation, appropriate for liquid crystals that can be defined in terms of an ordinary and extraordinary permittivity, and having a uniaxial symmetry around the long axis of the crystal. Due to this symmetry, the transformation can be specified by only two angles theta, phi.

Note: Grid attributes and nonlinear materials

Grid attributes can be used with nonlinear materials.

Diagonalization conventions

Please note that the convention used above for matrix diagonalization may be different from the convention used elsewhere, such as the script command eig, where the equation is typically written in the form εD=V†εV

where V is the eigenvector matrix of ε. In other words, U above is the complex conjugate transpose of the eigenvector matrix V of ε returned by eig: U=V†

.

Rotating structures

When you rotate a geometric primitive, the permittivity tensor is not rotated. In order to do this, you must define a rotation grid attribute that has the same rotation as the object and associate the object with that grid attribute.

Tips on grid attributes

Liquid crystal grid attribute transformation can be disabled by setting the orientation unit vector to 0

As shown in the script in the LC rotation page, it is possible to specify a spatially varying liquid crystal orientation with the Liquid crystal grid attribute using a spatially varying matrix of orientation unit vectors. The magnitude of the orientation vector should be exactly 1 at each position, or the simulation can become unstable.

Alternatively, the magnitude of the orientation vector can be set to 0. In such cases, the grid attribute transformation is disabled at that location, and the simulation will use the unrotated diagonal permittivity values. For example, if we set |u(x,y,z)|=1 inside the spherical region and set |u(x,y,z)|=0 outside the region as shown below, a spherical LC region can be set up.

 

director01.jpg

The positions of spatially varying liquid crystals are defined by a local coordinate system

The positions x, y and z in LC rotation grid attribute is a position of the purple cross of the object (see figure below). The liquid crystals positions defined as parameters in addgridattribute command is given by the local coordinate system whose origin is set to the x, y and z values. 

LC_coordinate.jpg

Index monitor currently record only diagonal index

Index monitors to not record any information about the permittivity transformations. Therefore, it is important to do some careful testing to ensure the setup is correct.

Conformal meshing for structures associated with grid attributes

Grid attributes have a setting called "enable conformal meshing" which is set to "true" by default.

Conformal meshing can be disabled by setting the "enable conformal meshing" value to "false". This could be considered in cases where there is a high refractive index contrast between the structure with grid attribute applied and neighboring materials (such as when simulating plasmonic effects), where the behavior of the fields near the material interface is important. This is because if conformal meshing is applied, the spatial offset of field components within the Yee cell will not be considered by the grid attribute transform, causing there to be some error as discussed in the "Spatial offset of field components within FDTD Yee cell approximation" section below.

The diagonal permittivity tensor can be dispersive

The diagonal permittivity tensor can be dispersive, but the transformation U is not dispersive.

Spatial offset of field components within FDTD Yee cell approximation

In all FDTD simulations, each field component is calculated at a slightly different position within the Yee cell. At cells that contain material interfaces, grid attribute transformations are applied only to field components where there will be no mixing of field components in different materials.

 This can introduce some additional error into the simulation, compared to a similar simulation without a grid attribute object. In some cases, this approximation can introduce asymmetries into otherwise symmetric systems. Reducing the mesh step size can help reduce these errors, but in some cases at interfaces between materials with high index contrast, it is challenging to make the mesh size sufficiently small.

Interpolating spatially varying grid attributes

Linear interpolation is used to interpolate grid attribute data at each mesh point.

Singleton dimensions are extruded uniformly as shown below.

U_FDTD.jpg

If the dimensions of a structure object are larger than the grid attribute data, the attribute will not be applied to the portion of the structure that is outside of the attribute data.

Simulation speed

It is worth noting that using Grid attributes will increase the simulation memory and time requirements. Therefore, when they are not needed, it's best to ensure they are not used. For example, rather than setting the rotation angle to zero (the grid attribute will still be included in the simulation), it's best to disable the grid attribute entirely.

 

Advanced and custom optical material models in FDTD and MODE

FDTD MODE

The following material models can be used in a variety of advanced applications, such as non-linear device simulations. Many of the following models have been implemented with the Flexible material plugin framework, and are distributed with the standard FDTD and MODE installation packages. Source code is provided for some models implemented with the Flexible material plugin framework at the bottom of the page. For more information read the Flexible Material plugins whitepaper.

Note: In particular, the user should be aware of the following points.

  • The material explorer is often not capable of displaying the properties of the these materials. To understand the properties of these materials, it is necessary to understand the underlying material model.
  • The mesh algorithm does not know which target mesh size should be used for these materials. It will base the target mesh size on the 'Base Material' only. If a finer mesh is required, the user should force that explicitly with a mesh override region over the material.
  • For some simplified material models, the system can be numerically unstable if the nonlinear perturbation is too large. See Nonlinear Methodology - Source amplitude section fore more information.
  • More information and tips can be found in the Nonlinear application example section.

Available material models (distributed through Lumerical software)

Chi2

This nonlinear model allow users to define the value for the χ(2) term directly. An arbitrary dispersive base material can also be specified, in which case the added polarization will be in addition to the polarization of any base material that is selected. If the χ(1) term is 0 (default), the polarization will be added to the vacuum.  

Users that only require a χ(2) term are encouraged to use this model rather than the Chi3/Chi2 model because it uses a more numerically accurate implementation.

Note: Some artificial asymmetry can be introduced by the algorithm.

Parameters and units

  • χ(1) : Chi1 [unitless]
  • χ(2) : Chi2 [m/V]

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Harmonic generation 

Source code: chi2.h, chi2.cpp

Storage fields No storage field specified by default

Chi3/Chi2

The usage for the Chi3/Chi2 material is the same as the Chi2 material, but with the addition of the Chi3 term. Support for higher order terms could be added with some straightforward modifications to the source code for this model (provided below).

Note: Some artificial asymmetry can be introduced by the algorithm.

 Parameters and units

  • χ(1) : Chi1 [unitless]
  • χ(2) : Chi2 [m/V]
  • χ(3) : Chi3 [m^2/V^2]

 Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Optical bistability

 Source code: chi3.h, chi3.cpp

 Storage fields No storage field specified by default

Chi3 Raman Kerr

This material allows one to model Kerr and Raman interactions.

 P(t)=ε0χ(1)E(t)+ε0αχ(3)0E3(t)+ε0(1−α)E(t)(χ(3)Raman(t)∗E2(t))

 χ(3)Raman(ω)=χ(3)0ω2Ramanω2Raman−2jωδRaman−ω2

 χ(3)Raman(t)=FT(χ(3)Raman(ω))

 Parameters and units

  • χ(1) : Chi1 [unitless]
  • χ(3) : Chi3 [m^2/V^2]
  • α : the alpha term in this model controls the relative weighting between the Kerr and Raman terms. 0 ≤ α ≤ 1. [unitless]
  • ωRaman : the non-linear Raman angular frequency [Hz]
  • δRaman : the linewidth of the resonance [Hz]

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Solitons in SOI waveguide

Source code: chi3ramankerr.h, chi3ramankerr.cpp

Storage fields

storage_0 = Sn: Chi3 Raman term, ((1−α)(χ(3)Raman(t)∗E2(t))

for the nth time step 

storage_1 = Sn+1: Chi3 Raman term, ((1−α)(χ(3)Raman(t)∗E2(t))

, for the (n+1)th time step 

References

This model was implemented based on:

  1. Goorjian and Taflove, Optics Letters, 1992, 180-182
  2. Taflove, Computational Electromagnetics: The Finite-Difference Time-Domain Method. Boston: Artech House, (2005).

Four-Level Two-Electron

This model implements a four-level two-electron model that can be used for simulation of gain and lasing. The four-level model is described in the following diagram:

ref_matDB_four_level_two_electron_diagram.png

 Parameters and units

  • wa, wb : the angular frequencies corresponding to the energy differences of levels 2-1 and 3-0 respectively [Hz]
  • ga, gb : the damping coefficients for Pa and Pb respectively which control the nonradiative losses [Hz]
  • t30, t32, t21, t10 : the lifetimes of the different decay channels [s]
  • N DENSITY : the electron population density [m^-3]
  • SET INITIAL POPULATIONS : if 0 (false), the initial populations are N0=N1=1, and N2=N3=0. If set to 1 (true), the user can specify the initial populations and use this mechanism to change the number of electrons in the model
  • N0(0), N1(0), N2(0), N3(0) : the normalized electron density population at t=0. Set these number only when set initial population=1. [unitless]
  • DO NOT ENFORCE ELECTRON CONSERVATION : when set to 0 (false), electron conservation is enforced and the level N0 population is calculated by taking Ninitial - N3 - N2 - N1. Any remaining electrons are distributed among the other levels. If this property is set to 1 (true), then N0 is calculated from the rate equations but, with higher pump fields, it is possible for the total number of electrons to change over time and even to reach completely unphysical values.

The user can monitor the level populations by looking at the storage fields 4-7 which correspond to levels 0-3.

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Gain and Laser4 level 2 electron model, Pump and probe simulation

Source code: fourleveltwoelectron.h, fourleveltwoelectron.cpp

Storage fields

Polarization between levels 1 and 2:

storage_0 = Pan+1: (n+1)th time step

storage_1 = Pan: nth time step

Polarization between levels 0 and 3:

storage_2 = Pbn+1: (n+1)th time step

storage_3 = Pbn: nth time step

Population of levels for the nth time step:

storage_4 = N0: Level 0

storage_5 = N1: Level 1

storage_6 = N2: Level 2

storage_7 = N3: Level 3

References

The four-level two-electron model based on the implementation described in:

  1. Chang and Taflove, Optics Express, 2004, 3827-3833.
  2. Taflove, Computational Electromagnetics: The Finite-Difference Time-Domain Method. Boston: Artech House, (2005).

Kerr nonlinear

In the Kerr nonlinear model, the electric polarization field P will depend on the electric field E in the following manner.

 P(t)=ε0(χ(1)+χ(3)|E(t)|2)E(t)

 Solving for the displacement field D gives

 D(t)=ε0(εr+χ(3)|E(t)|2)E(t)

 The relative permittivity and χ(3)

values must be specified by the user.

This material model does not support the option to select a base material.

 Parameters and units

  • εr : Relative permittivity [unitless]
  • χ(3) : Chi3 [m^2/V^2]

 Behavior of Material Explorer and meshing algorithm

The material explorer will display a refractive index of 1, and the meshing algorithm will assume a refractive index of 1 when determining the simulation mesh size.

Examples and more information

Kerr effect example, Spatial Solitons - graphene

Source code: N/A. This is not a plugin material.

Paramagnetic

The paramagnetic material model allows the user to specify both the permittivity and permeability of the material to simulate magnetic materials.

Parameters and units

  • εr : Relative permittivity [unitless]
  • μr : Relative permeability [unitless]

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.

Examples and more information

Not available

Source code: paramagnetic.h, paramagnetic.cpp

Storage fields No storage field specified by default

Magnetic Electric Lorentz

This material allows for a Lorentz term in both the electric and magnetic properties. The material has a relative permittivity and permeability given by

 ε(ω)=εbase(ω)+χe+Δεω2eω2e−2iδeω−ω2

 μ(ω)=1+χm+Δμω2mω2m−2iδmω−ω2

 where the subscript e and m refer to the electric and magnetic properties respectively and w is the angular frequency. The user has the option of disabling either the electric or the magnetic portion of the update by setting the property 'exclude electric' or 'exclude magnetic' to 1 (true).

The properties of this material cannot be seen in the materials explorer, but can be visualized by using the script file, please refer to the this metamaterial example for more information.

 Parameters and units

  • χ(0) electric : Chi0, the susceptibility to add to the base material. If no base material is selected, εbase(ω) = 1. [unitless]
  • Δε electric : the change in permittivity [unitless]
  • ω0 electric : the angular frequency of the resonance [Hz]
  • δ electric : the linewidth of the resonance [Hz]
  • χ(0) magnetic : Chi0, the susceptibility [unitless]
  • Δμ magnetic : the change in permeability [unitless]
  • ω0 magnetic :the angular frequency of the resonance [Hz]
  • δ magnetic : the linewidth of the resonance [Hz]
  • exclude electric : if the excluded electric is set to 1 (true), then e=ebase.
  • exclude magnetic : if the exclude magnetic is set to 1 (true), then m=1.

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected. If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Bulk metamaterials

Source code: magneticelectriclorentz.h, magneticelectriclorentz.cpp

Storage fields

storage_E_0 = Pn: Polarization for the nth time step

storage_E_1 = Pn+1: Polarization for the (n+1)th time step

storage_H_0 = Mn: Magnetization for the nth time step

storage_H_1 = Mn+1: Magnetization for the (n+1)th time step

Index Perturbation (np Density / temperature)

The Index Perturbation material model is used to convert electron/hole density or temperature data into a change in refractive index. Typically a base material should be selected when using this material model.

Parameters and units

For details on these models, see Index Perturbation (np Density / temperature).

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.  

Examples and more information

Index Perturbation (np Density / temperature)

Source code:>N/A. This is not a plugin material.

Available material models (source code plugins)

Lorentz example

A practical demonstration showing user the basic idea and the implementation of material plugin using a simple Lorentz model, e.g., making the .h, .cpp and .dll files.

ε(ω)=εbase(ω)+Δεω20ω20−2iδω−ω2

Parameters and units

  • ω0 : the angular frequency of the resonance [Hz]
  • δ  : the linewidth of the resonace [Hz]
  • Δε : the change in relative permittivity [unitless]
  • εbase(ω) : Base material permittivity. If no base material is selected, εbase(ω) = 1

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.

Examples and video

Part I - Lorentz example, Presentation slides

Source code: lorentzexample.zip

Two-level one-electron example

A practical demonstration showing user the basic idea and the implementation of material plugin using a Two-level model, e.g., making the .h, .cpp and .dll files.

Parameters and units

  • w0: the angular frequencies corresponding to the energy differences of levels 1-0  [Hz]
  • g, g10 : the damping coefficients of P and transition 1->0 respectively which control the nonradiative losses [Hz]
  • Nd: the electron population density [m^-3]

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.

Examples and video

Part II - 4 level 2 electron example

Source code: twolevelexample.zip

Step index

A simple plugin material model which modifies the time domain update equations in order to apply a change in permittivity over a time step function, e.g., caused by an input electrical signal.

Parameters and units

  • Δε : the change in relative permittivity [unitless]
  • time_start, time_stop : the start and stop time of the step function [s]

Behavior of Material Explorer and meshing algorithm

The material explorer will display the refractive index of the base material, if one is selected.  If no base material is selected, a refractive index of 1 will be displayed.  

The meshing algorithm will use the refractive index of the base material when determining the simulation mesh size.  If no base material is selected, a refractive index of 1 will be assumed.

Examples and more information

Ring modulatorFlexible material plugin framework - Basic concept

Source code: stepindex.dll, stepindex.h, stepindex.cpp

Storage fields

Storage_E_0 = time_dt: Raw time data

Flexible Material Plugin Framework

FDTD MODE

Users can define their own plugin material models written in C++. These material models can be compiled as a plugin and added to the materials database. The standard FDTD and MODE installation packages include a number of Advanced material models implemented with this framework. Additional information can be found in the Flexible Material Plugins whitepaper.

Note: Technical support for developing material models using the Flexible Material Plugin Framework

Lumerical's technical support team can provide guidance on the capabilities and features of the Flexible Material Plugin Framework, but developing and debugging custom material models is beyond the scope of our technical support services. 

Lumerical's development team uses this feature to add support for new non-linear processes that are not built into the core FDTD solver.  We make the feature available to our customers, but it's important to understand that developing custom models is a very advanced feature. Documentation on this feature may be incomplete. Writing plugins requires a deep understanding of the FDTD method as well as prior experience with C++ programming. This feature is best suited to scientists with prior experience writing FDTD solvers.  

Basic concept

To create a new material, you must write a method in C++ that solves the following equation for for En

 UnEn+Pnε0=Vn

where En is the electric field at time nDt, Pn is the desired polarization at time nDt and Un and Vn are input values that we provide. The polarization that is added will be in addition to the polarization of any base material that is selected. If no base material is selected, the polarization will be added to the vacuum (ie. the default relative permittivity or permeability is 1.)

The same approach is used to create new magnetic materials.

Simple example (an example of the stepindex plugin)

Suppose you want to implement a simple linear, non-dispersive polarization that is added to Lumerical's default multi-coeffiient model (MCM) for Silicon from Palik. The polarization that we want to add is simply

 P=ε0χE

 In FDTD, this means that for each component of E in this material, you want to have

 Pn=ε0χEn

 and therefore you need to solve

 UnEn+χEn=Vn

 for En by implementing a method that returns

 En=VnUn+χ

 Once this material plugin has been created, you simply add this material to the database and select Silicon as the base material. You will now have a material with a total permittivity of

 ε(ω)=εMCM(ω)+ε0χ

 where εMCM(ω)

is the dispersive MCM model for Si from our database, and χ

is the additional non-dispersive susceptibility.

FAQ

Can I solve dispersive media that include auxilliary fields?

Yes, you can tell us how many storage fields you need and we will allocate the memory and allow you to update the storage fields.

Can I solve for non-linear media?

Yes, this is one of the examples we provide. In fact the χ

(2) medium that comes with the software is actually created as a plugin.

Can I solve advanced material models that might involve coupling to multi-level electron systems? Yes, as long as you can define a polarization in the manner described above, you can introduce materials that involve extremely complicated material models, including gain media.

Can I use "|E|^2" in my update equations?

No. Strictly speaking it is not possible to calculate |E|^2 = |Ex|^2+|Ey|^2+|Ez|^2 because each field component (Ex, Ey, Ez) is updated separately and only has access to previous values of itself. For example, prior values of Ey, Ez can not be used in the update of Ex. The easiest way to understand this limitation is to remember that each field component is known at a different physical location within the FDTD Yee cell. However, if fields in the simulation are polarized along one of the Cartesian axis so that only one component of the fields is dominant, then you can approximate |E|^2 by the absolute value squared of that component.

Can I solve for anisotropic media?

Yes, the method is setup to handle diagonal anisotropic media. For non-diagonal anisotropy this can often be handled by applying local transformations of the reference frame using matrix transform grid attributes. In the future, we may implement additional plugin models that allow the user to see the other field components directly if that becomes important.

Overview

Material parameters

The end user can specify any number of parameters for the material. For example, the user might want to specify parameters χ(2) or χ(3). These parameters appear in the GUI user interface and can be easily modified by the end user.

Anisotropic materials

The user can provide different parameters for each component of the electric and magnetic field, or even different updates for each component. Therefore materials with diagonal anisotropy can be easily introduced.

Auxiliary fields

Many updates require a number of auxiliary fields that must be stored and updated from one time step to the next. For example, a multi-level, multi-electron model must store and update level populations. The user can indicate how many storage fields are required and can then update them, and can also monitor these fields in the GUI.

Interfaces between media

When a plugin material is on the interface of two media, the user has two options which can be set on a material by material basis:

The solver can revert to using the base material for Yee cells that contain an interface. This is appropriate when the polarization, P, introduced by the plugin can be seen as a small perturbation on the polarization of the base material.
The solver can revert to staircase meshing whenever the plugin material is encountered at an interface. This is appropriate when the polarization implemented by the plugin is not a small perturbation of the base material.

Limitations

We summarize some of the limitations of the current plugin implementation below. Lumerical is always interested in learning about use cases where these limitations make it impossible to achieve specific simulation goals.

Non-diagonal anisotropy

The current implementation of the Flexible Material Plugin does not provide the information on all field components that is necessary to directly handle off diagonal anisotropy. This is in fact a challenging aspect of FDTD simulations because, in the Yee cell the different field components are positioned at different spatial locations. An alternative solution however is provided by another feature of Lumerical’s software, which can be applied to the E field update only. The user can provide any spatial rotation, or even a more general unitary transformation, to rotate the E field into a different reference frame, and this transformation can also be spatially varying. While there is no general method to diagonalize the nonlinear susceptibilities, there are some situations where this transformation can be used.

Non-local effects

The current implementation does not allow for non-local effects. This would require knowledge of the neighboring field components, which is not currently available.

Compatibility with Conformal Mesh Technology

Conformal Mesh Technology can resolve interfaces with sub-mesh cell accuracy by specially treating the E and H fields at interfaces to solve an integral form of Maxwell’s equations. It is not possible to introduce plugin materials in the current version that can also be used with a conformal mesh update. However, as mentioned previously, the user can choose to revert to the base material for Yee cells containing an interface, and the base material can be used with the conformal mesh update.

How to use material plugins in the software

Once a plugin *.dll or *.so file has been created and is saved into the correct installation folder (ex. "C:\Program Files\Lumerical\FDTD\bin\plugins\materials" on a windows machine), the new material will appear automatically in the materials database, and can be added as shown below for the Chi2 material that was created as a plugin.

ref_FDTD_matDB_plugin1.png

 The input parameters that are specified as part of the plugin implementation will appear either in isotropic or diagonal anisotropic modes, as shown below:

 

ref_FDTD_matDB_plugin2.png

Examples

A number of example materials implemented with this feature (including source code) can be found in the Advanced material models page.

 

Understanding mesh order for overlapping objects

FDTD MODE DGTD CHARGE HEAT FEEM

ref_materials_mesh_order.png

The mesh order property governs how overlapping objects are meshed in the simulation. It serves no role for objects which do not overlap. The mesh order can be set at the material level (in the material database), or the object level (in the object properties). Materials with a lower mesh order take priority over materials with a higher priority number (i.e. order 1 takes priority over 2). Areas that overlap are assigned the material properties of the higher priority material (see the following figure).

In the figure above, there are two objects that partially overlap. Depending on their mesh orders, the object that is actually being simulated will be different. In the event that both overlapping materials have the same order, the mesh order will be inferred from the Object tree. Objects at the bottom of the tree will take priority over objects at the top of the tree. To ensure your simulation is well defined, it is recommended that you avoid situations where two different overlapping structures have the same mesh order. To set the mesh order using script, one can use setmaterial (material level), setnamed, or set (object level).

Alternative video source in Mandarin, click here

Mesh order in FDTD and MODE

  • For simulations using the conformal mesh, the mesh order property defines the material properties in the mesh cells where materials fully overlap one another. In the mesh cells which contain boundaries between two materials, the conformal mesh algorithm solves Maxwell's integral equations near these boundaries.
  • Use an index monitor to confirm that the structures are meshed as intended.
  • The etch material in the default Material database: By default, most materials in the material database have a mesh order of 2. The only exception is the etch material, which has a mesh order of 1. The lower mesh order means that an object using the etch material will override other objects of a different material type.

    The etch material has a refractive index of n=1. If you are using a different background index, you should modify the etch material to match the background index of your simulation.

  • 2d objects always take priority over 3d objects. For example, 3d cylinder overlapping a 2d rectangle will not create a hole in the 2d rectangle, regardless of their mesh order. 

2d_rect_overlapped_with_cylinder.PNG

  • To create a hole in a 2d material, you can use the script file, 2d_poly_examples.lsf, in the 2D polygon page.

2d_ract_with_hole.PNG

  • 2d objects respect mesh order among themselves. For example, a 2d rectangle with RLC overlapping a 2d polygon with PEC. The material of the overlap is determined according to mesh order.

Mesh order in CHARGE, HEAT, DGTD, FEEM

  • Plot the device geometry after meshing to confirm that the structures were meshed as intended. The ID plot displays the geometry of your design based on several factors, such as the mesh order, sequence that the objects are created, and the material of the objects. To show the ID, hit the "Recalculate simulation mesh" button to calculate mesh, then right-click on "Device region" and "visualize" grid. A visualizer should pop up, then select "ID" in the Attribute drop-down list. 
  • IDs of connected and split objects: If two objects are overlapped/connected and they are made of the same material, these two objects will be considered as a whole and thus share the same ID. If one object is fragmented into pieces by the insertion of another object, these fragments will be considered as individual objects and thus have different IDs.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值