OEIL
Public Member Functions | List of all members
LaserPowerBacktracer Class Reference

LaserPowerBacktracer does exactly the reverse of the NonlinearLossModel which it inherits from. More...

#include <LaserPowerBacktracer.h>

Inheritance diagram for LaserPowerBacktracer:
Inheritance graph
[legend]
Collaboration diagram for LaserPowerBacktracer:
Collaboration graph
[legend]

Public Member Functions

 LaserPowerBacktracer (double powerInWattBeforeReceiver, double waveguideLength)
 Construct a new LaserPowerBacktracer object by specifying the coupled-out power (in Watt) by the end of the waveguide, and the waveguide length. More...
 
double getFinalPower () const
 
void setFinalPower (double finalPower)
 This function sets the required coupled-out power in Watt. More...
 
void updateModel ()
 This function intends to recalculate the model-related parameters from the user-input parameters. More...
 
void echoParameters () const
 
double totalLossAcrossWaveguide ()
 
double nonlinearLossAcrossWaveguide ()
 
virtual void operator() (const intensity_state &I, intensity_state &dIdz, const double z) const override
 This is a callback function for integating the optical power intensity over the wavelength, z. More...
 
- Public Member Functions inherited from NonlinearLossModel
 NonlinearLossModel (double coupled_in_power, double waveguideLength)
 
virtual void echoParameters ()
 
double getLinearLossPerLength () const
 
double getCarrierLifetime () const
 
double getEffectiveModeArea () const
 
double getStartPosition () const
 
double getStopPosition () const
 
double getInitialPower () const
 
double getInitialIntensity () const
 
void setLinearLoss (double linearLoss_dB)
 
void setCarrierLifetime (double lifetime)
 
void setEffectiveModeArea (double Aeff)
 
void setWaveguideLength (double length)
 
void setInitialPower (double initalPower)
 
void resetParameters ()
 
void setParametersFromFile ()
 
double totalLossAcrossWaveguide ()
 
double totalLossAcrossWaveguide (double initalPower)
 
double linearLossAcrossWaveguide ()
 
double nonlinearLossAcrossWaveguide ()
 
double nonlinearLossAcrossWaveguide (double initalPower)
 

Additional Inherited Members

- Protected Member Functions inherited from NonlinearLossModel
void initParameters ()
 
void updateModel ()
 
- Protected Attributes inherited from NonlinearLossModel
const double kPhotonEnergy1550
 
const double kStartPosition
 
const double kWavelength
 
const double kStepLength
 
double alpha_dB_
 
double carrier_lifetime_
 
double effective_mode_area_
 
double stop_position_
 
double initial_power_
 
double beta_
 
double sigma_
 
double photon_energy_
 
double alpha_
 
double gamma_
 
double initial_intensity_
 
double totalLoss_
 

Detailed Description

LaserPowerBacktracer does exactly the reverse of the NonlinearLossModel which it inherits from.

It intakes the final power (in Watt) and calculates the initial coupled-in power and the corresponding propagation loss.

Constructor & Destructor Documentation

LaserPowerBacktracer::LaserPowerBacktracer ( double  powerInWattBeforeReceiver,
double  waveguideLength 
)

Construct a new LaserPowerBacktracer object by specifying the coupled-out power (in Watt) by the end of the waveguide, and the waveguide length.

Parameters
powerInWattBeforeReceiverThe coupled-out power by the end of the waveguide.
waveguideLengthLength of the waveguide in question.

Member Function Documentation

void LaserPowerBacktracer::operator() ( const intensity_state &  I,
intensity_state &  dIdz,
const double  z 
) const
overridevirtual

This is a callback function for integating the optical power intensity over the wavelength, z.

See boost::numeric::odeint for details.

Parameters
Idenotes the optical power intensity at a given position on the waveguide. (Unit: Watt)
dIdzdenotes the changing rate of power intensity at a given position.
zdenote the postion on the given waveguide.

Reimplemented from NonlinearLossModel.

void LaserPowerBacktracer::setFinalPower ( double  finalPower)

This function sets the required coupled-out power in Watt.

This function sets the required power level by the end of the waveguide.

Parameters
finalPowerThe final power in Watt.

The nonlinear loss will the be calculated by backtracing the coupled-in power.

Parameters
finalPowerThe required power level in Watt by the end of the waveguide.
void LaserPowerBacktracer::updateModel ( )

This function intends to recalculate the model-related parameters from the user-input parameters.

This function should be invoked at leaser once before nonlinear loss is calculated.


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