Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
d853e36
Refactor: DFT+U 10th refactor — HamiltLCAO operator-chain factory, fo…
mohanchen Sep 16, 2026
f4ce8f7
Fix: compile lr_io_krlist.cpp only with LibRI to repair non-EXX build…
goodchong Sep 16, 2026
575d8ce
Fix DSP linking order to eliminate Openblas warning (#7946)
Cstandardlib Sep 16, 2026
31c0829
Fix(deltaspin): free pre_hr/B_I_data caches on cal_pre_HR() reinitial…
dyzheng Sep 17, 2026
98b141a
tests: remove fifteen #define private public — by deleting dead hacks…
Critsium-xy Sep 17, 2026
33ec78c
source_md: pass MD_para explicitly and expose thermostat state, remov…
Critsium-xy Sep 17, 2026
e0bb4e9
tests: take source_base and source_hamilt off #define private public …
Critsium-xy Sep 17, 2026
db4e886
source_estate: give Occupy's stateless smearing helpers a real interf…
Critsium-xy Sep 17, 2026
4a9aee7
source_relax: give BFGS_Basic and Ions_Move_BFGS an explicit test sea…
Critsium-xy Sep 17, 2026
688d0c7
Output a screen notice when calculating EXX force/stress (#7975)
goodchong Sep 17, 2026
0051894
Feature: Symmetry for DFT+U (#7969)
maki49 Sep 18, 2026
882f825
source_hsolver: decouple the eigensolvers from hamilt through HSOpera…
Critsium-xy Sep 18, 2026
a3c8442
Refactor: Replace RapidJSON with nlohmann-json (#7979)
Growl1234 Sep 18, 2026
81343f6
Fix a bug in PW-DFPT; dfpt_pw_init.cpp: copy_occ_state_ball (#7986)
Zanthoxylum Sep 18, 2026
cfd4dcf
tests: take source_relax, source_esolver and source_md to zero access…
Critsium-xy Sep 18, 2026
a4506f3
Refactor OFDFT line-search status to std::string (#7985)
zzlinpku Sep 18, 2026
31a9c47
source_cell: give K_Vectors an explicit test seam, taking the module …
Critsium-xy Sep 18, 2026
b1d6dfc
source_estate: print_etot takes its INPUT parameters explicitly, remo…
Critsium-xy Sep 18, 2026
58ef72c
Fix: bug of DeltaSpin with nspin=2 for both pw and lcao base (#7977)
dyzheng Sep 18, 2026
239e8f4
Remove unused cereal JSON archive (#7993)
Growl1234 Sep 19, 2026
583a20b
Refactor charge density module (#7972)
mohanchen Sep 21, 2026
2e03225
tests: take three charge/DM tests off #define private public (#7998)
Critsium-xy Sep 21, 2026
3a46458
Refactor: replace the JSON path walker with schema operations (#7994)
Growl1234 Sep 21, 2026
e6a49e9
Fix: Correct FFTW version detection and NCCL build summary (#7995)
AsTonyshment Sep 21, 2026
734b8f4
Fix #7959 #7956, remove useless file. (#7962)
mohanchen Sep 22, 2026
3b7dcba
Refactor DFT+U, step 11 (#8001)
mohanchen Sep 23, 2026
f909894
tests: remove three more #define private public — Charge_Extra, cal_e…
Critsium-xy Sep 23, 2026
4f2a397
tests: run integration cases concurrently, cutting the CPU suites to …
Critsium-xy Sep 23, 2026
40e7ce8
Build: update version to v3.11.0-beta10 (#7997)
zzlinpku Sep 24, 2026
4b9f480
Refactor density matrix module. (#8000)
mohanchen Sep 24, 2026
184c75e
Docs: Fix Sphinx build warnings and treat warnings as errors (#7958)
Growl1234 Sep 24, 2026
3cc3c24
fix: replace raw new/delete with std::vector in cal_foverlap_rt (#8020)
mohanchen Sep 25, 2026
7fb23a2
Fix DMR spin-channel mismatch in openshell LR spectra (#8016)
maki49 Sep 25, 2026
4447d9f
Refactor projection in pw basis (#8007)
mohanchen Sep 25, 2026
d71963a
Fix BLACS grid leak in Parallel_2D (issue #8003) (#8013)
mohanchen Sep 25, 2026
fb9f03a
Fix ASE STRU parser KeyError on LATTICE_PARAMETER block (#8019)
mohanchen Sep 25, 2026
3478727
Fix #7556 and #7558 in pyabacus (#8021)
mohanchen Sep 25, 2026
47ef73a
fix: guard Binstream write path against unopened files and failed fwr…
mohanchen Sep 26, 2026
1202e6f
Fix: validate cube file parsing before copying charge data (#7563), i…
mohanchen Sep 26, 2026
e41e1fa
fix: rpa_ccp_rmesh_times wrongly pass. (#8036)
Fisherd99 Sep 27, 2026
789d947
Docs: repoint example links to the renumbered examples/ directories (…
pratikgx Sep 27, 2026
0b7e5a9
Fix(base,ri): release Sphbes and RPA helpers on exceptions (#8038)
Flying-dragon-boxing Sep 27, 2026
3c21c9c
Fix(pw): release EXX potential buffers on all exit paths (#8022) (#8037)
Flying-dragon-boxing Sep 27, 2026
0e1a2cf
Fix: split LibXC GGA threshold masks for vrho and vsigma following QE…
Flying-dragon-boxing Sep 27, 2026
be015ef
Feature(pw): batched FFTs, small ecutexx grid and band chunking for E…
Flying-dragon-boxing Sep 27, 2026
7873573
Move HSolverPW_SDFT into module_stodft as StoHSolverPW; rename Hamilt…
Critsium-xy Sep 27, 2026
1dd2b80
Toolchain: Remove OpenBLAS-based architecture detection (#7971)
Growl1234 Sep 27, 2026
52b4a45
Update out_stru parameter and its output context (#8026)
mohanchen Sep 28, 2026
bdea5af
feat(xc): add gga_grad 1/2 with variationally consistent mode 2 (#7924)
MagTheoryLab Sep 29, 2026
8e25e9f
[Refactor] Remove dead runtime-device memory wrappers (#8040)
Cstandardlib Sep 29, 2026
9602380
Feature: Plane-wave RT-TDDFT with CPU/GPU and mixed-precision support…
AsTonyshment Sep 30, 2026
8b87bd5
Drop the last source_pw/source_hamilt dependencies from source_hsolve…
Critsium-xy Sep 30, 2026
aa60c43
ci: run the GPU test suites concurrently and stop pull requests from …
Critsium-xy Sep 30, 2026
43a4a2a
Parallel DFT-D4 with MPI through work-partition (#8041)
Growl1234 Sep 30, 2026
9999e3b
Fix(xc): weight the vtxc gradient term by the valence density (#8047)
ahxbcn Sep 30, 2026
cd89b6f
style: fix two wrong @file tags and convert leading tab indentation t…
Critsium-xy Sep 30, 2026
a696c3b
Add standalone CUDA GPU neighbor list (#8008)
19hello Sep 30, 2026
ae9a2f2
Fix: remove include pw_basis_sup in pw_basis.h (#8045)
Qianruipku Sep 30, 2026
be96272
Docs(RTD): fix epub/pdf build gap between PR and post-merge builds (#…
ZhouXY-PKU Oct 1, 2026
782fb9a
Refactor DOS and PDOS output (#8030)
mohanchen Oct 2, 2026
e923f0c
fix LCAO EXX issue and bugs, refactor module_hs (#8033)
mohanchen Oct 2, 2026
ebc7991
Docs: Set Sphinx version to fix Read the Docs EPUB build (#8058)
Critsium-xy Oct 2, 2026
f57c13b
Docs(RTD): fix PDF build — Add LaTeX toolchain and MathJax-dialect sh…
ZhouXY-PKU Oct 3, 2026
544c106
feat(source_md): add PLUMED enhanced sampling support (module_plumed)…
MarkYoungIV Oct 4, 2026
b31f767
Fix PW hybrid ACE with uneven k-point pools (#8070)
Flying-dragon-boxing Oct 5, 2026
3ef505f
Feature: Accelerate PW RT-TDDFT with GMRES and Crank-Nicolson-aware s…
AsTonyshment Oct 5, 2026
09cbf1e
Fix #7426: tests: consolidate and rename 01_PW integration cases, ren…
mohanchen Oct 5, 2026
4858be6
Fix#7687 refactor: remove dead EXX_DEV code and out_mat_dh_exx input …
mohanchen Oct 5, 2026
aa5ca71
Fix #8010: Plane-wave basis header dependencies (#8060)
mohanchen Oct 5, 2026
fe72269
Refactor: convert headers to include guards and split .hpp implementa…
mohanchen Oct 5, 2026
63e9353
Fix #6546: Output relaxation information in running log (#8067)
mohanchen Oct 5, 2026
5ab81a0
Fix #8051: update round-trip parsing, missing-property handling, and …
mohanchen Oct 6, 2026
260139d
Diagnose #7794: diagnose: preserve failure evidence for ASE plugin CI…
mohanchen Oct 6, 2026
4c69130
Add DSP Lapack support (#8097)
Critsium-xy Oct 9, 2026
1d4ac5f
Feature: Add orthonormalization for PW RT-TDDFT (#8085)
AsTonyshment Oct 9, 2026
8174443
test: avoid redundant CI runs and radial array copies (#8100)
Critsium-xy Oct 9, 2026
9bbdc68
ci: keep performance benchmarks out of CI (#8101)
Critsium-xy Oct 9, 2026
729529c
Refactor: split ri_util.hpp into .h/.cpp and rename elpa_generic.hpp …
Critsium-xy Oct 9, 2026
40f925a
Fix #5021 #5939: warn on ignored x/y magnetization and remove nspin=4…
mohanchen Oct 10, 2026
0836dce
fix: refresh periodic ghost image shifts with skin (#8102)
19hello Oct 10, 2026
8d25cf2
Refactor Parallel_Grid::init into serial/parallel subroutines
MrLi000001 Oct 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .ci/slurm/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ runner = autotest_gpu

[case.080]
suite = 01_PW
name = 035_PW_15_SO
name = scf_spin4
resource = pw_gpu1
runner = autotest_gpu

Expand Down
2 changes: 2 additions & 0 deletions .github/instructions/abacus-governance.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ Apply these instructions when reviewing or changing ABACUS code:
usually warnings unless the PR records a narrow reason.
- Require LF line endings for text files. `.bat` and `.cmd` files are the CRLF
exceptions.
- Flag new `#pragma once` in header files as a blocker-level governance issue.
Require traditional `#ifndef`/`#define`/`#endif` include guards instead.
- For INPUT parameter behavior changes, require synchronized updates to
`docs/parameters.yaml` and `docs/advanced/input_files/input-main.md`, or a
clear no-update explanation in the PR.
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/ase_plugin_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,17 @@ jobs:
cd interfaces/ASE_interface/tests
chmod +x xtest.sh
./xtest.sh

# When a test fails, every integration test script (scf/relax/md/band/
# magnetic) preserves its whole ABACUS run directory under
# /tmp/abacus_ase_failure (see preserved_tmpdir in tests/common.py,
# overridable via ASE_ABACUS_KEEP_DIR). Upload it so remote-CI-only
# failures (e.g. issue #7794) can be root-caused without runner access.
- name: Upload ASE failure artifacts
if: failure()
uses: actions/upload-artifact@v7
with:
name: ase-failure-${{ github.run_id }}-${{ github.run_attempt }}
path: /tmp/abacus_ase_failure/**
if-no-files-found: ignore
retention-days: 14
4 changes: 2 additions & 2 deletions .github/workflows/build_test_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:

- tag: gnu
external_toolchain_args: ""
build_args: "-DENABLE_LIBXC=ON -DENABLE_MLALGO=ON -DENABLE_LIBRI=ON -DENABLE_DFTD4=ON -DENABLE_PEXSI=ON"
build_args: "-DENABLE_LIBXC=ON -DENABLE_MLALGO=ON -DENABLE_LIBRI=ON -DENABLE_DFTD4=ON -DENABLE_PEXSI=ON -DENABLE_JSON=ON"
name: "Build extra components with GNU toolchain"
- tag: intel
external_toolchain_args: "--with-intel"
build_args: "-DENABLE_LIBXC=ON -DENABLE_MLALGO=ON -DENABLE_LIBRI=ON -DENABLE_DFTD4=ON"
build_args: "-DENABLE_LIBXC=ON -DENABLE_MLALGO=ON -DENABLE_LIBRI=ON -DENABLE_DFTD4=ON -DENABLE_JSON=ON"
name: "Build extra components with Intel toolchain"

- tag: cuda
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/build_test_makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v7.0.1
- name: Build
# TODO: Remove nlohmann-json installation here since Dockerfile will have installed it.
run: |
apt update && apt install -y nlohmann-json3-dev
export I_MPI_CXX=icpx
chmod a+x generate_build_info.sh
cd source
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ jobs:
-DENABLE_MLALGO=ON \
-DENABLE_LIBXC=ON \
-DENABLE_LIBRI=ON \
-DENABLE_GOOGLEBENCH=ON \
-DENABLE_RAPIDJSON=ON \
-DENABLE_GOOGLEBENCH=OFF \
-DENABLE_JSON=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="--coverage -fprofile-arcs -ftest-coverage" \
-DCMAKE_EXE_LINKER_FLAGS="--coverage"
Expand All @@ -83,7 +83,7 @@ jobs:

lcov --directory . --capture --output-file coverage.info

lcov --remove coverage.info '/usr/*' '*/test/*' '*/external/*' '*/build/*' --output-file coverage.filtered.info
lcov --remove coverage.info '/usr/*' '*/test/*' '*/unittests/*' '*/external/*' '*/build/*' --output-file coverage.filtered.info

genhtml coverage.filtered.info --output-directory coverage-report

Expand Down
36 changes: 27 additions & 9 deletions .github/workflows/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ jobs:
CCACHE_BASEDIR: ${{ github.workspace }}
CCACHE_COMPRESS: "true"
CCACHE_MAXSIZE: 8G
# Test cases to run side by side. The runner has 12 cores and one
# V100-32GB; a GPU case is a few atoms and takes about 2 s, so these
# suites are bound by process startup, not by the device. Four leaves
# every rank a core of its own and keeps the concurrent CUDA contexts
# far inside the card's memory.
GPU_TEST_JOBS: "4"
steps:
- name: Checkout
uses: actions/checkout@v7.0.1
Expand All @@ -46,7 +52,7 @@ jobs:
echo "fingerprint=${fingerprint}" >> "${GITHUB_OUTPUT}"

- name: Restore compiler cache
uses: actions/cache@v6
uses: actions/cache/restore@v6
with:
path: ${{ env.CCACHE_DIR }}
key: abacus-cuda-ccache-v1-${{ runner.os }}-${{ runner.arch }}-${{ steps.compiler.outputs.fingerprint }}-${{ github.sha }}
Expand All @@ -72,6 +78,7 @@ jobs:
source toolchain/install/setup
rm -rf build
cmake -B build -G Ninja -DUSE_CUDA=ON -DBUILD_TESTING=ON -DENABLE_FLOAT_FFTW=ON \
-DENABLE_GOOGLEBENCH=OFF \
-DCMAKE_CUDA_ARCHITECTURES=70
cmake --build build -j "$(nproc)"
cmake --install build
Expand All @@ -82,6 +89,17 @@ jobs:
ccache --show-stats
ccache --show-stats >> "${GITHUB_STEP_SUMMARY}"

# Only develop writes the cache. A cache saved from a pull request is
# scoped to that pull request's ref, so no other branch can ever read
# it, while it still counts against the repository's 10 GB budget and
# evicts the develop entry that every pull request does restore from.
- name: Save compiler cache
if: github.ref == 'refs/heads/develop'
uses: actions/cache/save@v6
with:
path: ${{ env.CCACHE_DIR }}
key: abacus-cuda-ccache-v1-${{ runner.os }}-${{ runner.arch }}-${{ steps.compiler.outputs.fingerprint }}-${{ github.sha }}

- name: Module_LCAO CUDA Unittests
env:
GTEST_COLOR: 'yes'
Expand All @@ -92,17 +110,17 @@ jobs:
- name: Test 11_PW_GPU
run: |
cd tests/11_PW_GPU
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 12_NAO_Gamma_GPU
run: |
cd tests/12_NAO_Gamma_GPU
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 13_NAO_multik_GPU
run: |
cd tests/13_NAO_multik_GPU
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 02_NAO_Gamma on GPU
run: |
Expand All @@ -114,7 +132,7 @@ jobs:
echo "device gpu" >> "$f"
fi
done
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 03_NAO_multik on GPU
run: |
Expand All @@ -126,17 +144,17 @@ jobs:
echo "device gpu" >> "$f"
fi
done
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 15_rtTDDFT_GPU
run: |
cd tests/15_rtTDDFT_GPU
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 16_SDFT_GPU
run: |
cd tests/16_SDFT_GPU
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 2 -j "$GPU_TEST_JOBS" -f CASES_GPU.txt

- name: Test 01_PW on GPU
run: |
Expand All @@ -148,4 +166,4 @@ jobs:
echo "device gpu" >> "$f"
fi
done
bash ../integrate/Autotest.sh -n 1 -a abacus -f CASES_GPU.txt
bash ../integrate/Autotest.sh -n 1 -j "$GPU_TEST_JOBS" -a abacus -f CASES_GPU.txt
33 changes: 0 additions & 33 deletions .github/workflows/performance.yml

This file was deleted.

32 changes: 25 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
echo "fingerprint=${fingerprint}" >> "${GITHUB_OUTPUT}"

- name: Restore compiler cache
uses: actions/cache@v6
uses: actions/cache/restore@v6
with:
path: ${{ env.CCACHE_DIR }}
key: abacus-gnu-ccache-v1-${{ runner.os }}-${{ runner.arch }}-${{ steps.compiler.outputs.fingerprint }}-${{ github.sha }}
Expand Down Expand Up @@ -92,8 +92,8 @@ jobs:
-DENABLE_MLALGO=ON \
-DENABLE_LIBXC=ON \
-DENABLE_LIBRI=ON \
-DENABLE_GOOGLEBENCH=ON \
-DENABLE_RAPIDJSON=ON \
-DENABLE_GOOGLEBENCH=OFF \
-DENABLE_JSON=ON \
-DENABLE_FLOAT_FFTW=ON \
-DENABLE_DFTD4=ON \
-DENABLE_PEXSI=ON \
Expand Down Expand Up @@ -121,6 +121,17 @@ jobs:
ccache --show-stats
ccache --show-stats >> "${GITHUB_STEP_SUMMARY}"

# Only develop writes the cache. A cache saved from a pull request is
# scoped to that pull request's ref, so no other branch can ever read
# it, while it still counts against the repository's 10 GB budget and
# evicts the develop entry that every pull request does restore from.
- name: Save compiler cache
if: github.ref == 'refs/heads/develop'
uses: actions/cache/save@v6
with:
path: ${{ env.CCACHE_DIR }}
key: abacus-gnu-ccache-v1-${{ runner.os }}-${{ runner.arch }}-${{ steps.compiler.outputs.fingerprint }}-${{ github.sha }}

- name: Check documentation consistency
run: |
ABACUS_BIN=$(find build -name "abacus_*" -type f -executable | head -1)
Expand Down Expand Up @@ -175,7 +186,7 @@ jobs:
GTEST_COLOR: 'yes'
OMP_NUM_THREADS: '2'
run: |
ctest --test-dir build -V --timeout 1700 -R MODULE_HSOLVER -E PERF_MODULE_HSOLVER_KERNELS
ctest --test-dir build -V --timeout 1700 -R MODULE_HSOLVER

- name: Module_Cell Unittests
env:
Expand Down Expand Up @@ -212,6 +223,13 @@ jobs:
run: |
ctest --test-dir build -V --timeout 1700 -R MODULE_ESTATE

- name: Module_Charge Unittests
env:
GTEST_COLOR: 'yes'
OMP_NUM_THREADS: '2'
run: |
ctest --test-dir build -V --timeout 1700 -R MODULE_CHARGE

- name: Module_Hamilt Unittests
env:
GTEST_COLOR: 'yes'
Expand Down Expand Up @@ -310,12 +328,12 @@ jobs:
run: |
ctest --test-dir build -V --timeout 1700 -R 07_OFDFT

- name: 08_EXX Test
- name: 08_RI Test
env:
GTEST_COLOR: 'yes'
OMP_NUM_THREADS: '2'
run: |
ctest --test-dir build -V --timeout 1700 -R 08_EXX
ctest --test-dir build -V --timeout 1700 -R 08_RI

- name: 09_DeePKS Test
env:
Expand Down Expand Up @@ -343,4 +361,4 @@ jobs:
GTEST_COLOR: 'yes'
OMP_NUM_THREADS: '2'
run: |
ctest --test-dir build -V --timeout 1700 -E 'integrate_test|01_PW|02_NAO_Gamma|03_NAO_multik|04_FF|05_rtTDDFT|06_SDFT|07_OFDFT|08_EXX|09_DeePKS|10_others|11_PW_GPU|12_NAO_Gamma_GPU|13_NAO_multik_GPU|15_rtTDDFT_GPU|16_SDFT_GPU|17_DS_DFTU|MODULE_BASE|MODULE_IO|MODULE_HSOLVER|MODULE_CELL|MODULE_MD|MODULE_PSI|MODULE_ESTATE|MODULE_RI|MODULE_HAMILT|MODULE_PW|MODULE_LCAO|MODULE_AO|MODULE_NAO|MODULE_RELAX|MODULE_LR'
ctest --test-dir build -V --timeout 1700 -E 'integrated_test|01_PW|02_NAO_Gamma|03_NAO_multik|04_FF|05_rtTDDFT|06_SDFT|07_OFDFT|08_RI|09_DeePKS|10_others|11_PW_GPU|12_NAO_Gamma_GPU|13_NAO_multik_GPU|15_rtTDDFT_GPU|16_SDFT_GPU|17_DS_DFTU|MODULE_BASE|MODULE_IO|MODULE_HSOLVER|MODULE_CELL|MODULE_MD|MODULE_PSI|MODULE_ESTATE|MODULE_CHARGE|MODULE_RI|MODULE_HAMILT|MODULE_PW|MODULE_LCAO|MODULE_AO|MODULE_NAO|MODULE_RELAX|MODULE_LR'
19 changes: 17 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,32 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
# Toolchain for the `latexpdf` output (latex_engine = 'xelatex' in conf.py).
# Note: none of these come with the default image — each package below
# fixed a real build failure encountered during local verification.
jobs:
pre_build:
# RTD builds PR (external) versions as HTML only, so PDF failures would
# not surface until post-merge. Run the same latex->PDF chain here as a
# pre-merge gate. `latexpdf` is a make-mode target, not a -b builder,
# hence the two-step latex build + make all-pdf.
- |
if [ "$READTHEDOCS_VERSION_TYPE" = "external" ]; then
sphinx-build -b latex docs/ _latex_prcheck --fail-on-warning
fi


# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true
fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
formats: all
formats:
- pdf

# Optional but recommended, declare the Python requirements required
# to build your documentation
Expand Down
14 changes: 14 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ rules. Read the complete governance document before making or reviewing changes:
initializer list to direct parameter passthrough. Perform multi-step
computations in the constructor body instead, so failures are easy to
debug and each intermediate result is inspectable.
14. Do not write conditional or computed expressions in a function's
argument list; first assign the value to a named local variable, then
pass that variable. This keeps each argument inspectable and makes the
call site self-documenting. For example, prefer
`const int isk = (nspin == 2 && isk_ptr) ? isk_ptr[ik] : 0;`
followed by `f(..., isk, ...)` over inlining the ternary into the call.
15. Do not use `#pragma once` in header files; use traditional
`#ifndef`/`#define`/`#endif` include guards instead.
- Use LF line endings for text files. Only `.bat` and `.cmd` files may use CRLF.
- Keep source file additions deterministic: update the relevant `CMakeLists.txt`
or explain why the file is generated or included indirectly.
Expand Down Expand Up @@ -157,6 +165,12 @@ full mixed-line-ending hook only for intentional repository-wide normalization.
- Pull requests: https://github.com/deepmodeling/abacus-develop/pulls
- Upstream PRs are opened from personal fork branches
(`<fork-owner>:<branch>` into `develop`).
- When synchronizing a local branch with `upstream/develop`, prefer
`git merge upstream/develop` over `git rebase upstream/develop`. Merge
preserves the original commit SHAs of the local work, keeps the branch
pushable without `--force`, and avoids re-applying a long patch series
when conflicts arise. Use rebase only when the user explicitly asks for
a linear history.
- `workflow_dispatch`-only workflows (e.g. `.github/workflows/interface.yml`)
are not triggered by push/PR events; PR CI cannot verify such fixes, so
state "manual dispatch run required" in the PR verification notes.
Expand Down
Loading
Loading