jat.forces
Class AtmosphericDrag

java.lang.Object
  extended by jat.forces.AtmosphericDrag
All Implemented Interfaces:
EarthForceModel, ForceModel
Direct Known Subclasses:
CIRA_ExponentialDrag, ExponentialDrag, HarrisPriester, NRLMSISE_Drag

public abstract class AtmosphericDrag
extends java.lang.Object
implements ForceModel, EarthForceModel

The AtmosphericDrag class computes the acceleration due to drag on a satellite using an Earth atmosphere model that conforms to the computeDensity abstract method.

Version:
1.0
Author:
Dave Gaylor

Field Summary
 double omega_e
          Rotation rate of the Earth (taken from Constants.omega_e)
 
Constructor Summary
AtmosphericDrag(double cd, double area, double mass)
          Constructor
AtmosphericDrag(Spacecraft sc)
          Constructor using the Spacecraft class for parameters
 
Method Summary
 VectorN acceleration(EarthRef eRef, Spacecraft sc)
          Deprecated.  
 VectorN acceleration(Time t, BodyRef bRef, Spacecraft sc)
          Implemented from the ForceModel interface
 void compute(Time t, BodyRef ref, VectorN r, VectorN v)
          Computes the acceleration due to drag in m/s^2.
abstract  double computeDensity(Time t, BodyRef ref, VectorN r)
          Abstract class requires the subclass to compute the atmospheric density.
 VectorN dragAccel()
          Return the acceleration due to drag
 VectorN partialCd()
          Return the partial derivative of acceleration wrt Cd
 Matrix partialV()
          Return the partial derivative of acceleration wrt velocity
 void updateMass(double mass)
          Update the mass
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

omega_e

public double omega_e
Rotation rate of the Earth (taken from Constants.omega_e)

Constructor Detail

AtmosphericDrag

public AtmosphericDrag(double cd,
                       double area,
                       double mass)
Constructor

Parameters:
cd - coefficient of drag
area - drag cross-sectional area
mass - mass

AtmosphericDrag

public AtmosphericDrag(Spacecraft sc)
Constructor using the Spacecraft class for parameters

Parameters:
sc - Spacecraft parameters
Method Detail

computeDensity

public abstract double computeDensity(Time t,
                                      BodyRef ref,
                                      VectorN r)
Abstract class requires the subclass to compute the atmospheric density.

Parameters:
ref - EarthRef object.
r - Position vector.
Returns:
Atmospheric density in kg/m^3

dragAccel

public VectorN dragAccel()
Return the acceleration due to drag

Returns:
VectorN containing the acceleration due to drag

partialV

public Matrix partialV()
Return the partial derivative of acceleration wrt velocity

Returns:
Matrix containing the partial derivative of acceleration wrt velocity

partialCd

public VectorN partialCd()
Return the partial derivative of acceleration wrt Cd

Returns:
Matrix containing the partial derivative of acceleration wrt Cd

updateMass

public void updateMass(double mass)
Update the mass

Parameters:
mass - the new mass

compute

public void compute(Time t,
                    BodyRef ref,
                    VectorN r,
                    VectorN v)
Computes the acceleration due to drag in m/s^2.

Parameters:
ref - EarthRef object.
r - ECI position vector in meters.
v - ECI velocity vector in meters.

acceleration

public VectorN acceleration(Time t,
                            BodyRef bRef,
                            Spacecraft sc)
Implemented from the ForceModel interface

Specified by:
acceleration in interface ForceModel
Parameters:
t - Time reference object
bRef - Earth reference object
sc - Spacecraft parameters and state
Returns:
the acceleration [m/s^s]
See Also:
ForceModel.acceleration(jat.spacetime.Time, jat.spacetime.BodyRef, jat.spacecraft.Spacecraft)

acceleration

public VectorN acceleration(EarthRef eRef,
                            Spacecraft sc)
Deprecated. 

Returns the acceleration developed on the spacecraft at the current time and position

Specified by:
acceleration in interface EarthForceModel
Parameters:
eRef - Earth reference object
sc - Spacecraft parameters and state
Returns:
the acceleration [m/s^2]
See Also:
EarthForceModel.acceleration(jat.timeRef.EarthRef, jat.spacecraft.Spacecraft)