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

Finite temperature calculation #75

Merged
merged 33 commits into from
Aug 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0fdc5fe
update mptensor
TsuyoshiOkubo Jun 12, 2023
50232c8
core implementation of finite temperature calculation (untested)
TsuyoshiOkubo Jun 13, 2023
5e6fd9b
uncomment initialize_tensors_density
TsuyoshiOkubo Jun 13, 2023
d2193d9
use mptensor::contract
TsuyoshiOkubo Jun 13, 2023
bfc4c33
implement contract_density and measurements
TsuyoshiOkubo Jun 13, 2023
c9b4846
resolve conflict between develop and ft_dev
TsuyoshiOkubo Jun 15, 2023
5c7f65d
adopt updte of num_simple_step in develop
TsuyoshiOkubo Jun 15, 2023
ac40451
Merge branch 'develop' into ft_dev
TsuyoshiOkubo Jun 23, 2023
0f8bfa3
bug fixed in calculation of energy density
TsuyoshiOkubo Jun 27, 2023
7e9b0a9
implement main program together with many bug fix
TsuyoshiOkubo Jun 27, 2023
7370260
sample code for finite temperature
TsuyoshiOkubo Jun 27, 2023
e7faf6a
update tutorial for finite temperature
TsuyoshiOkubo Jun 27, 2023
686d53b
update test
yomichi Jun 28, 2023
44844a1
Merge branch 'ft_dev' of github.com:issp-center-dev/TeNeS into ft_dev
TsuyoshiOkubo Jun 28, 2023
17e64dd
update initialization of CTM_single
TsuyoshiOkubo Jun 28, 2023
f7b9106
added a regression test (FT_TFI_square)
yomichi Jul 6, 2023
6cad4c7
fixed twosite_obs_density
yomichi Jul 7, 2023
52419a5
Merge branch 'develop' into ft_dev
yomichi Jul 7, 2023
933f42c
Merge branch 'develop' into ft_dev
yomichi Jul 7, 2023
0e10618
update contractions
yomichi Jul 6, 2023
d0026a6
added missing files
yomichi Jul 10, 2023
fa25985
Merge pull request #70 from issp-center-dev/ft_dev_contraction
yomichi Jul 10, 2023
4846ca8
update sample
yomichi Jul 11, 2023
66822f3
Merge branch 'develop' into ft_dev
yomichi Jul 13, 2023
b01ee40
added missing files
yomichi Jul 13, 2023
5a356de
added a new sample (finite temperature calculation of Kitaev-Honeycomb)
yomichi Jul 14, 2023
92cf351
correct simple_update_density
yomichi Jul 14, 2023
6da9357
fix
yomichi Jul 14, 2023
edfb3b5
Merge branch 'develop' into ft_dev
yomichi Jul 19, 2023
4495f6e
correct correlation length code
yomichi Jul 22, 2023
7768421
set OMP_NUM_THREADS=1 for ctest in auto test
yomichi Jul 22, 2023
10fc848
update
yomichi Jul 30, 2023
1feeca8
update NEWS
yomichi Aug 1, 2023
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
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,4 @@ jobs:
- name: ctest
working-directory: ${{runner.workspace}}/build
shell: bash
run: ctest -V
run: OMP_NUM_THREADS=1 ctest -V
2 changes: 1 addition & 1 deletion .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ jobs:
- name: ctest
working-directory: ${{runner.workspace}}/build
shell: bash
run: ctest -V
run: OMP_NUM_THREADS=1 ctest -V
3 changes: 2 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# TeNeS v2.0.x Release Notes

## Changes between v2.0.0 and v1.3.2
## Changes between v2.0.0 and v1.3.3

### New Features

