~dikan.va/siesta/edens

« back to all changes in this revision

Viewing changes to Docs/yaml_tests/implementation.rst

  • Committer: Alberto Garcia
  • Date: 2018-05-30 09:15:30 UTC
  • mfrom: (560.1.361 4.1)
  • Revision ID: albertog@icmab.es-20180530091530-yrngex1wy2psf61c
Merged 4.1, r920-921: YAML infrastructure; TS tests fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
==========================================
 
2
Implementation of the YAML variable dumper
 
3
==========================================
 
4
 
 
5
Changes in SIESTA
 
6
-----------------
 
7
 
 
8
The YAML variable dumper has been implemented in as an orthogonal way as
 
9
possible from the rest of SIESTA. It consists in:
 
10
 
 
11
- a Fortran module producing valid YAML 1.2, codename *m_io_yaml*;
 
12
- the inclusion of the corresponding object file into the MAkefile of SIESTA;
 
13
- a call to the main routine of the module, *siesta_write_yaml* at the end of
 
14
  *siesta.F*.
 
15
 
 
16
The call to the I/O routine is both compatible with serial and parallel runs
 
17
of SIESTA:
 
18
 
 
19
.. code::
 
20
 
 
21
         if (ionode) call siesta_write_yaml()
 
22
 
 
23
This strategy is expected to be harmless to any other ongoing developments
 
24
within SIESTA and allows to add the YAML output capability into already
 
25
published versions of SIESTA. Patching such versions will indeed provide
 
26
useful information on possible issues that were previously undetected.
 
27
 
 
28
.. note::
 
29
 
 
30
   Contrary to XML which has tags and attributes, YAML is just plain text
 
31
   using indenting (think of Python) to define data structures. As a
 
32
   consequence, emitting YAML does **not** introduce any additional dependency
 
33
   of SIESTA on another external library and is much easier to read by humans.
 
34
 
 
35
 
 
36
Source code
 
37
-----------
 
38
 
 
39
The complete source code of the YAML dumper can be found in
 
40
*~siesta/Src/m_io_yaml.F90*. The file is self-documented using the Doxygen
 
41
format.
 
42
 
 
43
.. note::
 
44
 
 
45
   The Doxygen infrastructure is not merged yet...
 
46
 
 
47
 
 
48
Documentation
 
49
-------------
 
50
 
 
51
To generate the Doxygen documentation, just run *doxygen* from the top
 
52
source directory of SIESTA. The resulting files can then be found within the
 
53
*~siesta/Docs/developers/* directory.
 
54
 
 
55
To access the HTML website, look for *index.html* inside the *source/*
 
56
subdirectory. To build the PDF manual, look at the *refman.tex* main document
 
57
inside the *latex/* subdirectory.
 
58
 
 
59
.. tip::
 
60
 
 
61
   The provided *Doxyfile* has been tested with Doxygen 1.8.11. If you have an
 
62
   earlier version and experience crashes, just add the problematic files to
 
63
   the *EXCLUDE* variable within the *Doxyfile* and re-run doxygen. Repeat
 
64
   this procedure as many times as necessary.
 
65