optics{ irradiation{} }

Output of comparison spectra, compute light field in the device, and photo-generation.

Note that spectral data can be alternatively defined in the database (see also Optical groups in database{} for list of predefined illumination spectra), in the database section of the input file, or imported from external files.

Lorentzian, Gaussian and Planck illumination spectra are fully additive, i.e. several of each can be added as needed in order to synthesize more complex illumination spectra.

Attributes for Specifying Energy Grid

min_wavelength

minimum photon wavelength

value:

real value >= 10 and <= 1e6

units:

[nm]

max_wavelength

maximum photon wavelength

value:

real value >= 10 and <= 1e6

units:

[nm]

min_energy

minimum photon energy

value:

real value >= 1e-6 and <= 100

units:

[eV]

max_energy

maximum photon energy

value:

real value >= 1e-6 and <= 100

units:

[eV]

energy_resolution

resolution of energy grid

value:

real value >= 1e-6

units:

[eV]

irradiation{
     min_energy = 0.5
     max_energy = 5.0
   # min_wavelength = 300.0
   # max_wavelength = 2000.0
     energy_resolution = 0.01
 }

illumination{}

A group defining illumination of modelled device

direction_x

ascending/descending illumination in x direction

value:

integer +1/-1

units:

(dimensionless)

direction_y

ascending/descending illumination in y direction

value:

integer +1/-1

units:

(dimensionless)

direction_z

ascending/descending illumination in z direction

value:

integer +1/-1

units:

(dimensionless)

database_spectrum{}

Importing one of several spectra (solar spectra, CIE illuminants, coefficient, reflectivity, …), which can be found in the database file Optical groups in database{}. Relative intensities (e.g. CIE illuminants) are normalized to 1.0 \(\mathrm{W/m}^2\)

name
value:

string

concentration
value:

real value >= 0.0

default:

1.0

illumination{
    direction_x = 1

    database_spectrum{
        name = "Solar-ASTM-G173-global"
    # name = "CIE-D75"
        concentration = 300 # e.g. 300 suns
    }
}
import_spectrum{}

importing spectrum from a file

import_from

path to a spectrum for importing

type:

string

cutoff
choice:

yes or no

absolute_intensities
choice:

yes or no

concentration
type:

real

illumination{
    direction_x = 1

    import_spectrum{
        import_from = "filename"
        cutoff = yes  # yes/no: If yes, set values outside definition interval to zero.
                    # (default=?)
        absolute_intensities = yes  # yes/no (default: yes)
                                    # If no, spectrum does not contain absolute values,
                                    # normalize intensity to 1 [W/cm^2 nm^-1] before concentration
        concentration = 300 # e.g. 300 suns
    }
}
constant_spectrum{} (optional)
irradiance
type:

real

unit:

\(W/m^2\)

constant_spectrum{
        irradiance = 10000.0  # in [W/m^2], integrated as min_energy...max_energy
    }
planck_spectrum{} (optional)
irradiance
type:

real

unit:

\(W/m^2\)

temperature
type:

real

unit:

\(K\)

planck_spectrum{
    irradiance = 10000.0  # in [W/m^2], for complete(!) Planck spectrum; real value >= 0.0
    temperature = 5000.0  # real value >= 1e-6
}
lorentzian_spectrum{} (optional)
irradiance
type:

real

unit:

\(W/m^2\)

wavelength (optional)
type:

real

unit:

\(nm\)

width (optional)
type:

real

unit:

\(nm\)

energy (optional)
type:

real

unit:

\(eV\)

gamma (optional)
type:

real

unit:

\(eV\)

lorentzian_spectrum{
        irradiance = 10000.0  # in [W/m^2], for complete(!) Lorentzian spectrum; real value >= 0.0

        # Specify either wavelength and width, or ...
        wavelength = 500.0   # real value >= 10.0 in |unit:nm|
        width = 100.0        # real value >= 1e-3 in |unit:nm|

        # ... specify energy and gamma.
        energy = 2.5         # real value >= 1e-6 in |unit:eV|
        gamma = 1.0          # real value >= 1e-6 in |unit:eV|
}
gaussian_spectrum{} (optional)
irradiance
type:

real

unit:

\(W/m^2\)

