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.AeroSphereProperty
All Implemented Interfaces:
IPartProperty, Serializable, IParameterizable

public final class AeroSphereProperty
extends Parameterizable
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 12700 2015-03-24 13:47:44Z bignon $
Author:
cardosop
See Also:
Serialized Form
Concurrency :
immutable

Field Summary
static String C_X
          Default drag force coefficient parameter name.
static double DEFAULT_C_X
          Default normal force coefficient value.
static double STANDARD_SCALE_HEIGHT
          Atmospheric height scale factor for the exponential model.
 
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 without the atmospheric height scale.
AeroSphereProperty(double inSphereRadius, double inAtmScaleHeight, double dragCoef)
          Constructor of this property giving the drag coef.
AeroSphereProperty(double inSphereRadius, double inAtmScaleHeight, double density, Vector3D relativeVelocity)
          Constructor of this property.
AeroSphereProperty(double inSphereRadius, double inAtmScaleHeight, IParamDiffFunction dragCoefFct)
          This constructor shall be used for defining the drag coef as a ParamDiffFucntion
AeroSphereProperty(double inSphereRadius, double inAtmScaleHeight, Parameter dragCoef)
          This constructor shall be used for defining the drag coef using Parameter
AeroSphereProperty(double inSphereRadius, double density, Vector3D relativeVelocity)
          Constructor of this property without the atmospheric height scale.
AeroSphereProperty(double inSphereRadius, IParamDiffFunction dragCoefFct)
          Constructor of this property defining the drag coef as a ParamDiffFucntion without the atmospheric height scale.
AeroSphereProperty(double inSphereRadius, Parameter dragCoef)
          Constructor of this propertydefining the drag coef using Parameter without the atmospheric height scale.
AeroSphereProperty(Parameter inSphereArea, double dragCoef)
          Constructor of this property giving the drag coef without the atmospheric height scale.
 
Method Summary
 double getAtmScaleHeight()
          Get the atmospheric height scale factor.
 IParamDiffFunction getDragForce()
          Get the drag force coefficient parametrizable function.
 double getDragForceDerivativeValue(Parameter parameter, SpacecraftState s)
          Get the drag force coefficient derivative value with respect to the given parameter.
 double getSphereArea()
          Get the sphere area.
 double getSphereRadius()
          Get the sphere radius.
 PropertyType getType()
          Get the type of the property.
 
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
 

Field Detail

STANDARD_SCALE_HEIGHT

public static final double STANDARD_SCALE_HEIGHT
Atmospheric height scale factor for the exponential model.
This value can be used when the partial derivatives of the drag force with respect to position must be computed (the default value of the derivatives is set to zero).


DEFAULT_C_X

public static final double DEFAULT_C_X
Default normal force coefficient value.

See Also:
Constant Field Values

C_X

public static final String C_X
Default drag force coefficient parameter name.

See Also:
Constant Field Values
Constructor Detail

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          double inAtmScaleHeight,
                          double density,
                          Vector3D relativeVelocity)
Constructor of this property. This constructor shall 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). The derivatives are computed using an approximated formula that does not require the value of dRho / dh (the derivative of the atmospheric density with respect to altitude), but that needs the atmospheric height scale factor value.
The atmospheric scale height beta depends on the altitude, while in the Patrius implementation beta is a constant: for this reason, the result of the implemented equations for partial derivatives with respect to position will be more precise when the orbit is circular. Therefore it is suggested not to compute the derivatives with respect to position when the considered orbit is highly excentric.

Parameters:
inSphereRadius - The sphere radius.
inAtmScaleHeight - the atmospheric height scale factor taken from the exponential model, to use when computing the partial derivatives of the drag force with respect to spacecraft position; this parameter can be set to STANDARD_SCALE_HEIGHT.
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 density,
                          Vector3D relativeVelocity)
Constructor of this property without the atmospheric height scale.

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

AeroSphereProperty

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

Parameters:
inSphereRadius - The sphere radius.
inAtmScaleHeight - the atmospheric height scale factor taken from the exponential model, to use when computing the partial derivatives of the drag force with respect to spacecraft position; this parameter can be set to STANDARD_SCALE_HEIGHT.
dragCoef - The dragCoef.

AeroSphereProperty

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

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,
                          double inAtmScaleHeight,
                          Parameter dragCoef)
This constructor shall be used for defining the drag coef using Parameter

Parameters:
inSphereRadius - The sphere radius.
inAtmScaleHeight - the atmospheric height scale factor taken from the exponential model, to use when computing the partial derivatives of the drag force with respect to spacecraft position; this parameter can be set to STANDARD_SCALE_HEIGHT.
dragCoef - The dragCoef parameter.

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          Parameter dragCoef)
Constructor of this propertydefining the drag coef using Parameter without the atmospheric height scale.

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

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          double inAtmScaleHeight,
                          IParamDiffFunction dragCoefFct)
This constructor shall be used for defining the drag coef as a ParamDiffFucntion

Parameters:
inSphereRadius - The sphere radius.
inAtmScaleHeight - the atmospheric height scale factor taken from the exponential model, to use when computing the partial derivatives of the drag force with respect to spacecraft position; this parameter can be set to STANDARD_SCALE_HEIGHT.
dragCoefFct - The dragCoef parameterizable fucntion.

AeroSphereProperty

public AeroSphereProperty(double inSphereRadius,
                          IParamDiffFunction dragCoefFct)
Constructor of this property defining the drag coef as a ParamDiffFucntion without the atmospheric height scale.

Parameters:
inSphereRadius - The sphere radius.
dragCoefFct - The dragCoef parameterizable fucntion.
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)

getAtmScaleHeight

public double getAtmScaleHeight()
Get the atmospheric height scale factor.

Returns:
the atmospheric height scale factor

getType

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

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

getDragForceDerivativeValue

public double getDragForceDerivativeValue(Parameter parameter,
                                          SpacecraftState s)
Get the drag force coefficient derivative value with respect to the given parameter.

Parameters:
parameter - the parameter
s - the current state
Returns:
the drag force coefficient derivative value

getDragForce

public IParamDiffFunction getDragForce()
Get the drag force coefficient parametrizable function.

Returns:
force coefficient parametrizable function


Copyright © 2016 CNES. All Rights Reserved.