Files
py.guanjihuan.com/tutorials/README.md
2026-11-02 17:00:28 +08:00

94 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tutorials
Learning examples for the [Guan package](https://py.guanjihuan.com), extracted from the blog post
[Guan软件包学习示例](https://www.guanjihuan.com/archives/38367).
One example per file. Each file is a self-contained script that you can run directly, or copy the
functions you need into your own project.
## Installation
```bash
pip install --upgrade guan
```
```python
import guan
```
## Run the examples
```bash
python tutorials/daily_scenarios/01_ai_chat.py
python tutorials/physics_scenarios/03_band_structure.py
```
## Directory
```
tutorials/
├── 00_test.py # package self test
├── daily_scenarios/ # 一、日常场景
│ ├── 01_ai_chat.py
│ ├── 02_timing_log.py
│ ├── 03_function_timer.py
│ ├── 04_try_except.py
│ ├── 05_dump_and_load_data.py
│ ├── 06_print_array.py
│ ├── 07_matrix_in_file.py
│ ├── 08_parallel_calculation.py
│ ├── 09_loop_calculation.py
│ ├── 10_is_hermitian.py
│ └── 11_split_parameters.py
└── physics_scenarios/ # 二、物理场景
├── 01_pauli_matrices.py
├── 02_real_space_hamiltonian.py
├── 03_band_structure.py
├── 04_chern_number_and_wilson_loop.py
├── 05_density_of_states_with_green_function.py
├── 06_conductance_and_scattering_matrix.py
└── 07_wavefunction_gauge.py
```
## 一、日常场景 / Daily scenarios
| File | 说明 | Requirements |
| --- | --- | --- |
| `00_test.py` | 软件包自检 `guan.test()` | - |
| `01_ai_chat.py` | AI 对话:内置模型、OpenAI 兼容接口、LangChain、Ollama、llama.cpp、ModelScope | OpenAI 接口需要 API Key;Ollama / llama.cpp / ModelScope 需要本地模型 |
| `02_timing_log.py` | 带日期和时间的运行日志 `guan.logging_with_day_and_time` | - |
| `03_function_timer.py` | 函数计时器:`@guan.timer_decorator` 与 `guan.timer` | - |
| `04_try_except.py` | try except 简写:`@guan.try_decorator` 与 `guan.try_except` | - |
| `05_dump_and_load_data.py` | 变量写入文件并读回 | numpy |
| `06_print_array.py` | 打印数组 | numpy |
| `07_matrix_in_file.py` | 矩阵写入 Markdown / LaTeX 格式文件后查看 | numpy |
| `08_parallel_calculation.py` | 多进程并行计算 | - |
| `09_loop_calculation.py` | 循环参数计算(一、二、三个参数)与作图 | numpy, matplotlib |
| `10_is_hermitian.py` | 检查是否为厄米矩阵(相对误差 1e-5) | numpy |
| `11_split_parameters.py` | 数组分割,为并行计算准备参数 | numpy |
## 二、物理场景 / Physics scenarios
| File | 说明 | Requirements |
| --- | --- | --- |
| `01_pauli_matrices.py` | 泡利矩阵 | numpy |
| `02_real_space_hamiltonian.py` | 一维 / 二维方格 / 三维立方格的实空间哈密顿量 | numpy |
| `03_band_structure.py` | 能带图计算:一维链、方格带、石墨烯锯齿形带 | numpy, matplotlib |
| `04_chern_number_and_wilson_loop.py` | 陈数与 Wilson loop 计算 | numpy |
| `05_density_of_states_with_green_function.py` | 用格林函数计算态密度(方格与立方格,局域态密度) | numpy, matplotlib |
| `06_conductance_and_scattering_matrix.py` | 电导与散射矩阵的计算 | numpy, matplotlib |
| `07_wavefunction_gauge.py` | 波函数规范(fixed gauge)的选取 | numpy |
## 说明 / Notes
+ Some examples need an API Key, a local Ollama/llama.cpp/ModelScope model, or a specific model path.
Edit the paths in the scripts before running them.
+ `04_try_except.py` contains a deliberate `bug_code` call to demonstrate the exception handling.
+ Figures are saved to the current working directory when the plotting functions are used.
## License / 许可
The source post is published under [CC BY](https://www.guanjihuan.com), by
[Ji-Huan Guan](https://www.guanjihuan.com/about). Please cite the source when quoting:
https://www.guanjihuan.com/archives/38367