public class SolarRadiationPressureCircular extends JacobiansParameterizable implements ForceModel, GradientModel
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 |
---|
SolarRadiationPressureCircular(double dRef,
double pRef,
PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn)
Complete constructor.
|
SolarRadiationPressureCircular(double dRef,
double pRef,
PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn,
boolean computePD)
Complete constructor.
|
SolarRadiationPressureCircular(Parameter refFlux,
PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn)
Complete constructor.
|
SolarRadiationPressureCircular(Parameter refFlux,
PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn,
boolean computePD)
Complete constructor.
|
SolarRadiationPressureCircular(PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn)
Simple constructor with default reference values.
|
SolarRadiationPressureCircular(PVCoordinatesProvider sunIn,
double equatorialRadiusIn,
RadiationSensitive spacecraftIn,
boolean computePD)
Simple constructor with default reference values.
|
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.
|
void |
checkData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide all the required data to perform model call on
provided range [start; end].
|
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.
|
double |
getEquatorialRadius()
Get the equatorial radius
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
double |
getkRefValue()
Get the parameter value representing the reference flux normalized for a 1m distance (N).
|
double |
getLightningRatio(Vector3D position,
Frame frame,
AbsoluteDate date)
Get the lightning ratio ([0-1]).
|
PVCoordinatesProvider |
getSun()
Get sun model
|
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 SolarRadiationPressureCircular(PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn)
When this constructor is used, the reference values are:
sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationpublic SolarRadiationPressureCircular(PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn, boolean computePD)
When this constructor is used, the reference values are:
sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic SolarRadiationPressureCircular(double dRef, double pRef, PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn)
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)sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationpublic SolarRadiationPressureCircular(double dRef, double pRef, PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn, 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)sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic SolarRadiationPressureCircular(Parameter refFlux, PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn)
refFlux
- parameter representing the reference flux normalized for a 1m distance (N)sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationpublic SolarRadiationPressureCircular(Parameter refFlux, PVCoordinatesProvider sunIn, double equatorialRadiusIn, RadiationSensitive spacecraftIn, boolean computePD)
refFlux
- parameter representing the reference flux normalized for a 1m distance (N)sunIn
- Sun modelequatorialRadiusIn
- spherical shape model (for umbra/penumbra computation)spacecraftIn
- the object physical and geometrical informationcomputePD
- true if partial derivatives wrt position have to be computedpublic 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 double getLightningRatio(Vector3D position, Frame frame, AbsoluteDate date) throws PatriusException
position
- 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 double getkRefValue()
public PVCoordinatesProvider getSun()
public double getEquatorialRadius()
public void checkData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkData
in interface ForceModel
start
- range start dateend
- range end datePatriusException
- thrown if some data is missingCopyright © 2020 CNES. All rights reserved.