- Real-time evolution (https://github.com/issp-center-dev/TeNeS/pull/68)
- Multisite observables (https://github.com/issp-center-dev/TeNeS/pull/69)
- Finite temperature calculation (https://github.com/issp-center-dev/TeNeS/pull/75)
8 changes: 8 additions & 0 deletions docs/sphinx/en/file_specification/output_format.rst
Original file line number Diff line number Diff line change
Expand Up @@ -479,3 +479,11 @@ Example::
2.00000000000000039e-01 1 1 1.63323696507474692e-01 6.12281023136305169e+00 6.12281023136305169e+00 7.83104916294462416e+00
... Skipped ...
4.99999999999993783e+00 1 1 4.61585992965019176e-01 2.16644355600232430e+00 2.16644355600232430e+00 2.29497956495965427e+00


For finite temperature calculation mode
========================================

The formats of the files are the same as those in the real time evolution mode.
The only difference is that the file name starts with ``FT_`` instead of ``TE_``, and the first column is the inverse temperature :math:`\beta = 1/T` instead of the time :math:`t`.

13 changes: 10 additions & 3 deletions docs/sphinx/en/file_specification/parameter_section.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,17 @@ General parameters for ``tenes``.
- ``"ground state"``

- Search for the ground state of the Hamiltonian
- ``tenes_std`` calculates the imaginary time evolution operator :math:`e^{-\tau H}` from the Hamiltonian
- ``tenes_std`` calculates the imaginary time evolution operator :math:`U(\tau) = e^{-\tau H}` from the Hamiltonian :math:`H`

- ``"time evolution"``

- Calculate the time evolution from the initial state
- ``tenes_std`` calculates the time evolution operator :math:`e^{-it H}` from the Hamiltonian
- Calculate the time evolution of the observables from the initial state
- ``tenes_std`` calculates the time evolution operator :math:`U(t) = e^{-it H}` from the Hamiltonian :math:`H`

- ``"finite temperature"``

- Calculate the finite temperature expectation values of the observables
- ``tenes_std`` calculates the imaginary time evolution operator :math:`U(\tau) = e^{-\tau H}` from the Hamiltonian :math:`H`

- ``is_real``

Expand Down Expand Up @@ -93,6 +98,8 @@ Parameters in the simple update procedure.
- ``tenes_std`` uses it to calculate the imaginary time evolution operator :math:`e^{-\tau H}` from the Hamiltonian
- ``tenes`` uses it to calculate the time of each measurement

- For finite temperature calculation, note that the inverse temperature increase :math:`2\tau` at a step because :math:`\rho(\beta + 2\tau) = U(\tau)\rho(\beta)\bar{U}(\tau)`

- When a list is specified, the time step can be changed for each group of time evolution operators

- ``num_step``
Expand Down
7 changes: 7 additions & 0 deletions docs/sphinx/ja/file_specification/output_format.rst
Original file line number Diff line number Diff line change
Expand Up @@ -480,3 +480,10 @@ multisite 演算子の期待値が出力されます。
2.00000000000000039e-01 1 1 1.63323696507474692e-01 6.12281023136305169e+00 6.12281023136305169e+00 7.83104916294462416e+00
... Skipped ...
4.99999999999993783e+00 1 1 4.61585992965019176e-01 2.16644355600232430e+00 2.16644355600232430e+00 2.29497956495965427e+00


有限温度計算モード
====================

実時間発展計算モードと同様のファイルが出力されます。
ファイル名の先頭が ``TE_`` のかわりに ``FT_`` になっていることと、1列目が時間 :math:`t` ではなく逆温度 :math:`\beta = 1/T` になっていることが異なります。
14 changes: 11 additions & 3 deletions docs/sphinx/ja/file_specification/parameter_section.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,17 @@
- ``"ground state"``

- 基底状態計算
- ``tenes_std`` は虚時間発展演算子を計算します
- ``tenes_std`` は虚時間発展演算子 :math:`U(\tau) = \exp(-\tau \mathcal{H})` を計算します

- ``"time evolution"``

- 実時間発展計算
- ``tenes_std`` は実時間発展演算子を計算します
- ``tenes_std`` は実時間発展演算子 :math:`U(t) = \exp(-it \mathcal{H})` を計算します

- ``"finite temperature"``

- 有限温度計算
- ``tenes_std`` は虚時間発展演算子 :math:`U(\tau) = \exp(-\tau \mathcal{H})` を計算します

- ``is_real``

Expand Down Expand Up @@ -93,7 +98,10 @@ simple update に関するパラメータ
- (虚)時間発展演算子における(虚)時間刻み :math:`\tau` を指定します

- ``tenes_std`` では時間発展演算子を計算するために用いられます
- ``tenes`` では各ステップでの経過時間を求めるために用いられます
- ``tenes`` では各ステップでの経過時間・逆温度を求めるために用いられます

- For finite temperature calculation, note that the inverse temperature increase :math:`2\tau` at a step because :math:`\rho(\beta + 2\tau) = U(\tau)\rho(\beta)\bar{U}(\tau)`
- 有限温度計算の場合、 :math:`\rho(\beta + 2\tau) = U(\tau)\rho(\beta)\bar{U}(\tau)` なので、 ステップごとに逆温度は :math:`2\tau` だけ増加することに注意してください。

- リストを指定すると、時間発展演算子のグループごとに刻み幅を変えることができます

Expand Down
14 changes: 7 additions & 7 deletions misc/contraction/cont.jl
Original file line number Diff line number Diff line change
Expand Up @@ -336,13 +336,13 @@ function dump_fn_declare(io::IO, tensors::Tensors; lang::AbstractString="cpp", p
println(io, "typename tensor::value_type")
println(io, "Contract_$(tensors.nrow)x$(tensors.ncol)(")
if pass_as_vector
println(io, " std::vector<const tensor*> &C,")
println(io, " std::vector<const tensor*> &eTt,")
println(io, " std::vector<const tensor*> &eTr,")
println(io, " std::vector<const tensor*> &eTb,")
println(io, " std::vector<const tensor*> &eTl,")
println(io, " std::vector<std::vector<const tensor*>> &Tn,")
println(io, " std::vector<std::vector<const tensor*>> &op")
println(io, " const std::vector<const tensor*> &C,")
println(io, " const std::vector<const tensor*> &eTt,")
println(io, " const std::vector<const tensor*> &eTr,")
println(io, " const std::vector<const tensor*> &eTb,")
println(io, " const std::vector<const tensor*> &eTl,")
println(io, " const std::vector<std::vector<const tensor*>> &Tn,")
println(io, " const std::vector<std::vector<const tensor*>> &op")
else
args = String[]
for T in iter
Expand Down
5 changes: 5 additions & 0 deletions misc/contraction/cont.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
for nrow in 1 2 3; do
for ncol in 1 2 3; do
julia ./cont.jl --output=${nrow}_${ncol}.dat --pass_as_vector --tdt_path="./tdt.py" ${nrow} ${ncol}
done
done
Loading