.. -------------------------------------------------------------------------
.. pyCGNS - CFD General Notation System - 
.. See license.txt file in the root directory of this Python module source  
.. -------------------------------------------------------------------------

A Python package for CGNS
+++++++++++++++++++++++++

.. raw:: html

  Click below for a quick access to modules (DAT module is not available
  in this current version).<br>
  
  <div>
  <table width="100%" border=2 bordercolor=white>
  <tr align="center" valign="middle">

  <td align="center" valign="middle"><a href="MAP/_index.html">
      <img src="images/MAP-logo-small.png" height="48" alt="MAP"/></a></td>

  <td align="center" valign="middle"><a href="PAT/_index.html">
      <img src="images/PAT-logo-small.png" height="48" alt="PAT"/></a></td>

  <td align="center" valign="middle"><a href="NAV/_index.html">
      <img src="images/NAV-logo-small.png" height="48" alt="NAV"/></a></td>

  <td align="center" valign="middle"><a href="VAL/_index.html">
    <img src="images/VAL-logo-small.png" height="48" alt="VAL"/></a></td>

  <td align="center" valign="middle"><a href="APP/_index.html">
    <img src="images/APP-logo-small.png" height="48" alt="APP"/></a></td>
 
 </tr></table></div>

The package gathers various tools and libraries for CGNS end-users and
Python application developpers. The main object of *pyCGNS* is to
provide the application developpers with a Python interface to
:term:`CGNS/SIDS`, the CGNS data model.  The `CFD General Notation System
(CGNS) <http://www.cgns.org>`_ is both a data model for CFD and an
implementation of this data model. CGNS should not be reduced to a
file format, you can use pyCGNS without any file at all for your 
actual CFD data! 


.. sidebar:: Release 5.0 (Resume 09/2018)

   - Embedded CHLone (CGNS/HDF5 mapping)
   - Windows version update
   - Python 3 support

   - `Github repository and tickets <http://github.com/pyCGNS/pyCGNS>`_

*pyCGNS* has several sub-modules, some of them are libraries of functions, some other are
tools and some are gathering various scripts and examples.
The *MAP* and *PAT* modules are the most important modules, they map the 
:term:`CGNS/SIDS` data model as :term:`CGNS/Python` implementation and
provide manipulation function for it.
The *NAV* module supports the *CGNS.NAV* graphical browser, with nice
features about tree exploration, copy/paste and even global node changes.
Then, the *VAL* module is a parser 
engine for :term:`CGNS/Python` tree compliance
checking. The *CGNS.VAL* tool can analyze your :term:`CGNS/HDF5` file
and returns you a list of diagnostics.

The package uses :term:`numpy`, :term:`cython` and :term:`HDF5`
you should install before pyCGNS. 
The *CGNS.NAV* graphical tool uses :term:`Qt` and has a :term:`VTK` viewer,
the tool requires the *Qt libs*, *VTK libs* and their python interfaces.
The *CGNS/SIDS* data model has a mapping the *HDF5* for file storage. The
*MAP* module uses :term:`CHLone` (now embedded into *pyCGNS*)
instead of :term:`CGNS/MLL` to map its :term:`CGNS/Python` trees to *HDF5*.

.. note::
  The *pyCGNS* python package is released 
  under `LGPL2 license <http://opensource.org/licenses/lgpl-2.1>`_ and hosted 
  by `github <http://github.com/pyCGNS/pyCGNS>`_
  where you can find there the
  `source download <http://github.com/pyCGNS/pyCGNS/releases>`_.

The listed chapters are the introduction chapters, each MAP, PAT,
NAV, VAL module has its own documentation which doesn't appear below.
Click on the modules icons above to get their documentation.

.. toctree::
   :glob:
   :maxdepth: 2
   
   introduction
   install
   glossary

.. -------------------------------------------------------------------------
