15 #define PULSECALCULATION_CLEAR_SA 0
16 #define PULSECALCULATION_NOT_CLEAR_SA 1
79 std::vector<SuperArray<std::vector<gridEntry> > >
SA;
This class performs ray tracing in preparation for a later calculation of short pulses This class per...
Class defining a scene with lightsources and objects. This is a container used to inform the Raytrace...
Template class to store arbitrary information in a 3D-grid This template class provides a virtual 3D-...
This class calculates the time dependence of a field which calculated before.
This class provides functionality to calculate field distributions for short pulses.
void setCenterWavelength(double wvl)
Set center wavelength of the pulse.
pulseCalculation(Scene S)
int fieldCalls
how many times was field called (after last reset)
INDEX_TYPE nn
number of cells over the whole width of the calculation space (i.e. 2*r0).
TrafoParms getTrafoParms()
void setSpatialResolution(double dx)
sets the spatial resolution to a value near to dx
double dRWvl
spectral width of one subdivision
double findHitTime(int ObjNo)
Make an estimation, when the pulse hits the object the first time Often it is a problem,...
double dWvl
spectral width of the light (default 20nm)
void setNumReflex(int numReflex)
set the number of internal reflections to be considered
void setNumberOfThreads(int n)
set the number of threads used for the calculation
void setNumWavelengthsPerRange(int nS)
Set number of wavelengths per range. For the calculation, the spectral range is subdivided into a num...
std::vector< SuperArray< std::vector< gridEntry > > > SA
Here, all infos are stored to calculate the pulse (step lengths, index of the medium etc....
SuperArray< GOAT::maths::Vector< std::complex< double > > > SAres
int number_of_threads
number of threads used for calculation
void setPulseWidth(double dt)
Sets the spectral width according to the pulse width and adjusts the widht of the subdivisions.
void setRepetitionRate(double rep)
Set the repetition rate (in fs) The repetition rate is the frequency resolution within the calculatio...
double field(double t, int settings=PULSECALCULATION_CLEAR_SA)
This function calculates the fields at time. Keep in mind, that it works only if the class has the li...
void setReferenceTime(double tref)
INDEX_TYPE getNumCellsPerDirection()
bool raytracingDone
If true, the raytracing part was done and the field calculation starts directly.
int getNumberOfThreads()
get the number of threads used for the calculation
double getReferenceTime()
void setSpectralRanges(int n)
set the number of spectral ranges in which one raytracing calculation is made
void fieldCalculation(double omega)
This function makes one raytracing step at frequency omega.
void fieldCalculation()
This function makes the raytracing (normally only used internally)
void reset()
Clears all arrays.
double domega
spectral resolution
void setRefractiveIndexFunctions(std::vector< std::function< std::complex< double >(double) > > nList)
sets the list of functions, which describe the wavelength dependend refractive index (length must be ...
void setBandwidth(double dWvl)
Set Bandwith of the light source(s) Approximately,.
Raytracer used for ultrashort pulse calculation with raytracing only.
constexpr int PULSECALCULATION_NOT_CLEAR_RESULT
Flag, set when the results should not be cleared when calling field () in pulseCalculation.
constexpr int INEL_MAX_NREFLEX
This class is used for the iray class. This class is intended for internal use only....
#define PULSECALCULATION_CLEAR_SA
Structure, which acts as a container for all informations needed to process the calculation.