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

This class calculates the score of a solution with n pulses, tailored towards the quality of a laser pulse. More...

#include <n_pulse_score.h>

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

Public Member Functions

virtual std::string type () const
virtual double score (comp *invals)
virtual std::vector< std::stringdependencies () const
 Returns the dependencies of n_pulse_score.
virtual void postprocess (input &inval)
 ~n_pulse_score ()

Private Attributes

size_t n_pulse
double *restr help
size_t nts
comp *restr kurtosis_help

Additional Inherited Members

- Static Public Member Functions inherited from item
static std::shared_ptr< itemcreate (std::string name, engineimp *rval)
- Public Attributes inherited from item
engineimpholder
- Protected Member Functions inherited from item_dim
void print_upstream ()
virtual void _do_mem_update (size_t dim_old)
void add_as_parent (item_dim *p)
void add_as_parent (std::shared_ptr< item_dim > p)
void update_dim (size_t dim_new)
- Protected Attributes inherited from item_dim
mempool memp
std::set< item_dim * > children
item_dimparent
size_t dimension

Detailed Description

This class calculates the score of a solution with n pulses, tailored towards the quality of a laser pulse.

This class calculates the quality of a laser pulse formed by n distinct pulses. First, it calculates the magnitude of the pulse which results from the base pulses, and then finds the quality of that resulting pulse. This is done by finding the energy divided by the kurtosis. of the Fourier transform. This metric balances high energy with a tight pulse.

Definition at line 27 of file n_pulse_score.h.

Constructor & Destructor Documentation

n_pulse_score::~n_pulse_score ( )

Definition at line 89 of file n_pulse_score.cpp.

Member Function Documentation

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

Returns the dependencies of n_pulse_score.

This class has the same dependencies os the objective class, along with:

 - integer num_pulses: The number of pulses in the solution

Implements objective.

Definition at line 73 of file n_pulse_score.cpp.

Here is the call graph for this function:

void n_pulse_score::postprocess ( input inval)
virtual

Implements objective.

Definition at line 77 of file n_pulse_score.cpp.

Here is the call graph for this function:

double n_pulse_score::score ( comp ucur)
virtual

This is the objective function for objects that have a cnls-like form n coupled waves where the best solution is for each one to be a pulse. It takes the energy of each pulse, and divides by the kurtosis of the waveform of the laser pulse. This optimizes for energetic yet stable pulses

Implements objective.

Definition at line 44 of file n_pulse_score.cpp.

Here is the call graph for this function:

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

Implements item.

Definition at line 91 of file n_pulse_score.cpp.

Member Data Documentation

double* restr n_pulse_score::help
private

Definition at line 29 of file n_pulse_score.h.

comp* restr n_pulse_score::kurtosis_help
private

Definition at line 31 of file n_pulse_score.h.

size_t n_pulse_score::n_pulse
private

Definition at line 28 of file n_pulse_score.h.

size_t n_pulse_score::nts
private

Definition at line 30 of file n_pulse_score.h.


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