public class SolarRadiationPressureEllipsoid extends JacobiansParameterizable implements ForceModel, GradientModel
spheroids
. Based on the
Orekit implementation of SolarRadiationPressureCircular
for a spherical Earth.
The implementation of this class enables the computation of partial derivatives with respect to absorption, specular reflection or diffusion reflection coefficients.
Modifier and Type | Field and Description |
---|---|
static String |
REFERENCE_FLUX
Normalized reference flux.
|
Constructor and Description |
---|
SolarRadiationPressureEllipsoid(double dRef,
double pRef,
PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
Assembly assembly,
double multiplicativeFactorIn)
Creates a new instance.
|
SolarRadiationPressureEllipsoid(double dRef,
double pRef,
PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel)
Complete constructor.
|
SolarRadiationPressureEllipsoid(double dRef,
double pRef,
PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel,
boolean computePD)
Complete constructor.
|
SolarRadiationPressureEllipsoid(Parameter referenceFlux,
PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel)
Complete constructor using
Parameter . |
SolarRadiationPressureEllipsoid(Parameter referenceFlux,
PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel,
boolean computePD)
Complete constructor using
Parameter . |
SolarRadiationPressureEllipsoid(PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel)
Simple constructor with default reference values.
|
SolarRadiationPressureEllipsoid(PVCoordinatesProvider sunBody,
GeometricBodyShape shape,
RadiationSensitive spacecraftModel,
boolean computePD)
Simple constructor with default reference values.
|
SolarRadiationPressureEllipsoid(SolarRadiationPressureEllipsoid otherInstance,
Assembly assembly)
Creates a new instance from the data in another one but with a different assembly.
|
Modifier and Type | Method and Description |
---|---|
void |
addContribution(SpacecraftState s,
TimeDerivativesEquations adder)
Compute the contribution of the force model to the perturbing
acceleration.
|
void |
addDAccDParam(SpacecraftState s,
Parameter param,
double[] dAccdParam)
Compute acceleration derivatives with respect to additional parameters.
|
void |
addDAccDState(SpacecraftState s,
double[][] dAccdPos,
double[][] dAccdVel)
Compute acceleration derivatives with respect to state parameters.
|
Vector3D |
computeAcceleration(SpacecraftState s)
Compute the acceleration due to the force.
|
boolean |
computeGradientPosition()
This method returns true if the acceleration partial derivatives with
respect to position have to be computed.
|
boolean |
computeGradientVelocity()
This method returns true if the acceleration partial derivatives with
respect to velocity have to be computed.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
static double |
getLightningRatio(PVCoordinatesProvider sun,
Vector3D satSunVector,
GeometricBodyShape earthModel,
Vector3D position,
Frame frame,
AbsoluteDate date)
Get the lightning ratio ([0-1]).
|
double |
getMultiplicativeFactor() |
Parameter |
getReferenceFlux()
Get the normalized reference flux parameter
|
GeometricBodyShape |
getShape()
Getter for the Earth model used at construction.
|
Vector3D |
getSolarFlux(SpacecraftState s)
Compute solar flux.
|
PVCoordinatesProvider |
getSunBody()
Getter for the Sun model used at construction.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, supportsParameter
public static final String REFERENCE_FLUX
public SolarRadiationPressureEllipsoid(PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel)
When this constructor is used, the reference values are:
sunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationpublic SolarRadiationPressureEllipsoid(PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel, boolean computePD)
When this constructor is used, the reference values are:
sunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic SolarRadiationPressureEllipsoid(double dRef, double pRef, PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel)
Note that reference solar radiation pressure pRef
in N/m2 is linked to solar flux SF in
W/m2 using formula pRef = SF/c where c is the speed of light (299792458 m/s). So at 1UA a 1367
W/m2 solar flux is a 4.56 10-6 N/m2 solar radiation pressure.
dRef
- reference distance for the solar radiation pressure (m)pRef
- reference solar radiation pressure at dRef (N/m2)sunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationpublic SolarRadiationPressureEllipsoid(double dRef, double pRef, PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel, boolean computePD)
Note that reference solar radiation pressure pRef
in N/m2 is linked to solar flux SF in
W/m2 using formula pRef = SF/c where c is the speed of light (299792458 m/s). So at 1UA a 1367
W/m2 solar flux is a 4.56 10-6 N/m2 solar radiation pressure.
dRef
- reference distance for the solar radiation pressure (m)pRef
- reference solar radiation pressure at dRef (N/m2)sunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic SolarRadiationPressureEllipsoid(Parameter referenceFlux, PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel)
Parameter
.referenceFlux
- the parameter representing the normalized reference fluxsunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationpublic SolarRadiationPressureEllipsoid(Parameter referenceFlux, PVCoordinatesProvider sunBody, GeometricBodyShape shape, RadiationSensitive spacecraftModel, boolean computePD)
Parameter
.referenceFlux
- the parameter representing the normalized reference fluxsunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)spacecraftModel
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic SolarRadiationPressureEllipsoid(double dRef, double pRef, PVCoordinatesProvider sunBody, GeometricBodyShape shape, Assembly assembly, double multiplicativeFactorIn)
dRef
- reference distance for the solar radiation pressure (m)pRef
- reference solar radiation pressure at dRef (N/m2)sunBody
- Sun modelshape
- Earth model (for umbra/penumbra computation)assembly
- assembly with aerodynamic propertiesmultiplicativeFactorIn
- multiplicative factor.public SolarRadiationPressureEllipsoid(SolarRadiationPressureEllipsoid otherInstance, Assembly assembly)
otherInstance
- the other instanceassembly
- the new assemblypublic Vector3D getSolarFlux(SpacecraftState s) throws PatriusException
s
- spacecraft statePatriusException
- thrown if Sun position cannot be retrievedpublic Vector3D computeAcceleration(SpacecraftState s) throws PatriusException
computeAcceleration
in interface ForceModel
s
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific error occurspublic void addContribution(SpacecraftState s, TimeDerivativesEquations adder) throws PatriusException
addContribution
in interface ForceModel
s
- current state information: date, kinematics, attitudeadder
- object where the contribution should be addedPatriusException
- if some specific error occurspublic static double getLightningRatio(PVCoordinatesProvider sun, Vector3D satSunVector, GeometricBodyShape earthModel, Vector3D position, Frame frame, AbsoluteDate date) throws PatriusException
sun
- PV provider for the sunsatSunVector
- Satellite-Sun vectorearthModel
- earth body shapeposition
- the satellite's position in the selected frame.frame
- in which is defined the positiondate
- the datePatriusException
- if an error occurspublic EventDetector[] getEventsDetectors()
getEventsDetectors
in interface ForceModel
public void addDAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel) throws PatriusException
addDAccDState
in interface IJacobiansParameterizable
s
- spacecraft statedAccdPos
- acceleration derivatives with respect to positiondAccdVel
- acceleration derivatives with respect to velocityPatriusException
- if derivatives cannot be computedpublic void addDAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam) throws PatriusException
addDAccDParam
in interface IJacobiansParameterizable
s
- spacecraft stateparam
- the parameter with respect to which derivatives are requireddAccdParam
- acceleration derivatives with respect to specified parametersPatriusException
- if derivatives cannot be computedpublic boolean computeGradientPosition()
computeGradientPosition
in interface GradientModel
public boolean computeGradientVelocity()
computeGradientVelocity
in interface GradientModel
public PVCoordinatesProvider getSunBody()
public GeometricBodyShape getShape()
public double getMultiplicativeFactor()
public Parameter getReferenceFlux()
Copyright © 2019 CNES. All rights reserved.