GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
GOAT::raytracing::Raytrace_usp Class Reference

This class performs ray tracing in preparation for a later calculation of short pulses This class performs ray tracing and stores the length and the refractive index as an index of each step into a SuperArray class named SA. This information is necessary for the calculation of the short pulses. More...

#include <raytrace_usp.h>

Inheritance diagram for GOAT::raytracing::Raytrace_usp:
GOAT::raytracing::Raytrace

Public Member Functions

void clear ()
 Clears the SuperArray grid (SA)
void init ()
 Initialises the SuperArray grid (SA) according to the objects hold in Scene S.
 Raytrace_usp ()
 Raytrace_usp (const Scene &S, INDEX_TYPE n)
 Constructor.
void setn (INDEX_TYPE n)
 changes the number of (virtual) cells in the calculation space
void storeData ()
 Store the data in the grid.
void trace ()
 Perform the raytracing process.
void traceEnterObject ()
 Function internally called when ray enters an object.
void traceLeaveObject ()
 Function internally called when ray leaves an object.
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 traceOneRay (RayBase *ray, int &Reflexions, int &recur)
 traces one ray
virtual void reset ()
void copyRay (RayBase *&dest, RayBase *src)
virtual void traceOneRay (RayBase *ray, int &Reflexions, int &recur)
 traces one ray
virtual void reset ()
void copyRay (RayBase *&dest, RayBase *src)

Public Attributes

int iR = 0
 Number of reflections to consider.
INDEX_TYPE n = 1
 Number of cells in one direction.
std::vector< SuperArray< std::vector< gridEntry > > > SA
 Grid, that holds the information, needed to further calculate the electric field for short pulses The vector holds the arrays for the different reflection orders (each reflection order is stored in a separate array) In each element of the SuperArray, the steps to this point are stored (step length, index of the material)
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_TYPEcurrentIndex = 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.
RayBaseray
 current ray
RayBasetray
 transmitted ray
bool Abbruch
 flag to stop calculation
int numReflex = RAYTRACE_MAX_REFLEXIONS
 current number of reflections

Detailed Description

This class performs ray tracing in preparation for a later calculation of short pulses This class performs ray tracing and stores the length and the refractive index as an index of each step into a SuperArray class named SA. This information is necessary for the calculation of the short pulses.

Definition at line 17 of file raytrace_usp.h.

Constructor & Destructor Documentation

◆ Raytrace_usp() [1/2]

GOAT::raytracing::Raytrace_usp::Raytrace_usp ( )

◆ Raytrace_usp() [2/2]

GOAT::raytracing::Raytrace_usp::Raytrace_usp ( const Scene & S,
INDEX_TYPE n )

Constructor.

Parameters
SScene which holds all information about the scene (light sources, objects...)
nNumber of grid elements per coordinate across the entire width (i.e. 2*r0) used in the SuperArray SA

Member Function Documentation

◆ clear()

void GOAT::raytracing::Raytrace_usp::clear ( )

Clears the SuperArray grid (SA)

◆ init()

void GOAT::raytracing::Raytrace_usp::init ( )

Initialises the SuperArray grid (SA) according to the objects hold in Scene S.

◆ setn()

void GOAT::raytracing::Raytrace_usp::setn ( INDEX_TYPE n)

changes the number of (virtual) cells in the calculation space

◆ storeData()

void GOAT::raytracing::Raytrace_usp::storeData ( )

Store the data in the grid.

◆ trace()

void GOAT::raytracing::Raytrace_usp::trace ( )

Perform the raytracing process.

◆ traceEnterObject()

void GOAT::raytracing::Raytrace_usp::traceEnterObject ( )
virtual

Function internally called when ray enters an object.

Implements GOAT::raytracing::Raytrace.

◆ traceLeaveObject()

void GOAT::raytracing::Raytrace_usp::traceLeaveObject ( )
virtual

Function internally called when ray leaves an object.

Implements GOAT::raytracing::Raytrace.

Member Data Documentation

◆ iR

int GOAT::raytracing::Raytrace_usp::iR = 0

Number of reflections to consider.

Definition at line 42 of file raytrace_usp.h.

◆ n

INDEX_TYPE GOAT::raytracing::Raytrace_usp::n = 1

Number of cells in one direction.

Definition at line 41 of file raytrace_usp.h.

◆ SA

std::vector<SuperArray <std::vector<gridEntry> > > GOAT::raytracing::Raytrace_usp::SA

Grid, that holds the information, needed to further calculate the electric field for short pulses The vector holds the arrays for the different reflection orders (each reflection order is stored in a separate array) In each element of the SuperArray, the steps to this point are stored (step length, index of the material)

Definition at line 40 of file raytrace_usp.h.

◆ stack

gridEntry GOAT::raytracing::Raytrace_usp::stack

here, the information from the light source until the region of interest (=box) is reached

Definition at line 43 of file raytrace_usp.h.


The documentation for this class was generated from the following file: