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

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by fr.cnes.sirius.patrius.assembly.models.DragLiftModel
All Implemented Interfaces:
Serializable, DragSensitive, IParameterizable, JacobianParametersProvider

public final class DragLiftModel
extends Parameterizable
implements DragSensitive

Class that represents an drag and lift aero model, based on the vehicle.

Since:
3.0
Version:
$Id: DragLiftModel.java 16763 2016-10-10 09:31:17Z bignon $
Author:
toussaintf
See Also:
Serialized Form
Concurrency :
not thread-safe
Concurrency comment :
The use of a frame (Assembly attribute) linked to the tree of frames in each of the parts makes this class not thread-safe.

Constructor Summary
DragLiftModel(Assembly inAssembly)
          Aero drag and lift model (the acceleration is computed from all the sub parts of the vehicle).
 
Method Summary
 void addDDragAccDParam(SpacecraftState s, Parameter param, double density, Vector3D relativeVelocity, double[] dAccdParam)
          Compute acceleration derivatives with respect to 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 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
 

Constructor Detail

DragLiftModel

public DragLiftModel(Assembly inAssembly)
Aero drag and lift model (the acceleration is computed from all the sub parts of the vehicle).

Parameters:
inAssembly - The considered vehicle.
Method Detail

getJacobianParameters

public ArrayList<Parameter> getJacobianParameters()
Description copied from interface: JacobianParametersProvider
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.

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 - the spacecraft velocity relative to the atmosphere in the spacecraftstate reference frame.
Returns:
the acceleration applied on the assembly in the spacecraftstate frame.
Throws:
OrekitException - if acceleration cannot be computed.

addDDragAccDParam

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

Specified by:
addDDragAccDParam in interface DragSensitive
Parameters:
s - SpacecraftState
param - name of parameter
density - the atmosphere density.
relativeVelocity - the spacecraft velocity relative to the atmosphere.
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 - the spacecraft velocity relative to the atmosphere
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


Copyright © 2016 CNES. All Rights Reserved.