Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Arroyo::ideal_deformable_mirror< aperture_type > Class Template Reference

#include <deformable_mirror.h>

Inheritance diagram for Arroyo::ideal_deformable_mirror< aperture_type >:

Arroyo::deformable_mirror_base Arroyo::plane_optic Arroyo::one_to_one_optic Arroyo::optic Arroyo::three_frame Arroyo::optic Arroyo::AO_sim_base Arroyo::three_point Arroyo::AO_sim_base List of all members.

Public Member Functions

 ideal_deformable_mirror (const ideal_deformable_mirror &ideal_dm)
 ideal_deformable_mirror (const aperture &ap, const vector< long > &nact, const double pitch, const double vel, const double ts=0)
 ideal_deformable_mirror (const char *filename)
 ideal_deformable_mirror (const iofits &iof)
virtual ~ideal_deformable_mirror ()
ideal_deformable_mirroroperator= (const ideal_deformable_mirror &ideal_dm)
virtual void read (const char *filename)
virtual void read (const iofits &iof)
void write (const char *filename) const
void write (iofits &iof) const
void print (ostream &os, const char *prefix="") const
vector< long > get_axes (void) const
double get_actuator_pitch (void) const
void set_actuator_pitch (double act_pitch)
double get_actuator_velocity (void) const
void set_actuator_velocity (double act_velocity)
pixel_array< double > get_actuator_commands () const
pixel_array< double > get_actuator_positions (double timestamp) const
void update (const pixel_array< double > &pixarr, double timestamp)
void transform (diffractive_wavefront< float > &wf) const
void transform (diffractive_wavefront< double > &wf) const
double get_timestamp () const

Protected Member Functions

template<class T>
void private_transform (diffractive_wavefront< T > &wf) const
 ideal_deformable_mirror ()

Protected Attributes

double mirror_actuator_pitch
 Actuator pitch, in meters.
double mirror_timestamp
double mirror_actuator_velocity
 Actuator velocity, in meters per second.
pixel_array< double > mirror_actuator_commands
pixel_array< double > mirror_actuator_positions

Detailed Description

template<class aperture_type>
class Arroyo::ideal_deformable_mirror< aperture_type >

A template class to represent and ideal deformable mirror.

The dynamic model for the motion of the actuators does not contain any fancy motion, such as: hysteresis, and uses a constant velocity approximation to move the actuators.

As with the tip_tilt_mirror class, this class inherits a three_frame through the planar_optic and the orientation of this three_frame represents that of the deformable mirror

The member function

ideal_deformable_mirror:: update(pixel_array<double>& pixarr, double timestamp)

may be used to issue a new command to the DM To effect an update, this member function computes the current actuator positions at the time given by the timestamp passed to this function. It then updates the actuator positions via a linear function of time.

Attempting to issue an update command with a timestamp that predates the one store in this class is flagged as an error.

To perform the transformation on a wavefront using the trasform member function, the class uses the actuator velocities to interpolate to the timestamp of the wavefront. The transformation is effected by applying the moving the actuator positions and substracting it from the wavefront phase.

Supplying a wavefront with a timestamp that precedes the internal one is an error.


Constructor & Destructor Documentation

template<class aperture_type>
Arroyo::ideal_deformable_mirror< aperture_type >::ideal_deformable_mirror  )  [protected]
 

Null constructor

template<class aperture_type>
Arroyo::ideal_deformable_mirror< aperture_type >::ideal_deformable_mirror const ideal_deformable_mirror< aperture_type > &  ideal_dm  ) 
 

Copy constructor

template<class aperture_type>
Arroyo::ideal_deformable_mirror< aperture_type >::ideal_deformable_mirror const aperture ap,
const vector< long > &  nact,
const double  pitch,
const double  vel,
const double  ts = 0
 

Construct from pixel_array

template<class aperture_type>
Arroyo::ideal_deformable_mirror< aperture_type >::ideal_deformable_mirror const char *  filename  ) 
 

Construct from file

template<class aperture_type>
Arroyo::ideal_deformable_mirror< aperture_type >::ideal_deformable_mirror const iofits iof  ) 
 

Construct from iofits

