O_SESSAME Namespace Reference


Detailed Description

Warning:
NOT VERIFIED
Todo:
Add test cases


Compounds

class  Attitude
 Class encapsulating the rotational attitude of a rigid body frame with respect to another frame. More...

class  AttitudeState
class  ASCIIConverter
 Class for importing and exporting data to ASCII. More...

class  AttitudeHistory
 Class for storing a time history of attitude states. More...

class  BinaryConverter
 Class for importing and exporting data to ASCII. More...

class  Command
 Class interface for creating commands in Open-SESSAME. More...

class  SimpleCommand
 Interface for creating simple, templated commands in Open-SESSAME. More...

class  ConversionForm
 Class interface for importing and exporting data to various external formats. More...

class  Converter
 Class interface for importing and exporting data to various external formats. More...

class  History
 Base class for histories storing state variables, also stores time states. More...

class  MatlabExporter
 Class for exporting data to MatLab. More...

class  MatrixConversionForm
 Class interface for importing and exporting data to various external formats. More...

class  OrbitHistory
 Class for storing a time history of orbital states. More...

class  Spacecraft
class  AnalyticPropagator
 Encapsulation of the propagation of the spacecraft dynamics (attitude, orbital, etc.). More...

class  AttitudeNumericPropagator
class  CombinedNumericPropagator
class  NumericPropagator
class  Propagator
 Encapsulation of the propagation of the spacecraft dynamics (attitude, orbital, etc.). More...

class  CentralBody
 Abstract representation of a central body. More...

class  EarthCentralBody
struct  MagneticFieldCoefficients
 Structure to hold typical magnetic model coefficients. More...

class  MagneticModel
 The MagneticModel class encapsulates a magnetic model of a central body. More...

class  TiltedDipoleMagneticModel
 Define the model of a magnetic field using a tilted dipole model. More...

class  EnvFunction
class  Environment
 Encapsulation of a spacecraft environment (disturbance forces, torques, central body, etc.). More...

class  Orbit
class  OrbitState
 Encapsulation of an Orbit State, including its coordinate type and reference frame. More...

struct  tleStruct
class  Keplerian
 Keplerian orbital element representation of the orbital position. More...

class  OrbitStateRepresentation
 Abstract base type of the orbit state representation. More...

class  PositionVelocity
 Position & Velocity representation of the orbital position. More...

class  DirectionCosineMatrix
 3x3 direction cosine matrix attitude representation. More...

class  ModifiedRodriguezParameters
 3x1 Modified Rodriguez Parameters attitude representation. More...

class  Quaternion
 The non-singular, redundant Euler parameter (quaternion) vector. More...

class  Rotation
 A generalized rotation class to represent any attitude coordinate transformation. More...

class  Functor
 Abstract class to hold the pointer to an force calculating functor. More...

class  SpecificFunctor
 derived template class More...

class  ObjectFunctor
 derived template class More...

class  Integrator
 Interface class to the Integrator algorithm strategies. More...

class  Interpolator
 Abstract interface to the set of interpolators. More...

class  LinearInterpolator
 Interpolates between a given set of data points to create a linear functional approximation. More...

class  NaturalCubicSplineInterpolator
 Interpolates between a given set of data points to create a smooth function. More...

class  Plot
 A Plot object is used to display data in a 2-D or 3-D plot. More...

class  RungeKuttaFehlbergIntegrator
 Runge-Kutta-Fehlberg integrator. More...

class  RungeKuttaIntegrator
 Implementation of a Runge-Kutta (Fourth Order) Integrator. More...

class  ssfTime
 Simulation Time object. More...


Typedefs

typedef void(* IntegratedAttitudeStateConversionFunction )(const Matrix &_meshPoint, AttitudeState &_convertedAttitudeState)
 Defined function pointer to integrated attitude state conversion function.

typedef int AttitudeFrame
typedef vector< void * > EnvFuncParamaterType
typedef Vector(* pt2EnvFunc )(const ssfTime &_currentTime, const OrbitState &_currentOrbitState, const AttitudeState &_currentAttitudeState, const EnvFuncParamaterType &_parameterList)
typedef CAMdoubleMatrix Matrix
typedef CAMdoubleVector Vector
typedef void(* IntegratedOrbitStateConversionFunction )(const Matrix &_meshPoint, OrbitState &_convertedOrbitState)
 Defined function pointer to integrated orbital state conversion function.

