optics{}¶

Specifications for the optics keyword, e.g. for the calculation of the optical absorption:

debuglevel (optional)
value

integer value >= -1 and <= 4.

default

0

The larger this value is, the more verbose the diagnostic output get.

irradiation{} (optional)

Output of comparison spectra, compute light field in the device, and photo-generation. See a detailed description here.

emission_spectrum{} (optional)

Compute and output emission spectra calculated from energy-resolved densities See a detailed description here.

quantum_region{} (optional)

Setting up models to compute quantum-optical spectra See a detailed description here.

Code Example

There is a nice optics tutorial on the optical absorption feature of nextnano++.

optics{

    debuglevel = 2

    emission_spectrum{
        output_spectra{
            emission            = yes
            gain                = yes
            absorption          = yes
            stimulated_emission = yes

            spectra_over_energy     = yes
            spectra_over_wavelength = yes
            spectra_over_frequency  = yes
            spectra_over_wavenumber = yes

            photon_spectra = yes

            power_spectra = yes
        }
        refractive_index      = 3.0
    }

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

        illumination{
            direction_x = 1

            database_spectrum{
                name = "Solar-ASTM-G173-global"
                concentration = 300
            }
        }

        reflectivity{
            database_spectrum{
                name = "Al0.80Ga0.20As"
            }
        }

        absorption{
            database_spectrum{
                name = "GaAs"
            }
        }

        output_spectra{
            illumination = yes
            reflectivity = yes
            absorption   = yes

            spectra_over_energy     = yes
            spectra_over_wavelength = yes
            spectra_over_frequency  = yes
            spectra_over_wavenumber = yes
        }

        photo_generation{
            output = yes
            output_spectrum = yes
            output_energy_resolved = yes
            output_quantum_efficiency = yes
        }

        output_light_field = yes
    }

    quantum_region{
        name = "optical_active"

        # Input values

        # (sigma+) circularly polarized light around the x axis
        polarization{ name = "y+iz"
                    re = [0,1,0]
                    im = [0,0, 1] }

        refractive_index     = 10.0  # []       (optional)
        normalization_volume = 100.0 # [nm^dim] (optional)

        # Setting for k|| and eigenstate summation
        make_spin_degenerate            = no
        spin_align                      = yes

        interband                       = yes
        intraband                       = yes

        energy_threshold                = 1e-6    # [eV]
        transition_threshold            = 1e-6    # [eV]
        occupation_threshold            = 0       # [eV]

        k_integration{
            relative_size      = 0.1               #

            num_points         = 4

            # Specify either num_subpoints or num_totalsubpoints.
            num_subpoints      =  16
            num_totalsubpoints = 128

            symmetry           = 1
        }


        # Treatment of occupation
        occupation_ignore               = no
        occupation_interpolate_invfermi = yes
        occupation_const_fermilevel     = no

        # Output settings
        output_energies                 = no
        output_occupations              = no
        output_transitions              = no
        output_spinor_components        = no

        output_spectra{
            output_components           = no
            spectra_over_energy         = yes
            spectra_over_wavelength     = no
            spectra_over_frequency      = no
            spectra_over_wavenumber     = no
        }

        spontaneous_emission = yes

        energy_min                   = 1.4      # [eV]
        energy_max                   = 1.7      # [eV]
        energy_resolution            = 0.001    # [eV]
        energy_broadening_lorentzian = 0.005    # [eV]
        # energy_broadening_gaussian   = 0.005    # [eV]

        dipole_approximation = no       # preliminary

    }
}