73 std::vector<SuperArray<std::vector<gridEntry> > >
SA;
class which represents a box (cuboid). It is derived by class ObjectShape This class is mainly used f...
This class provides a raytracer to calculate the field distribution in a box detector for a ultrashor...
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.
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 ...
double findHitTime(int ObjNo)
Make an estimation, when the pulse hits the object the first time Often it is a problem,...
void setPeriod(double time)
Set the period between two adjacent pulses (start->start) in fs.
INDEX_TYPE getNumCellsPerDirection()
double dRWvl
spectral width of one subdivision
void setSpatialResolution(double dx)
sets the spatial resolution to a value near to dx
pulseCalculation_Field(Scene S)
void setRepetitionRate(double rep)
Set the repetition rate (in fs^-1) The repetition rate is the frequency resolution within the calcula...
bool raytracingDone
If true, the raytracing part was done and the field calculation starts directly.
void setNumWavelengthsPerRange(int nS)
Set number of wavelengths per range. For the calculation, the spectral range is subdivided into a num...
void setNumReflex(int numReflex)
double domega
spectral resolution
SuperArray< GOAT::maths::Vector< std::complex< double > > > SAres
TrafoParms getTrafoParms()
void fieldCalculation()
This function makes the raytracing (normally only used internally)
void fieldCalculation(double omega)
This function makes one raytracing step at frequency omega.
std::vector< SuperArray< std::vector< gridEntry > > > SA
Here, all infos are stored to calculate the pulse (step lengths, index of the medium etc....
void saveIntensity(std::string FName, int i)
void setPulseWidth(double dt)
Sets the spectral width according to the pulse width and adjusts the widht of the subdivisions.
double dWvl
spectral width of the light (default 20nm)
void setSpectralRanges(int n)
Number of spectral ranges in which one raytracing calculation is made.
void reset()
Clears all arrays.
std::vector< Box * > BoxDetector
void setCenterWavelength(double wvl)
Set center wavelength of the pulse.
void field(double t)
This function calculates the fields at time t. Keep in mind, that it works only if the class has the ...
void setBandwidth(double dWvl)
Set Bandwith of the light source(s) Approximately,.
void setReferenceTime(double tref)
double getReferenceTime()
void addBoxDetector(Box *box)
Raytracer used for ultrashort pulse calculation with raytracing only.
constexpr int INEL_MAX_NREFLEX
This class is used for the iray class. This class is intended for internal use only....
Structure, which acts as a container for all informations needed to process the calculation.