This article shows how to create a non-scattering volume file in Speos format based on raw measurement data.
The Speos format *.material models volume/bulk optical properties that are applied to a solid body, not on a surface.
Overview
The following data is needed to create a non-scattering material file :
- the variation of the absorption coefficient [mm^{-1}] based on the wavelength.
- the variation of the refraction index [unitless] based on the wavelength.
The data can either be processed in the User Material Editor, requiring a Speos license, or in plain text format *.txt without Speos license needed. Any change in the text file will appear in the User Material Editor interface when saved with the *.material file extension.
Step 1: Index Variation – Defining the dispersion curve
- Option 1: by using only the index at 587.6nm and the Constringence/Abbe Number (shown above)
- Option 2: by explicitly giving the index value for each wavelength.
- Option 3: by using the Sellmeier formula
- Option 4: By using the Kettler-Helmholtz formula (only for glasses)
Step 2: Absorption Variation
The transmittance can also be used with the formula provided in this section.
Note:
We will restrict ourselves the Isotropic Material Type in this article, but Birefringent, Fluorescent and Metallic types are also possible.
Prerequisites
- More wavelengths will result in a more precise description of the material.
- A Speos license is not required to create an input file, only a basic text editor is required
Each *.material file must start and finish with the lines described below, N being the number of the last line, depending on the data:
Row 1 |
OPTIS - Material file v13 |
Header (not to be changed) |
The value of the last line will remain 0 in this article, limited to non-scattering materials. It is set to 1 if the material has scattering properties.
The second and third to last lines define the measured and user concentration.
See Absorption Variation (ansys.com) for more details on the measured and user concentration.
Step 1: Index Variation – Defining the dispersion curve
There are four different ways to define the dispersion curve in the *.material format. The most common way, using only the index at 587.6nm and the Constringence (Abbe Number), is shown in this step.
The three other ways are shown further down.
The other refractive indices are automatically calculated using the constringence formula from the defined index at 587.6nm and the Constringence.
See Index Variation (ansys.com) for more details.
Row 1 |
OPTIS - Material file v13 |
Header. |
Note:
The required Abbe Number is V_{d} with n_{d} in the Helium line at 587.5618 nm.
The required Abbe Number is not V with n_{D} taken in the Sodium line at 589.3 nm.
Step 2: Absorption Variation
There is only one way to define the absorption variation in the *.material file format: expressing the absorption coefficient (mm^{-1}) as a function of the wavelength:
Row 1 |
OPTIS - Material file v13 |
Header. |
The absorption coefficient α (mm^{-1}) can be calculated from the Transmittance T (entered in unitless decimal value) using the following formula derived from the Beer-Lambert law:
where l is the propagation distance in mm, I(0) the incident light, and I(l) the transmitted light.
To use the Absorbance formula with logarithm in base 10, see Compute the absorption coefficient using Absorbance at the end of this article.
Note: a physical sample has two interfaces. The Fresnel equation is therefore applied twice. If the Transmittance is measured by dividing the amount of light coming out of the sample by the amount coming in, the Fresnel interactions must be considered.
In the case of glass and air, this can be approximated by dividing T by 0,9216
Alternative ways to define the dispersion curve (index variation)
- using only the index at 587.6nm and the Constringence/Abbe Number (shown above)
- explicitly giving the index value for each wavelength
The data is therefore a 2xN table, N being the number of wavelengths:
Row 1 |
OPTIS - Material file v13 |
Header. |
- using the Sellmeier formula
Where B1-3 and C1-3 are defined.
Row 1 |
OPTIS - Material file v13 |
Header. |
- using the Kettler-Helmholtz formula (only for glasses)
Where A0-5 are defined:
Row 1 |
OPTIS - Material file v13 |
Header. |
Compute the absorption coefficient using Absorbance
Theory
The absorption coefficient can also be used in the Absorbance formula:
To avoid confusion between logarithm base 10 (log_{10}) and natural logarithm (ln), we write α_{10}=A/l when the absorption coefficient is derived from the logarithm in base 10 instead of the natural logarithm. Here α remains the absorption coefficient derived from the natural logarithm formula.
The relationship between α and α_{10} is therefore:
Automation Example
A Python script available on the Optical Automation Library repository automatically calculates the absorption coefficient using provided decadic absorbance A_{10} data, and consecutively generates a *.material file that can be directly used by Speos. More specifically, the script performs in sequence three main operations:
- It reads a data file containing the spectral decadic absorbance (decadic absorbance with respect to wavenumber),
- then converts the syntax of the provided data to the Speos *.material one as outlined in step 2 of this article,
- and finally creates the respective Speos *.material file.
This script is useful for the definition of gases or other materials with specific spectral (decadic) absorbance provided by a data file. The latter is in principle a txt, xls, xlsx or dat file whose content consists of two columns: The first column contains the wavenumber values (cm^{-1}) and the second column contains the corresponding decadic absorbance values (1 ppm-meter).
Taking the model further
- The article Speos Scattering Material File Format details the additional information needed to add bulk diffusion/scattering properties to the file. The file extension remains *.material.
- The material types can be set to Birefringent, Fluorescent and Metallic. More information about these types is available in the Speos Labs User's Guide: General (ansys.com)