GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
short_pulses.h
Go to the documentation of this file.
1#pragma once
2#include "raytrace.h"
3#include <functional>
4#include <vector>
6#include "superarray.h"
7
8namespace GOAT
9{
10 namespace raytracing
11 {
13 {
14 double wvlStart;
15 double wvlStop;
16 double dWvl;
17 };
18
27
28 /*
29 */
30 struct indexList
31 {
34 };
35
36 constexpr int log2n=10;
37 constexpr double standard_pulse_width = 1E-9;
38
46 {
47 public:
55 shortPulse(std::vector<wavelengthRange> WvlRanges, Scene S, std::vector<std::function<std::complex<double>(double) > > nList);
56 void setPulseWidth(int i, double pulseWidth);
58
59
60 std::vector<wavelengthRange> wvlRanges;
61 int numWvlRanges = 0;
63 std::vector<std::function<std::complex<double>(double) > > nList;
64 std::vector<rayListEntry> rayList;
65 std::vector<double> LSwidth;
67 std::vector<unsigned int> bitLT;
68 };
69 }
70}
Template class for threedimensional vectors.
Definition vector.h:57
Class defining a scene with lightsources and objects. This is a container used to inform the Raytrace...
Definition raytrace.h:28
Template class to store arbitrary information in a 3D-grid This template class provides a virtual 3D-...
Definition superarray.h:26
Scene S
the scene - it contains all information about the light sources, objects etc.
std::vector< wavelengthRange > wvlRanges
Here, the wavelength ranges for the calculation are stored.
int numWvlRanges
number of different wavelength ranges
std::vector< rayListEntry > rayList
List of all ray steps.
void startRaytracing()
performs raytracing process
void setPulseWidth(int i, double pulseWidth)
set pulse width of the i-th light source
std::vector< unsigned int > bitLT
bit reverse lookup table, used for FFT
std::vector< double > LSwidth
pulse widths of the light sources
shortPulse(std::vector< wavelengthRange > WvlRanges, Scene S, std::vector< std::function< std::complex< double >(double) > > nList)
Constructor.
SuperArray< maths::Vector< std::complex< double > > > field
std::vector< std::function< std::complex< double >(double) > > nList
List of the refractive index function for each object.
Raytracer used for ultrashort pulse calculation with raytracing only.
Definition asphericLens.h:6
constexpr int log2n
2^log2n support points for FFT
constexpr double standard_pulse_width
standard pulse width in seconds
This class is used for the iray class. This class is intended for internal use only....
Definition fresnel.h:7
int refIndex
index within the refractive index list (for further details refer to the description of class shortPu...
GOAT::maths::Vector< std::complex< double > > E
electric field