# PLaSK User Manual

#### Page Contents

- `plask.material`
  - Classes
  - Functions
  - Descriptions
    - Function Details
      - `Ag()`
      - `Air()`
      - `Al()`
      - `AlAs()`
      - `AlAsP()`
      - `AlAsSb()`
      - `AlGaAs()`
      - `AlGaAsSb()`
      - `AlGaInAs()`
      - `AlGaInAsSb()`
      - `AlGaInP()`
      - `AlGaN()`
      - `AlGaP()`
      - `AlGaSb()`
      - `AlInAs()`
      - `AlInP()`
      - `AlInSb()`
      - `AlN()`
      - `AlNzb()`
      - `AlOx()`
      - `AlP()`
      - `AlPSb()`
      - `AlSb()`
      - `Au()`
      - `AuGe()`
      - `AuZn()`
      - `BCB()`
      - `Cu()`
      - `GaAs()`
      - `GaAsP()`
      - `GaAsSb()`
      - `GaInAsP()`
      - `GaInAsSb()`
      - `GaInNAs()`
      - `GaInSb()`
      - `GaN()`
      - `GaN_bulk()`
      - `GaNzb()`
      - `GaP()`
      - `GaPSb()`
      - `GaSb()`
      - `ITO()`
      - `In()`
      - `InAs()`
      - `InAsP()`
      - `InAsSb()`
      - `InGaAs()`
      - `InGaN()`
      - `InGaP()`
      - `InN()`
      - `InNzb()`
      - `InP()`
      - `InPSb()`
      - `InSb()`
      - `Ni()`
      - `Pt()`
      - `Si()`
      - `Si3N4()`
      - `SiO2()`
      - `Ti()`
      - `alloy()`
      - `dielectric()`
      - `get()`
      - `getdb()`
      - `info()`
      - `is_alloy()`
      - `liquid_crystal()`
      - `load_all_libraries()`
      - `load_library()`
      - `metal()`
      - `savedb()`
      - `semiconductor()`
      - `setdb()`
      - `simple()`
      - `update_factories()`
      - `with_params()`

# `plask.material`

Materials and material database.

Many semiconductor materials used in photonics are defined here. We have made a significant effort to ensure their physical properties to be the most precise as the current state of the art. However, you can derive an abstract class `plask.Material` to create your own materials.

## Classes

`Material` | Base class for all materials.
`MaterialsDB` | Container of all materials
`const` | staticmethod(function) -> method

## Functions

`Ag`(**kwargs) | Create material Ag.
`Air`() |
`Al`(**kwargs) | Create material Al.
`AlAs`(**kwargs) | Create material AlAs.
`AlAsP`(**kwargs) | Create material AlAsP.
`AlAsSb`(**kwargs) | Create material AlAsSb.
`AlGaAs`(**kwargs) | Create material AlGaAs.
`AlGaAsSb`(**kwargs) | Create material AlGaAsSb.
`AlGaInAs`(**kwargs) | Create material AlGaInAs.
`AlGaInAsSb`(**kwargs) | Create material AlGaInAsSb.
`AlGaInP`(**kwargs) | Create material AlGaInP.
`AlGaN`(**kwargs) | Create material AlGaN.
`AlGaP`(**kwargs) | Create material AlGaP.
`AlGaSb`(**kwargs) | Create material AlGaSb.
`AlInAs`(**kwargs) | Create material AlInAs.
`AlInP`(**kwargs) | Create material AlInP.
`AlInSb`(**kwargs) | Create material AlInSb.
`AlN`(**kwargs) | Create material AlN.
`AlNzb`(**kwargs) | Create material AlNzb.
`AlOx`(**kwargs) | Create material AlOx.
`AlP`(**kwargs) | Create material AlP.
`AlPSb`(**kwargs) | Create material AlPSb.
`AlSb`(**kwargs) | Create material AlSb.
`Au`(**kwargs) | Create material Au.
`AuGe`(**kwargs) | Create material AuGe.
`AuZn`(**kwargs) | Create material AuZn.
`BCB`(**kwargs) | Create material BCB.
`Cu`(**kwargs) | Create material Cu.
`GaAs`(**kwargs) | Create material GaAs.
`GaAsP`(**kwargs) | Create material GaAsP.
`GaAsSb`(**kwargs) | Create material GaAsSb.
`GaInAsP`(**kwargs) | Create material GaInAsP.
`GaInAsSb`(**kwargs) | Create material GaInAsSb.
`GaInNAs`(**kwargs) | Create material GaInNAs.
`GaInSb`(**kwargs) | Create material GaInSb.
`GaN`(**kwargs) | Create material GaN.
`GaN_bulk`(**kwargs) | Create material GaN_bulk.
`GaNzb`(**kwargs) | Create material GaNzb.
`GaP`(**kwargs) | Create material GaP.
`GaPSb`(**kwargs) | Create material GaPSb.
`GaSb`(**kwargs) | Create material GaSb.
`ITO`(**kwargs) | Create material ITO.
`In`(**kwargs) | Create material In.
`InAs`(**kwargs) | Create material InAs.
`InAsP`(**kwargs) | Create material InAsP.
`InAsSb`(**kwargs) | Create material InAsSb.
`InGaAs`(**kwargs) | Create material InGaAs.
`InGaN`(**kwargs) | Create material InGaN.
`InGaP`(**kwargs) | Create material InGaP.
`InN`(**kwargs) | Create material InN.
`InNzb`(**kwargs) | Create material InNzb.
`InP`(**kwargs) | Create material InP.
`InPSb`(**kwargs) | Create material InPSb.
`InSb`(**kwargs) | Create material InSb.
`Ni`(**kwargs) | Create material Ni.
`Pt`(**kwargs) | Create material Pt.
`Si`(**kwargs) | Create material Si.
`Si3N4`(**kwargs) | Create material Si3N4.
`SiO2`(**kwargs) | Create material SiO2.
`Ti`(**kwargs) | Create material Ti.
`alloy`([base]) | Decorator for custom alloy material class.
`dielectric`(**kwargs) | Create material dielectric.
`get`(*args, **kwargs) | Get material of given name and doping.
`getdb`() | Get default database.
`info`(name) | Get information dictionary on built-in material.
`is_alloy`(name) | Return `True` if the specified material is an alloy one.
`liquid_crystal`(**kwargs) | Create material liquid_crystal.
`load_all_libraries`(dir) | Load all materials from specified directory to database.
`load_library`(lib) | Load material library from file to database.
`metal`(**kwargs) | Create material metal.
`savedb`([copy]) | Save existing material database.
`semiconductor`(**kwargs) | Create material semiconductor.
`setdb`(src) | Set new material database.
`simple`([base]) | Decorator for custom simple material class.
`update_factories`() | For each material in default database make factory in `plask.material`.
`with_params` | object material_with_params(tuple args, dict kwds) : Get material with constant parameters specified as kwargs

