docs(inference): document vesin neighbor list and nlist_backend for Python/ASE inference
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 75/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Quiet
- Domain
- documentation
Research direction
Start with doc/inference/python.md:61-79, then read deepmd/pt_expt/infer/deep_eval.py:185-310 and deepmd/pt_expt/utils/vesin_neighbor_list.py; inspect deepmd/calculator.py for ASE passthrough details. Update the neighbor-list section with verified nlist_backend behavior, vesin requirements, and graph-model scope, then confirm the documentation with the specified grep commands.
Written by the indexing model from the issue text.
Description
Parent issue: #5917 (checklist item 7)
Scope
23622361d (feat(pt_expt): pluggable NeighborList strategy + O(N) vesin neighbor list for Python/ASE inference) added:
deepmd/pt_expt/utils/vesin_neighbor_list.py— an O(N) neighbor list built on the vesin package;- a
nlist_backendargument ("auto"/"vesin"/"native") on the pt-exptDeepEval(deepmd/pt_expt/infer/deep_eval.py:214, selection logic at:271-300), surfaced throughdeepmd.infer.DeepPotfor.pt2/.ptemodels and the ASE calculator (verify passthrough indeepmd/calculator.py).
doc/inference/python.md:61-79 ("External neighbor list algorithm") is TensorFlow-only and mentions neither pt-expt nor vesin; vesin appears nowhere in doc/.
Implementation plan
doc/inference/python.md
Rework the final section; read deepmd/pt_expt/infer/deep_eval.py:185-310 and deepmd/pt_expt/utils/vesin_neighbor_list.py before writing.
- Rename/extend the section to cover both mechanisms, keeping the existing TF content (heading e.g. "Neighbor list algorithm"; update the supported-backends note to TensorFlow {{ tensorflow_icon }} and PyTorch-Exportable {{ pytorch_icon }}).
- Keep the existing TF
neighbor_list=ASE example as its own subsection. - Add a pt-expt subsection documenting:
- The default neighbor list is the native O(N²) pairwise search for non-graph-form models;
nlist_backendselects the strategy:"auto"(use vesin when the package is installed — verify exact auto behavior),"vesin", or"native". - Example:
dp = DeepPot("model.pt2", nlist_backend="vesin")(verify the public signature ondeepmd.infer.DeepPot/ how kwargs reach the pt-expt DeepEval). - vesin provides an O(N) cell-list neighbor search; requires the optional
vesinpackage; document the failure mode whenvesinis requested but not installed (verify the raised error). - If the ASE calculator exposes the knob (check
deepmd/calculator.py), document it too; otherwise state ASE usage follows the samenlist_backendargument. - Note the knob is ignored for graph-form (NeighborGraph,
--lower-kind graph) models, where the graph builder owns neighbor construction (seedeep_eval.py:199docstring note).
- The default neighbor list is the native O(N²) pairwise search for non-graph-form models;
Constraints
- Verify the exact parameter name/defaults/values and error behavior from the code; do not guess.
- Note: this section is about Python/ASE inference only; LAMMPS neighbor lists are out of scope.
Verification
grep -n -i "vesin" doc/inference/python.mdshows the new subsection.grep -n "nlist_backend" doc/inference/python.mddocuments the three values.
Parent issue: #5917
Coding agent: opencode
opencode version: 1.18.9
Model: ustc/k3
Reasoning effort: max
- Dominant language
- Python
- Stars
- 2.1k
- Forks
- 663
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 25
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from deepmodeling/deepmd-kit
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
deepmodeling/deepmd-kit#6086 ·
Maintainers usually reply within 3 days
-
Fine-tune descriptor mismatch warning should ignore seedPossibly taken @SiyuanChenToDo claimed this 23 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
deepmodeling/deepmd-kit#6038 · 2 comments ·
Maintainers usually reply within 3 days
-
Docs enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
deepmodeling/deepmd-kit#5766 · 1 comment ·
Maintainers usually reply within 3 days
-
branch: master lang: py todo comment type: todo
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
deepmodeling/deepmd-kit#5480 ·
Maintainers usually reply within 3 days
-
branch: master lang: toml todo comment type: todo
Difficulty 1/5 Under an hour Newbie friendliness 72/100
deepmodeling/deepmd-kit#5462 ·
Maintainers usually reply within 3 days
All issues in deepmodeling/deepmd-kit
Similar issues
-
documentation good first issue priority: P2 status: ready
Difficulty 1/5 Under an hour Newbie friendliness 88/100
RhinoLink-Tech/data-fabric#500 ·
Maintainers usually reply within 1 day
-
backlog
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
EchoTools/nevr-runtime#2384 ·
Maintainers usually reply within 1 day
-
[Bug]: The H2 series' and the H3C's fan 3 is labelled "Chamber Fan", Bambu calls it the exhaust fanOpenarea:ui
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
btclib-org/btclib#3062 ·
Maintainers usually reply within 1 day
-
area:evals area:infra enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
jse-avl/support-bot#4 · 1 comment ·