|
GOAT (Geometrical optics application tool) 0.1
|
This class provides a raytracer to calculate the field distribution in a box detector for a ultrashort pulsed light source Unlike the class Raytrace_usp, the field in more than one object or in parts of objects can stored. As in Raytrace_usp, in the SuperArray grid the information (step length, index of the object involved in the step) for each step from the light source to the corresponding point in the grid is stored. For each reflection order one grid will be created. The field will be stored within one or more boxes (called "box detector") More...
#include <raytrace_field_usp.h>
Public Member Functions | |
| void | addBoxDetector (Box *box) |
| add one box detector | |
| void | addBoxDetectorList (std::vector< Box * > BoxDetector) |
| add a list of box detectors | |
| void | clean () |
| removes all content from SuperArray grid (SA) | |
| void | clear () |
| Clears the SuperArray grid (SA) | |
| int | findBoxDetectorIntersection (maths::Vector< double > P, maths::Vector< double > k, maths::Vector< double > &pStart, maths::Vector< double > &pStop) |
| searches for the intersection point with the next box detector | |
| void | init () |
| Initialises the SuperArray grid. | |
| Raytrace_Field_usp () | |
| Raytrace_Field_usp (const Scene &S, INDEX_TYPE n) | |
| void | storeData (maths::Vector< double > PStart, maths::Vector< double > Pen, maths::Vector< std::complex< double > > EStart) |
| void | storeStack (maths::Vector< double > PStart, maths::Vector< double > PStop) |
| void | trace () |
| make the raytracing | |
| void | traceEnterObject () |
| has to be added since this class is a child of Raytrace (makes nothing) | |
| void | traceLeaveObject () |
| has to be added since this class is a child of Raytrace (makes nothing) | |
| void | traceOneRay (RayBase *ray, int &Reflexions, int &recur) |
| traces one ray | |
| ~Raytrace_Field_usp () | |
| Public Member Functions inherited from GOAT::raytracing::Raytrace | |
| void | init () |
| this function is called if no object was hidden | |
| void | init () |
| this function is called if no object was hidden | |
| Raytrace () | |
| Raytrace () | |
| Raytrace (const Scene &S) | |
| Raytrace (const Scene &S) | |
| void | setNumReflex (int numReflex) |
| sets number of reflexions | |
| void | setNumReflex (int numReflex) |
| sets number of reflexions | |
| void | setScene (const Scene &S) |
| sets Scene | |
| void | setScene (const Scene &S) |
| sets Scene | |
| void | trace () |
| this is the starting point for the raytracing procedure | |
| void | trace () |
| this is the starting point for the raytracing procedure | |
| virtual void | traceStopObject () |
| virtual void | traceStopObject () |
| virtual void | reset () |
| void | copyRay (RayBase *&dest, RayBase *src) |
| virtual void | reset () |
| void | copyRay (RayBase *&dest, RayBase *src) |
Public Attributes | |
| std::vector< Box * > | BoxDetector |
| list of the box detectors | |
| int | indexCurrentDetector = -1 |
| index of the current box detector (for internal use only) | |
| int | iR = 0 |
| Number of reflections to consider. | |
| INDEX_TYPE | n = 1 |
| Number of cells in one direction. | |
| int | oldObjIndex =-1 |
| maths::Vector< double > | pDetStart |
| maths::Vector< double > | pDetStop |
| std::vector< SuperArray< std::vector< gridEntry > > > | SA |
| Here, the information for the steps is stored (needed for Fourier transform in pulsecalculation_field) | |
| gridEntry | stack |
| here, the information from the light source until the region of interest (=box) is reached | |
| Public Attributes inherited from GOAT::raytracing::Raytrace | |
| GOAT::maths::Vector< INDEX_TYPE > | currentIndex = GOAT::maths::Vector<INDEX_TYPE>(-1, -1, -1) |
| int | currentLS |
| Number of the current light source, which is currently in the calculation process. | |
| int | currentObj |
| Number of the last object hit (no object hit: -1) | |
| maths::Vector< std::complex< double > > | EStart |
| maths::Vector< std::complex< double > > | EStart2 |
| maths::Vector< std::complex< double > > | EStop |
| Start and end value of the electric field. | |
| maths::Vector< std::complex< double > > | EStop2 |
| Start and end value of the electric field (second ray in IRay) | |
| int | lost |
| Rays unintentionally get lost, e.g. due to total internal reflection. | |
| maths::Vector< double > | PStart |
| maths::Vector< double > | PStop |
| Start and end point of the last step. | |
| maths::Vector< double > | kin |
| direction of the incident ray | |
| maths::Vector< double > | kref |
| direction of the reflected ray | |
| maths::Vector< double > | ktrans |
| direction of the transmitted ray | |
| double | PowRef |
| Powers stored when ray type is PRay. | |
| double | PowIn |
| Power of the incident ray. | |
| double | PowTrans |
| Power of the transmitted ray. | |
| Scene | S |
| Description of the scene. | |
| bool | useRRTParms |
| Flag which tells the raytracing procedure if the RRT parameters of scene or the normal parameters are used within the calculation. | |
| int | type =RAYTRACER_TYPE_NONE |
| Flag which shows which type of raytracer is selected. | |
| RayBase * | ray |
| current ray | |
| RayBase * | tray |
| transmitted ray | |
| bool | Abbruch |
| flag to stop calculation | |
| int | numReflex = RAYTRACE_MAX_REFLEXIONS |
| current number of reflections | |
This class provides a raytracer to calculate the field distribution in a box detector for a ultrashort pulsed light source Unlike the class Raytrace_usp, the field in more than one object or in parts of objects can stored. As in Raytrace_usp, in the SuperArray grid the information (step length, index of the object involved in the step) for each step from the light source to the corresponding point in the grid is stored. For each reflection order one grid will be created. The field will be stored within one or more boxes (called "box detector")
Definition at line 18 of file raytrace_field_usp.h.
| GOAT::raytracing::Raytrace_Field_usp::Raytrace_Field_usp | ( | ) |
| GOAT::raytracing::Raytrace_Field_usp::Raytrace_Field_usp | ( | const Scene & | S, |
| INDEX_TYPE | n ) |
| GOAT::raytracing::Raytrace_Field_usp::~Raytrace_Field_usp | ( | ) |
|
inline |
add one box detector
Definition at line 34 of file raytrace_field_usp.h.
| void GOAT::raytracing::Raytrace_Field_usp::addBoxDetectorList | ( | std::vector< Box * > | BoxDetector | ) |
add a list of box detectors
| void GOAT::raytracing::Raytrace_Field_usp::clean | ( | ) |
removes all content from SuperArray grid (SA)
| void GOAT::raytracing::Raytrace_Field_usp::clear | ( | ) |
Clears the SuperArray grid (SA)
| int GOAT::raytracing::Raytrace_Field_usp::findBoxDetectorIntersection | ( | maths::Vector< double > | P, |
| maths::Vector< double > | k, | ||
| maths::Vector< double > & | pStart, | ||
| maths::Vector< double > & | pStop ) |
searches for the intersection point with the next box detector
| void GOAT::raytracing::Raytrace_Field_usp::init | ( | ) |
Initialises the SuperArray grid.
| void GOAT::raytracing::Raytrace_Field_usp::storeData | ( | maths::Vector< double > | PStart, |
| maths::Vector< double > | Pen, | ||
| maths::Vector< std::complex< double > > | EStart ) |
| void GOAT::raytracing::Raytrace_Field_usp::storeStack | ( | maths::Vector< double > | PStart, |
| maths::Vector< double > | PStop ) |
| void GOAT::raytracing::Raytrace_Field_usp::trace | ( | ) |
make the raytracing
|
inlinevirtual |
has to be added since this class is a child of Raytrace (makes nothing)
Implements GOAT::raytracing::Raytrace.
Definition at line 31 of file raytrace_field_usp.h.
|
inlinevirtual |
has to be added since this class is a child of Raytrace (makes nothing)
Implements GOAT::raytracing::Raytrace.
Definition at line 32 of file raytrace_field_usp.h.
|
virtual |
traces one ray
| ray | ray which should be traced, |
| Reflexions | counter for the number of reflexions made within the ray tracing process. This parameter is needed to stop calculation after the maximal number of reflexions |
| recur | counter which will be set to the current recursion depth |
Reimplemented from GOAT::raytracing::Raytrace.
| std::vector<Box*> GOAT::raytracing::Raytrace_Field_usp::BoxDetector |
list of the box detectors
Definition at line 37 of file raytrace_field_usp.h.
| int GOAT::raytracing::Raytrace_Field_usp::indexCurrentDetector = -1 |
index of the current box detector (for internal use only)
Definition at line 36 of file raytrace_field_usp.h.
| int GOAT::raytracing::Raytrace_Field_usp::iR = 0 |
Number of reflections to consider.
Definition at line 41 of file raytrace_field_usp.h.
| INDEX_TYPE GOAT::raytracing::Raytrace_Field_usp::n = 1 |
Number of cells in one direction.
Definition at line 40 of file raytrace_field_usp.h.
| int GOAT::raytracing::Raytrace_Field_usp::oldObjIndex =-1 |
Definition at line 44 of file raytrace_field_usp.h.
| maths::Vector<double> GOAT::raytracing::Raytrace_Field_usp::pDetStart |
Definition at line 43 of file raytrace_field_usp.h.
| maths::Vector<double> GOAT::raytracing::Raytrace_Field_usp::pDetStop |
Definition at line 43 of file raytrace_field_usp.h.
| std::vector<SuperArray <std::vector<gridEntry> > > GOAT::raytracing::Raytrace_Field_usp::SA |
Here, the information for the steps is stored (needed for Fourier transform in pulsecalculation_field)
Definition at line 38 of file raytrace_field_usp.h.
| gridEntry GOAT::raytracing::Raytrace_Field_usp::stack |
here, the information from the light source until the region of interest (=box) is reached
Definition at line 42 of file raytrace_field_usp.h.