typedef Vector(* vectorFuncPtr )(const Vector &_vectorFuncPtrParams)
 A generalized pointer to a function that takes a vector as a parameter and returns a vector.

typedef Vector(* odeFunc )(const double &_time, const Vector &_state, const Matrix &_parameters, vectorFuncPtr _funcPtr)
 defines a pointer to an integrator's right-hand side (RHS) function

typedef Vector(* odeFunctor )(const ssfTime &_time, const Vector &_integratingState, Orbit *_pOrbit, Attitude *_pAttitude, const Matrix &_parameters, const Functor &_forceFunctorPtr)
 defines a pointer to an integrator's right-hand side (RHS) function using a functor for the arbitrary vector function

typedef double Angle
 Representation of an angle in radians. Currently the angle representation is assumed to be radians, and can be used in any of the other Trigonometry functions to convert to Degrees or Degrees-Minutes-Seconds. In the future, the Angle should be a class that is unit independent and include the appropriate conversion functions.

typedef double ssfSeconds
typedef double ssfJulianDate

Enumerations

enum  RotationType {
  DCM_Type, EulerAngle_Type, EulerAxisAngle_Type, MRP_Type,
  Quaternion_Type
}
 Various representations of a rotation. More...

enum  RotationSense { LEFT_HAND = -1, RIGHT_HAND = 1 }
 The Sense, or "handedness" of a rotation system. More...


Functions

Matrix eye (int _rowColumns)
 Creates an square identity matrix of specified size.

double trace (const Matrix &_inMatrix)
 Calculates the trace of matrix (sum of elements along diagonal).

double norm2 (const Vector &_inVector)
 Calculates the 2-norm of the vector (square-root of the sum of the squares).

void normalize (Vector &_inVector)
 Normalizes a vector.

double normInf (const Vector &_inVector)
 Calculates the Infinity-norm of the vector (largest value of the components).

Matrix skew (const Vector &_inVector)
 Calculates the skew-symmetric matrix of a vector.

Vector crossP (const Vector &_v1, const Vector &_v2)
 Calculates the cross product of 2 vectors.

DirectionCosineMatrix R1 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 1-axis. DirectionCosineMatrix.

DirectionCosineMatrix R2 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 2-axis. DirectionCosineMatrix.

DirectionCosineMatrix R3 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 3-axis. DirectionCosineMatrix.

