PLaSK library

Loading...
Searching...
No Matches
Public Types | Static Public Attributes | List of all members
plask::Gain Struct Reference

Material gain (1/cm). More...

`#include <plask/properties/gain.hpp>`

Inheritance diagram for plask::Gain:
[legend]
Collaboration diagram for plask::Gain:
[legend]

## Public Types
enum | EnumType { GAIN = 0 , DGDN = 1 }
Public Types inherited from plask::MultiFieldProperty< Tensor2< double >, double >
typedef size_t | EnumType
| Default value enumeration type.
Public Types inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
typedef _ValueType2D | ValueType2D
| Type of provided value in 2D space.
typedef _ValueType3D | ValueType3D
| Type of provided value in 3D space.
typedef VariadicTemplateTypesHolder< _ExtraParams... > | ExtraParams
| Extra parameters passed as arguments to provider to get value.

## Static Public Attributes
static constexpr size_t | NUM_VALS = 2
static constexpr const char * | NAME = "material gain"
static constexpr const char * | UNIT = "1/cm"
Static Public Attributes inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
static const PropertyType | propertyType = _propertyType
| Type of property.
static constexpr const char * | NAME = PropertyTypeToProviderName<_propertyType>::value
| Name of the property.
static constexpr bool | hasUniqueValueType = false
| `true` only if property use same value type in 2D and 3D space

## Additional Inherited Members
Static Public Member Functions inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
static ValueType2D | getDefaultValue2D ()
| Return default value of the property (usually zero) in 2D space.
static ValueType3D | getDefaultValue3D ()
| Return default value of the property (usually zero) in 3D space.

## Detailed Description

Material gain (1/cm).

This is the gain property. It should have the same unit as absorption. Providers must set it to NaN everywhere outside of the active region. Optical solvers should thread NaNs as zeros. It can also be set negative in case there is some absorption which is not covered by the material database.

It can also be a gain profile. Some optical solvers can determine the threshold gain as a constant, which should be added to it in order to obtain the zero modal gain (threshold). The regions where it is NaN should not be affected.

Providers of material gain should accept additional parameter, which is the wavelength for which the gain should be computed.

Definition at line 39 of file gain.hpp.

## Member Enumeration Documentation

## ◆ EnumType

enum plask::Gain::EnumType

Enumerator
GAIN |
DGDN |

Definition at line 40 of file gain.hpp.

## Member Data Documentation

## ◆ NAME

constexpr const char * plask::Gain::NAME = "material gain"
| static constexpr

Definition at line 45 of file gain.hpp.

## ◆ NUM_VALS

constexpr size_t plask::Gain::NUM_VALS = 2
| static constexpr

Definition at line 44 of file gain.hpp.

## ◆ UNIT

constexpr const char * plask::Gain::UNIT = "1/cm"
| static constexpr

Definition at line 46 of file gain.hpp.

The documentation for this struct was generated from the following files:

- plask/properties/gain.hpp
- plask/properties/names.cpp