Skip to content

Commit ebaff3e

Browse files
author
Johannes Lang
committed
Upddate documentation part 11
1 parent 7f1ef4e commit ebaff3e

21 files changed

Lines changed: 1019 additions & 279 deletions

.github/workflows/docs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ jobs:
5151
name: github-pages
5252
url: ${{ steps.deployment.outputs.page_url }}
5353
runs-on: ubuntu-latest
54+
timeout-minutes: 30
5455
steps:
5556
- id: deployment
5657
uses: actions/deploy-pages@v4

Cwaiting.png

79.6 KB
Loading

docs/assets/Cwaiting.png

79.6 KB
Loading

docs/assets/energy.png

33.1 KB
Loading

docs/concepts/algorithm.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ For the spherical mixed p-spin model (representative), the functionals \(\mathca
2121

2222
This reduces the asymptotic cost from \(\mathcal{O}(T^3)\) to linear in the total simulated time (see paper for precise exponents and regimes), enabling orders-of-magnitude longer runs.
2323

24-
Important: DYNAMITE uses exactly the non-equidistant grid defined in the Phys. Rev. Lett. article. The performance gains critically rely on this grid; substituting an equidistant grid drastically reduces the accessible times. See Interpolation grids for details.
24+
Important: DYNAMITE uses exactly the non-equidistant grid defined in the Phys. Rev. Lett. article. The performance gains critically rely on this grid; substituting an equidistant grid drastically reduces the accessible times. See [Interpolation grids](interpolation-grids.md) for details.
2525

2626
## Discrete scheme and data layout
2727

@@ -94,5 +94,5 @@ The nested sparse representation amortizes the cost of memory integrals, leading
9494

9595
## See also
9696

97-
- EOMs and Observables: eoms-and-observables.md
98-
- Time Integration: time-integration.md
97+
- [EOMs and Observables](eoms-and-observables.md)
98+
- [Time Integration](time-integration.md)

docs/concepts/architecture.md

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,66 @@ The monolithic save path was split into focused modules:
4141
- `io_save_compressed.*`: compact snapshots (`QK_compressed`, `QR_compressed`, `t1_compressed.txt`).
4242
- `io_save_driver.*`: orchestrates sync/async export and progress signaling.
4343

44-
Console/TUI behavior:
44+
### Compressed snapshots: file formats (`QK_compressed`, `QR_compressed`, `t1_compressed.txt`)
45+
46+
The compressed snapshots are designed for quickly plotting/inspecting the final state
47+
without loading the full history (HDF5/binary) data.
48+
49+
They consist of two binary matrices and one text file:
50+
51+
- `QK_compressed`: a dense $L\times L$ matrix (double precision). In the current codebase this is saved from `QKB1int`.
52+
- `QR_compressed`: a dense $L\times L$ matrix (double precision). In the current codebase this is saved from `QRB1int`.
53+
- `t1_compressed.txt`: a length-$L$ vector of time points.
54+
55+
#### Binary layout
56+
57+
Both `QK_compressed` and `QR_compressed` share the same binary layout:
58+
59+
1. `rows`: `size_t` (native endian)
60+
2. `cols`: `size_t` (native endian)
61+
3. `rows*cols` values of type `double` (native endian)
62+
63+
Notes:
64+
65+
- Because the header uses `size_t`, the header is typically 16 bytes on 64-bit systems, but can be 8 bytes on 32-bit systems.
66+
- Most modern machines are little-endian; if you read these files on a different architecture you must account for endianness.
67+
68+
#### Meaning of `t1_compressed.txt` and the $(t_1,\theta)$ coordinates
69+
70+
The text file `t1_compressed.txt` stores the values
71+
72+
$$
73+
t_1[i] = t_{\mathrm{last}}\,\theta[i],\qquad i=0,\dots,L-1,
74+
$$
75+
76+
where $t_{\mathrm{last}}$ is the final simulated time (the last entry in the integrator's `t1grid`) and
77+
$\theta=t_2/t_1\in(0,1]$ is the dimensionless ratio used by the internal compressed representation.
78+
79+
In other words, if you load:
80+
81+
$$
82+
t_1\_\text{points} = \texttt{loadtxt}(\texttt{t1\_compressed.txt}),\qquad t_{\mathrm{last}} = t_1\_\text{points}[-1],\qquad \theta\_\text{points} = t_1\_\text{points}/t_{\mathrm{last}},
83+
$$
84+
85+
then the compressed matrices are interpreted as samples on the grid
86+
87+
$$
88+
(t_1,\theta) \in (\theta\_\text{points}\,t_{\mathrm{last}})\times(\theta\_\text{points}).
89+
$$
90+
91+
This is why typical post-processing evaluates waiting-time slices via
92+
93+
$$
94+
t_1 = t_w+\tau,\qquad \theta = \frac{t_w}{t_w+\tau}.
95+
$$
96+
97+
See also: `scripts/plot_correlation.py` and the “Reading outputs” tutorial.
98+
99+
### Console/TUI behavior:
45100
- HDF5 libraries are loaded at runtime (dlopen); the program prints which libraries were found. If unavailable or a write error occurs, saving continues via `data.bin`.
46101
- Save progress is staged: main file [0.10..0.50], params [0.50..0.65], histories [0.65..0.80], compressed [0.80..0.90], then DONE.
47102

48-
Accuracy knobs:
103+
### Accuracy knobs:
49104

50105
- Grid length L (512/1024/2048): convergence in observables vs. runtime.
51106
- Integrator tolerance `-e`, min step `-d`: trade accuracy vs. cost.

docs/concepts/eoms-and-observables.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ $$
4444
## Notes
4545
- The spherical constraint fixes $\mu(t)$ such that $C(t,t)=1$.
4646
- The concrete prefactors and any thermal/noise terms follow the conventions published in Phys. Rev. Lett.; DYNAMITE implements those definitions directly.
47-
- The exact expressions and units match the paper; see source under `include/EOMs/` for the hardcoded operators used at runtime.
47+
- The exact expressions and units match the paper; see source under [`include/EOMs/`](https://github.com/DMFT-evolution/DMFE/tree/main/include/EOMs) for the hardcoded operators used at runtime.
4848
- The non-stationary (aging) regime requires both time integrals and thus benefits from the sparse 2D grid and renormalized history.
4949

5050
## Stored fields
@@ -54,4 +54,4 @@ $$
5454
- `t1grid`: time grid values used by the integrator
5555
- `rvec`, `drvec`: reduced observables stored along the diagonal
5656

57-
See `include/EOMs/*` and `include/interpolation/*` for algorithmic details.
57+
See [`include/EOMs/`](https://github.com/DMFT-evolution/DMFE/tree/main/include/EOMs) and [`include/interpolation/`](https://github.com/DMFT-evolution/DMFE/tree/main/include/interpolation) for algorithmic details.

docs/concepts/time-integration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ $$
5656
- Check that key observables (C, R) at latest times are independent of `-e`.
5757
- If concerned about stability, disable the lower order method SERK2 at the risk of potentially slightly lower performance at late times.
5858

59-
Implementation details: see `include/EOMs/` and `src/EOMs/` (RK54 Dormand–Prince, SSPRK(10,4), SERK2 kernels and selection logic).
59+
Implementation details: see [`include/EOMs/`](https://github.com/DMFT-evolution/DMFE/tree/main/include/EOMs) and [`src/EOMs/`](https://github.com/DMFT-evolution/DMFE/tree/main/src/EOMs) (RK54 Dormand–Prince, SSPRK(10,4), SERK2 kernels and selection logic).

docs/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ The solver implements a numerical renormalization scheme with two-dimensional in
119119

120120
- Single-site, causal effective dynamics laid out on the triangular domain t ≥ t'.
121121
- History terms expressible as integrals/convolutions evaluable on a 2D interpolation grid.
122-
- Model-specific closures supplied via an EOM module (see `concepts/eoms-and-observables.md`).
122+
- Model-specific closures supplied via an EOM module (see [EOMs and observables](concepts/eoms-and-observables.md)).
123123

124124
## Quickstart
125125

@@ -157,7 +157,7 @@ The solver implements a numerical renormalization scheme with two-dimensional in
157157

158158
## Cite DYNAMITE & get help
159159

160-
- Software: see **Reference → Cite** (powered by `CITATION.cff`).
160+
- Software: see [Reference → Cite](reference/cite.md) (powered by `CITATION.cff`).
161161
- Method paper: J. Lang, S. Sachdev, S. Diehl, “Numerical renormalization of glassy dynamics,” Phys. Rev. Lett. **135**, 247101 (2025), [doi:10.1103/z64g-nqs6](https://journals.aps.org/prl/abstract/10.1103/z64g-nqs6).
162-
- License: Apache-2.0 (see `LICENSE`).
163-
- Support: follow `dev/testing.md` for issue templates or open a GitHub issue with your build info (compiler/CUDA, commit hash, minimal input).
162+
- License: Apache-2.0 (see [`LICENSE`](https://github.com/DMFT-evolution/DMFE/blob/main/LICENSE)).
163+
- Support: follow [Testing](dev/testing.md) for issue templates or open a GitHub issue with your build info (compiler/CUDA, commit hash, minimal input).

docs/install.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ CUDA runtime linkage (CUDA builds only):
8787
- `-DDMFE_STATIC_CUDART=ON|OFF` — link CUDA runtime statically (ON) or dynamically (OFF).
8888
- `-DDMFE_BUILD_SHARED_VARIANT=ON|OFF` — also build a shared-runtime CUDA variant.
8989

90-
See README Build options for the full list and examples.
90+
See [README build options](https://github.com/DMFT-evolution/DMFE#build) for the full list and examples.
9191

9292
## CUDA notes
9393

@@ -115,4 +115,4 @@ If you built with compile-time HDF5 (`USE_HDF5=ON`) and see HDF5 load/link error
115115

116116
---
117117

118-
License: Apache-2.0. See the repository `LICENSE` file. For citation instructions, see Reference → Cite.
118+
License: Apache-2.0. See the repository [`LICENSE`](https://github.com/DMFT-evolution/DMFE/blob/main/LICENSE) file. For citation instructions, see [Reference → Cite](reference/cite.md).

0 commit comments

Comments
 (0)