double DMS2Deg (const double &_Degrees, const double &_Minutes, const double &_Seconds)
 Converts an angle from Degrees, Minutes, Seconds (^o,','') to a single quantity in degrees and fractions of a degree.

void Deg2DMS (const double &_Angle, double &Degrees, double &Minutes, double &Seconds)
 Converts an angle from a single quantity in degrees and fractions of a degree to Degrees, Minutes, Seconds (^o,','').

Angle DMS2Rad (const double &_Degrees, const double &_Minutes, const double &_Seconds)
 Converts an angle from Degrees, Minutes, Seconds (^o,','') to radians.

Angle Deg2Rad (const Angle &_Degrees)
 Converts an angle from Degrees to radians.

void Rad2DMS (const Angle &_Radians, double &Degrees, double &Minutes, double &Seconds)
 Converts an angle from radians to degrees, minutes, second format.

Angle Rad2Deg (const Angle &_Radians)
 Converts an angle from radians to degrees.

Angle atanh (const double &_z)
void Plot2D (const Matrix &_data)
 Use GnuPlot to plot the data in a matrix.

void Plot3D (const Matrix &_data)
void DayofYear2YMD (int _dayOfYear, int _year, int &_month, int &_day)
ostream & operator<< (ostream &s, ssfTime &t)
ssfTime tockTime (-1)
void tick ()

Variables

const double GRAVITATIONAL_CONSTANT = 6.669 * pow(10.0,-11.0)
const double deg2rad = (float)PI / 180.0
const int MatrixIndexBase = 1
const int VectorIndexBase = 1
const int MatrixRowsIndex = 1
const int MatrixColsIndex = 2
const int SEMIMAJOR_AXIS = VectorIndexBase + 0
const int ECCENTRICITY = VectorIndexBase + 1
const int INCLINATION = VectorIndexBase + 2
const int LONG_ASC_NODE = VectorIndexBase + 3
const int ARG_PERIGEE = VectorIndexBase + 4
const int TRUE_ANOMALY = VectorIndexBase + 5
const int QUATERNION_SIZE = 4
 Number of elements in a quaternion vector.

const int MRP_SIZE = 3
 Number of elements in a MRP vector.

const int DCM_SIZE = 3
 Number of elements in a DCM row or column.

const int EULERAXIS_SIZE = 3
 Number of elements in an euler axis.

const int EULERANGLES_SIZE = 3
 Number of elements in an euler angle sequence.

int DaysInMonth [12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
const ssfTime c_GreenwichSiderealEpochTime = ssfTime(1970,1,1,0,0,0)
 time used as epoch for measuring Greenwich sidereal time.

const Angle c_GreenwichSiderealTimeAtEpoch = 1.74933340


Typedef Documentation

typedef int O_SESSAME::AttitudeFrame
 

Definition at line 20 of file AttitudeState.h.

typedef vector<void*> O_SESSAME::EnvFuncParamaterType
 

specification of the parameter list type to be used for environmental function pointers

Definition at line 45 of file Environment.h.

typedef Vector(* O_SESSAME::pt2EnvFunc)(const ssfTime &_currentTime, const OrbitState &_currentOrbitState, const AttitudeState &_currentAttitudeState, const EnvFuncParamaterType &_parameterList)
 

defines a pointer to a Environmental disturbance calculating function

Definition at line 47 of file Environment.h.

typedef CAMdoubleMatrix O_SESSAME::Matrix
 

< Encapsulation of CAMdoubleMatrix class

Definition at line 24 of file Matrix.h.

typedef CAMdoubleVector O_SESSAME::Vector
 

< Encapsulation of CAMdoubleVector class

Definition at line 25 of file Matrix.h.


Function Documentation

Matrix eye int  _rowColumns  ) 
 

Creates an square identity matrix of specified size.

Parameters:
_rowColumns Number of rows and columns to size matrix (will be a square matrix).
Todo:
Implement eye as part of Vector or CAMdoubleVector class

Definition at line 31 of file Matrix.h.

double trace const Matrix _inMatrix  ) 
 

Calculates the trace of matrix (sum of elements along diagonal).

Parameters:
_inMatrix Matrix to have trace calculated.
Todo:
Implement trace as part of Vector or CAMdoubleVector class

Definition at line 44 of file Matrix.h.

double norm2 const Vector _inVector  ) 
 

Calculates the 2-norm of the vector (square-root of the sum of the squares).

Todo:
Implement norm2 as part of Vector or CAMdoubleVector class
Parameters:
_inVector Vector to calculate the 2-norm of.
Returns:
Square-root of the sum of squares of elements in vector.

Definition at line 57 of file Matrix.h.

void normalize Vector _inVector  ) 
 

Normalizes a vector.

Parameters:
_inVector Vector to be normalized.
Todo:
Implement normalize as part of Vector or CAMdoubleVector class

Definition at line 69 of file Matrix.h.

double normInf const Vector _inVector  ) 
 

Calculates the Infinity-norm of the vector (largest value of the components).

Parameters:
_inVector Vector to calculate the 2-norm of.
Returns:
Absolute value of maximum component in vector.
Todo:
Implement normInf as part of Vector or CAMdoubleVector class

Definition at line 80 of file Matrix.h.

Matrix skew const Vector _inVector  ) 
 

Calculates the skew-symmetric matrix of a vector.

Equation: /f[ {v^{}} = {bmatrix} 0 & -v_3 & v_2\ v_3 & 0 & -v_1\ -v_2 & v_1 & 0 {bmatrix} /f]

