3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-26 14:23:38 +01:00
dft_tools/doc/reference/c++/gf/gf_imtime.rst
Olivier Parcollet 3fe400d34c doc : split c++ code from rst
- examples split from the rst file using a python script (split_code).
- Final result for the doc is unchanged.
- examples are compiled and tested with the other tests.
- examples' code have been clang-formatted, with triqs style.
- doc compiles much faster, and with the same options as the rest of the
  test.
- examples are added as tests, so they are run by make test, as simple C
  tests.
- done for the tutorials and the reference.
- autocompile removed (changed into triqs_example directive).
- add triqs_example :
   - make a literal include of the source code.
   - runs the compiled example
   - add, as before, the result to the source code in the doc.
- added the script split_code, used to make the changes automatically,
  maybe for later reuse. (in _tools)
2014-05-31 23:00:16 +02:00

92 lines
2.3 KiB
ReStructuredText

.. highlight:: c
.. _gf_imtime:
Matsubara imaginary time
==========================================================
This is a specialisation of :ref:`gf<gf_and_view>` for imaginary Matsubara time.
Synopsis
------------
.. code::
gf<imtime, Target, Opt>
The *Target* template parameter can take the following values :
+-------------------------+-----------------------------------------------------+
| Target | Meaning |
+=========================+=====================================================+
| scalar_valued | The function is scalar valued (double, complex...). |
+-------------------------+-----------------------------------------------------+
| matrix_valued [default] | The function is matrix valued. |
+-------------------------+-----------------------------------------------------+
Domain & mesh
----------------
The domain is the set of real numbers between 0 and :math:`\beta`
since the function is periodic (resp. antiperiodic) for bosons (resp. fermions), i.e.
* :math:`G(\tau+\beta)=-G(\tau)` for fermions
* :math:`G(\tau+\beta)=G(\tau)` for bosons.
The domain is implemented in the class :doxy:`matsubara_time_domain<triqs::gfs::matsubara_domain>`.
The mesh is :doxy:`matsubara_time_mesh<triqs::gfs::matsubara_time_mesh>`.
Singularity
-------------
The singularity is a high frequency expansion, :ref:`gf_tail`.
Evaluation method
---------------------
* Use a linear interpolation between the two closest point of the mesh.
* Return type :
* If Target==scalar_valued : a complex
* If Target==matrix_valued : an object modeling ImmutableMatrix concept.
* When the point is outside of the mesh, the evaluation of the gf returns :
* the evaluation of the high frequency tail if no_tail is not set.
* 0 otherwise
Data storage
---------------
* If Target==scalar_valued :
* `data_t` : 1d array of complex<double>.
* g.data()(i) is the value of g for the i-th point of the mesh.
* If Target==matrix_valued :
* `data_t` : 3d array (C ordered) of complex<double>.
* g.data()(i, range(), range()) is the value of g for the i-th point of the mesh.
TO DO : complex OR DOUBLE : FIX and document !!
HDF5 storage convention
---------------------------
h5 tag : `ImTime`
Examples
---------
.. triqs_example:: ./gf_imtime_0.cpp