.. _index_rst: Welcome to the QDYN documentation ================================= .. image:: https://img.shields.io/badge/FUB%20Gitlab-ag--koch%2Fqdyn-blue :alt: Source code on FUB Gitlab :target: https://gitlabph.physik.fu-berlin.de/ag-koch/qdyn .. image:: https://img.shields.io/badge/License-GPL-green.svg :alt: GPL License :target: https://opensource.org/licenses/GPL-2.0 QDYN is a `modern Fortran`_ library for quantum dynamics and control. It contains data structures and routines for the efficient numerical modeling of a wide range of quantum systems, allowing to calculate static properties, :ref:`simulate dynamics `, and solve :ref:`optimal control problems `. For basic usage, QDYN comes with a set of :ref:`command line utilities `. These read the description of a physical system from a :ref:`config file ` and a collection of data files, and perform a simulation of the dynamics or an optimization. More advanced users would :ref:`write their own Fortran programs ` using QDYN's :ref:`application programming interface (API)`. .. rubric:: How the documentation is organized The `Getting Started <#toctree-getting-started>`_ section is required reading for new users and contains instructions for the installation of QDYN, as well as tutorials that teach basic usage (todo). Following that, the `main part <#toctree-examples>`_ of the documentation is organized in :ref:`four categories `: 1. `Examples <#toctree-examples>`_: These are tutorials that showcase the use of QDYN for typical research problems. They serve as a learning resource for all users to become familiar with QDYN's capabilities and usage, to be read selectively and in any order. 2. `How-Tos <#toctree-howtos>`_: Guides for achieving common tasks with QDYN, addressing any questions and problems in QDYN's day-to-day usage. This should be understood as an "extended FAQ_" for users and developers already familiar with QDYN's basic concepts. 3. `Topical Overviews <#toctree-topical-overviews>`_: In-depth explanations of numerical methods, implementation choices, and background information. These are intended for users interested in the "big picture" and QDYN developers. They are not required reading for normal usage of QDYN, although they will allow users to become *more effective* through deeper understanding of what methods are most appropriate in a given situation. 4. `Reference <#toctree-reference>`_: Detailed descriptions of all of QDYN's parts. This includes the full documentation of every module, data type and routine (the :ref:`API`), the documentation of every allowed parameter in the :ref:`config file `, and the documentation of all command line flags for the :ref:`utilities ` included with QDYN. This information is a *technical reference* to be looked up as needed, but does not serve as a learning resource. Lastly, the `Notes for Developers <#toctree-devnotes>`_ contains detailed how-to guides targeted at developers working on the QDYN library itself. The information in this section is not relevant to normal users of QDYN. .. _modern Fortran: https://michaelgoerz.net/refcards/#fortran .. _FAQ: https://en.wikipedia.org/wiki/FAQ .. ############################################################################## The "Getting Started" section contains *introductory* howtos, tutorials and reference material essential to get a new new user with no prior experience going. .. container:: toctree-getting-started :name: toctree-getting-started .. toctree:: :maxdepth: 1 :caption: Getting Started quickstart installation_tutorial using .. ############################################################################## "Examples" are tutorials aimed at a beginning to intermediate user. They are written to *teach* a specific usage of QDYN by an easy to follow example. .. container:: toctree-examples :name: toctree-examples .. toctree:: :maxdepth: 1 :caption: Examples examples/examples examples/asym_top/asym_top examples/complex_absorber/complex_absorber examples/CRAB/CRAB examples/driven_qubit/drivenqubit examples/hamos_surrogate/README examples/hamos_wavepacket/README examples/mcwf_2qdecay/TwoQubitDecay examples/moving_grid/README examples/elastic_scattering/elastic_scattering examples/numerov_in_field/README examples/optimization_squeezing/optimization_squeezing examples/vib_cooling/README examples/visualizing_spin_systems/visualizing_spin_systems_in_qdyn .. ############################################################################## "How-Tos" are problem-oriented guides for intermediate to advanced users. They address users that know what they want to do, but now how to do it. If there is more than one way to do something, a How-To should discuss different options. .. container:: toctree-howtos :name: toctree-howtos .. toctree:: :maxdepth: 1 :caption: How-Tos howto/installation howto/compiler_options howto/init_op_matrices howto/exp_values howto/units howto/linesearch_lambda_a howto/wigner_symbols howto/scattering .. ############################################################################## "Topical Overviews" are in-depth explanations to give context for the numerical methods implemented in QDYN. They are expert-level learning materials on imporant concepts, focussing on the big picture and the "why" of QDYN's design. .. container:: toctree-topical-overviews :name: toctree-topical-overviews .. toctree:: :maxdepth: 1 :caption: Topical Overviews concepts/mcwf concepts/moving_grid concepts/propagation concepts/optimization .. ############################################################################## "Reference documentation" contains the API (the docstrings for all types and routines defined in QDYN) as well as the description of the command utilities included with QDYN, and the full description of the config file settings. All of this information is primarily auto-generated from the QDYN source code. .. container:: toctree-reference :name: toctree-reference .. toctree:: :maxdepth: 2 :caption: Reference QDYN Fortran API qdynpylib/qdynpylib config/config utils/utils_overview cookiecutter .. ############################################################################## The "Notes for Developers" are a *reference guide* for developers of QDYN. .. container:: toctree-devnotes :name: toctree-devnotes .. toctree:: :maxdepth: 1 :caption: Notes for Developers devnotes/howtos devnotes/changelog devnotes/coding_guide devnotes/docwriting devnotes/testing devnotes/qdynpylib .. ############################################################################## All citations from anywhere in QDYN's documentation are listed in the Bibliography section. .. toctree:: :maxdepth: 1 :caption: Bibliography zzz_references