LILAC
|
This class defines a jones matrix optical system. More...
#include <jones_optical.h>
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::string > | dependencies () const |
virtual std::string | type () const |
virtual | ~jones_optical () |
![]() | |
virtual | ~stable_spectral_pde_1d_tmpl () |
![]() | |
const std::type_info & | vtype () const |
virtual | ~stable_ode_tmpl () |
![]() | |
virtual | ~stable_ode () |
![]() | |
double | simulate () |
virtual | ~stable () |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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 |
comp * | nvec1 |
double * | nvec2 |
comp * | kurtosis_help |
std::vector< std::shared_ptr < jones_matrix > > | jones_matrices |
double | jones_int_dist |
std::list< data_store > | out_dat |
FILE * | func_dat |
FILE * | func_score |
Additional Inherited Members | |
![]() | |
static std::shared_ptr< item > | create (std::string name, engineimp *rval) |
![]() | |
std::string | out_f_name |
![]() | |
double * | t |
double * | help |
size_t | nts |
size_t | num_pulses |
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.
|
virtual |
Definition at line 249 of file jones_optical.cpp.
|
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.
|
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.
|
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.
|
virtual |
Reimplemented from stable_spectral_pde_1d_tmpl< comp >.
Definition at line 97 of file jones_optical.cpp.
|
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.
|
virtual |
Returns score that favors tight and high-energy single pulses.
Reimplemented from stable_ode_tmpl< comp >.
Definition at line 246 of file jones_optical.cpp.
|
virtual |
Reimplemented from stable_spectral_pde_1d_tmpl< comp >.
Definition at line 252 of file jones_optical.cpp.
|
private |
Definition at line 51 of file jones_optical.h.
|
private |
Definition at line 51 of file jones_optical.h.
|
private |
Definition at line 40 of file jones_optical.h.
|
private |
Definition at line 49 of file jones_optical.h.
|
private |
Definition at line 44 of file jones_optical.h.
|
private |
Definition at line 43 of file jones_optical.h.
|
private |
Definition at line 41 of file jones_optical.h.
|
private |
Definition at line 42 of file jones_optical.h.
|
private |
Definition at line 50 of file jones_optical.h.
|
private |
Definition at line 40 of file jones_optical.h.
|
private |
Definition at line 40 of file jones_optical.h.