/*============================================================================
 * Main Code_Saturne documentation page
 *============================================================================*/

/*
  This file is part of Code_Saturne, a general-purpose CFD tool.

  Copyright (C) 1998-2021 EDF S.A.

  This program is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the Free Software
  Foundation; either version 2 of the License, or (at your option) any later
  version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  details.

  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
  Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

/*-----------------------------------------------------------------------------*/

/*!
  \mainpage Introduction

  code_saturne is a general purpose Computational Fluid Dynamics (CFD)
  software developed mostly by EDF.

  The basic capabilities of code_saturne enable the handling of either
  incompressible or expandable flows with or without heat transfer and
  turbulence. Dedicated modules are available for specific physics such as
  radiative heat transfer, combustion (gas, coal, heavy fuel oil, ...),
  magneto-hydrodynamics, compressible flows, two-phase flows
  (Euler-Lagrange approach with two-way coupling), or atmospheric flows.

  code_saturne relies on a finite volume discretisation and allows the use of
  various mesh types which may be hybrid (containing several kinds of
  elements) and may have structural non-conformities (hanging nodes).

  \section mainpage_licence Licence

  code_saturne is free software; you can redistribute it and/or modify it under
  the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your option)
  any later version. code_saturne is distributed in the hope that it will be
  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  \section mainpage_install Installation

  code_saturne may be configured and installed using the
  \c configure shell script and \c make. Please refer to the
  \ref autotoc_md0 "installation guide".

  \section mainpage_sublibs Sub-libraries

  code_saturne also relies on the PLE (Parallel Location and Exchange) library
  (developed by the same team, under the LGPL license) for the management of
  code coupling; this library can also be used independently.

  See \ref mainpage_ple "PLE" (Parallel Location and Exchange).

  \section mainpage_user_sources User sources, functions, and subroutines

  Many user examples are available in the \ref cs_user_examples "user examples tab":
    - \ref cs_user_boundary_conditions_examples "User boundary conditions definitions",
    - \ref cs_user_extra_operations_examples "User extra operations",
    - \ref cs_user_initialization "Physical fields user initialization",
    - and so on ...

  \section additional_doc Additional documentation

  In addition to the Doxygen documentation, code_saturne is provided with several
  pdf documents:
    - a <a href="../../user.pdf"><b>user guide</b></a>,
    - a <a href="../../theory.pdf"><b>theory guide</b></a>,
    - a <a href="../../refcard.pdf"><b>refcard</b></a>.

  \section main_components Base architecture

  code_saturne is composed of several elements, managed through
  a global \c code_saturne script. The three main elements
  are shown on the following figure:

  - The \b GUI allows defining the main computation settings\n
    (which can be completed with more detailed settings in user-defined code).
  - The \b Solver module is the numerical solver and main program.
  - the \b Preprocessor module is in charge of mesh import.

   \image html cs_components.svg "code_saturne elements"

  \section main_script_commands Top-level commands

  The \c code_saturne script allows multiple commands, usable
  through a <b><tt>code_saturne <command> [options]</tt></b> syntax.

  To obtain the list of commands, in a terminal, type:
  \code{.sh}
  code_saturne --help
  \endcode

  To obtain the list of options for a given command, in a terminal, type:
  \code{.sh}
  code_saturne [command] --help
  \endcode

  The main commands are:

  - \b info \n
    Get information on code_saturne. Open the documentation (refcard, theory, ...).\n\n

  - \b config \n
    Get information on the configuration and installation of code_saturne.\n\n

  - \b create \n
    Create a new code_saturne study or case structure.\n\n

  - \b gui \n
    Launch the main graphical user interface.\n\n

  - \b run \n
    Run a single case.\n\n

  - \b submit \n
    Submit a single case to a batch system.\n\n

  - \b trackcvg \n
    Launch the code_saturne convergence tracking and plotting graphical interface.\n\n

  - \b studymanager or \b smgr \n
    Launch the code_saturne study manager to run multiple related cases and
    generate reports.\n\n

  - \b studymanagergui or \b smgrgui \n
    Launch the code_saturne study manager setup graphical interface;
    must be run from the top-level study directory.\n\n

  - \b compile \n
    Build a specific solver executable when some user-defined source are present;

*/
