#+TITLE: Motivation
#+STARTUP: latexpreview
#+SETUPFILE: ./theme.setup


#+BEGIN_EXPORT html
</td>
<td>
<img src="trexio_logo.png" alt="TREXIO logo"
align="left" width="200" vspace="20" hspace="20" />
</td></tr>
</table>
#+END_EXPORT

Quantum chemistry relies on quantum mechanics to explain and predict
the properties and behaviors of atoms, molecules, and materials.
Although density functional theory (DFT) is one of the most widely
used approaches thanks to its excellent ratio between computational
cost and accuracy, another important tool is wave function theory
(WFT), which describes the behavior of a quantum system in terms of
its wave function.
In order to perform WFT calculations, it is necessary to manipulate a
large number of parameters, such as the expansion coefficients of the
wave function and the matrix elements of the Hamiltonian operator.
These parameters can be numerous and difficult to handle, making it
important to have a robust and efficient method for storing and
accessing them.

Reproducible research remains a challenging topic, despite recent
advances such as the introduction of the FAIR (findable, accessible,
interoperable, reusable) data principles. A key
aspect of reproducibility is software interoperability, which refers
to the ability of different programs to work together and exchange
information, allowing different systems to communicate and exchange
data in order to function as a cohesive whole.
Interoperable software is prevalent nowadays and is a key component of
the Unix philosophy. In Unix shells, the most
straightforward application of software interoperability is made
through the use of the /pipe/ operator, where the output of a
program is the input of another program.
Similarly, shell scripts are created through the composition of
smaller programs, exchanging data through files or pipes.

A major challenge of reproducible research is the unified input/output
(I/O) of data within a particular research domain.  The Unix
philosophy recommends the use of text files because they are
architecture-independent, readable in any language, and can be read as
a stream, which is useful for making programs communicate over a
network.
However, storing data in a text format can result in larger file sizes
and conversion from ASCII to binary format can be computationally
expensive for large data sets.  To address this concern,
domain-specific binary formats have been developed, such as the Joint
Photographic Experts Group (JPEG) format for digital images
and the Moving Picture Experts Group (MPEG) format for videos.
These binary formats are utilized through a standardized application
programming interface (API).

In the field of wave function theory such a standard format and API is
still lacking, and the purpose of the TREXIO library is to fill this gap.
