Main differences between V4.16 and V4.15
Aller à la navigation
Aller à la recherche
PATRIUS V4.16 is a major release adding some new features and correcting some bugs.
New functionalities
- The slew duration computation method in IsisSpinBiasSlewComputer is called in the construction of the class and so the duration is stored as a class variable to avoid recomputing it. A getter has been created to access its value (the method computeDuration is no longer public) ;
- All the information needed to compute the slew duration in IsisSpinBiasSlewComputer needs to be given as input in the constructor. The methods computaAnalytical() and computeNumerical() no longer take input parameters ;
- By default, IsisSpinBiasSlewComputer will throw an error if the maximum number of iterations is reached when computing the slew duration. This behavior can be modified by using the new constructor that takes as input the throwExceptionOnMaxIterations boolean ;
- In GridGravityModel, a getter for the backupModel has been added. Moreover, the setMu method now also updates the mu in the backup model ;
- For the case of PatriusVersionCompatibility.NEW_MODELS, the LOF in the output object of the transformTo(Orbit, LOFType, Boolean) method from OrbitalCovariance and MultiOrbitalCovariance has been modified to be the closest pseudoinertial frame of the input orbit, and not that of the covariance ;
- The toString() method from Vector3D shows now all the available decimal values (same precision as the one considered during an execution) ;
- The interface MultiOrbitalCovarianceProvider has been added to Patrius. Moreover, a basic implementation for OrbitalCovarianceProvider and MultiOrbitalCovarianceProvider has been added as well (BasicOrbitalCovarianceProvider and BasicMultiOrbitalCovarianceProvider) ;
- A new detector BodyPointLocalTimeAngleDetector has been added. This detector allows to compute events based on the local time of a certain point on the surface of a body ;
- A new detector BodyInEclipseDetector has been added. This detector allows to compute eclipse events for a non-point body ;
- 2 new getters in IntervalsMapSearcher that return the CacheEntry for a given date. Related to this update, 2 new getters in IntervalsFonction that return the CacheEntry for a given date ;
- The addField* and AddFieldIfAbsent* methods from ParameterUtils have been modified to no longer return a boolean but a Map or a Set with the original information of the modified parameters ;
- In the Frame class, the methods setReferential(Frame), getFrozenFrame(Frame, AbsoluteDate, String), as well as the referential attribute from the class have been set to deprecated. To create a frozen frame, use the new getFrozenFrame(Frame, String) method. An issue exists in the previous implementation when the center of the referencial frame moves with respect to the frame. In this case, there exists a translational velocity between the two that should not exist for the frozen frame definition ;
- A new detector LineMaskingDetector has been added. This detector allows the computation of the events relative to masking of a given line of sight by a list of masking bodies. The line of sight is computed as the line connecting the emitter position at the date of emission and the receiver position at the date of reception.
Bugs fixes
- Corrected a possible nullPointerException when using the transformTo methods from BSPEphemerisLoader if the Boolean computeSpinDerivatives was true ;
- Corrected a thread-safety issue in GCRFProvider ;
- Corrected numerical precision issue during the computation of the LLHCoordinates of an AbstractBodyPoint. The numerical regressions observed after the creation of the BodyPoint interface (Patius 4.12) should disappear and old references should be recovered ;
- Corrected a number overflow issue in Precision.equals methods that returned a boolean true when comparing -2 and 2 ;
- When computing the acceleration of a gravity model using the Balmino algorithm, the first “l” term considered is number 1 and not 2 as it was before ;
- Fixed issue where the ephemeris for unknown bodies were being erased when read in BSPEphemerisLoader. The Spice ID is now used instead of the Spice name when reading the BSP format ;
- Fixed issue causing methods Ellipsoid.closestPointTo(Vector3D) and Ellipsoid.closestPointTo(Line) to fail in some cases ;
- Fixed issue causing errors when shifting hyperbolic orbits.