LILAC
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
jones_optical Class Reference

This class defines a jones matrix optical system. More...

#include <jones_optical.h>

Inheritance diagram for jones_optical:
Inheritance graph
[legend]
Collaboration diagram for jones_optical:
Collaboration graph
[legend]

Classes

struct  data_store

Public Member Functions

virtual double score ()
 Returns score that favors tight and high-energy single pulses.
virtual void postprocess (input &invals)
virtual std::vector< std::stringdependencies () const
virtual std::string type () const
virtual ~jones_optical ()
- Public Member Functions inherited from stable_spectral_pde_1d_tmpl< comp >
virtual ~stable_spectral_pde_1d_tmpl ()
- Public Member Functions inherited from stable_ode_tmpl< comp >
const std::type_info & vtype () const
virtual ~stable_ode_tmpl ()
- Public Member Functions inherited from stable_ode
virtual ~stable_ode ()
- Public Member Functions inherited from stable
double simulate ()
virtual ~stable ()
- Public Member Functions inherited from vartype
bool compare (const vartype *in) const
bool compare (const vartype &in) const
bool compare (const std::type_info &tinf)
template<typename T >
bool compare () const
template<typename T >
bool compare (const T &in) const
std::string vname () const
virtual const std::type_info & vtype_internal () const
bool compare_internal (const vartype *in) const
bool compare_internal (const vartype &in) const
bool compare_internal (const std::type_info &tinf)
template<typename T >
bool compare_internal () const
template<typename T >
bool compare_internal (const T &in) const
std::string vname_internal () const
virtual ~vartype ()

Protected Member Functions

virtual void pre_fft_operations ()
virtual void post_ifft_operations ()
virtual double get_change ()
 Finds the difference between each pulse.
- Protected Member Functions inherited from stable_spectral_pde_1d_tmpl< comp >
virtual void post_fft_operations ()
 Applies operations after the fft but before the integrations.
virtual void pre_ifft_operations ()
 Applies operations after the integration but prior to the ifft.
- Protected Member Functions inherited from stable_ode_tmpl< comp >
virtual void pre_integration_operations ()
 This applies operations before the integration occurs.
virtual void post_integration_operations ()
 This applies operations ofter the integration occurs.
virtual void iterate_system ()

Private Attributes

double * help
double * t
double * phold
compnvec1
double * nvec2
compkurtosis_help
std::vector< std::shared_ptr
< jones_matrix > > 
jones_matrices
double jones_int_dist
std::list< data_storeout_dat
FILE * func_dat
FILE * func_score

Additional Inherited Members

- Static Public Member Functions inherited from item
static std::shared_ptr< itemcreate (std::string name, engineimp *rval)
- Public Attributes inherited from simulation
std::string out_f_name
- Protected Attributes inherited from stable_spectral_pde_1d_tmpl< comp >
double * t
double * help
size_t nts
size_t num_pulses

Detailed Description

This class defines a jones matrix optical system.

This class represents an optical system controlled by a set of waveplates and polarizers. Mathematically, these are represented by jones matrices, hence the name.

This simulation mathematically represents a spectral solution to a PDE, followed by an application of matrices with further integration between each matrix.

The passed rhs is the Fourier transformed PDE. First, the simulation will apply a fourier transform to the current condition, and the integrate forwards for a specified period of time. Then, the solution will have the jones matrices applied to it. This happens in two steps. First, the solution is multiplied by the matrices that represent the current waveplates. Then, the solution is integrated forwards for a specified amount of time until it reaches the next matrix, upon which the process is repeated.

This repeates until the system is stabilizes, or is deemed unstable.

Definition at line 39 of file jones_optical.h.

Constructor & Destructor Documentation

jones_optical::~jones_optical ( )
virtual

Definition at line 249 of file jones_optical.cpp.

Member Function Documentation

std::vector< std::string > jones_optical::dependencies ( ) const
virtual

This returns the dependencies of the jones matrix class. jones matrix has the same dependencies as stable_spectral_pde_1d_tmpl, as well as

 - int num_jones_segments: The number of sets of waveplates to have
 - double jones_int_dist: The distance to integrate between waveplates

Reimplemented from stable_spectral_pde_1d_tmpl< comp >.

Definition at line 93 of file jones_optical.cpp.

Here is the call graph for this function:

double jones_optical::get_change ( )
protectedvirtual

Finds the difference between each pulse.

This functions finds how much the light pulse has changed on the round trip. This comparison compares the magnitude of the laser, instead of including phase information as well

Reimplemented from stable_ode_tmpl< comp >.

Definition at line 223 of file jones_optical.cpp.

Here is the call graph for this function:

void jones_optical::post_ifft_operations ( )
protectedvirtual

This function applies the Jones matrices after each integration run. In addition, exatra integration is performed between each set of matrices to simulate the waveplates being a physical distance apart

Reimplemented from stable_spectral_pde_1d_tmpl< comp >.

Definition at line 198 of file jones_optical.cpp.

Here is the call graph for this function:

void jones_optical::postprocess ( input invals)
virtual

Reimplemented from stable_spectral_pde_1d_tmpl< comp >.

Definition at line 97 of file jones_optical.cpp.

Here is the call graph for this function:

void jones_optical::pre_fft_operations ( )
protectedvirtual

FFT solutions since this is a spectral system

Reimplemented from stable_spectral_pde_1d_tmpl< comp >.

Definition at line 173 of file jones_optical.cpp.

Here is the call graph for this function:

double jones_optical::score ( )
virtual

Returns score that favors tight and high-energy single pulses.

See Also
n_pulse_score

Reimplemented from stable_ode_tmpl< comp >.

Definition at line 246 of file jones_optical.cpp.

Here is the call graph for this function:

std::string jones_optical::type ( ) const
virtual

Reimplemented from stable_spectral_pde_1d_tmpl< comp >.

Definition at line 252 of file jones_optical.cpp.

Member Data Documentation

FILE* jones_optical::func_dat
private

Definition at line 51 of file jones_optical.h.

FILE * jones_optical::func_score
private

Definition at line 51 of file jones_optical.h.

double* jones_optical::help
private

Definition at line 40 of file jones_optical.h.

double jones_optical::jones_int_dist
private

Definition at line 49 of file jones_optical.h.

std::vector<std::shared_ptr<jones_matrix> > jones_optical::jones_matrices
private

Definition at line 44 of file jones_optical.h.

comp* jones_optical::kurtosis_help
private

Definition at line 43 of file jones_optical.h.

comp* jones_optical::nvec1
private

Definition at line 41 of file jones_optical.h.

double* jones_optical::nvec2
private

Definition at line 42 of file jones_optical.h.

std::list<data_store> jones_optical::out_dat
private

Definition at line 50 of file jones_optical.h.

double * jones_optical::phold
private

Definition at line 40 of file jones_optical.h.

double * jones_optical::t
private

Definition at line 40 of file jones_optical.h.


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