fr.cnes.sirius.patrius.assembly.models
Class DirectRadiativeModel

java.lang.Object
  extended by org.orekit.parameter.Parameterizable
      extended by fr.cnes.sirius.patrius.assembly.models.DirectRadiativeModel
All Implemented Interfaces:
Serializable, RadiationSensitive, IParameterizable, JacobianParametersProvider

public final class DirectRadiativeModel
extends Parameterizable
implements RadiationSensitive

Class that represents a radiative model, based on the vehicle.

Since:
1.1
Version:
$Id: DirectRadiativeModel.java 17587 2017-05-10 13:31:11Z bignon $
Author:
mercadierg
See Also:
Serialized Form
Concurrency :
not thread-safe
Concurrency comment :
The use of a frame (Assembly attribute) linked to the tree of frames in each of the parts makes this class not thread-safe.

Field Summary
static String K0_COEFFICIENT
          Parameter name for K0 coefficient.
 
Constructor Summary
DirectRadiativeModel(Assembly inAssembly)
          Radiative model (the acceleration is computed from all the sub parts of the vehicle).
DirectRadiativeModel(Assembly inAssembly, double inK0Albedo)
          Radiative model (the acceleration is computed from all the sub parts of the vehicle).
DirectRadiativeModel(Assembly inAssembly, Parameter inK0Albedo)
          Radiative model (the acceleration is computed from all the sub parts of the vehicle).
 
Method Summary
 void addDSRPAccDParam(SpacecraftState s, Parameter param, double[] dAccdParam, Vector3D satSunVector)
          Compute acceleration derivatives with respect to additional parameters.
 void addDSRPAccDState(SpacecraftState s, double[][] dAccdPos, double[][] dAccdVel, Vector3D satSunVector)
          Compute acceleration derivatives with respect to state parameters.
protected static Vector3D forceOnFacet(SpacecraftState state, IPart part, Vector3D flux)
          Method to compute the force for a plane model.
protected static Vector3D forceOnSphere(SpacecraftState state, IPart part, Vector3D flux, Frame mainPartFrame)
          Method to compute the force for a spherical model.
 ArrayList<Parameter> getJacobianParameters()
          Get the list of all jacobian parameters supported.
 Vector3D radiationPressureAcceleration(SpacecraftState state, Vector3D flux)
          Method to compute the radiation pressure acceleration, based on the assembly.
 
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

K0_COEFFICIENT

public static final String K0_COEFFICIENT
Parameter name for K0 coefficient.

See Also:
Constant Field Values
Constructor Detail

DirectRadiativeModel

public DirectRadiativeModel(Assembly inAssembly)
Radiative model (the acceleration is computed from all the sub parts of the vehicle).

Parameters:
inAssembly - The considered vehicle.

DirectRadiativeModel

public DirectRadiativeModel(Assembly inAssembly,
                            double inK0Albedo)
Radiative model (the acceleration is computed from all the sub parts of the vehicle).

Parameters:
inAssembly - The considered vehicle.
inK0Albedo - albedo global multiplicative factor

DirectRadiativeModel

public DirectRadiativeModel(Assembly inAssembly,
                            Parameter inK0Albedo)
Radiative model (the acceleration is computed from all the sub parts of the vehicle).

Parameters:
inAssembly - The considered vehicle.
inK0Albedo - albedo global multiplicative factor
Method Detail

radiationPressureAcceleration

public Vector3D radiationPressureAcceleration(SpacecraftState state,
                                              Vector3D flux)
                                       throws OrekitException
Method to compute the radiation pressure acceleration, based on the assembly.

Specified by:
radiationPressureAcceleration in interface RadiationSensitive
Parameters:
state - the current state of the spacecraft.
flux - the incoming flux.
Returns:
the acceleration applied on the assembly.
Throws:
OrekitException - when an error occurs.

addDSRPAccDState

public void addDSRPAccDState(SpacecraftState s,
                             double[][] dAccdPos,
                             double[][] dAccdVel,
                             Vector3D satSunVector)
                      throws OrekitException
Compute acceleration derivatives with respect to state parameters.

Specified by:
addDSRPAccDState in interface RadiationSensitive
Parameters:
s - spacecraft state
dAccdPos - acceleration derivatives with respect to position parameters
dAccdVel - acceleration derivatives with respect to velocity parameters
satSunVector - satellite to sun vector, expressed in the spacecraft frame
Throws:
OrekitException - if derivatives cannot be computed

addDSRPAccDParam

public void addDSRPAccDParam(SpacecraftState s,
                             Parameter param,
                             double[] dAccdParam,
                             Vector3D satSunVector)
                      throws OrekitException
Compute acceleration derivatives with respect to additional parameters.

Specified by:
addDSRPAccDParam in interface RadiationSensitive
Parameters:
s - spacecraft state
param - the parameter with respect to which derivatives are required
dAccdParam - acceleration derivatives with respect to additional parameters
satSunVector - satellite to sun vector, expressed in the spacecraft frame
Throws:
OrekitException - if derivatives cannot be computed

forceOnSphere

protected static Vector3D forceOnSphere(SpacecraftState state,
                                        IPart part,
                                        Vector3D flux,
                                        Frame mainPartFrame)
                                 throws OrekitException
Method to compute the force for a spherical model.

Parameters:
state - the current state of the spacecraft.
part - the current part of the assembly.
flux - the incoming flux.
mainPartFrame - mainPartFrame
Returns:
the force applied on the part (cylinder, parallelepiped, sphere).
Throws:
OrekitException

forceOnFacet

protected static Vector3D forceOnFacet(SpacecraftState state,
                                       IPart part,
                                       Vector3D flux)
                                throws OrekitException
Method to compute the force for a plane model.

Parameters:
state - the current state of the spacecraft.
part - the current part of the assembly.
flux - the incoming flux.
Returns:
the force applied on the plane.
Throws:
OrekitException - orekit frame exception

getJacobianParameters

public ArrayList<Parameter> getJacobianParameters()
Get the list of all jacobian parameters supported.

Specified by:
getJacobianParameters in interface JacobianParametersProvider
Returns:
the list of additional parameters for which the jacobians can be computed.


Copyright © 2017 CNES. All Rights Reserved.