org.orekit.propagation.events
Class ApsideDetector

java.lang.Object
  extended by org.orekit.propagation.events.AbstractDetector
      extended by org.orekit.propagation.events.ApsideDetector
All Implemented Interfaces:
java.io.Serializable, EventDetector

public class ApsideDetector
extends AbstractDetector

Finder for apside crossing events.

This class finds apside crossing events (i.e. apogee or perigee crossing).

The default implementation behavior is to continue propagation at apogee crossing and to stop propagation at perigee crossing. This can be changed by overriding the eventOccurred method in a derived class.

Beware that apside detection will fail for almost circular orbits. If for example an apside detector is used to trigger an ImpulseManeuver and the maneuver change the orbit shape to circular, then the detector may completely fail just after the maneuver has been performed!

Version:
$Revision: 3027 $ $Date: 2010-01-19 11:36:25 +0100 (mar. 19 janv. 2010) $
Author:
Luc Maisonobe
See Also:
Propagator.addEventDetector(EventDetector), Serialized Form

Field Summary
 
Fields inherited from class org.orekit.propagation.events.AbstractDetector
DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
 
Fields inherited from interface org.orekit.propagation.events.EventDetector
CONTINUE, RESET_DERIVATIVES, RESET_STATE, STOP
 
Constructor Summary
ApsideDetector(double threshold, Orbit orbit)
          Build a new instance.
ApsideDetector(Orbit orbit)
          Build a new instance.
 
Method Summary
 int eventOccurred(SpacecraftState s, boolean increasing)
          Handle an apside crossing event and choose what to do next.
 double g(SpacecraftState s)
          Compute the value of the switching function.
 
Methods inherited from class org.orekit.propagation.events.AbstractDetector
getMaxCheckInterval, getMaxIterationCount, getThreshold, resetState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ApsideDetector

public ApsideDetector(Orbit orbit)
Build a new instance.

The orbit is used only to set an upper bound for the max check interval to period/3 and to set the convergence threshold according to orbit size

Parameters:
orbit - initial orbit

ApsideDetector

public ApsideDetector(double threshold,
                      Orbit orbit)
Build a new instance.

The orbit is used only to set an upper bound for the max check interval to period/3

Parameters:
threshold - convergence threshold (s)
orbit - initial orbit
Method Detail

eventOccurred

public int eventOccurred(SpacecraftState s,
                         boolean increasing)
                  throws OrekitException
Handle an apside crossing event and choose what to do next.

The default implementation behavior is to continue propagation at apogee crossing and to stop propagation at perigee crossing.

Specified by:
eventOccurred in interface EventDetector
Specified by:
eventOccurred in class AbstractDetector
Parameters:
s - the current state information : date, kinematics, attitude
increasing - if true, the value of the switching function increases when times increases around event.
Returns:
EventDetector.STOP or EventDetector.CONTINUE
Throws:
OrekitException - if some specific error occurs

g

public double g(SpacecraftState s)
         throws OrekitException
Compute the value of the switching function. This function computes the dot product of the 2 vectors : position.velocity.

Specified by:
g in interface EventDetector
Specified by:
g in class AbstractDetector
Parameters:
s - the current state information: date, kinematics, attitude
Returns:
value of the switching function
Throws:
OrekitException - if some specific error occurs


Copyright © 2002-2010 CS Communication & Systèmes. All Rights Reserved.