13#define I std::complex<double> (0.0,1.0)
34 std::vector<std::function<std::complex<double>(
double) > >
nList;
60 void calc(std::vector < std::vector<
SuperArray <std::vector<gridEntry> > > >& SA,
double t);
68 void calc(std::vector<
SuperArray <std::vector<gridEntry> > > & SA,
double omegaStart,
double omegaEnd,
double t,
bool do_clear=
true);
102 std::vector<std::function<std::complex<double>(
double) > >
nList;
117 for (
int i = 0; i <
nList.size(); i++)
121 std::complex<double>
calcPhase(std::vector<stepEntry> steps,
double k0);
Template class for threedimensional vectors.
Template class to store arbitrary information in a 3D-grid This template class provides a virtual 3D-...
std::vector< std::function< std::complex< double >(double) > > nList
List of the refractive index functions.
Trafo(TrafoParms)
Constructor for initialization Perform a calculation at the time t.
void setReferenceTime(double tref)
Sets the reference time (in fs).
double pulseWeight(double omega)
void calc(std::vector< std::vector< SuperArray< std::vector< gridEntry > > > > &SA, double t)
void empty()
fills the entire result array with zero vectors
void setTrafoParms(TrafoParms trafoparms)
Sets the parameters used in the calculation.
std::vector< std::complex< double > > currNList
here, the refractive indices for the current wavelength are stored (for faster calculation)
int getNumberOfThreads()
get number of threads which can be used by the program
void calc(std::vector< SuperArray< std::vector< gridEntry > > > &SA, double omegaStart, double omegaEnd, double t, bool do_clear=true)
calculation of the Fourier transformation. The calculation of the Fourier transformation is made in a...
SuperArray< maths::Vector< std::complex< double > > > SAres
Container for the last result.
std::vector< double > freq
void clear()
Deletes all arrays (frees the memory)
void setRefractiveIndexFunctions(std::vector< std::function< std::complex< double >(double) > > nList)
Set the refractive index functions. Here, the refractive index functions were given with help of a st...
GOAT::maths::Vector< std::complex< double > > calcOne(std::vector< stepEntry > steps, double t)
void initResult(SuperArray< maths::Vector< std::complex< double > > > &SA)
Resets and initialize the result array. The result array will be cleared and renewed according to the...
void setNumberOfThreads(int n)
set number of threads which can be used by the program
double sigma2
for a gaussian pulse, the electric field, the temporal behavior is:
void setCurrNList(double wvl)
sets current values for the refractive indices This method calculates the refractive indices of the d...
double getD()
relative change
GOAT::maths::Vector< std::complex< double > > integrate(double t, std::vector< gridEntry > ge, double omegastart, double omegastop)
void initResult(double r0, INDEX_TYPE nx, INDEX_TYPE ny, INDEX_TYPE nz, std::vector< ObjectShape * > Obj, int numObjs)
Resets and initialize the result array. The result array will be cleared and renewed according to the...
std::complex< double > calcPhase(std::vector< stepEntry > steps, double k0)
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.
double omega0
main frequency (corresponds to wvl)
std::vector< std::function< std::complex< double >(double) > > nList
list of functions which describe the refractive index dependence on the wavelength (for each object o...
int nS
number of subdivision per spectral range
int nR
number of reflections considered in the raytracing part
double wvl
main wavelength (in µm)
double omegaEnd
highest wavelength considered in the calculation
int nI
defines the number of spectral ranges
double dt
width of the pulse (in femto seconds)
double omegaStart
lowest wavelength considered in the calculation
int number_of_threads
number of threads which should be used for calculation