OEIL
LaserPowerBacktracer.h
1 #ifndef LASERPOWERBACKTRACER_H
2 #define LASERPOWERBACKTRACER_H
3 
4 #include "NonlinearLossModel.h"
5 #include <boost/numeric/odeint.hpp>
6 
12  private:
13  double final_power_;
14  double final_intensity_;
15 
16  public:
17 #ifdef __DEBUG_
19 #endif
20  LaserPowerBacktracer(double powerInWattBeforeReceiver, double waveguideLength);
21 
22  double getFinalPower() const { return final_power_; }
23 
28  void setFinalPower(double finalPower);
29  void updateModel();
30 
31  void echoParameters() const;
32  double totalLossAcrossWaveguide();
33  double nonlinearLossAcrossWaveguide();
34 
35  virtual void operator()(const intensity_state& I, intensity_state& dIdz, const double z) const override;
36 };
37 #endif
Definition: NonlinearLossModel.h:52
void updateModel()
This function intends to recalculate the model-related parameters from the user-input parameters...
Definition: LaserPowerBacktracer.cpp:91
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.
Definition: LaserPowerBacktracer.cpp:104
void setFinalPower(double finalPower)
This function sets the required coupled-out power in Watt.
Definition: LaserPowerBacktracer.cpp:82
LaserPowerBacktracer(double powerInWattBeforeReceiver, double waveguideLength)
Construct a new LaserPowerBacktracer object by specifying the coupled-out power (in Watt) by the end ...
Definition: LaserPowerBacktracer.cpp:21
LaserPowerBacktracer does exactly the reverse of the NonlinearLossModel which it inherits from...
Definition: LaserPowerBacktracer.h:11