org.orekit.forces.radiation
Class RediffusedRadiationPressure

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by org.orekit.parameter.JacobiansParameterizable
          extended by org.orekit.forces.radiation.RediffusedRadiationPressure
All Implemented Interfaces:
Serializable, ForceModel, GradientModel, IJacobiansParameterizable, IParameterizable

public final class RediffusedRadiationPressure
extends JacobiansParameterizable
implements ForceModel, GradientModel

Class that represents a rediffused radiative force.

The implementation of this class enables the computation of partial derivatives with respect to K0 albedo global coefficient, K0 infrared global coefficient, absorption, specular reflection or diffusion reflection coefficients.

Since:
1.2
Version:
$Id: RediffusedRadiationPressure.java 15713 2016-04-01 08:55:06Z bignon $
Author:
clauded
See Also:
Serialized Form
Concurrency :
conditionally thread-safe
Concurrency comment :
thread-safe if the CelestialBody attribute is.

Constructor Summary
RediffusedRadiationPressure(CelestialBody inSun, Frame inBodyFrame, int inCorona, int inMeridian, IEmissivityModel inEmissivityModel, RediffusedRadiationSensitive inModel)
          Constructor.
RediffusedRadiationPressure(CelestialBody inSun, Frame inBodyFrame, int inCorona, int inMeridian, IEmissivityModel inEmissivityModel, RediffusedRadiationSensitive inModel, boolean computePD)
          Constructor.
 
Method Summary
 void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
          Compute the contribution of the force model to the perturbing acceleration.
 void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam)
          Compute acceleration derivatives with respect to additional parameters.
 void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel)
          Compute acceleration derivatives with respect to state parameters.
 Vector3D computeAcceleration(SpacecraftState s)
          Compute the acceleration due to the force.
 boolean computeGradientPosition()
          This method returns true if the acceleration partial derivatives with respect to position have to be computed.
 boolean computeGradientVelocity()
          This method returns true if the acceleration partial derivatives with respect to velocity have to be computed.
 EventDetector[] getEventsDetectors()
          Get the discrete events related to the model.
 
Methods inherited from class org.orekit.parameter.JacobiansParameterizable
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
 
Methods inherited from class org.orekit.parameter.Parameterizable
addParameter, getParameters, supportsParameter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.orekit.parameter.IParameterizable
getParameters, supportsParameter
 

Constructor Detail

RediffusedRadiationPressure

public RediffusedRadiationPressure(CelestialBody inSun,
                                   Frame inBodyFrame,
                                   int inCorona,
                                   int inMeridian,
                                   IEmissivityModel inEmissivityModel,
                                   RediffusedRadiationSensitive inModel)
                            throws OrekitException
Constructor.

Parameters:
inSun - coordinate of sun
inBodyFrame - boby frame
inCorona - number of corona
inMeridian - number of meridian
inEmissivityModel - emissivity model
inModel - redistributed radiative model
Throws:
OrekitException - thrown if no radiative properties found

RediffusedRadiationPressure

public RediffusedRadiationPressure(CelestialBody inSun,
                                   Frame inBodyFrame,
                                   int inCorona,
                                   int inMeridian,
                                   IEmissivityModel inEmissivityModel,
                                   RediffusedRadiationSensitive inModel,
                                   boolean computePD)
                            throws OrekitException
Constructor.

Parameters:
inSun - coordinate of sun
inBodyFrame - boby frame
inCorona - number of corona
inMeridian - number of meridian
inEmissivityModel - emissivity model
inModel - redistributed radiative model
computePD - true if partial derivatives wrt position have to be computed
Throws:
OrekitException - thrown if no radiative properties found
Method Detail

addContribution

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

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

computeAcceleration

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

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

getEventsDetectors

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

Specified by:
getEventsDetectors in interface ForceModel
Returns:
array of events detectors or null if the model is not related to any discrete events

addDAccDState

public void addDAccDState(SpacecraftState s,
                          double[][] dAccdPos,
                          double[][] dAccdVel)
                   throws OrekitException
Compute acceleration derivatives with respect to state parameters.

Specified by:
addDAccDState in interface IJacobiansParameterizable
Parameters:
s - spacecraft state
dAccdPos - acceleration derivatives with respect to position
dAccdVel - acceleration derivatives with respect to velocity
Throws:
OrekitException - if derivatives cannot be computed

addDAccDParam

public void addDAccDParam(SpacecraftState s,
                          Parameter param,
                          double[] dAccdParam)
                   throws OrekitException
Compute acceleration derivatives with respect to additional parameters.
K0ALBEDO_COEFFICIENT -->derivatives with respect to the K0 albedo global coefficient
K0IR_COEFFICIENT --> derivatives with respect to the K0 infrared global coefficient
ABSORPTION_COEFFICIENT --> derivatives with respect to the absorption coefficient
SPECULAR_COEFFICIENT --> derivatives with respect to the specular reflection coefficient
DIFFUSION_COEFFICIENT --> derivatives with respect to the diffusion reflection coefficient

Specified by:
addDAccDParam in interface IJacobiansParameterizable
Parameters:
s - spacecraft state
param - the parameter with respect to which derivatives are required
dAccdParam - acceleration derivatives with respect to specified parameters
Throws:
OrekitException - if derivatives cannot be computed

computeGradientPosition

public boolean computeGradientPosition()
This method returns true if the acceleration partial derivatives with respect to position have to be computed.

Specified by:
computeGradientPosition in interface GradientModel
Returns:
true if the derivatives have to be computed, false otherwise

computeGradientVelocity

public boolean computeGradientVelocity()
This method returns true if the acceleration partial derivatives with respect to velocity have to be computed.

Specified by:
computeGradientVelocity in interface GradientModel
Returns:
true if the derivatives have to be computed, false otherwise


Copyright © 2016 CNES. All Rights Reserved.