## Descriptions

### Function Details

plask.material.Ag(**kwargs)

  Create material Ag.

  Return type:

    Material

plask.material.Air()

plask.material.Al(**kwargs)

  Create material Al.

  Return type:

    Material

plask.material.AlAs(**kwargs)

  Create material AlAs.

  Return type:

    Material

plask.material.AlAsP(**kwargs)

  Create material AlAsP.

  Return type:

    Material

plask.material.AlAsSb(**kwargs)

  Create material AlAsSb.

  Return type:

    Material

plask.material.AlGaAs(**kwargs)

  Create material AlGaAs.

  Return type:

    Material

plask.material.AlGaAsSb(**kwargs)

  Create material AlGaAsSb.

  Return type:

    Material

plask.material.AlGaInAs(**kwargs)

  Create material AlGaInAs.

  Return type:

    Material

plask.material.AlGaInAsSb(**kwargs)

  Create material AlGaInAsSb.

  Return type:

    Material

plask.material.AlGaInP(**kwargs)

  Create material AlGaInP.

  Return type:

    Material

plask.material.AlGaN(**kwargs)

  Create material AlGaN.

  Return type:

    Material

plask.material.AlGaP(**kwargs)

  Create material AlGaP.

  Return type:

    Material

plask.material.AlGaSb(**kwargs)

  Create material AlGaSb.

  Return type:

    Material

plask.material.AlInAs(**kwargs)

  Create material AlInAs.

  Return type:

    Material

plask.material.AlInP(**kwargs)

  Create material AlInP.

  Return type:

    Material

plask.material.AlInSb(**kwargs)

  Create material AlInSb.

  Return type:

    Material

plask.material.AlN(**kwargs)

  Create material AlN.

  Return type:

    Material

plask.material.AlNzb(**kwargs)

  Create material AlNzb.

  Return type:

    Material

plask.material.AlOx(**kwargs)

  Create material AlOx.

  Return type:

    Material

plask.material.AlP(**kwargs)

  Create material AlP.

  Return type:

    Material

plask.material.AlPSb(**kwargs)

  Create material AlPSb.

  Return type:

    Material

plask.material.AlSb(**kwargs)

  Create material AlSb.

  Return type:

    Material

plask.material.Au(**kwargs)

  Create material Au.

  Return type:

    Material

plask.material.AuGe(**kwargs)

  Create material AuGe.

  Return type:

    Material

plask.material.AuZn(**kwargs)

  Create material AuZn.

  Return type:

    Material

plask.material.BCB(**kwargs)

  Create material BCB.

  Return type:

    Material

plask.material.Cu(**kwargs)

  Create material Cu.

  Return type:

    Material

plask.material.GaAs(**kwargs)

  Create material GaAs.

  Return type:

    Material

plask.material.GaAsP(**kwargs)

  Create material GaAsP.

  Return type:

    Material

plask.material.GaAsSb(**kwargs)

  Create material GaAsSb.

  Return type:

    Material

plask.material.GaInAsP(**kwargs)

  Create material GaInAsP.

  Return type:

    Material

plask.material.GaInAsSb(**kwargs)

  Create material GaInAsSb.

  Return type:

    Material

plask.material.GaInNAs(**kwargs)

  Create material GaInNAs.

  Return type:

    Material

