24 std::complex<double>
n,
This class represents a threedimensional (numeric) Matrix as a template.
Template class for threedimensional vectors.
double sf
scaling factor, it is used to scale the shape of the object
maths::Matrix< std::complex< double > > alpha
polarisability matrix
maths::Vector< double > P
position of the object
double r0
radius of the calculation sphere
std::complex< double > n
refractive index of the object
bool isInside(const maths::Vector< double > &p)
checks if point P is inside the object
void setPos(double x, double y, double z)
sets reference point P
int order()
returns the order (~topological charge)
double volume()
Calculates the volume of the ellipsoid.
maths::Matrix< double > computeInertia()
Calculates the inertia matrix of the ellipsoid.
void binWrite(std::ofstream &os)
binary writing to file
void setr0(double r0)
set the radius of the calculation space
maths::Vector< double > norm(const maths::Vector< double > &p)
surface normal at the point P
void binRead(std::ifstream &is)
binary reading from file
double h
height of the vortex (without vortex structure)
void setm(int m)
set the topological charge
void initQuad()
Sets the circumscribing cuboid (for use in inelastic calculations)
VortexPlate & operator=(VortexPlate &f)
VortexPlate(VortexPlate &c)
maths::Vector< double > calcCoM()
Calculates the center of mass, which is in the case of an ellipsoid simply its center,...
double dh
height of the vortex structure
void setPos(maths::Vector< double > r)
sets reference point P
VortexPlate(const maths::Vector< double > &P, double r, double h, double dh, int m, std::complex< double > n, double r0=1.0, const maths::Matrix< std::complex< double > > alpha=maths::CUNITY, const maths::Vector< double > &Ex=maths::ex, const maths::Vector< double > &Ey=maths::ey, const maths::Vector< double > &Ez=maths::ez)
int m
topological charge of the vortex
void scale(double sf)
Set the scaling factor (the half axis will be multiplied by this factor)
bool next(const maths::Vector< double > &Ps, const maths::Vector< double > &K, maths::Vector< double > &pout)
searches for the next (nearest) intersection of a ray with the object, p: current position of the ray...
double vortexHeight()
returns the height of the vortex structure
double r
radius of the vortex
VortexPlate(ObjectShape &os)
const Matrix< std::complex< double > > CUNITY
Unity matrix (complex-valued)
Raytracer used for ultrashort pulse calculation with raytracing only.
This class is used for the iray class. This class is intended for internal use only....