.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/plot_bragg_mirror.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_plot_bragg_mirror.py: TiO2/SiO2 Bragg mirror ====================== .. GENERATED FROM PYTHON SOURCE LINES 7-14 TiO2/SiO2 Bragg mirror simulation --------------------------------- Authors: O. Castany, M.Müller This notebook simulates a Bragg mirror composed of alternating layers of TiO₂ and SiO₂, each a quarter-wavelength thick at a central wavelength of 1550 nm. The mirror contains 8.5 periods, with air as the incident medium and glass as the substrate. .. GENERATED FROM PYTHON SOURCE LINES 16-23 .. code-block:: Python import elli import elli.plot as elliplot import matplotlib.pyplot as plt import numpy as np np.set_printoptions(suppress=True, precision=3) .. GENERATED FROM PYTHON SOURCE LINES 24-28 Material definition ------------------- We define all required materials with constant (non-dispersive) refractive indicies. Air as incidence material and glass as exit material. The Bragg mirror materials are SiO2 and TiO2. .. GENERATED FROM PYTHON SOURCE LINES 28-34 .. code-block:: Python air = elli.AIR glass = elli.ConstantRefractiveIndex(1.5).get_mat() SiO2 = elli.ConstantRefractiveIndex(1.47).get_mat() TiO2 = elli.ConstantRefractiveIndex(2.23 + 1j * 5.2e-4).get_mat() .. GENERATED FROM PYTHON SOURCE LINES 35-39 Create layers and structure --------------------------- The SiO2 and TiO2 layers are set to the thickness of an quarterwaveplate of the respective material at 1550 nm. .. GENERATED FROM PYTHON SOURCE LINES 39-52 .. code-block:: Python lbda0 = 1550 d_SiO2 = elli.get_qwp_thickness(SiO2, lbda0) d_TiO2 = elli.get_qwp_thickness(TiO2, lbda0) print("Thickness of the SiO2 QWP: {} nm".format(d_SiO2)) print("Thickness of the TiO2 QWP: {} nm".format(d_TiO2)) L_SiO2 = elli.Layer(SiO2, d_SiO2) L_TiO2 = elli.Layer(TiO2, d_TiO2) .. rst-class:: sphx-glr-script-out .. code-block:: none Thickness of the SiO2 QWP: 263.6054421768708 nm Thickness of the TiO2 QWP: 173.76681614349775 nm .. GENERATED FROM PYTHON SOURCE LINES 53-59 Create layers and structure --------------------------- We now build the multilayer stack: Alternating layers of TiO2 / SiO2: - 8 full periods + 1 TiO2 layer at the end → "8.5 periods" - Placed between air (front) and glass (back) .. GENERATED FROM PYTHON SOURCE LINES 59-67 .. code-block:: Python # Define periodic stack # Repeated layers: 8.5 periods: Parameters (Substructure, repetitions, number of layers before, number of layers after the stack) layerstack = elli.RepeatedLayers([L_TiO2, L_SiO2], 8, 0, 1) # Build full structure s = elli.Structure(air, [layerstack], glass) .. GENERATED FROM PYTHON SOURCE LINES 68-70 Structure Graph: Visualization of the refractive index profile in z-direction. ------------------------------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 70-72 .. code-block:: Python elliplot.draw_structure(s) .. image-sg:: /auto_examples/images/sphx_glr_plot_bragg_mirror_001.png :alt: plot bragg mirror :srcset: /auto_examples/images/sphx_glr_plot_bragg_mirror_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 73-76 Optical calculation ------------------- Calculation of the reflection and transmission of the structure at normal incidence (0°). .. GENERATED FROM PYTHON SOURCE LINES 76-84 .. code-block:: Python (lbda1, lbda2) = (1100, 2500) lbda_list = np.linspace(lbda1, lbda2, 200) data = s.evaluate(lbda_list, 0) R = data.R T = data.T .. GENERATED FROM PYTHON SOURCE LINES 85-88 Reflection and Transmission data -------------------------------- The plot shows the high reflection in the stopband region around the design wavelength and the interference patterns around it. .. GENERATED FROM PYTHON SOURCE LINES 88-97 .. code-block:: Python fig = plt.figure() ax = fig.add_subplot(1, 1, 1) ax.plot(lbda_list, T, label="$T$") ax.plot(lbda_list, R, label="$R$") ax.legend(loc="center right") ax.set_xlabel(r"Wavelength $\lambda$ (nm)") ax.set_ylabel(r"Power reflection $R$ or transmission $T$") ax.set_title(r"Bragg mirror: Air/{TiO$_2$/SiO$_2$}x8/TiO$_2$/Glass") plt.show() .. image-sg:: /auto_examples/images/sphx_glr_plot_bragg_mirror_002.png :alt: Bragg mirror: Air/{TiO$_2$/SiO$_2$}x8/TiO$_2$/Glass :srcset: /auto_examples/images/sphx_glr_plot_bragg_mirror_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.240 seconds) .. _sphx_glr_download_auto_examples_plot_bragg_mirror.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_bragg_mirror.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_bragg_mirror.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_bragg_mirror.zip `