wavelength (optional)
type:

real

unit:

\(nm\)

width (optional)
type:

real

unit:

\(nm\)

energy (optional)
type:

real

unit:

\(eV\)

gamma (optional)
type:

real

unit:

\(eV\)

gaussian_spectrum{
    irradiance = 1000.0  # in [W/m^2], for complete(!) Gaussian spectrum; real value >= 0.0

    # Specify either wavelength and width, or ...
    wavelength = 500.0   # real value >= 10.0 in |unit:nm|
    width = 100.0        # real value >= 1e-3 in |unit:nm|

    # ... specify energy and gamma.
    energy = 2.5         # real value >= 1e-6 in |unit:eV|
    gamma = 1.0          # real value >= 1e-6 in |unit:eV|
}

reflectivity{} (optional)

database_spectrum{} (optional)
name
value:

string

reflectivity{
    database_spectrum{
        name = "Al0.80Ga0.20As"
    }
import_spectrum{} (optional)

importing spectrum from a file

import_from

path to a spectrum for importing

type:

string

cutoff
choice:

yes or no

import_spectrum{
    import_from = "filename"
    cutoff = yes  # yes/no: If yes, set values outside definition interval to zero.
                # (default=?)
}
constant_spectrum{} (optional)
reflectivity
type:

real

constant_spectrum{
    reflectivity = 0.5  # real value >= 0.0 and <= 1.0 (dimensionless)
}

absorption{} (optional)

database_spectrum{} (optional)
name
value:

string

absorption{
    database_spectrum{
        name = "GaAs"
    }
}
import_spectrum{} (optional)

importing spectrum from a file

import_from

path to a spectrum for importing

type:

string

cutoff
choice:

yes or no

decadic_absorption_unit
choice:

yes or no

absorption{
    import_spectrum{
        import_from = "filename"
        cutoff = yes  # yes/no: If yes, set values outside definition interval to zero.
                    # (default=?)
        decadic_absorption_unit = no # yes or no, default: no
    }
}
constant_spectrum{} (optional)
absorption
type:

real

unit:

1/cm

decadic_absorption_unit
type:

real

unit:

dB/um

absorption{
    constant_spectrum{
        absorption = 0.5  # real value >= 0.0 [1/cm]
        # or
        decadic_absorption = 0.0 # real value >= 0.0
    }
}

output_spectra{}

illumination (optional)
type:

choice

values:

yes or no

reflectivity (optional)
type:

choice

values:

yes or no

absorption (optional)
type:

choice

values:

yes or no

decadic_absorption (optional)
type:

choice

values:

yes or no

spectra_over_energy (optional)
type:

choice

values:

yes or no

spectra_over_wavelength (optional)
type:

choice

values:

yes or no

spectra_over_frequency (optional)
type:

choice

values:

yes or no

spectra_over_wavenumber (optional)
type:

choice

values:

yes or no

output_spectra{
    illumination         = yes   # yes/no     outputs spectrum binned to energy grid
    reflectivity         = yes   # yes/no     outputs spectrum binned to energy grid
    absorption           = yes   # yes/no     outputs spectrum binned to energy grid
    decadic_absorption   = yes   # yes/no     outputs spectrum binned to energy grid

    spectra_over_energy     = yes   # yes/no (default: yes)
    spectra_over_wavelength = yes   # yes/no (default: yes)
    spectra_over_frequency  = yes   # yes/no (default: no)
    spectra_over_wavenumber = yes   # yes/no (default: no)
}

photo_generation{}

Output generated carriers \(G(x)\) and \(G(x,E)\) due to photon absorption.

output
type:

choice

values:

yes or no

output_spectrum
type:

choice

values:

yes or no

output_energy_resolved
type:

choice

values:

yes or no

output_quantum_efficiency
type:

choice

values:

yes or no

photo_generation{
    output = yes                   # yes/no (default: yes)
    output_spectrum = yes          # yes/no (default: no)
    output_energy_resolved = yes   # yes/no (default: no)
    output_quantum_efficiency = yes   # yes/no (default:yes)
}

Output of Light Field

The light field is calculated as a function of position and energy.

output_light_field
options:

yes or no

default:

no

output_light_field = yes