Class PolarizedSingleModeMagneticField

Inheritance Relationships

Base Type

Class Documentation

class PolarizedSingleModeMagneticField : public MagneticField

General polarized single mode magnetic field (including linear, circular and elliptic polarizations and the case of maximal helicity).

Public Functions

PolarizedSingleModeMagneticField(const double &B_0, const double &wavelength, const double &sigma, const Vector3d &r_0, const Vector3d &e_1, const Vector3d &e_2, std::string flagAmplitudeRms, std::string flagPolarizationHelicity, std::string flagMode)

Constructor

Parameters:
  • B_0 – Magnetic field strength in the direction of e_1 at r_0 (for flagAmplitudeRms = “amplitude”), or the RMS value of the magnetic field (for flagAmplitudeRms = “rms”)

  • wavelength – Wavelength of the single mode (corresponds to its coherence length)

  • sigma – Polarization parameter

  • r_0 – Reference position

  • e_1 – First vector spanning the polarization plane

  • e_2 – Second vector spanning the polarization plane

  • flagAmplitudeRms – Flag to specify whether B_0 denotes the maximum (“amplitude”) or the RMS (“rms”) value of the magnetic field

  • flagPolarizationHelicity – Flag to specify whether sigma denotes the standard polarization parameter (“polarization”) or f_H, the fraction of maximal helicity (“helicity”)

  • flagMode – Flag to specify the polarization mode; possible choices are “elliptical”, “circular” or “linear”

virtual Vector3d getField(const Vector3d &position) const
inline virtual Vector3d getField(const Vector3d &position, double z) const
inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Attributes

mutable size_t _referenceCount