Environment - Overall Architecture
On this page, we give an overview of the top-level software architecture of the environment models in Tudat, primarily the SystemOfBodies
class that defines a set of bodies, the Body
class that defines a single body, and the various classes that define the specific environment models. Since the underlying code is written in C++, in various places we will limit ourselves to the C++ implementation. Wherever possible, we will provide links to the Tudatpy API where the classes/functions that are discussed are also exposed to Python.
Top-level architecture
An overview of the architecture of the Tudat environment is given in the figure below (TODO).
The environment is defined by a single
SystemOfBodies
object.The
SystemOfBodies
contains a list ofBody
objects, each of which represents a single natural or artificial body, and contains all of this body’s properties. In the C++ code, each body is stored as ashared_ptr< Body >
. Every body is assigned a unique name by which it can be retrieved. A body can be extracted using theget()
functionn.Each
Body
object contains a number of environment models (see Available Model Types for a complete list). By default, each of these objects is initialized as anullptr
, and is only assigned when specified during the creation of the body (Creation of system of bodies from settings), or when added after the creation of the body (Addition of properties to a body).
As discussed here, the properties in the environment get updated to the current time and state of the numerical integration at the start of every function evaluation. Only those properties that are relevant for the propagation being performed are updated. Interaction with the environment during the propagation is described in more detail here
Interdependencies of environment models
TODO