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

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

public final class AeroModel
extends Parameterizable
implements DragSensitive

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

Since:
1.2
Version:
$Id: AeroModel.java 16763 2016-10-10 09:31:17Z bignon $
Author:
cardosop
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
AeroModel(Assembly inAssembly)
          Aero 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.
protected static Vector3D forceOnFacet(SpacecraftState state, IPart part, Assembly assembly, double density, Vector3D relativeVelocity)
          Method to compute the force for a plane model.
protected static Vector3D forceOnSphere(SpacecraftState state, IPart part, double density, Vector3D relativeVelocity)
          Method to compute the force for a sphere model.
 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

AeroModel

public AeroModel(Assembly inAssembly)
Aero model (the acceleration is computed from all the sub parts of the vehicle).

Parameters:
inAssembly - The considered vehicle.
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 - the spacecraft velocity relative to the atmosphere.
Returns:
the acceleration applied on the assembly.
Throws:
OrekitException - when an error occurs.

forceOnFacet

protected static Vector3D forceOnFacet(SpacecraftState state,
                                       IPart part,
                                       Assembly assembly,
                                       double density,
                                       Vector3D relativeVelocity)
                                throws OrekitException
Method to compute the force for a plane model.

Parameters:
state - the current state of the spacecraft.
part - the current part of the assembly.
assembly - the assembly.
density - the atmosphere density.
relativeVelocity - the spacecraft velocity relative to the atmosphere.
Returns:
the force applied on the facet.
Throws:
OrekitException - orekit frame exception

forceOnSphere

protected static Vector3D forceOnSphere(SpacecraftState state,
                                        IPart part,
                                        double density,
                                        Vector3D relativeVelocity)
                                 throws OrekitException
Method to compute the force for a sphere model.

Parameters:
state - the current state of the spacecraft.
part - the current part of the assembly.
density - the atmosphere density.
relativeVelocity - the spacecraft velocity relative to the atmosphere.
Returns:
the force applied on the facet.
Throws:
OrekitException - if no attitude is defined

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 - the 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

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 © 2016 CNES. All Rights Reserved.