PLaSK library
Loading...
Searching...
No Matches
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 charNAME = "material gain"
 
static constexpr const charUNIT = "1/cm"
 
- Static Public Attributes inherited from plask::Property< _propertyType, _ValueType2D, _ValueType3D, _ExtraParams >
static const PropertyType propertyType = _propertyType
 Type of property.
 
static constexpr const charNAME = 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

Enumerator
GAIN 
DGDN 

Definition at line 40 of file gain.hpp.

Member Data Documentation

◆ NAME

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

Definition at line 45 of file gain.hpp.

◆ NUM_VALS

constexpr size_t plask::Gain::NUM_VALS = 2
staticconstexpr

Definition at line 44 of file gain.hpp.

◆ UNIT

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

Definition at line 46 of file gain.hpp.


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