Catégorie:User Manual 4.14

De Wiki
Aller à : navigation, rechercher

Introduction

This document is the main user manual of the PATRIUS library, which provides Java classes in a wide range of themes related with space flight dynamics.

The library has several purposes :

  • to be a basis for the next generation FDS development
  • to be used in mission analysis and internal studies

Its classes contain the main basis algorithms and objects representation that shall be used in further developments.

For each theme, a specific manual is available.

Applicable and Reference Documents

Applicable Documents

[A1] CDCF- Fonctions de Base du Patrimoine de Dynamique du Vol, V1.2, SIRIUS-CF-DV-0049-CN, 2011.
[A2] Dossier de réutilisation Orekit et Commons Math, V1.0, SIRIUS-DLR-DV-0080-CN, 2010.

Glossary

SDD Software Design Document
SRS Software Requirements Specification
SUM Software User Manual
SValP Software Validation Plan
SVerP Software Verification Plan
SVS Software Validation Specification

Conventions

All the user manuals contain some java code sample as use examples.

These samples are recognizable by the following colors convention :

Vector3D originCone = new Vector3D(1.0, 1.0, 1.0);
Vector3D direction = new Vector3D(2.0, 0.0, 0.0);
double angle = FastMath.PI / 4.0;
double height = 5.0;
RightCircularCone cone = new RightCircularCone(originCone, axis, angle, height);

PATRIUS uses the International System of Units (SI units) (m, kg, s, N, etc.). It is used for all PATRIUS input/output as well as internally for any computation.

Overview

This document is an aid for developers coding software using the PATRIUS library. The library provides Java classes to represent basis objects and contains low level algorithms to be used in the new FDS and mission analysis softwares. The user guide describes and explains the use of every class and functionality available.

Each theme of the library is the object of a specific document. These themes are :

  • Math basis
  • Flight dynamics basis
  • Attitude
  • Spacecraft
  • Orbits
  • Mission
  • Tools
  • Support

PATRIUS is under Apache Licence 2.0.

Quick Start

Here is a description of each theme of the PATRIUS library and an overview of its contents. See each associated document for the details.

Mathematics

This theme is not directly linked to flight dynamics. It include. It provides the mathematical tools for the rest of the library.

Its contains classes for :

  • function analysis (interpolations, polynomials, ...)
  • numerical intergrators
  • geometry (planes, lines, shapes, rotations, 3d vectors and matrixes...)
  • low level functions and constants (sine, cosine, PI, ...)
  • linear algebra (real matrix and vectors, decompositions and other matrix computations, ...

The Mathematics User Manual can be found here.

Flight Dynamics

This theme contains the basis of orbital mechanics :

  • position-velocity and orbital parameters conversions
  • frames and frames transforms
  • dates and time scales
  • time intervals

The Flight Dynamics User Manual can be found here.

Spacecraft

This theme contains everything useful to describe a spacecraft and its use :

  • general architecture (describing the spacecraft by one or several parts)
  • geometry
  • mass caracteristics
  • equipments (GS, antenna, instruments and associated computations...)
  • caracteristics used in forces computations (radiative, drag...)
  • torques computations

The Spacecraft User Manual can be found here.

Attitude

This theme contains the tools to predict the spacecraft attitude:

  • attitude laws
  • cinematics and guidance

The Attitude User Manual can be found here.

Orbits

This theme contains everything useful to propagate an orbit in time and perform orbits restitutions :

  • numerical and analytical propagators
  • physical models (for forces)
  • Measures and filtering tools

The Orbits User Manual can be found here.

Mission

This theme regroups the events computation, projections and use tools.

The Mission User Manual can be found here.

Tools

This theme comprises some external tools such as the ephemeris comparator.

The Tools User Manual can be found here.

Patrius Configuration

As of PATRIUS version 4.14, some propagation models and optimization algorithms are backward compatible to the PATRIUS version 4.12. Without any action done by the user, the backward compatibility is activated by default. More details about this important option are reported here.

Support

This theme is cross-functional. It contains for example the explaination of the data manager use and action.

The Support User Manual can be found here.

Thread-Safety

For all content belonging to the PATRIUS library, the thread safety of every class will be evaluated, and the results listed here.

The known levels of thread safety for a class are:

  • immutable: the contents of an instance never change after creation, therefore the class is thread-safe.
  • unconditionally thread-safe / thread-safe: the whole class is thread-safe by design.
  • conditionally thread-safe: the class is thread-safe if certain conditions (specific to the class) are met.
  • not thread-safe: the class is not thread-safe. If the class is used in a threaded environment, all accesses to the class must be synchronized.
  • thread-hostile: the class is known to break threads, even when no instance is shared between threads!

About the comments

Some recurring comments are explained here :

  • "Exposed mutable attributes.": the class contains attributes that either "come" from outside the class, or whose reference can be obtained from the class. Unless the attributes are thread-safe or accessed in a thread-safe manner somehow, this breaks the thread safety of the class.
  • "documented as immutable, but technically untrue": Patrius document classes that are non-final as immutable- but the (quite strict) usual definition of immutability mandates that an immutable class must be final, because a non-final class can be subclassed and this subclass can break immutability "silently" (an user could access this subclass through the superclass reference and believe it is immutable due to the superclasses' documentation.) Therefore: when a class is documented as immutable, it means only the documented implementation is immutable. For safety, we chose to document these classes here as "unconditionally thread-safe", a statement that is not assumed to be preserved by subclassing.

Thread safety

Details concerning the thread safety for each of the PATRIUS classes can be found here.

Note : Frames and thread-safety

It was determined that several Frame implementations were thread-hostile.

The current evaluation of these changes from a thread-safety point of view leads us to state the following :

  • The IERS frames (GCRF, CIRF, TIRF and ITRF) are thread-safe.

Known Issues

None.

Sous-catégories

Cette catégorie comprend 8 sous-catégories, dont les 8 ci-dessous.