# Welcome to tofu’s documentation!¶

**tofu** stands for **To**mography for **Fu**sion, it is an IMAS-compatible
open-source machine-independent python library
with non-open source plugins containing all machine-dependent routines.

It aims at providing the **fusion** and **plasma** community with an object-
oriented, transparent and documented tool for designing
**tomography diagnostics**, computing **synthetic signal** (direct problem)
as well as **tomographic inversions** (inverse problem). It gives access to a
full 3D description of the diagnostic geometry, thus reducing the impact of
geometrical approximations on the direct and, most importantly, on the inverse
problem.

**tofu** is relevant for all diagnostics integrating, in a finitie field of
view or along a set of lines of sight, a quantity (scalar or vector) for which
the plasma can be considered transparent (e.g.: light in the visible, UV, soft
and hard X-ray ranges, or electron density for interferometers).

**tofu** is **command-line oriented**, for maximum flexibility and
scriptability. The absence of a GUI is compensated by built-in one-liners for
interactive plots.

**tofu** is hosted on github.

## Contents¶

**Tutorials and how to’s:**

- How to compute integrated signal from 2D or 3D synthetic emissivity
Visit the tutorial for getting started: load an already-existing diagnostic geometry in a synthetic diagnostic approach to solve the direct problem and compute the line Of Sight and / or Volume of Sight integrated signals from a simulated emissivity field that you provide as an input.

- How to compute tomographic inversions (to do)
Use existing diagnostic geometry and signals to solve the inverse problem and compute tomographic inversions using a choice of discretization basis functions and regularisation functionals.

How to compute a integrated solid angle map in a poloidal cross section, for a set of spherical particles (see the solid angle tutorial).

Advanced tutorials for developpers: Tutorials For Developers

**Code documentation:**

Note

Main **tofu** classes and methods have docstrings so you can
access contextual help with the usual python syntax from a ipython console
(print <method>.__doc__, or <method>?).