public final class RediffusedRadiationPressure extends JacobiansParameterizable implements ForceModel, GradientModel
Class that represents a rediffused radiative force.
The implementation of this class enables the computation of partial derivatives with respect to K0 albedo global coefficient, K0 infrared global coefficient, absorption, specular reflection or diffusion reflection coefficients.
Constructor and Description |
---|
RediffusedRadiationPressure(CelestialPoint inSun,
CelestialBodyFrame inBodyFrame,
int inCorona,
int inMeridian,
IEmissivityModel inEmissivityModel,
RediffusedRadiationSensitive inModel)
Constructor.
|
RediffusedRadiationPressure(CelestialPoint inSun,
CelestialBodyFrame inBodyFrame,
int inCorona,
int inMeridian,
IEmissivityModel inEmissivityModel,
RediffusedRadiationSensitive inModel,
boolean computePD)
Constructor.
|
RediffusedRadiationPressure(RediffusedRadiationPressure 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.
|
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.
|
Assembly |
getAssembly()
Getter for the assembly used at construction.
|
EventDetector[] |
getEventsDetectors()
Get the discrete events related to the model.
|
CelestialBodyFrame |
getInBodyFrame()
Getter for the boby frame used at construction.
|
int |
getInCorona()
Getter for the number of corona used at construction.
|
IEmissivityModel |
getInEmissivityModel()
Getter for the emissivity model used at construction.
|
int |
getInMeridian()
Getter for the number of meridian used at construction.
|
CelestialPoint |
getInSun()
Getter for the coordinate of sun used at construction.
|
double |
getK0Albedo()
Getter for the albedo global multiplicative factor used at construction.
|
double |
getK0Ir()
Getter for the infrared global multiplicative factor used at construction.
|
boolean |
isAlbedoComputed()
Getter for the albedo indicator used at construction.
|
boolean |
isIRComputed()
Getter for the infrared indicator used at construction.
|
addJacobiansParameter, addJacobiansParameter, addJacobiansParameter, supportsJacobianParameter
addAllParameters, addAllParameters, addParameter, getParameters, supportsParameter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameters, supportsParameter
public RediffusedRadiationPressure(CelestialPoint inSun, CelestialBodyFrame inBodyFrame, int inCorona, int inMeridian, IEmissivityModel inEmissivityModel, RediffusedRadiationSensitive inModel)
inSun
- coordinate of suninBodyFrame
- boby frameinCorona
- number of coronainMeridian
- number of meridianinEmissivityModel
- emissivity modelinModel
- redistributed radiative modelpublic RediffusedRadiationPressure(CelestialPoint inSun, CelestialBodyFrame inBodyFrame, int inCorona, int inMeridian, IEmissivityModel inEmissivityModel, RediffusedRadiationSensitive inModel, boolean computePD)
inSun
- coordinate of suninBodyFrame
- boby frameinCorona
- number of coronainMeridian
- number of meridianinEmissivityModel
- emissivity modelinModel
- redistributed radiative modelcomputePD
- true if partial derivatives wrt position have to be computedpublic RediffusedRadiationPressure(RediffusedRadiationPressure otherInstance, Assembly assembly)
otherInstance
- the other instanceassembly
- the new assemblypublic 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 Vector3D computeAcceleration(SpacecraftState s) throws PatriusException
computeAcceleration
in interface ForceModel
s
- current state information: date, kinematics, attitudeSpacecraftState frame
PatriusException
- if some specific 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 CelestialPoint getInSun()
public CelestialBodyFrame getInBodyFrame()
public int getInCorona()
public int getInMeridian()
public IEmissivityModel getInEmissivityModel()
public boolean isAlbedoComputed()
public boolean isIRComputed()
public double getK0Albedo()
public double getK0Ir()
public Assembly getAssembly()
public void checkData(AbsoluteDate start, AbsoluteDate end)
checkData
in interface ForceModel
start
- range start dateend
- range end dateCopyright © 2023 CNES. All rights reserved.