fr.cnes.sirius.patrius.assembly.properties
Class AeroSphereProperty

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by fr.cnes.sirius.patrius.assembly.properties.AeroCrossSectionProperty
          extended by fr.cnes.sirius.patrius.assembly.properties.AeroSphereProperty
All Implemented Interfaces:
IPartProperty, Serializable, IParameterizable

public final class AeroSphereProperty
extends AeroCrossSectionProperty
implements IPartProperty

This class is a sphere property to use with the aerodynamic part property for the PATRIUS assembly.
This property is meant to be used in a LEO average precision aerodynamic context. See the CNES TTVS book (2002 edition : Volume 3, Module XII, $2.4.1.2 ) for information.

Note that the use of this class implies a constant area which may not be suited for some application such as reentry.

Since:
1.2
Version:
$Id: AeroSphereProperty.java 17588 2017-05-10 13:31:54Z bignon $
Author:
cardosop
See Also:
Serialized Form
Concurrency :
immutable

Field Summary
 
Fields inherited from class fr.cnes.sirius.patrius.assembly.properties.AeroCrossSectionProperty
C_X, DEFAULT_C_X
 
Constructor Summary
AeroSphereProperty(double inSphereRadius)
          Constructor of this property with default value for C_X.
AeroSphereProperty(double inSphereRadius, double dragCoef)
          Constructor of this property giving the drag coef.
AeroSphereProperty(double inSphereRadius, double density, Vector3D relativeVelocity)
          Constructor of this property.
AeroSphereProperty(double inSphereRadius, IParamDiffFunction dragCoefFct)
          Constructor of this property defining the drag coef as a ParamDiffFunction.
AeroSphereProperty(double inSphereRadius, Parameter dragCoef)
          This constructor shall be used for defining the drag coef using Parameter
AeroSphereProperty(Parameter inSphereArea, double dragCoef)
          Constructor of this property giving the drag coef without the atmospheric height scale.
 
Method Summary
 double getCrossSection(SpacecraftState state, Vector3D relativeVelocity, Frame mainPartFrame, Frame partFrame)
          Compute the cross section of main shape using the relative velocity in the part (having the aero property) frame as the direction to provider to the CrossSectionProvider.getCrossSection(Vector3D).
 double getSphereArea()
          Get the sphere area.
 double getSphereRadius()
          Get the sphere radius.
 PropertyType getType()
          Get the type of the property.
 
Methods inherited from class fr.cnes.sirius.patrius.assembly.properties.AeroCrossSectionProperty
getDragForce, getDragForceDerivativeValue
 
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

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          double density,
                          Vector3D relativeVelocity)
Constructor of this property. This constructor can be used when the user wants to compute the partial derivatives of the drag force with respect to spacecraft position (the default value of the derivatives is set to zero), for the sphere case. However, users should better use the property AeroCrossSectionProperty which provide the cross section computation of the satellite main's part (could be either a sphere, a cylinder or a parallelepiped). The derivatives are computed using an analytical formula that involves the value of dRho / dh (the derivative of the atmospheric density with respect to altitude), computed by finite differences with altitude variation. Therefore it is possible to compute the derivatives with respect to position when the considered orbit is highly excentric.

Parameters:
inSphereRadius - The sphere radius.
density - density.
relativeVelocity - relativeVelocity.

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius)
Constructor of this property with default value for C_X.

Parameters:
inSphereRadius - The sphere radius.

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          double dragCoef)
Constructor of this property giving the drag coef.

Parameters:
inSphereRadius - The sphere radius.
dragCoef - The dragCoef.

AeroSphereProperty

public AeroSphereProperty(Parameter inSphereArea,
                          double dragCoef)
                   throws OrekitException
Constructor of this property giving the drag coef without the atmospheric height scale.

Parameters:
inSphereArea - The sphere area
dragCoef - The dragCoef
Throws:
OrekitException - thrown if parameter if unknown

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          Parameter dragCoef)
This constructor shall be used for defining the drag coef using Parameter

Parameters:
inSphereRadius - The sphere radius.
dragCoef - The dragCoef parameter.

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          IParamDiffFunction dragCoefFct)
Constructor of this property defining the drag coef as a ParamDiffFunction.

Parameters:
inSphereRadius - The sphere radius.
dragCoefFct - The dragCoef parameterizable function.
Method Detail

getSphereArea

public double getSphereArea()
Get the sphere area.

Returns:
the sphere area (m2)

getSphereRadius

public double getSphereRadius()
                       throws OrekitException
Get the sphere radius.

Returns:
the sphere radius (m)
Throws:
OrekitException - thrown if radius is undefined (negative area)

getCrossSection

public double getCrossSection(SpacecraftState state,
                              Vector3D relativeVelocity,
                              Frame mainPartFrame,
                              Frame partFrame)
Description copied from class: AeroCrossSectionProperty
Compute the cross section of main shape using the relative velocity in the part (having the aero property) frame as the direction to provider to the CrossSectionProvider.getCrossSection(Vector3D).

Overrides:
getCrossSection in class AeroCrossSectionProperty
Parameters:
state - the current state of the spacecraft
relativeVelocity - the spacecraft velocity relative to the atmosphere in state frame.
mainPartFrame - main frame
partFrame - frame of part owning the property
Returns:
the cross section of the main shape.

getType

public PropertyType getType()
Description copied from interface: IPartProperty
Get the type of the property.

Specified by:
getType in interface IPartProperty
Overrides:
getType in class AeroCrossSectionProperty
Returns:
the type of the property (see PropertyType enumeration)


Copyright © 2017 CNES. All Rights Reserved.