casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes
casa::SolarPos Class Reference

Solar position class and calculations. More...

#include <SolarPos.h>

List of all members.

Public Types

enum  SolarPosTypes {
  STANDARD,
  NONE
}
 Types of known SolarPos calculations (at 1995/09/04 STANDARD == IAU1980) More...

Public Member Functions

 SolarPos ()
 Default constructor, generates default J2000 SolarPos identification.
 SolarPos (const SolarPos &other)
 Copy constructor.
 SolarPos (SolarPosTypes type)
 Constructor with type.
SolarPosoperator= (const SolarPos &other)
 Copy assignment.
 ~SolarPos ()
const MVPositionoperator() (Double epoch)
 Operator () calculates the geocentric Solar Position in AU.
const MVPositionderivative (Double epoch)
 Return derivatives of SolarPos (d-1)
const MVPositionbaryEarthDerivative (Double epoch)
const MVPositionbarySunDerivative (Double epoch)
const MVPositionbaryEarth (Double epoch)
 Barycentric position of Earth.
const MVPositionbarySun (Double epoch)
 Barycentric position of Sun.
void init ()
 Re-initialise SolarPos object.
void init (SolarPosTypes type)
void refresh ()
 Refresh calculations.

Static Public Attributes

static const Double INTV
 Interval to be used for linear approximation (in days)

Private Member Functions

void copy (const SolarPos &other)
 Copy.
void fill ()
 Fill an empty copy.
void calcEarth (Double t)
 Calculate heliocentric Earth position for time t.
void calcSun (Double t)
 Calculate heliocentric barycentre position.

Private Attributes

SolarPosTypes method
 Method to be used.
Double checkEpoch
 Check epoch for linear approximation.
Double checkSunEpoch
Double eval [3]
 Cached calculated Earth positions.
Double deval [3]
 Cached derivatives.
Double sval [3]
 Cached calculated Sun positions.
Double dsval [3]
 Cached derivatives.
Int lres
 To be able to use references in simple calculations, results are calculated in a circular buffer.
MVPosition result [6]
 Last calculation.

Static Private Attributes

static uInt interval_reg
 Interpolation interval.
static uInt usejpl_reg
 JPL use.

Detailed Description

Solar position class and calculations.

Intended use:

Public interface

 <h3>Review Status</h3><dl><dt>Reviewed By:<dd>UNKNOWN<dt>Date Reviewed:<dd>before2004/08/25<dt>Test programs:<dd>tMeasMath</dl> 

Prerequisite

Etymology

SolarPos from Solar Position

Synopsis

SolarPos forms the class for Solar Position calculations. It is a simple container with the selected method, and the mean epoch.
The method is selected from one of the following:

Epochs can be specified as the MJD (with defined constants MeasData::MJD2000 and MeasData::MJDB1950 or the actual MJD), leading to the following constructors:

Actual SolarPos for a certain Epoch is calculated by the () operator as SolarPos(epoch), with epoch Double MJD, as an MVPosition vector.
It returns the geocentric position of the heliocentre in rectangular coordinates in AU.
The derivative (d-1) can be obtained as well by derivative(epoch), baryEarthDerivative() and barySunDerivative().
The Earth's and solar barycentric position can be obtained by the members baryEarth and barySun. The following details can be set with the Aipsrc mechanism:

Reference: M. Soma et al., Cel. Mech. 41 (1988), 389; E.M. Standish, Astron. Astroph. 114 (1982), 297.

Example

Motivation

To calculate the solar/Earth positions for gravitational deflection. An alternate route could have been a global function, but having a simple container allows caching of some calculations for speed.
Using MJD (JD-2400000.5) rather than JD is for precision reasons.

Definition at line 111 of file SolarPos.h.


Member Enumeration Documentation

Types of known SolarPos calculations (at 1995/09/04 STANDARD == IAU1980)

Enumerator:
STANDARD 
NONE 

Definition at line 119 of file SolarPos.h.


Constructor & Destructor Documentation

Default constructor, generates default J2000 SolarPos identification.

casa::SolarPos::SolarPos ( const SolarPos other)

Copy constructor.

Constructor with type.


Member Function Documentation

Barycentric position of Earth.

Barycentric position of Sun.

void casa::SolarPos::calcEarth ( Double  t) [private]

Calculate heliocentric Earth position for time t.

void casa::SolarPos::calcSun ( Double  t) [private]

Calculate heliocentric barycentre position.

void casa::SolarPos::copy ( const SolarPos other) [private]

Copy.

Return derivatives of SolarPos (d-1)

void casa::SolarPos::fill ( ) [private]

Fill an empty copy.

Re-initialise SolarPos object.

const MVPosition& casa::SolarPos::operator() ( Double  epoch)

Operator () calculates the geocentric Solar Position in AU.

SolarPos& casa::SolarPos::operator= ( const SolarPos other)

Copy assignment.

Refresh calculations.


Member Data Documentation

Check epoch for linear approximation.

Definition at line 164 of file SolarPos.h.

Definition at line 165 of file SolarPos.h.

Cached derivatives.

Definition at line 169 of file SolarPos.h.

Cached derivatives.

Definition at line 173 of file SolarPos.h.

Cached calculated Earth positions.

Definition at line 167 of file SolarPos.h.

Interpolation interval.

Definition at line 181 of file SolarPos.h.

const Double casa::SolarPos::INTV [static]

Interval to be used for linear approximation (in days)

Definition at line 115 of file SolarPos.h.

To be able to use references in simple calculations, results are calculated in a circular buffer.

Current buffer pointer

Definition at line 177 of file SolarPos.h.

Method to be used.

Definition at line 162 of file SolarPos.h.

Last calculation.

Definition at line 179 of file SolarPos.h.

Cached calculated Sun positions.

Definition at line 171 of file SolarPos.h.

uInt casa::SolarPos::usejpl_reg [static, private]

JPL use.

Definition at line 183 of file SolarPos.h.


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