org.orekit.forces
Interface ForceModel

All Superinterfaces:
IParameterizable, Serializable
All Known Implementing Classes:
AbstractTides, BalminoAttractionModel, ConstantThrustError, ConstantThrustManeuver, CoriolisRelativisticEffect, CunninghamAttractionModel, DragForce, DrozinerAttractionModel, EmpiricalForce, LenseThirringRelativisticEffect, NewtonianAttraction, OceanTides, PatriusSolarRadiationPressure, RediffusedRadiationPressure, SchwarzschildRelativisticEffect, SolarRadiationPressure, TerrestrialTides, ThirdBodyAttraction, VariablePotentialAttractionModel, VariableThrustManeuver

public interface ForceModel
extends IParameterizable

This interface represents a force modifying spacecraft motion.

Objects implementing this interface are intended to be added to a numerical propagator before the propagation is started.

The propagator will call at each step the addContribution(SpacecraftState, TimeDerivativesEquations) method. The force model instance will extract all the state data it needs (date,position, velocity, frame, attitude, mass) from the first parameter. From these state data, it will compute the perturbing acceleration. It will then add this acceleration to the second parameter which will take thins contribution into account and will use the Gauss equations to evaluate its impact on the global state derivative.

Force models which create discontinuous acceleration patterns (typically for maneuvers start/stop or solar eclipses entry/exit) must provide one or more events detectors to the propagator thanks to their getEventsDetectors() method. This method is called once just before propagation starts. The events states will be checked by the propagator to ensure accurate propagation and proper events handling.

Author:
Mathieu Roméro, Luc Maisonobe, Véronique Pommier-Maurussane

Method Summary
 void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
          Compute the contribution of the force model to the perturbing acceleration.
 Vector3D computeAcceleration(SpacecraftState s)
          Compute the acceleration due to the force.
 EventDetector[] getEventsDetectors()
          Get the discrete events related to the model.
 
Methods inherited from interface org.orekit.parameter.IParameterizable
getParameters, supportsParameter
 

Method Detail

addContribution

void addContribution(SpacecraftState s,
                     TimeDerivativesEquations adder)
                     throws OrekitException
Compute the contribution of the force model to the perturbing acceleration.

Parameters:
s - current state information: date, kinematics, attitude
adder - object where the contribution should be added
Throws:
OrekitException - if some specific error occurs

computeAcceleration

Vector3D computeAcceleration(SpacecraftState s)
                             throws OrekitException
Compute the acceleration due to the force.

Parameters:
s - current state information: date, kinematics, attitude
Returns:
acceleration in the SpacecraftState frame
Throws:
OrekitException - if some specific error occurs

getEventsDetectors

EventDetector[] getEventsDetectors()
Get the discrete events related to the model.

Returns:
array of events detectors or null if the model is not related to any discrete events


Copyright © 2016 CNES. All Rights Reserved.