.. _tudatpy_submodules:
==================
TudatPy Submodules
==================
TudatPy has its functionality divided into a number of submodules. A brief description of each submodule, as well as a detailed listing of all functions/class in each submodule, can be found on our `API reference `_. On this page, we give a brief top-level overview of which type of functionality is in which (group of) submodules, and why.
Top-level submodules
====================
The top-level submodules of tudatpy are:
* :doc:`tudatpy.dynamics `: This submodule contains the interfaces for one of core application of Tudatpy: numerical state propagation. The functionality in this submodule consists of a large number of interconnected elements that work together as a whole. The usability of separate functions/classes in this submodule *outside* of the Tudatpy framework can be limited, and this functionality is typically only used within a Tudatpy numerical simulation. Its further subdivision into submodules is discussed in more detail below.
* :doc:`tudatpy.estimation `: This submodule contains the interfaces for the other core application of Tudatpy: numerical state and parameter estimation. As with the ``dynamics`` module, the functionality in this submodule consists of a large number of interconnected elements that work together as a whole. Moreover, the ``estimation`` submodule relies heavily on the ``estimation`` submodule.
* :doc:`tudatpy.astro `: This submodule contains various (semi-)standalone functions for astrodynamics applications, which can be used very well outside of a Tudat application/propagation. Submodules contain lists of frame conversions, element conversion, elementary orbit calculations, *etc.*.
* :doc:`tudatpy.trajectory_design `: This submodule contains functionality for the preliminary design of a full (transfer) orbit, using for instance a Multiple Gravity Assist (MGA) or a low-thrust system. It relies on functionality in the ``astro`` submodule. It is largely independent of the ``dynamics`` and ``estimation`` submodule, but does contain interface functions to allow the preliminary design to be used as an initial guess for a full numerical propagation.
* :doc:`tudatpy.math