Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update document #144

Merged
merged 5 commits into from
Jul 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ jobs:
command: |
cd example; bash run.sh
cd ..
- run:
name: install pandoc
command: sudo apt-get install pandoc
- run:
name: Build docs
command: cd doc; make html
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ jobs:
run: |
cd example; bash run.sh
cd ..
- name: install pandoc
run:
sudo apt-get install pandoc
- name: test build doc
run: |
cd doc
Expand Down
23 changes: 23 additions & 0 deletions doc/source/faq.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Frequently Asked Questions
**************************

How to build docs and view them locally?
========================================

In the ``doc`` directory where ``Makefile`` is located, run

.. code-block::

make html

This will build the document.
Then, in the ``html`` directory, run

.. code-block::

python -m http.server

This will setup a HTTP server on the 8000 port.
You can visit the document via ``http://localhost:8000``
if the document is built in local host.
Or you may need to change ``localhost`` to the actual IP of the host where the doc is built.
1 change: 1 addition & 0 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Contents
configs.rst
lib.md
sbm.md
faq.rst
develop.md


Expand Down
8 changes: 4 additions & 4 deletions doc/source/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Another common issue about Python is that its environment screws up quite freque

Anaconda has lots of other cool features, you'll learn more while you're using it.

If you find the installation of Anaconda annoying and you already have Python 3.7, in theory, you can skip the installation and use your Python directly. But if something went wrong and your Python couldn't work anymore, you'll probably feel that using Anaconda is a good idea.
If you find the installation of Anaconda annoying and you already have Python 3.8, in theory, you can skip the installation and use your Python directly. But if something went wrong and your Python couldn't work anymore, you'll probably feel that using Anaconda is a good idea.

#### Install Anaconda
You can skip this step if you already have access to Anaconda (which means you can use `conda` command in your command line). For Linux users, don't worry if you don't have the root privilege -- installing Anaconda doesn't require root.
Expand Down Expand Up @@ -67,13 +67,13 @@ conda config --set show_channel_urls yes
to let Anaconda know it can download resources from *tuna*.

In this step, we're going to create a Python environment for Renormalizer using Anaconda. Two things must be taken into consideration while creating a Python environment:
* Python version. **Python version higher than Python 3.5 is required for Renormalizer**. We recommend using Python 3.7 or higher.
* Python version. **Python version higher than Python 3.5 is required for Renormalizer**. We recommend using Python 3.8 or higher.
> Renormalizer uses *type annotation* like `a: int = 3` or `b: float = 3.0` which helps to make code clearer but requires Python 3.6 or higher. For more info about *type annotation*, see the [typing module](https://docs.python.org/3/library/typing.html) or [PEP484](https://www.python.org/dev/peps/pep-0484/).
* Name of the environment. Choose anything you like. **In this guide we are going to use `Reno` as it is the nickname of the project**.

With Python version and name of the environment determined, create the environment using the following command (Note the environment name `Reno`)
```
conda create -n Reno python=3.7 -y
conda create -n Reno python=3.8 -y
```
This might take 1 to 20 minutes depending on network conditions. After the process finished, you'll have a Python environment named `Reno` managed by Anaconda.

Expand All @@ -83,7 +83,7 @@ To use this environment:

In most cases the name of the environment will appear in the command line interface.

To verify the environment is activated, use `python --version` to ensure that you're using Python 3.7. You can also use `which python` (for Linux) or `where python` (for Windows) to see where the Python program locates. It should locate under a directory like `~/anaconda/envs/Reno/bin/` (Note the environment name `Reno` in the path).
To verify the environment is activated, use `python --version` to ensure that you're using Python 3.8. You can also use `which python` (for Linux) or `where python` (for Windows) to see where the Python program locates. It should locate under a directory like `~/anaconda/envs/Reno/bin/` (Note the environment name `Reno` in the path).

### Download Renormalizer and run tests
#### Download Renormalizer
Expand Down
65 changes: 65 additions & 0 deletions doc/source/time_evolution.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Time Evolution Algorithms
*************************

In this tutorial we will introduce the time evolution algorithms available in Renormalizer.
For more details please refer to the literatures at the bottom of the package.

Renormalizer by default uses the :ref:`pc_label`
time evolution method. The method requires relatively less knowledge and experience with TD-DMRG.
However, it's accuracy and speed is not satisfactory compared to the state-of-the-art TDVP methods.

In the following we summarize the features of each time evolution algorithms in a table,
and more details are explained in the subsequent sections.


.. list-table::
:header-rows: 1

* - Scheme
- Accuracy
- Speed
- Adaptive Bond Dimension
- Adaptive Step Size
* - TDVP-PS2
- High
- Low
- Yes
- Limited

.. _pc_label:

Propagation and Compression (P&C)
=================================


Time Dependent Variational Principle (TDVP)
===========================================

Projector Splitting
-------------------

Variable Mean Field
-------------------

Constant Mean Field
-------------------

Matrix Unfolding
----------------


Bibtex entry::

@article{li2020numerical,
title={Numerical assessment for accuracy and GPU acceleration of TD-DMRG time evolution schemes},
author={Li, Weitang and Ren, Jiajun and Shuai, Zhigang},
journal={The Journal of Chemical Physics},
volume={152},
number={2},
pages={024127},
year={2020},
publisher={AIP Publishing LLC}
}

..
Add WIRES paper and maybe the chinese cjcu paper.
9 changes: 8 additions & 1 deletion doc/source/tutorial.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
Tutorial
********

.. toctree::
You can find tutorial jupyter notebooks below

.. toctree::
tutorials/1D-Heisenberg.ipynb
tutorials/define_model.ipynb

Here are some more details about how to use the package

.. toctree::
time_evolution.rst
Empty file added doc/source/tutorials/.gitkeep
Empty file.
Loading