Parameters:
_inVector Vector to calculate the skew-symmetric matrix of.
Returns:
Skew-symmetric matrix (3x3).
Todo:
Implement skew as part of Vector or CAMdoubleVector class

Definition at line 99 of file Matrix.h.

Vector crossP const Vector _v1,
const Vector _v2
 

Calculates the cross product of 2 vectors.

Equation: /f$ v_3 = v_1 v_2 = v_1/f$

Parameters:
_inVector Vector to calculate the 2-norm of.
Returns:
Cross product of 2 vectors.
Todo:
Implement crossP as part of Vector or CAMdoubleVector class

Definition at line 124 of file Matrix.h.

void Plot2D const Matrix _data  )  [static]
 

Use GnuPlot to plot the data in a matrix.

Parameters:
_data Matrix of data, the first column is x, and each of the other columns will be plotted on the y-axis

Definition at line 51 of file Plot.h.

void Plot3D const Matrix _data  )  [static]
 

Definition at line 78 of file Plot.h.

void DayofYear2YMD int  _dayOfYear,
int  _year,
int &  _month,
int &  _day
 

Definition at line 45 of file Time.cpp.

ostream& operator<< ostream &  s,
ssfTime t
 

Definition at line 149 of file Time.cpp.

ssfTime tockTime 1  )  [static]
 

void tick  ) 
 

Definition at line 428 of file Time.h.


Variable Documentation

const double O_SESSAME::GRAVITATIONAL_CONSTANT = 6.669 * pow(10.0,-11.0)
 

Earth Radius [/f$m^3/kg-s^2/f$]

Definition at line 24 of file EarthCentralBody.h.

const double O_SESSAME::deg2rad = (float)PI / 180.0
 

Earth Radius [-]

Definition at line 26 of file EarthCentralBody.h.

const int O_SESSAME::MatrixIndexBase = 1
 

< Beginning index of Matrix class

Definition at line 20 of file Matrix.h.

const int O_SESSAME::VectorIndexBase = 1
 

< Beginning index of Vector class

Definition at line 21 of file Matrix.h.

const int O_SESSAME::MatrixRowsIndex = 1
 

< Value referring to the "rows" index

Definition at line 22 of file Matrix.h.

const int O_SESSAME::MatrixColsIndex = 2
 

< Value referring to the "columns" index

Definition at line 23 of file Matrix.h.

const int O_SESSAME::SEMIMAJOR_AXIS = VectorIndexBase + 0
 

position of the Semimajor axis, , in the element vector

Definition at line 31 of file Keplerian.h.

const int O_SESSAME::ECCENTRICITY = VectorIndexBase + 1
 

position of the eccentricity, , in the element vector

Definition at line 32 of file Keplerian.h.

const int O_SESSAME::INCLINATION = VectorIndexBase + 2
 

position of the inclination, , in the element vector

Definition at line 33 of file Keplerian.h.

const int O_SESSAME::LONG_ASC_NODE = VectorIndexBase + 3
 

position of the longitude of the ascending node, , in the element vector

Definition at line 34 of file Keplerian.h.

const int O_SESSAME::ARG_PERIGEE = VectorIndexBase + 4
 

position of the argument of perigee, , in the element vector

Definition at line 35 of file Keplerian.h.

const int O_SESSAME::TRUE_ANOMALY = VectorIndexBase + 5
 

position of the true anomaly, , in the element vector

Definition at line 36 of file Keplerian.h.

int O_SESSAME::DaysInMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} [static]
 

Definition at line 16 of file Time.cpp.

const ssfTime O_SESSAME::c_GreenwichSiderealEpochTime = ssfTime(1970,1,1,0,0,0) [static]
 

time used as epoch for measuring Greenwich sidereal time.

Definition at line 394 of file Time.h.

const Angle O_SESSAME::c_GreenwichSiderealTimeAtEpoch = 1.74933340 [static]
 

actual Greenwich sidereal time at the specified epoch, m_GreenwichSiderealEpochTime.

Definition at line 396 of file Time.h.


Generated on Wed Aug 6 12:59:12 2003 for Open-Sessame Framework by doxygen1.3