
.. _using-index:

###############################
  The YACS User Guide 
###############################


The YACS module can be used to build and execute calculation schemes.  A calculation scheme is a more or less complex 
assembly of calculation components (SALOME components or calculation codes).  Therefore, a calculation scheme provides 
a means of defining a chain or coupling of calculation codes (see :ref:`principes`).

.. image:: images/ihm.png
   :align: center

.. centered::
   YACS GUI

A calculation scheme can be built either using a graphic tool (see :ref:`gui`), 
or by editing an XML file directly (see :ref:`schemaxml`), or by using 
an application programming interface (API) in Python (see :ref:`schemapy`).
In this phase, chaining of components is defined with the associated dataflows.

The calculation scheme can be executed from the graphic tool (see :ref:`execution`), but also in console 
mode (see :ref:`execxml`), or by using the Python interface (see :ref:`execpy`).

Executing a calculation scheme includes:

  - running and distributing components
  - managing data distribution
  - monitoring execution
  - stopping / suspending / restarting the execution

A calculation scheme can also be executed using a batch system such as LSF or PBS (see :ref:`batch`).

Finally, it is essential that calculation codes should be transformed into SALOME components, so that they can 
be coupled with YACS. In general, this operation requires good knowledge of SALOME principles (see :ref:`integration`).

For C++ calculation codes, the :ref:`hxx2salome` tool automates this operation to a large extent.

For Fortran, C and Python calculation codes that use CALCIUM type coupling, the :ref:`yacsgen` tool automatically 
generates the necessary SALOME embedment starting from a brief description of the selected coupling interface.


.. toctree::
   :maxdepth: 2

   rappels
   principes
   gui
   console
   python
   batch
   optimizer

