fr.cnes.sirius.patrius.assembly.models
Class GlobalAeroModel

java.lang.Object
  extended by fr.cnes.sirius.patrius.assembly.models.GlobalAeroModel
All Implemented Interfaces:
Serializable, DragSensitive, JacobianParametersProvider

public final class GlobalAeroModel
extends Object
implements DragSensitive

Global aero model for generic user-provided aero coefficients.

This model requires a AeroProperty. This property has to be applied to Main part only:

Since:
3.3
Version:
$Id: GlobalAeroModel.java 17587 2017-05-10 13:31:11Z bignon $
Author:
Emmanuel Bignon
See Also:
Serialized Form
Concurrency :
not thread-safe

Constructor Summary
GlobalAeroModel(Assembly assemblyIn, DragCoefficientProvider dragCoefficientProviderIn, ExtendedAtmosphere atmosphereIn)
          Constructor with default partial derivatives time step DEFAULT_STEP.
GlobalAeroModel(Assembly assemblyIn, DragCoefficientProvider dragCoefficientProviderIn, ExtendedAtmosphere atmosphereIn, double partialDerivativesStep)
          Constructor.
 
Method Summary
 void addDDragAccDParam(SpacecraftState s, Parameter param, double density, Vector3D relativeVelocity, double[] dAccdParam)
          Compute acceleration derivatives with respect to additional parameters (the ballistic coefficient).
 void addDDragAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel, double density, Vector3D acceleration, Vector3D relativeVelocity, boolean computeGradientPosition, boolean computeGradientVelocity)
          Compute acceleration derivatives with respect to state parameters (position and velocity).
 Vector3D dragAcceleration(SpacecraftState state, double density, Vector3D relativeVelocity)
          Method to compute the aero acceleration, based on the assembly.
 ArrayList<Parameter> getJacobianParameters()
          Get the list of all jacobian parameters supported.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlobalAeroModel

public GlobalAeroModel(Assembly assemblyIn,
                       DragCoefficientProvider dragCoefficientProviderIn,
                       ExtendedAtmosphere atmosphereIn,
                       double partialDerivativesStep)
Constructor.

Parameters:
assemblyIn - assembly
dragCoefficientProviderIn - drag coefficient (x surface) provider
atmosphereIn - atmosphere
partialDerivativesStep - partial derivatives position step

GlobalAeroModel

public GlobalAeroModel(Assembly assemblyIn,
                       DragCoefficientProvider dragCoefficientProviderIn,
                       ExtendedAtmosphere atmosphereIn)
Constructor with default partial derivatives time step DEFAULT_STEP.

Parameters:
assemblyIn - assembly
dragCoefficientProviderIn - drag coefficient provider
atmosphereIn - atmosphere
Method Detail

dragAcceleration

public Vector3D dragAcceleration(SpacecraftState state,
                                 double density,
                                 Vector3D relativeVelocity)
                          throws OrekitException
Method to compute the aero acceleration, based on the assembly.

Specified by:
dragAcceleration in interface DragSensitive
Parameters:
state - the current state of the spacecraft.
density - the atmosphere density.
relativeVelocity - relative velocity of atmosphere with respect to spacecraft, in the same inertial frame as spacecraft orbit (m/s). WARNING : Remember that consequently, the spacecraft velocity is obtained as the opposite of relativeVelocity.
Returns:
the acceleration applied on the assembly.
Throws:
OrekitException - when an error occurs.

addDDragAccDParam

public void addDDragAccDParam(SpacecraftState s,
                              Parameter param,
                              double density,
                              Vector3D relativeVelocity,
                              double[] dAccdParam)
                       throws OrekitException
Compute acceleration derivatives with respect to additional parameters (the ballistic coefficient).

Specified by:
addDDragAccDParam in interface DragSensitive
Parameters:
s - spacecraft state
param - parameter
density - the atmospheric density value
relativeVelocity - relative velocity of atmosphere with respect to spacecraft, in the same inertial frame as spacecraft orbit (m/s)
dAccdParam - acceleration derivatives with respect to ballistic coefficient
Throws:
OrekitException - if derivatives cannot be computed

addDDragAccDState

public void addDDragAccDState(SpacecraftState s,
                              double[][] dAccdPos,
                              double[][] dAccdVel,
                              double density,
                              Vector3D acceleration,
                              Vector3D relativeVelocity,
                              boolean computeGradientPosition,
                              boolean computeGradientVelocity)
                       throws OrekitException
Compute acceleration derivatives with respect to state parameters (position and velocity).

Specified by:
addDDragAccDState in interface DragSensitive
Parameters:
s - spacecraft state
dAccdPos - acceleration derivatives with respect to position parameters
dAccdVel - acceleration derivatives with respect to velocity parameters
density - the atmospheric density value
acceleration - the spacecraft acceleration in the inertial frame
relativeVelocity - relative velocity of atmosphere with respect to spacecraft, in the same inertial frame as spacecraft orbit (m/s)
computeGradientPosition - true if partial derivatives with respect to position should be computed
computeGradientVelocity - true if partial derivatives with respect to position should be computed
Throws:
OrekitException - if derivatives cannot be computed

getJacobianParameters

public ArrayList<Parameter> getJacobianParameters()
Get the list of all jacobian parameters supported.

Specified by:
getJacobianParameters in interface JacobianParametersProvider
Returns:
the list of additional parameters for which the jacobians can be computed.


Copyright © 2017 CNES. All Rights Reserved.