主要内容

coatingLibrary

Optical coating library for optical system components

Since R2026a

    Description

    Add-On Required: This feature requires the Optical Design and Simulation Library for Image Processing Toolbox add-on.

    Use the CoatingLibrary object to load a library of optical coatings for use with optical system components.

    To add a new optical coating to the coating library, use the addCoating object function. To remove an optical coating from the coating library, use the removeCoating object function. To search the coating library for a coating, use the pickCoating function. Use the restoreDefaultCoatingLibrary function to restore the default coating library.

    Creation

    Description

    cl = coatingLibrary loads the default optical coating library.

    example

    Properties

    expand all

    This property is read-only.

    Coating library table listing the optical coating catalogs available in the coating library, represented as a table. The table contains these columns:

    • Index — Index of the optical coating catalog. The CoatingLibrary object orders the catalogs in ascending order based on the order in which they were added, where 1 is the index of the most recently added catalog.

    • Name — Name of the optical coating catalog.

    • File — File location of the MAT file that contains the optical coating catalog.

    By default, the table has one row that contains the index, name, and location of the default optical coating catalog, MWCoatings.

    This property is read-only.

    All available coatings in the coating library, represented as an N-by-1 vector of opticalCoating objects. N is the total number of optical coatings in the coating library. Each element of the vector represents an optical coating. The order of the coatings corresponds to the order in which the catalogs that contain them appear in the CoatingCatalogTable property, and their positions within those catalogs. For example, the first element of Coatings is the first coating contained in the first catalog listed in the CoatingCatalogTable table, and the last element of Coatings is the last coating contained in the last catalog listed in the table.

    The default coating library contains two sample Bragg reflector coatings.

    Use the pickCoating function to find a specific optical coating in the coating library and list its optical properties.

    Object Functions

    addCoatingAdd optical coating to optical coating library
    removeCoatingRemove optical coating from optical coating library

    Examples

    collapse all

    Load the optical coating library into the workspace.

    cl = coatingLibrary
    cl = 
      CoatingLibrary with properties:
    
        CoatingCatalogTable: [1×3 table]
                   Coatings: [2×1 opticalCoating]
    
    

    Display the two default optical coatings in the coating library.

    braggOc = cl.Coatings(1)
    braggOc = 
      opticalCoating with properties:
    
                      Name: "Bragg_587nm_12l"
        IncidentAngleRange: [0 15]
           WavelengthRange: [300 800]
         PrimaryWavelength: 587.6000
                    Medium: [1×1 opticalMaterial]
                 Substrate: [1×1 opticalMaterial]
          CoatingMaterials: [2×1 opticalMaterial]
        LayerMaterialIndex: [1 2 1 2 1 2 1 2 1 2 1 2]
            LayerThickness: [1 1 1 1 1 1 1 1 1 1 1 1]
             ThicknessUnit: "quarterWavelength"
                 NumLayers: 12
            TotalThickness: 983.4091
    
    
    braggOc = cl.Coatings(2)
    braggOc = 
      opticalCoating with properties:
    
                      Name: "Bragg_587nm_16l"
        IncidentAngleRange: [0 15]
           WavelengthRange: [300 800]
         PrimaryWavelength: 587.6000
                    Medium: [1×1 opticalMaterial]
                 Substrate: [1×1 opticalMaterial]
          CoatingMaterials: [2×1 opticalMaterial]
        LayerMaterialIndex: [1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2]
            LayerThickness: [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
             ThicknessUnit: "quarterWavelength"
                 NumLayers: 16
            TotalThickness: 1.3112e+03
    
    

    Add New Coatings to Coating Library

    Create a broadband anti-reflective (AR) optical coating that consists of two alternating TiO2/SiO2 material layer stacks.

    ocBBAR = opticalCoating(Name="BBAR_4l", ...
        CoatingMaterial=["TiO2", "SiO2"], ...
        LayerMaterialIndex=[1 2 1 2], ...
        ThicknessUnit="nm", ...
        LayerThickness=[14.6 36.5 129.1 95.5])
    ocBBAR = 
      opticalCoating with properties:
    
                      Name: "BBAR_4l"
        IncidentAngleRange: [0 15]
           WavelengthRange: [300 800]
         PrimaryWavelength: 587.5618
                    Medium: [1×1 opticalMaterial]
                 Substrate: [1×1 opticalMaterial]
          CoatingMaterials: [2×1 opticalMaterial]
        LayerMaterialIndex: [1 2 1 2]
            LayerThickness: [14.6000 36.5000 129.1000 95.5000]
             ThicknessUnit: "nm"
                 NumLayers: 4
            TotalThickness: 275.7000
    
    

    Create another Bragg reflector coating.

    ocBragg = opticalCoating(...    
        Name="Bragg_500nm_12l", ...
        CoatingMaterials=["SiO2", "TiO2"], ...
        PrimaryWavelength=500, ...
        LayerMaterialIndex = repmat([1 2], [1 6]), ...
        ThicknessUnit = "quarterWavelength", ...
        LayerThickness = ones(1,12));

    Add the new broadband AR and Bragg coatings to the coating library.

    addCoating(cl,[ocBBAR ocBragg])

    Display the updated coating library.

    cl
    cl = 
      CoatingLibrary with properties:
    
        CoatingCatalogTable: [2×3 table]
                   Coatings: [4×1 opticalCoating]
    
    

    Remove Coating From Coating Library

    Remove the newly added Bragg reflector from the coating library.

    removeCoating(cl,"Bragg_500nm_12l")

    Restore Default Coating Library

    To revert the changes and restore the coating library to its default state, use the restoreDefaultCoatingLibrary function.

    restoreDefaultCoatingLibrary

    Version History

    Introduced in R2026a