template<class aperture_type>
virtual Arroyo::ideal_deformable_mirror< aperture_type >::~ideal_deformable_mirror  )  [inline, virtual]
 

Virtual destructor


Member Function Documentation

template<class aperture_type>
pixel_array<double> Arroyo::ideal_deformable_mirror< aperture_type >::get_actuator_commands  )  const [inline]
 

Get the last mirror actuator commands

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::get_actuator_pitch void   )  const [inline]
 

Get the actuator pitch

Returns the pitch in meters

template<class aperture_type>
pixel_array< double > Arroyo::ideal_deformable_mirror< aperture_type >::get_actuator_positions double  timestamp  )  const
 

Get the mirror actuator positions at the timestamp provided.

If the timestamp provided preceeds the mirror timestamp, an error is thrown

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::get_actuator_velocity void   )  const [inline]
 

Get the actuator velocity

Returns the velocity in meters per second

template<class aperture_type>
vector<long> Arroyo::ideal_deformable_mirror< aperture_type >::get_axes void   )  const [inline]
 

Get the actuator pitch

Returns the pitch in meters

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::get_timestamp  )  const [inline]
 

Get the mirror timestamp

Timestamp is in seconds

template<class aperture_type>
ideal_deformable_mirror< aperture_type > & Arroyo::ideal_deformable_mirror< aperture_type >::operator= const ideal_deformable_mirror< aperture_type > &  ideal_dm  ) 
 

Operator =

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::print ostream &  os,
const char *  prefix = ""
const [virtual]
 

Print

Implements Arroyo::deformable_mirror_base.

template<class aperture_type>
template<class T>
void Arroyo::ideal_deformable_mirror< aperture_type >::private_transform diffractive_wavefront< T > &  wf  )  const [protected]
 

A template member function to perform transform on both float and double instantiations of wavefront. This is necessary because there is no mechanism in C++ for virtual template member functions.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::read const iofits iof  )  [virtual]
 

Read from an iofits object

Implements Arroyo::deformable_mirror_base.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::read const char *  filename  )  [virtual]
 

Read from file

Implements Arroyo::deformable_mirror_base.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::set_actuator_pitch double  act_pitch  ) 
 

Set the actuator pitch

act_pitch is in meters

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::set_actuator_velocity double  act_velocity  ) 
 

Set the actuator velocity

act_velocity is in meters per second

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::transform diffractive_wavefront< double > &  wf  )  const [virtual]
 

Apply the aperture to the wavefront

Implements Arroyo::one_to_one_optic.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::transform diffractive_wavefront< float > &  wf  )  const [virtual]
 

Apply the aperture to the wavefront

Implements Arroyo::one_to_one_optic.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::update const pixel_array< double > &  pixarr,
double  timestamp
 

Update the actuators by the output of the reconstructor at a given timestamp

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::write iofits iof  )  const [virtual]
 

Write to an iofits object

Implements Arroyo::deformable_mirror_base.

template<class aperture_type>
void Arroyo::ideal_deformable_mirror< aperture_type >::write const char *  filename  )  const [virtual]
 

Write to file

Implements Arroyo::deformable_mirror_base.


Member Data Documentation

template<class aperture_type>
pixel_array<double> Arroyo::ideal_deformable_mirror< aperture_type >::mirror_actuator_commands [protected]
 

The current actuator commands, specified using a pixel_array. The mirror surface is heading towards this orientation with constant linear velocity. These commands are in meters.

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::mirror_actuator_pitch [protected]
 

Actuator pitch, in meters.

template<class aperture_type>
pixel_array<double> Arroyo::ideal_deformable_mirror< aperture_type >::mirror_actuator_positions [protected]
 

Actuator positions at the time of the mirror timestamp

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::mirror_actuator_velocity [protected]
 

Actuator velocity, in meters per second.

template<class aperture_type>
double Arroyo::ideal_deformable_mirror< aperture_type >::mirror_timestamp [protected]
 

The mirror timestamp. At this time, the mirror surface is defined by the mirror actuator positions


The documentation for this class was generated from the following file:
Generated on Thu Nov 29 17:16:34 2007 for arroyo by  doxygen 1.3.9.1