Helios++
Helios software for LiDAR simulations
EnergyMaths.h
1 #pragma once
2 
3 #include <cmath>
4 #include <maths/MathConstants.h>
5 
12 private:
13  // *** STATIC CLASS *** //
14  // ********************** //
15  EnergyMaths() {};
16  virtual ~EnergyMaths() = 0;
17 
18 public:
19  // *** EMITTED / RECEIVED POWER *** //
20  // ********************************** //
41  static double calcEmittedPower(
42  double const I0,
43  double const lambda,
44  double const R,
45  double const R0,
46  double const r,
47  double const w0
48  );
53  static double calcEmittedPowerLegacy(
54  double const I0,
55  double const lambda,
56  double const R,
57  double const R0,
58  double const r,
59  double const w0
60  );
61 
95  static double calcReceivedPower(
96  double const I0,
97  double const lambda,
98  double const R,
99  double const R0,
100  double const r,
101  double const w0,
102  double const Dr2,
103  double const Bt2,
104  double const etaSys,
105  double const ae,
106  double const sigma
107  );
115  static double calcReceivedPowerLegacy(
116  double const Pe,
117  double const Dr2,
118  double const R,
119  double const Bt2,
120  double const etaSys,
121  double const etaAtm,
122  double const sigma
123  );
124 
125  // *** ATMOSPHERIC STUFF *** //
126  // *************************** //
139  static double calcAtmosphericFactor(double const R, double const ae);
140 
141 
142  // *** CROSS-SECTION *** //
143  // *********************** //
156  static double calcCrossSection(
157  double const f,
158  double const Alf,
159  double const theta
160  );
161 
162 
163  // *** LIGHTING *** //
164  // ****************** //
174  static double phongBDRF(
175  double const incidenceAngle,
176  double const targetSpecularity,
177  double const targetSpecularExponent
178  );
179 };
Some common mathematical operations concerning energy.
Definition: EnergyMaths.h:11
static double calcEmittedPowerLegacy(double const I0, double const lambda, double const R, double const R0, double const r, double const w0)
Legacy version of EnergyMaths::calcEmittedPower.
Definition: EnergyMaths.cpp:19
static double calcReceivedPower(double const I0, double const lambda, double const R, double const R0, double const r, double const w0, double const Dr2, double const Bt2, double const etaSys, double const ae, double const sigma)
Solve the laser radar equation.
Definition: EnergyMaths.cpp:35
static double calcEmittedPower(double const I0, double const lambda, double const R, double const R0, double const r, double const w0)
Compute the space distribution equation to calculate the beam energy decreasing the further away from...
Definition: EnergyMaths.cpp:7
static double calcCrossSection(double const f, double const Alf, double const theta)
Compute cross section.
Definition: EnergyMaths.cpp:82
static double phongBDRF(double const incidenceAngle, double const targetSpecularity, double const targetSpecularExponent)
Compute the Phong model.
Definition: EnergyMaths.cpp:94
static double calcReceivedPowerLegacy(double const Pe, double const Dr2, double const R, double const Bt2, double const etaSys, double const etaAtm, double const sigma)
Legacy version of EnergyMaths::calcReceivedPower.
Definition: EnergyMaths.cpp:58
static double calcAtmosphericFactor(double const R, double const ae)
Compute the atmospheric factor , understood as the energy left after attenuation by air partciles in ...
Definition: EnergyMaths.cpp:74