plask.material.GaInSb(**kwargs)

  Create material GaInSb.

  Return type:

    Material

plask.material.GaN(**kwargs)

  Create material GaN.

  Return type:

    Material

plask.material.GaN_bulk(**kwargs)

  Create material GaN_bulk.

  Return type:

    Material

plask.material.GaNzb(**kwargs)

  Create material GaNzb.

  Return type:

    Material

plask.material.GaP(**kwargs)

  Create material GaP.

  Return type:

    Material

plask.material.GaPSb(**kwargs)

  Create material GaPSb.

  Return type:

    Material

plask.material.GaSb(**kwargs)

  Create material GaSb.

  Return type:

    Material

plask.material.ITO(**kwargs)

  Create material ITO.

  Return type:

    Material

plask.material.In(**kwargs)

  Create material In.

  Return type:

    Material

plask.material.InAs(**kwargs)

  Create material InAs.

  Return type:

    Material

plask.material.InAsP(**kwargs)

  Create material InAsP.

  Return type:

    Material

plask.material.InAsSb(**kwargs)

  Create material InAsSb.

  Return type:

    Material

plask.material.InGaAs(**kwargs)

  Create material InGaAs.

  Return type:

    Material

plask.material.InGaN(**kwargs)

  Create material InGaN.

  Return type:

    Material

plask.material.InGaP(**kwargs)

  Create material InGaP.

  Return type:

    Material

plask.material.InN(**kwargs)

  Create material InN.

  Return type:

    Material

plask.material.InNzb(**kwargs)

  Create material InNzb.

  Return type:

    Material

plask.material.InP(**kwargs)

  Create material InP.

  Return type:

    Material

plask.material.InPSb(**kwargs)

  Create material InPSb.

  Return type:

    Material

plask.material.InSb(**kwargs)

  Create material InSb.

  Return type:

    Material

plask.material.Ni(**kwargs)

  Create material Ni.

  Return type:

    Material

plask.material.Pt(**kwargs)

  Create material Pt.

  Return type:

    Material

plask.material.Si(**kwargs)

  Create material Si.

  Return type:

    Material

plask.material.Si3N4(**kwargs)

  Create material Si3N4.

  Return type:

    Material

plask.material.SiO2(**kwargs)

  Create material SiO2.

  Return type:

    Material

plask.material.Ti(**kwargs)

  Create material Ti.

  Return type:

    Material

plask.material.alloy(base=None)

  Decorator for custom alloy material class.

  Parameters:

    base (str or material.Material) – Base class specification. It may be either a material object or a string with either complete or incomplete specification of the material. In either case you must initialize the base in the constructor of your material.

plask.material.dielectric(**kwargs)

  Create material dielectric.

  Return type:

    Material

plask.material.get(*args, **kwargs)

  Get material of given name and doping.

  Return type:

    Material

plask.material.getdb()

  Get default database.

plask.material.info(name)

  Get information dictionary on built-in material.

  Parameters:

    name (str) – material name without doping amount and composition. (e.g. ‘GaAs:Si’, ‘AlGaAs’).

plask.material.is_alloy(name)

  Return `True` if the specified material is an alloy one.

  Parameters:

    name (str) – material name without doping amount and composition. (e.g. ‘GaAs:Si’, ‘AlGaAs’).

plask.material.liquid_crystal(**kwargs)

  Create material liquid_crystal.

  Return type:

    Material

plask.material.load_all_libraries(dir)

  Load all materials from specified directory to database.

  This method can be used to extend the database with custom materials provided in binary libraries.

  Mind that this function will load each library only once (even if the database was cleared).

  Parameters:

    dir (str) – Directory name to load materials from.

plask.material.load_library(lib)

  Load material library from file to database.

  Mind that this function will load each library only once (even if the database was cleared).

  Parameters:

    lib (str) – Library to load without the extension (.so or .dll).

plask.material.metal(**kwargs)

  Create material metal.

  Return type:

    Material

plask.material.savedb(copy=True)

  Save existing material database.

  This function returns context manager used to save the existing database. On entering the context, the old saved database is returned.

  Parameters:

    copy (bool) – if True, the current database is copied to the temporary one.

  Example

      >>> with plask.material.savedb() as saved:
      >>>     plask.material.load('some_other_lib')

plask.material.semiconductor(**kwargs)

  Create material semiconductor.

  Return type:

    Material

plask.material.setdb(src)

  Set new material database.

  This function sets a material database to a copy of the provided one. It clears the old database, so use it with care. To temporarily switch the database, use `savedb()`.

  Parameters:

    src – New material database.

plask.material.simple(base=None)

  Decorator for custom simple material class.

  Parameters:

    base (str or material.Material) – Base class specification. It may be either a material object or a string with either complete or incomplete specification of the material. In either case you must initialize the base in the constructor of your material.

plask.material.update_factories()

  For each material in default database make factory in `plask.material`.

plask.material.with_params()

  object material_with_params(tuple args, dict kwds) : Get material with constant parameters specified as kwargs

  Return type:

    Material