NepTrainKit 2.8.4.dev0__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- neptrainkit-3.0.0/.gitignore +34 -0
- neptrainkit-2.8.4.dev0/.readthedocs.yml → neptrainkit-3.0.0/.readthedocs.yaml +5 -7
- neptrainkit-3.0.0/AGENTS.md +31 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/MANIFEST.in +4 -7
- neptrainkit-3.0.0/PKG-INFO +150 -0
- neptrainkit-3.0.0/README.md +101 -0
- neptrainkit-3.0.0/README.zh-CN.md +101 -0
- neptrainkit-3.0.0/THIRD_PARTY_NOTICES.md +34 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/pyproject.toml +14 -9
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/requirements.txt +2 -0
- neptrainkit-3.0.0/setup.py +74 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/SKILL.md +185 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/agents/openai.yaml +4 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/references/card-touchpoints.md +38 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/references/requirements-to-card-spec-template.md +84 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/references/validation-playbook.md +79 -0
- neptrainkit-3.0.0/skills/make-dataset-card-dev/scripts/run_card_checks.py +165 -0
- neptrainkit-3.0.0/src/NepTrainKit/__init__.py +68 -0
- neptrainkit-3.0.0/src/NepTrainKit/_native/__init__.py +1 -0
- neptrainkit-3.0.0/src/NepTrainKit/_version.py +24 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/config.py +26 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/__init__.py +2 -2
- neptrainkit-3.0.0/src/NepTrainKit/core/adapter_api.py +70 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/alloy.py +78 -16
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/__init__.py +129 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/composition.py +122 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/config_types.py +91 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/context.py +159 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/data_quality.py +566 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/engine.py +400 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/evidence_cache.py +463 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/extract.py +125 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/findings.py +338 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/inventory.py +209 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/label_ranges.py +212 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/local_chemistry.py +436 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/magnetic_inventory.py +509 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/neighbor_scan.py +353 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/nep_cutoff.py +93 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/pair_contacts.py +273 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/phase_inventory.py +352 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/phase_refinement.py +534 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/phase_sketch.py +706 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/report.py +736 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/audit/result.py +424 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/calculator.py +602 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/card_manager.py +211 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/__init__.py +14 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/alloy.py +1616 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/defect.py +603 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/filter.py +249 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/geometry.py +22 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/lattice.py +670 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/magnetism.py +1635 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/operation.py +42 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/solvation.py +1024 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/cards/structure.py +779 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/dataset/__init__.py +8 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/dataset/catalog.py +210 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/dataset/catalogs/nep_data.v1.json +731 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/dataset/manager.py +59 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/dataset/seed.py +22 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/dataset/services.py +2 -28
- neptrainkit-3.0.0/src/NepTrainKit/core/filter_presets.py +157 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/geometry_cache.py +201 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/__init__.py +9 -3
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/base.py +734 -1628
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/deepmd.py +93 -171
- neptrainkit-3.0.0/src/NepTrainKit/core/io/distribution.py +1009 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/importers.py +622 -300
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/nep.py +310 -223
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/registry.py +22 -6
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/sampler.py +202 -8
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/io/tace.py +9 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/message.py +157 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/precision.py +9 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/runtime_health.py +125 -0
- neptrainkit-3.0.0/src/NepTrainKit/core/search.py +234 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/structure.py +692 -70
- neptrainkit-3.0.0/src/NepTrainKit/core/structure_inspection.py +129 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/types.py +219 -1
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/utils.py +0 -65
- neptrainkit-3.0.0/src/NepTrainKit/i18n.py +176 -0
- neptrainkit-3.0.0/src/NepTrainKit/logging_config.py +78 -0
- neptrainkit-3.0.0/src/NepTrainKit/main.py +827 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/paths.py +10 -5
- neptrainkit-3.0.0/src/NepTrainKit/runtime_package.py +670 -0
- neptrainkit-3.0.0/src/NepTrainKit/src_rc.py +28167 -0
- neptrainkit-3.0.0/src/NepTrainKit/startup.py +81 -0
- neptrainkit-3.0.0/src/NepTrainKit/translations/neptrainkit_zh_CN.qm +0 -0
- neptrainkit-3.0.0/src/NepTrainKit/translations/neptrainkit_zh_CN.ts +12608 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/base/canvas.py +88 -22
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/canvas_factory.py +2 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/pyqtgraph/canvas.py +142 -10
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/pyqtgraph/distribution.py +155 -17
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/pyqtgraph/structure.py +18 -32
- neptrainkit-3.0.0/src/NepTrainKit/ui/canvas/structure_view.py +51 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/canvas/vispy/canvas.py +2522 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/vispy/distribution.py +130 -15
- neptrainkit-3.0.0/src/NepTrainKit/ui/canvas/vispy/fast_scatter.py +192 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/vispy/structure.py +542 -138
- neptrainkit-3.0.0/src/NepTrainKit/ui/controllers/__init__.py +5 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/controllers/structure_filter_controller.py +128 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/messages.py +333 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/pages/__init__.py +32 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/pages/data_manager.py +25 -12
- neptrainkit-3.0.0/src/NepTrainKit/ui/pages/makedata.py +856 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/pages/settings.py +289 -77
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/pages/show_nep.py +883 -233
- neptrainkit-3.0.0/src/NepTrainKit/ui/pages/training_set_audit.py +4992 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/pages/training_set_audit_overview.py +89 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/threads.py +381 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/update.py +270 -30
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/_card/__init__.py +25 -1
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/bain_path_card.py +105 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/_card/card_group.py +61 -5
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/cell_scaling_card.py +188 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/cell_strain_card.py +171 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/composition_gradient_card.py +142 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/composition_sweep_card.py +261 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/conditional_replace_card.py +134 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/correlated_random_spin_card.py +231 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/crystal_prototype_builder_card.py +155 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/finite_cell_alloy_occupancy_card.py +430 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/folded_helix_card.py +270 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/fps_filter_card.py +316 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/geometry_filter_card.py +124 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/group_label_card.py +120 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/i18n_utils.py +139 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/interstitial_adsorbate_card.py +218 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/layer_copy_card.py +270 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/local_solvation_card.py +316 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/magmom_rotation_card.py +182 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/magnetic_order_card.py +312 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/ordered_alloy_prototype_card.py +262 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/_card/organic_mol_config_pbc_card.py +141 -167
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/_card/perturb_card.py +86 -125
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/random_doping_card.py +150 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/random_occupancy_card.py +152 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/random_packing_card.py +134 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/_card/random_slab_card.py +66 -75
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/random_vacancy_card.py +150 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/set_magnetic_moments_card.py +217 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/shear_angle_card.py +144 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/shear_matrix_card.py +152 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/small_angle_spin_tilt_card.py +475 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/solvent_box_fill_card.py +259 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/spin_disorder_card.py +209 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/spin_spiral_card.py +332 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/stacking_fault_card.py +108 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/strict_gsfe_path_card.py +133 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/super_cell_card.py +224 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/vacancy_defect_card.py +198 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/_card/vibration_perturb_card.py +179 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/cards.py +111 -10
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/dataset_widget.py +113 -35
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/nep.py +247 -140
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/project_view.py +66 -22
- neptrainkit-3.0.0/src/NepTrainKit/ui/views/structure.py +324 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/toolbar.py +60 -49
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/__init__.py +106 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/alloy_site_rules.py +757 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/audit_chart.py +991 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/card_metadata.py +997 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/card_widget.py +264 -62
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/dialog.py +2224 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/distribution.py +687 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/doping_rule.py +94 -42
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/filter_bar.py +878 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/input.py +5 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/search_widget.py +12 -13
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/structure_filter_bar.py +1441 -0
- neptrainkit-3.0.0/src/NepTrainKit/ui/widgets/training_set_audit_window.py +256 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/tree.py +1 -2
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/vacancy_rule.py +64 -16
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/utils.py +0 -41
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/version.py +32 -5
- neptrainkit-3.0.0/src/NepTrainKit.egg-info/PKG-INFO +150 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/SOURCES.txt +84 -52
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/requires.txt +7 -1
- neptrainkit-3.0.0/src/NepTrainKit.egg-info/scm_file_list.json +694 -0
- neptrainkit-3.0.0/src/NepTrainKit.egg-info/scm_version.json +8 -0
- neptrainkit-3.0.0/src/native/audit/module.cpp +847 -0
- neptrainkit-3.0.0/src/native/include/neptrainkit/native/periodic_neighbors.hpp +655 -0
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/_fastxyz.cpp → neptrainkit-3.0.0/src/native/io/module.cpp +260 -136
- neptrainkit-3.0.0/src/native/magnetism/module.cpp +596 -0
- neptrainkit-3.0.0/src/native/phase/module.cpp +1003 -0
- neptrainkit-2.8.4.dev0/.gitignore +0 -16
- neptrainkit-2.8.4.dev0/PKG-INFO +0 -209
- neptrainkit-2.8.4.dev0/README.md +0 -163
- neptrainkit-2.8.4.dev0/THIRD_PARTY_NOTICES.md +0 -40
- neptrainkit-2.8.4.dev0/setup.py +0 -402
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/SKILL.md +0 -144
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/agents/openai.yaml +0 -4
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/references/card-touchpoints.md +0 -26
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/references/requirements-to-card-spec-template.md +0 -57
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/references/validation-playbook.md +0 -42
- neptrainkit-2.8.4.dev0/skills/make-dataset-card-dev/scripts/run_card_checks.py +0 -97
- neptrainkit-2.8.4.dev0/src/NepTrainKit/__init__.py +0 -29
- neptrainkit-2.8.4.dev0/src/NepTrainKit/_version.py +0 -34
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/calculator.py +0 -464
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/card_manager.py +0 -109
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/dataset/__init__.py +0 -2
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/dataset/manager.py +0 -841
- neptrainkit-2.8.4.dev0/src/NepTrainKit/core/message.py +0 -137
- neptrainkit-2.8.4.dev0/src/NepTrainKit/main.py +0 -234
- neptrainkit-2.8.4.dev0/src/NepTrainKit/src_rc.py +0 -31929
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/canvas/vispy/canvas.py +0 -1076
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/messages.py +0 -95
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/pages/__init__.py +0 -9
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/pages/makedata.py +0 -489
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/threads.py +0 -200
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/cell_scaling_card.py +0 -231
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/cell_strain_card.py +0 -217
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/composition_sweep_card.py +0 -516
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/conditional_replace_card.py +0 -447
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/crystal_prototype_builder_card.py +0 -200
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/folded_helix_card.py +0 -435
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/fps_filter_card.py +0 -203
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/group_label_card.py +0 -136
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/interstitial_adsorbate_card.py +0 -312
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/layer_copy_card.py +0 -465
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/magmom_rotation_card.py +0 -263
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/magnetic_order_card.py +0 -442
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/random_doping_card.py +0 -249
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/random_occupancy_card.py +0 -177
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/random_vacancy_card.py +0 -172
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/set_magnetic_moments_card.py +0 -271
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/shear_angle_card.py +0 -169
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/shear_matrix_card.py +0 -179
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/small_angle_spin_tilt_card.py +0 -851
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/spin_spiral_card.py +0 -669
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/stacking_fault_card.py +0 -116
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/super_cell_card.py +0 -486
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/vacancy_defect_card.py +0 -213
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/_card/vibration_perturb_card.py +0 -209
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/views/structure.py +0 -86
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/widgets/__init__.py +0 -96
- neptrainkit-2.8.4.dev0/src/NepTrainKit/ui/widgets/dialog.py +0 -2591
- neptrainkit-2.8.4.dev0/src/NepTrainKit.egg-info/PKG-INFO +0 -209
- neptrainkit-2.8.4.dev0/src/nep_cpu/README.md +0 -32
- neptrainkit-2.8.4.dev0/src/nep_cpu/dftd3para.h +0 -12491
- neptrainkit-2.8.4.dev0/src/nep_cpu/ewald_nep.cpp +0 -282
- neptrainkit-2.8.4.dev0/src/nep_cpu/ewald_nep.h +0 -45
- neptrainkit-2.8.4.dev0/src/nep_cpu/neighbor_nep.cpp +0 -397
- neptrainkit-2.8.4.dev0/src/nep_cpu/neighbor_nep.h +0 -39
- neptrainkit-2.8.4.dev0/src/nep_cpu/nep.cpp +0 -3095
- neptrainkit-2.8.4.dev0/src/nep_cpu/nep.h +0 -243
- neptrainkit-2.8.4.dev0/src/nep_cpu/nep_cpu.cpp +0 -494
- neptrainkit-2.8.4.dev0/src/nep_cpu/nep_utilities.h +0 -929
- neptrainkit-2.8.4.dev0/src/nep_gpu/README.md +0 -34
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/dataset.cu +0 -1036
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/dataset.cuh +0 -103
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/fitness.cu +0 -739
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/fitness.cuh +0 -71
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/main.cu +0 -80
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/mic.cuh +0 -32
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/nep.cu +0 -906
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/nep.cuh +0 -103
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/nep_charge.cu +0 -1783
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/nep_charge.cuh +0 -129
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/parameters.cu +0 -1374
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/parameters.cuh +0 -165
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/potential.cuh +0 -33
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/snes.cu +0 -698
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/snes.cuh +0 -81
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/structure.cu +0 -701
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/structure.cuh +0 -54
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/tnep.cu +0 -810
- neptrainkit-2.8.4.dev0/src/nep_gpu/main_nep/tnep.cuh +0 -96
- neptrainkit-2.8.4.dev0/src/nep_gpu/nep_desc.cu +0 -214
- neptrainkit-2.8.4.dev0/src/nep_gpu/nep_desc.cuh +0 -227
- neptrainkit-2.8.4.dev0/src/nep_gpu/nep_gpu.cu +0 -927
- neptrainkit-2.8.4.dev0/src/nep_gpu/nep_parameters.cu +0 -262
- neptrainkit-2.8.4.dev0/src/nep_gpu/nep_parameters.cuh +0 -38
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/common.cuh +0 -27
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/cusolver_wrapper.cu +0 -197
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/cusolver_wrapper.cuh +0 -21
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/error.cu +0 -189
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/error.cuh +0 -85
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/gnep_utilities.cuh +0 -1797
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/gpu_macro.cuh +0 -199
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/gpu_vector.cuh +0 -207
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/least_square.cuh +0 -497
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/main_common.cu +0 -76
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/main_common.cuh +0 -19
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/nep_utilities.cuh +0 -938
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/read_file.cu +0 -133
- neptrainkit-2.8.4.dev0/src/nep_gpu/utilities/read_file.cuh +0 -21
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/.gitattributes +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/LICENSE +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/pyrightconfig.json +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/setup.cfg +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/Config/config.sqlite +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/Config/nep.json +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/Config/nep89.txt +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/Config/ptable.json +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/config_type.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/cstdio_redirect.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/dataset/database.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/dataset/models.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/energy_shift.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/magnetism.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/core/torsion_guard_pbc.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/base/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/base/distribution.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/distribution_factory.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/pyqtgraph/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/canvas/vispy/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/dialogs.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/updater.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/views/__init__.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/button.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/completer.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/docker.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/label.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/layout.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/settingscard.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit/ui/widgets/table.py +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/dependency_links.txt +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/entry_points.txt +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/not-zip-safe +0 -0
- {neptrainkit-2.8.4.dev0 → neptrainkit-3.0.0}/src/NepTrainKit.egg-info/top_level.txt +0 -0
- {neptrainkit-2.8.4.dev0/src/NepTrainKit/core → neptrainkit-3.0.0/src/native/io}/fast_float.h +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
**/__pycache__/
|
|
2
|
+
/src/NepTrainKit.egg-info/
|
|
3
|
+
/build
|
|
4
|
+
/dist
|
|
5
|
+
/docs/build
|
|
6
|
+
/docs/_build
|
|
7
|
+
/docs/source/locale/**/*.mo
|
|
8
|
+
/docs/superpowers/
|
|
9
|
+
/.tmp/docs-screenshots
|
|
10
|
+
.idea/
|
|
11
|
+
/src/NepTrainKit/?.py
|
|
12
|
+
/src/NepTrainKit/_version.py
|
|
13
|
+
/src/NepTrainKit/Log/*.log
|
|
14
|
+
.pytest_cache/
|
|
15
|
+
.superpowers/
|
|
16
|
+
tests/_sandbox_tmp/
|
|
17
|
+
tests/_localappdata/
|
|
18
|
+
tests/_tmp/
|
|
19
|
+
tests/_pytest_cache/
|
|
20
|
+
tests/_pytest_tmp/
|
|
21
|
+
tests/pytest-cache-files-*/
|
|
22
|
+
/.tmp_localappdata/
|
|
23
|
+
|
|
24
|
+
# Local platform builds and generated diagnostics
|
|
25
|
+
**/.DS_Store
|
|
26
|
+
/src/NepTrainKit/**/*.so
|
|
27
|
+
/diagnostics/
|
|
28
|
+
/tmp/
|
|
29
|
+
|
|
30
|
+
# Outputs generated while exercising bundled test fixtures
|
|
31
|
+
/tests/data/**/descriptor.pca2.json
|
|
32
|
+
/tests/data/**/descriptor.pca2.npy
|
|
33
|
+
/tests/data/**/nep.in
|
|
34
|
+
/tests/data/nep/*.out
|
|
@@ -9,18 +9,16 @@ build:
|
|
|
9
9
|
os: ubuntu-22.04
|
|
10
10
|
tools:
|
|
11
11
|
python: "3.12"
|
|
12
|
-
# You can also specify other tool versions:
|
|
13
|
-
# nodejs: "20"
|
|
14
|
-
# rust: "1.70"
|
|
15
|
-
# golang: "1.20"
|
|
16
12
|
|
|
17
13
|
# Build documentation in the "docs/" directory with Sphinx
|
|
14
|
+
# The parent and translation projects share this file. ``conf.py`` reads
|
|
15
|
+
# READTHEDOCS_LANGUAGE so each project builds only its configured language.
|
|
18
16
|
sphinx:
|
|
19
17
|
configuration: docs/source/conf.py
|
|
20
18
|
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
|
|
21
19
|
# builder: "dirhtml"
|
|
22
|
-
#
|
|
23
|
-
|
|
20
|
+
# Keep both language projects strict and fail on broken documentation.
|
|
21
|
+
fail_on_warning: true
|
|
24
22
|
|
|
25
23
|
# Optionally build your docs in additional formats such as PDF and ePub
|
|
26
24
|
# formats:
|
|
@@ -32,4 +30,4 @@ sphinx:
|
|
|
32
30
|
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
|
|
33
31
|
python:
|
|
34
32
|
install:
|
|
35
|
-
- requirements: docs/requirements.txt
|
|
33
|
+
- requirements: docs/requirements.txt
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# NepTrainKit Agent Notes
|
|
2
|
+
|
|
3
|
+
## Project Skill
|
|
4
|
+
|
|
5
|
+
This repo has a local skill at `skills/make-dataset-card-dev/SKILL.md`.
|
|
6
|
+
|
|
7
|
+
Before changing Make Dataset cards, card operations, card docs, or card tests:
|
|
8
|
+
|
|
9
|
+
1. Read `skills/make-dataset-card-dev/SKILL.md` from this checkout.
|
|
10
|
+
2. Follow its operation/params/UI/docs/tests contract.
|
|
11
|
+
3. If the global Codex skill is not installed or does not auto-trigger, say so briefly and use the repo-local `SKILL.md` as the source of truth.
|
|
12
|
+
|
|
13
|
+
The skill should trigger naturally when the task is about adding, migrating, refactoring, or testing Make Dataset cards. Do not assume every developer has it installed globally; the repo-local file is the fallback.
|
|
14
|
+
|
|
15
|
+
## Change Style
|
|
16
|
+
|
|
17
|
+
- Keep changes surgical. Touch only files needed for the requested behavior.
|
|
18
|
+
- Prefer existing helpers, card patterns, canvas backends, and result-data contracts over new abstractions.
|
|
19
|
+
- Do not add optional flexibility, new dependencies, or broad refactors unless the user asks.
|
|
20
|
+
- Preserve user-visible workflows unless the task explicitly changes them.
|
|
21
|
+
|
|
22
|
+
## Tests
|
|
23
|
+
|
|
24
|
+
- For ordinary fixes, run the smallest targeted pytest command that covers the behavior, then broaden if risk warrants it.
|
|
25
|
+
- Before committing a repo change, run `git diff --check`.
|
|
26
|
+
- For Make Dataset card work, also run `python skills/make-dataset-card-dev/scripts/run_card_checks.py --quick` when the script is available.
|
|
27
|
+
- Keep ad hoc generated files out of Git. Use temp paths for fixtures and clean up local outputs created by tests.
|
|
28
|
+
|
|
29
|
+
## Local Artifacts
|
|
30
|
+
|
|
31
|
+
Treat `tmp/`, `outputs/`, `diagnostics/`, generated descriptors, copied datasets, compiled local binaries, and similar files as local artifacts unless the user explicitly asks to version them.
|
|
@@ -14,12 +14,9 @@ prune .github
|
|
|
14
14
|
global-exclude *.log
|
|
15
15
|
global-exclude *upx.exe
|
|
16
16
|
global-exclude *update.exe
|
|
17
|
-
global-exclude
|
|
18
|
-
global-exclude
|
|
19
|
-
global-exclude
|
|
20
|
-
global-exclude
|
|
21
|
-
global-exclude *vcomp140*.dll
|
|
22
|
-
global-exclude *msvcp140*.dll
|
|
23
|
-
global-exclude *libomp140.x86_64.dll
|
|
17
|
+
global-exclude *.so
|
|
18
|
+
global-exclude *.dylib
|
|
19
|
+
global-exclude *.pyd
|
|
20
|
+
global-exclude *.dll
|
|
24
21
|
global-exclude src/NepTrainKit/src/**
|
|
25
22
|
global-exclude src/NepTrainKit/src.qrc
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: NepTrainKit
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: Visualize, diagnose, and manipulate NEP training datasets.
|
|
5
|
+
Author-email: Chen Cheng bing <1747193328@qq.com>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/aboys-cb/NepTrainKit
|
|
8
|
+
Project-URL: Documentation, https://github.com/aboys-cb/NepTrainKit
|
|
9
|
+
Project-URL: Repository, https://github.com/aboys-cb/NepTrainKit
|
|
10
|
+
Project-URL: Issues, https://github.com/aboys-cb/NepTrainKit/issues
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: <3.14,>=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
License-File: THIRD_PARTY_NOTICES.md
|
|
27
|
+
Requires-Dist: PySide6==6.9.0
|
|
28
|
+
Requires-Dist: PySide6-Fluent-Widgets>=1.7.0
|
|
29
|
+
Requires-Dist: loguru>=0.7.2
|
|
30
|
+
Requires-Dist: requests>=2.32.3
|
|
31
|
+
Requires-Dist: packaging>=24.0
|
|
32
|
+
Requires-Dist: pyqtgraph>=0.13.7
|
|
33
|
+
Requires-Dist: PyOpenGL>=3.1.7
|
|
34
|
+
Requires-Dist: numpy>=1.26.0
|
|
35
|
+
Requires-Dist: vispy>=0.14.3
|
|
36
|
+
Requires-Dist: ase
|
|
37
|
+
Requires-Dist: nep-adapters>=1.0
|
|
38
|
+
Requires-Dist: scipy>=1.15.0
|
|
39
|
+
Requires-Dist: SQLAlchemy>=2.0.0
|
|
40
|
+
Provides-Extra: test
|
|
41
|
+
Requires-Dist: pytest>=7.0; extra == "test"
|
|
42
|
+
Requires-Dist: pytest-qt>=4.2.0; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
44
|
+
Requires-Dist: codecov>=2.0.0; extra == "test"
|
|
45
|
+
Requires-Dist: ruff>=0.12.0; extra == "test"
|
|
46
|
+
Requires-Dist: scikit-learn>=1.5.0; extra == "test"
|
|
47
|
+
Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "test"
|
|
48
|
+
Dynamic: license-file
|
|
49
|
+
|
|
50
|
+
<div align="center">
|
|
51
|
+
<a href="https://github.com/aboys-cb/NepTrainKit">
|
|
52
|
+
<img src="https://raw.githubusercontent.com/aboys-cb/NepTrainKit/master/src/NepTrainKit/src/images/logo.png" width="25%" alt="NepTrainKit logo">
|
|
53
|
+
</a><br>
|
|
54
|
+
<a href="https://pypi.org/project/NepTrainKit"><img src="https://img.shields.io/pypi/dm/NepTrainKit?logo=pypi&logoColor=white&color=blue&label=PyPI" alt="PyPI downloads"></a>
|
|
55
|
+
<a href="https://python.org/downloads"><img src="https://img.shields.io/badge/Python-3.10--3.13-blue.svg?logo=python&logoColor=white" alt="Python version"></a>
|
|
56
|
+
<a href="https://codecov.io/github/aboys-cb/NepTrainKit"><img src="https://codecov.io/github/aboys-cb/NepTrainKit/graph/badge.svg?token=HQ5FMLD91F" alt="Codecov"></a>
|
|
57
|
+
<a href="https://github.com/aboys-cb/NepTrainKit/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0--or--later-blue" alt="License"></a>
|
|
58
|
+
<br><br>
|
|
59
|
+
<strong>English</strong> | <a href="https://github.com/aboys-cb/NepTrainKit/blob/master/README.zh-CN.md">简体中文</a>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
# NepTrainKit
|
|
63
|
+
|
|
64
|
+
NepTrainKit is a desktop application for preparing, auditing, and visualizing training datasets for neuroevolution potentials (NEPs). It complements, rather than replaces, long-running GPUMD training or DFT calculations. Its focus is the repetitive work around those calculations: generating candidate structures, cleaning problematic samples, selecting representative configurations, and passing a well-prepared dataset back into the DFT and GPUMD workflow.
|
|
65
|
+
|
|
66
|
+
## What you can do
|
|
67
|
+
|
|
68
|
+
- **Make Dataset**: generate strained, perturbed, defective, surface, doped, magnetic, and solvated candidate structures with composable cards.
|
|
69
|
+
- **NEP Dataset Display**: inspect structures, errors, and distributions; remove problematic samples; and export a clean subset.
|
|
70
|
+
- **Representative selection**: reduce a candidate pool to a smaller, more representative set with methods such as farthest point sampling (FPS).
|
|
71
|
+
- **Training-result inspection**: load NEP- and DeepMD-related outputs, locate high-error structures, and identify data gaps for the next iteration.
|
|
72
|
+
- **Project tracking**: use Data Management to record models, dataset paths, and notes across multiple iterations.
|
|
73
|
+
|
|
74
|
+
## Installation
|
|
75
|
+
|
|
76
|
+
We recommend installing NepTrainKit in a dedicated Python environment. Python 3.10 through 3.13 is supported.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
conda create -n nepkit python=3.10
|
|
80
|
+
conda activate nepkit
|
|
81
|
+
pip install NepTrainKit
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
After installation, launch the application with either command:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
nepkit
|
|
88
|
+
# or
|
|
89
|
+
NepTrainKit
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### NEP compute backend
|
|
93
|
+
|
|
94
|
+
NepTrainKit does not compile the NEP compute backend into the application. `pip` installs the separate `nep-adapters` dependency:
|
|
95
|
+
|
|
96
|
+
| Platform | Installed backend |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| macOS / Windows | CPU |
|
|
99
|
+
| Linux x86_64 | CPU and CUDA in one wheel |
|
|
100
|
+
|
|
101
|
+
The Linux CUDA path requires a compatible NVIDIA driver, but installing the wheel does not require a local CUDA toolkit or NVCC. Source builds and supported CUDA architectures are documented in the [NEPAdapters repository](https://github.com/MagTheoryLab/NEPAdapters).
|
|
102
|
+
|
|
103
|
+
After launching NepTrainKit, select `Auto`, `CPU`, or `CUDA` under `Settings → NEP Backend`. `Auto` uses CUDA when the installed wheel, driver, and model support it; otherwise NepTrainKit explains why it is continuing on CPU. Explicit `CUDA` requests fail instead of silently changing backend.
|
|
104
|
+
|
|
105
|
+
`Settings → NEP Settings → NEP runtime updates` can install a compatible `nep-adapters` update without replacing NepTrainKit. NepTrainKit also checks this runtime in the background whenever the app opens; no-update and network-failure cases stay silent, while an available update opens an installation prompt. Pip installations store the managed wheel under the user configuration directory; the Windows standalone build stores it under `runtime/nep-adapters/versions` beside `NepTrainKit.exe`. A wheel is activated only after SHA256 verification and a fresh-process health check, and takes effect after restart.
|
|
106
|
+
|
|
107
|
+
Confirm the installed runtime with:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
python -c "import nep_adapters as n; print(n.backend_status('cpu')); print(n.backend_status('cuda'))"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Windows package
|
|
114
|
+
|
|
115
|
+
If you prefer not to compile NepTrainKit locally, download `NepTrainKit.windows-x86_64.zip` from [GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases). This package requires 64-bit Windows on x86_64 hardware.
|
|
116
|
+
|
|
117
|
+
## Documentation and support
|
|
118
|
+
|
|
119
|
+
- User documentation: [neptrainkit.readthedocs.io](https://neptrainkit.readthedocs.io/en/latest/)
|
|
120
|
+
- Release notes: [GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases)
|
|
121
|
+
- Bug reports and feature requests: [GitHub Issues](https://github.com/aboys-cb/NepTrainKit/issues)
|
|
122
|
+
- Community: [QQ group invitation](https://qm.qq.com/q/wPDQYHMhyg)
|
|
123
|
+
|
|
124
|
+
If this is your first time using NepTrainKit, begin with **Quickstart** and **Cleaning candidate structures before DFT** in the user documentation. If you already know which class of configurations you need, go directly to the Make Dataset card reference.
|
|
125
|
+
|
|
126
|
+
## Citation
|
|
127
|
+
|
|
128
|
+
If NepTrainKit contributes to your research, please cite:
|
|
129
|
+
|
|
130
|
+
```bibtex
|
|
131
|
+
@article{CHEN2025109859,
|
|
132
|
+
title = {NepTrain and NepTrainKit: Automated active learning and visualization toolkit for neuroevolution potentials},
|
|
133
|
+
journal = {Computer Physics Communications},
|
|
134
|
+
volume = {317},
|
|
135
|
+
pages = {109859},
|
|
136
|
+
year = {2025},
|
|
137
|
+
issn = {0010-4655},
|
|
138
|
+
doi = {https://doi.org/10.1016/j.cpc.2025.109859},
|
|
139
|
+
url = {https://www.sciencedirect.com/science/article/pii/S0010465525003613},
|
|
140
|
+
author = {Chengbing Chen and Yutong Li and Rui Zhao and Zhoulin Liu and Zheyong Fan and Gang Tang and Zhiyong Wang},
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## License and third-party code
|
|
145
|
+
|
|
146
|
+
NepTrainKit is licensed under the GNU General Public License v3.0 or later. See [LICENSE](./LICENSE) for details.
|
|
147
|
+
|
|
148
|
+
NEP computation is provided by the separate [nep-adapters](https://github.com/MagTheoryLab/NEPAdapters) dependency. NepTrainKit no longer vendors the NEP_CPU or GPUMD backend source trees.
|
|
149
|
+
|
|
150
|
+
See [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md) for the remaining attribution in this repository. The `nep-adapters` distribution carries its own backend source notices and licenses.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://github.com/aboys-cb/NepTrainKit">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/aboys-cb/NepTrainKit/master/src/NepTrainKit/src/images/logo.png" width="25%" alt="NepTrainKit logo">
|
|
4
|
+
</a><br>
|
|
5
|
+
<a href="https://pypi.org/project/NepTrainKit"><img src="https://img.shields.io/pypi/dm/NepTrainKit?logo=pypi&logoColor=white&color=blue&label=PyPI" alt="PyPI downloads"></a>
|
|
6
|
+
<a href="https://python.org/downloads"><img src="https://img.shields.io/badge/Python-3.10--3.13-blue.svg?logo=python&logoColor=white" alt="Python version"></a>
|
|
7
|
+
<a href="https://codecov.io/github/aboys-cb/NepTrainKit"><img src="https://codecov.io/github/aboys-cb/NepTrainKit/graph/badge.svg?token=HQ5FMLD91F" alt="Codecov"></a>
|
|
8
|
+
<a href="https://github.com/aboys-cb/NepTrainKit/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0--or--later-blue" alt="License"></a>
|
|
9
|
+
<br><br>
|
|
10
|
+
<strong>English</strong> | <a href="https://github.com/aboys-cb/NepTrainKit/blob/master/README.zh-CN.md">简体中文</a>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
# NepTrainKit
|
|
14
|
+
|
|
15
|
+
NepTrainKit is a desktop application for preparing, auditing, and visualizing training datasets for neuroevolution potentials (NEPs). It complements, rather than replaces, long-running GPUMD training or DFT calculations. Its focus is the repetitive work around those calculations: generating candidate structures, cleaning problematic samples, selecting representative configurations, and passing a well-prepared dataset back into the DFT and GPUMD workflow.
|
|
16
|
+
|
|
17
|
+
## What you can do
|
|
18
|
+
|
|
19
|
+
- **Make Dataset**: generate strained, perturbed, defective, surface, doped, magnetic, and solvated candidate structures with composable cards.
|
|
20
|
+
- **NEP Dataset Display**: inspect structures, errors, and distributions; remove problematic samples; and export a clean subset.
|
|
21
|
+
- **Representative selection**: reduce a candidate pool to a smaller, more representative set with methods such as farthest point sampling (FPS).
|
|
22
|
+
- **Training-result inspection**: load NEP- and DeepMD-related outputs, locate high-error structures, and identify data gaps for the next iteration.
|
|
23
|
+
- **Project tracking**: use Data Management to record models, dataset paths, and notes across multiple iterations.
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
We recommend installing NepTrainKit in a dedicated Python environment. Python 3.10 through 3.13 is supported.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
conda create -n nepkit python=3.10
|
|
31
|
+
conda activate nepkit
|
|
32
|
+
pip install NepTrainKit
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
After installation, launch the application with either command:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
nepkit
|
|
39
|
+
# or
|
|
40
|
+
NepTrainKit
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### NEP compute backend
|
|
44
|
+
|
|
45
|
+
NepTrainKit does not compile the NEP compute backend into the application. `pip` installs the separate `nep-adapters` dependency:
|
|
46
|
+
|
|
47
|
+
| Platform | Installed backend |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| macOS / Windows | CPU |
|
|
50
|
+
| Linux x86_64 | CPU and CUDA in one wheel |
|
|
51
|
+
|
|
52
|
+
The Linux CUDA path requires a compatible NVIDIA driver, but installing the wheel does not require a local CUDA toolkit or NVCC. Source builds and supported CUDA architectures are documented in the [NEPAdapters repository](https://github.com/MagTheoryLab/NEPAdapters).
|
|
53
|
+
|
|
54
|
+
After launching NepTrainKit, select `Auto`, `CPU`, or `CUDA` under `Settings → NEP Backend`. `Auto` uses CUDA when the installed wheel, driver, and model support it; otherwise NepTrainKit explains why it is continuing on CPU. Explicit `CUDA` requests fail instead of silently changing backend.
|
|
55
|
+
|
|
56
|
+
`Settings → NEP Settings → NEP runtime updates` can install a compatible `nep-adapters` update without replacing NepTrainKit. NepTrainKit also checks this runtime in the background whenever the app opens; no-update and network-failure cases stay silent, while an available update opens an installation prompt. Pip installations store the managed wheel under the user configuration directory; the Windows standalone build stores it under `runtime/nep-adapters/versions` beside `NepTrainKit.exe`. A wheel is activated only after SHA256 verification and a fresh-process health check, and takes effect after restart.
|
|
57
|
+
|
|
58
|
+
Confirm the installed runtime with:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
python -c "import nep_adapters as n; print(n.backend_status('cpu')); print(n.backend_status('cuda'))"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Windows package
|
|
65
|
+
|
|
66
|
+
If you prefer not to compile NepTrainKit locally, download `NepTrainKit.windows-x86_64.zip` from [GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases). This package requires 64-bit Windows on x86_64 hardware.
|
|
67
|
+
|
|
68
|
+
## Documentation and support
|
|
69
|
+
|
|
70
|
+
- User documentation: [neptrainkit.readthedocs.io](https://neptrainkit.readthedocs.io/en/latest/)
|
|
71
|
+
- Release notes: [GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases)
|
|
72
|
+
- Bug reports and feature requests: [GitHub Issues](https://github.com/aboys-cb/NepTrainKit/issues)
|
|
73
|
+
- Community: [QQ group invitation](https://qm.qq.com/q/wPDQYHMhyg)
|
|
74
|
+
|
|
75
|
+
If this is your first time using NepTrainKit, begin with **Quickstart** and **Cleaning candidate structures before DFT** in the user documentation. If you already know which class of configurations you need, go directly to the Make Dataset card reference.
|
|
76
|
+
|
|
77
|
+
## Citation
|
|
78
|
+
|
|
79
|
+
If NepTrainKit contributes to your research, please cite:
|
|
80
|
+
|
|
81
|
+
```bibtex
|
|
82
|
+
@article{CHEN2025109859,
|
|
83
|
+
title = {NepTrain and NepTrainKit: Automated active learning and visualization toolkit for neuroevolution potentials},
|
|
84
|
+
journal = {Computer Physics Communications},
|
|
85
|
+
volume = {317},
|
|
86
|
+
pages = {109859},
|
|
87
|
+
year = {2025},
|
|
88
|
+
issn = {0010-4655},
|
|
89
|
+
doi = {https://doi.org/10.1016/j.cpc.2025.109859},
|
|
90
|
+
url = {https://www.sciencedirect.com/science/article/pii/S0010465525003613},
|
|
91
|
+
author = {Chengbing Chen and Yutong Li and Rui Zhao and Zhoulin Liu and Zheyong Fan and Gang Tang and Zhiyong Wang},
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## License and third-party code
|
|
96
|
+
|
|
97
|
+
NepTrainKit is licensed under the GNU General Public License v3.0 or later. See [LICENSE](./LICENSE) for details.
|
|
98
|
+
|
|
99
|
+
NEP computation is provided by the separate [nep-adapters](https://github.com/MagTheoryLab/NEPAdapters) dependency. NepTrainKit no longer vendors the NEP_CPU or GPUMD backend source trees.
|
|
100
|
+
|
|
101
|
+
See [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md) for the remaining attribution in this repository. The `nep-adapters` distribution carries its own backend source notices and licenses.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://github.com/aboys-cb/NepTrainKit">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/aboys-cb/NepTrainKit/master/src/NepTrainKit/src/images/logo.png" width="25%" alt="NepTrainKit 标志">
|
|
4
|
+
</a><br>
|
|
5
|
+
<a href="https://pypi.org/project/NepTrainKit"><img src="https://img.shields.io/pypi/dm/NepTrainKit?logo=pypi&logoColor=white&color=blue&label=PyPI" alt="PyPI 下载量"></a>
|
|
6
|
+
<a href="https://python.org/downloads"><img src="https://img.shields.io/badge/Python-3.10--3.13-blue.svg?logo=python&logoColor=white" alt="Python 版本"></a>
|
|
7
|
+
<a href="https://codecov.io/github/aboys-cb/NepTrainKit"><img src="https://codecov.io/github/aboys-cb/NepTrainKit/graph/badge.svg?token=HQ5FMLD91F" alt="Codecov"></a>
|
|
8
|
+
<a href="https://github.com/aboys-cb/NepTrainKit/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0--or--later-blue" alt="许可证"></a>
|
|
9
|
+
<br><br>
|
|
10
|
+
<a href="https://github.com/aboys-cb/NepTrainKit/blob/master/README.md">English</a> | <strong>简体中文</strong>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
# NepTrainKit
|
|
14
|
+
|
|
15
|
+
NepTrainKit 是面向神经演化势(NEP)训练集准备、评估和可视化的桌面工具。它不替代 GPUMD 的长时间训练,也不替代 DFT 计算;它负责训练前后最容易反复手工处理的部分:生成候选结构、清理异常样本、筛选代表结构,并把准备好的数据接回 DFT 和 GPUMD 工作流。
|
|
16
|
+
|
|
17
|
+
## 主要功能
|
|
18
|
+
|
|
19
|
+
- **Make Dataset**:通过可组合的卡片生成应变、扰动、缺陷、表面、掺杂、磁性和溶剂化候选结构。
|
|
20
|
+
- **NEP Dataset Display**:查看结构、误差和分布,删除异常样本,并导出干净的数据子集。
|
|
21
|
+
- **代表性筛选**:使用最远点采样(FPS)等方法,从候选池中选出更少、更有代表性的结构。
|
|
22
|
+
- **训练结果回看**:加载 NEP 和 DeepMD 相关输出,定位高误差结构,识别下一轮需要补充的数据。
|
|
23
|
+
- **项目记录**:使用 Data Management 记录多轮迭代中的模型、数据路径和备注。
|
|
24
|
+
|
|
25
|
+
## 安装
|
|
26
|
+
|
|
27
|
+
建议在独立的 Python 环境中安装 NepTrainKit。当前版本支持 Python 3.10 到 3.13。
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
conda create -n nepkit python=3.10
|
|
31
|
+
conda activate nepkit
|
|
32
|
+
pip install NepTrainKit
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
安装完成后,可以使用任一命令启动:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
nepkit
|
|
39
|
+
# 或
|
|
40
|
+
NepTrainKit
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### NEP 计算后端
|
|
44
|
+
|
|
45
|
+
NepTrainKit 不再把 NEP 计算后端编译进应用程序。执行 `pip install NepTrainKit` 时,会安装独立的 `nep-adapters` 依赖:
|
|
46
|
+
|
|
47
|
+
| 平台 | 安装的后端 |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| macOS / Windows | CPU |
|
|
50
|
+
| Linux x86_64 | 同一个 wheel 包含 CPU 和 CUDA |
|
|
51
|
+
|
|
52
|
+
Linux CUDA 路径需要兼容的 NVIDIA 驱动,但安装 wheel 不要求本机安装 CUDA Toolkit 或 NVCC。源码构建和受支持的 CUDA 架构见 [NEPAdapters 仓库](https://github.com/MagTheoryLab/NEPAdapters)。
|
|
53
|
+
|
|
54
|
+
启动后,可以在 `Settings → NEP Backend` 中选择 `Auto`、`CPU` 或 `CUDA`。`Auto` 会在 wheel、驱动和模型都支持时使用 CUDA;否则 NepTrainKit 会说明原因并继续使用 CPU。明确选择 `CUDA` 时如果不可用会直接报错,不会静默切换后端。
|
|
55
|
+
|
|
56
|
+
`设置 → NEP 设置 → NEP 运行时更新` 可以单独检查并安装兼容的 `nep-adapters` 更新,无需更新 NepTrainKit。每次打开软件后还会在后台检查运行时:没有更新或网络检查失败时保持静默,发现新版本时弹出安装提示。pip 安装版把更新后的 wheel 解压到用户配置目录;Windows 独立版放在 `NepTrainKit.exe` 旁的 `runtime/nep-adapters/versions`。新版本通过 SHA256 和独立进程健康检查后才会激活,并在重启程序后生效。
|
|
57
|
+
|
|
58
|
+
可以用下面的命令确认当前运行时:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
python -c "import nep_adapters as n; print(n.backend_status('cpu')); print(n.backend_status('cuda'))"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Windows 可执行包
|
|
65
|
+
|
|
66
|
+
如果不想在本地编译,可以从 [GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases) 下载 `NepTrainKit.windows-x86_64.zip`。该包要求 x86_64 架构的 64 位 Windows。
|
|
67
|
+
|
|
68
|
+
## 文档与支持
|
|
69
|
+
|
|
70
|
+
- 用户文档:[neptrainkit.readthedocs.io](https://neptrainkit.readthedocs.io/zh-cn/latest/)
|
|
71
|
+
- 更新说明:[GitHub Releases](https://github.com/aboys-cb/NepTrainKit/releases)
|
|
72
|
+
- 问题反馈与功能建议:[GitHub Issues](https://github.com/aboys-cb/NepTrainKit/issues)
|
|
73
|
+
- 社区交流:[QQ 群链接](https://qm.qq.com/q/wPDQYHMhyg)
|
|
74
|
+
|
|
75
|
+
第一次使用时,建议先阅读用户文档中的“快速开始”和“候选结构清洗后再进入 DFT”。如果已经知道需要补充哪类结构,可以直接查阅 Make Dataset 卡片手册。
|
|
76
|
+
|
|
77
|
+
## 引用
|
|
78
|
+
|
|
79
|
+
如果 NepTrainKit 对你的研究有所帮助,请引用:
|
|
80
|
+
|
|
81
|
+
```bibtex
|
|
82
|
+
@article{CHEN2025109859,
|
|
83
|
+
title = {NepTrain and NepTrainKit: Automated active learning and visualization toolkit for neuroevolution potentials},
|
|
84
|
+
journal = {Computer Physics Communications},
|
|
85
|
+
volume = {317},
|
|
86
|
+
pages = {109859},
|
|
87
|
+
year = {2025},
|
|
88
|
+
issn = {0010-4655},
|
|
89
|
+
doi = {https://doi.org/10.1016/j.cpc.2025.109859},
|
|
90
|
+
url = {https://www.sciencedirect.com/science/article/pii/S0010465525003613},
|
|
91
|
+
author = {Chengbing Chen and Yutong Li and Rui Zhao and Zhoulin Liu and Zheyong Fan and Gang Tang and Zhiyong Wang},
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 许可证和第三方代码
|
|
96
|
+
|
|
97
|
+
本仓库使用 GNU General Public License v3.0 or later,详见 [LICENSE](./LICENSE)。
|
|
98
|
+
|
|
99
|
+
NEP 计算由独立依赖 [nep-adapters](https://github.com/MagTheoryLab/NEPAdapters) 提供。NepTrainKit 已不再内置 NEP_CPU 或 GPUMD 后端源码。
|
|
100
|
+
|
|
101
|
+
本仓库仍需保留的来源说明见 [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md)。`nep-adapters` 发行包会携带其后端源码对应的许可证和来源说明。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Third‑Party Notices
|
|
2
|
+
|
|
3
|
+
This document lists third-party code or designs retained directly in the
|
|
4
|
+
NepTrainKit repository. NEP compute backends are distributed separately by
|
|
5
|
+
`nep-adapters` and are not vendored here.
|
|
6
|
+
|
|
7
|
+
nep-adapters
|
|
8
|
+
|
|
9
|
+
- Repository: https://github.com/MagTheoryLab/NEPAdapters
|
|
10
|
+
- Role: Runtime dependency supplying CPU and CUDA NEP compute backends.
|
|
11
|
+
- Packaging: The dependency carries the applicable NEP_CPU and GPUMD source
|
|
12
|
+
notices and licenses. Those backend source trees are not part of the
|
|
13
|
+
NepTrainKit distribution.
|
|
14
|
+
|
|
15
|
+
GPUMD Energy Reference Aligner
|
|
16
|
+
|
|
17
|
+
- Repository: https://github.com/brucefan1983/GPUMD
|
|
18
|
+
- License: GNU General Public License v3.0 or later (GPL‑3.0‑or‑later)
|
|
19
|
+
- The energy reference alignment workflow in
|
|
20
|
+
`src/NepTrainKit/core/energy_shift.py` is conceptually adapted from GPUMD's
|
|
21
|
+
`tools/Analysis_and_Processing/energy-reference-aligner`.
|
|
22
|
+
|
|
23
|
+
License Summary
|
|
24
|
+
|
|
25
|
+
- The root of this repository includes `LICENSE` (GPL‑3.0). Consistent with the
|
|
26
|
+
upstream projects, this project is distributed under GPL‑3.0‑or‑later terms.
|
|
27
|
+
- Per the GPL, all redistributions and modifications must remain under the GPL and
|
|
28
|
+
must retain copyright and license notices.
|
|
29
|
+
|
|
30
|
+
Disclaimer
|
|
31
|
+
|
|
32
|
+
- The above summaries are provided for convenience and do not replace the full
|
|
33
|
+
text of the licenses. See `LICENSE` and the upstream repositories for the
|
|
34
|
+
complete license terms.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
requires = [
|
|
3
3
|
"wheel",
|
|
4
4
|
"numpy",
|
|
5
|
-
"setuptools>=
|
|
5
|
+
"setuptools>=77.0.0",
|
|
6
6
|
"pybind11>=2.12.0",
|
|
7
7
|
"setuptools-scm>=8.2.0"
|
|
8
8
|
]
|
|
@@ -14,12 +14,11 @@ name = "NepTrainKit"
|
|
|
14
14
|
authors = [{ name = "Chen Cheng bing", email = "1747193328@qq.com" }]
|
|
15
15
|
dynamic = ["version"]
|
|
16
16
|
|
|
17
|
-
description = ""
|
|
18
|
-
NepTrainKit is a Python package for visualizing and manipulating training datasets for NEP.
|
|
19
|
-
"""
|
|
17
|
+
description = "Visualize, diagnose, and manipulate NEP training datasets."
|
|
20
18
|
readme = "README.md"
|
|
21
|
-
requires-python = ">=3.10"
|
|
22
|
-
license =
|
|
19
|
+
requires-python = ">=3.10,<3.14"
|
|
20
|
+
license = "GPL-3.0-or-later"
|
|
21
|
+
license-files = ["LICENSE", "THIRD_PARTY_NOTICES.md"]
|
|
23
22
|
classifiers = [
|
|
24
23
|
"Development Status :: 4 - Beta",
|
|
25
24
|
"Intended Audience :: Science/Research",
|
|
@@ -28,7 +27,7 @@ classifiers = [
|
|
|
28
27
|
"Programming Language :: Python :: 3.10",
|
|
29
28
|
"Programming Language :: Python :: 3.11",
|
|
30
29
|
"Programming Language :: Python :: 3.12",
|
|
31
|
-
"
|
|
30
|
+
"Programming Language :: Python :: 3.13",
|
|
32
31
|
"Topic :: Scientific/Engineering :: Chemistry",
|
|
33
32
|
"Topic :: Scientific/Engineering :: Information Analysis",
|
|
34
33
|
"Topic :: Scientific/Engineering :: Physics",
|
|
@@ -39,13 +38,14 @@ dependencies = [
|
|
|
39
38
|
"PySide6-Fluent-Widgets>=1.7.0",
|
|
40
39
|
"loguru>=0.7.2",
|
|
41
40
|
"requests>=2.32.3",
|
|
41
|
+
"packaging>=24.0",
|
|
42
42
|
"pyqtgraph>=0.13.7",
|
|
43
43
|
"PyOpenGL>=3.1.7",
|
|
44
44
|
"numpy>=1.26.0",
|
|
45
45
|
"vispy>=0.14.3",
|
|
46
46
|
"ase",
|
|
47
|
+
"nep-adapters>=1.0",
|
|
47
48
|
"scipy>=1.15.0",
|
|
48
|
-
"pybind11",
|
|
49
49
|
"SQLAlchemy>=2.0.0"
|
|
50
50
|
]
|
|
51
51
|
[project.optional-dependencies]
|
|
@@ -53,7 +53,10 @@ test = [
|
|
|
53
53
|
"pytest>=7.0",
|
|
54
54
|
"pytest-qt>=4.2.0",
|
|
55
55
|
"pytest-cov>=4.0.0",
|
|
56
|
-
"codecov>=2.0.0"
|
|
56
|
+
"codecov>=2.0.0",
|
|
57
|
+
"ruff>=0.12.0",
|
|
58
|
+
"scikit-learn>=1.5.0",
|
|
59
|
+
"tomli>=2.0; python_version < '3.11'"
|
|
57
60
|
]
|
|
58
61
|
|
|
59
62
|
[project.urls]
|
|
@@ -76,7 +79,9 @@ where = ["src"]
|
|
|
76
79
|
include = ["NepTrainKit", "NepTrainKit.*" ]
|
|
77
80
|
|
|
78
81
|
[tool.setuptools.package-data]
|
|
82
|
+
"NepTrainKit" = ["translations/*.qm", "translations/*.ts"]
|
|
79
83
|
"NepTrainKit.Config" = ["config.sqlite","ptable.json","nep.json","nep89.txt" ]
|
|
84
|
+
"NepTrainKit.core.dataset" = ["catalogs/*.json"]
|
|
80
85
|
|
|
81
86
|
[tool.setuptools_scm]
|
|
82
87
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""Build NepTrainKit's application-native helpers.
|
|
3
|
+
|
|
4
|
+
NEP compute backends are supplied exclusively by the ``nep-adapters``
|
|
5
|
+
dependency and are intentionally not built in this package.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
import sys
|
|
12
|
+
|
|
13
|
+
import pybind11
|
|
14
|
+
from setuptools import Extension, setup
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
extra_compile_args: list[str] = []
|
|
18
|
+
extra_link_args: list[str] = []
|
|
19
|
+
default_omp_mode = "0" if sys.platform == "darwin" else "auto"
|
|
20
|
+
omp_mode = os.environ.get("NEPKIT_OPENMP", default_omp_mode).strip().lower()
|
|
21
|
+
use_openmp = omp_mode not in {"0", "false", "off", "no"}
|
|
22
|
+
|
|
23
|
+
if sys.platform == "win32":
|
|
24
|
+
if use_openmp:
|
|
25
|
+
extra_compile_args.append("/openmp")
|
|
26
|
+
extra_link_args.append("/openmp")
|
|
27
|
+
extra_compile_args.extend(["/O2", "/std:c++11"])
|
|
28
|
+
extra_link_args.extend(["/O2", "/std:c++11"])
|
|
29
|
+
elif sys.platform == "darwin":
|
|
30
|
+
extra_compile_args.extend(["-O3", "-std=c++11"])
|
|
31
|
+
extra_link_args.extend(["-O3", "-std=c++11"])
|
|
32
|
+
omp_include = os.getenv("OMP_INCLUDE_PATH", "/opt/homebrew/opt/libomp/include")
|
|
33
|
+
omp_lib = os.getenv("OMP_LIB_PATH", "/opt/homebrew/opt/libomp/lib")
|
|
34
|
+
if use_openmp and os.path.isdir(omp_include) and os.path.isdir(omp_lib):
|
|
35
|
+
extra_compile_args.extend(["-Xpreprocessor", "-fopenmp", f"-I{omp_include}"])
|
|
36
|
+
extra_link_args.extend(["-lomp", f"-L{omp_lib}"])
|
|
37
|
+
else:
|
|
38
|
+
if use_openmp:
|
|
39
|
+
extra_compile_args.append("-fopenmp")
|
|
40
|
+
extra_link_args.append("-fopenmp")
|
|
41
|
+
extra_compile_args.extend(["-O3", "-std=c++11"])
|
|
42
|
+
extra_link_args.extend(["-O3", "-std=c++11"])
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def native_extension(
|
|
46
|
+
module_name: str,
|
|
47
|
+
source: str,
|
|
48
|
+
*,
|
|
49
|
+
depends: tuple[str, ...] = (),
|
|
50
|
+
) -> Extension:
|
|
51
|
+
"""Create one private application-native extension with shared headers."""
|
|
52
|
+
return Extension(
|
|
53
|
+
f"NepTrainKit._native.{module_name}",
|
|
54
|
+
[source],
|
|
55
|
+
include_dirs=[pybind11.get_include(), "src/native/include"],
|
|
56
|
+
extra_compile_args=list(extra_compile_args),
|
|
57
|
+
extra_link_args=list(extra_link_args),
|
|
58
|
+
depends=list(depends),
|
|
59
|
+
language="c++",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
neighbor_header = "src/native/include/neptrainkit/native/periodic_neighbors.hpp"
|
|
64
|
+
fast_float_header = "src/native/io/fast_float.h"
|
|
65
|
+
|
|
66
|
+
setup(
|
|
67
|
+
ext_modules=[
|
|
68
|
+
native_extension("_io", "src/native/io/module.cpp", depends=(fast_float_header,)),
|
|
69
|
+
native_extension("_audit", "src/native/audit/module.cpp", depends=(neighbor_header,)),
|
|
70
|
+
native_extension("_phase", "src/native/phase/module.cpp", depends=(neighbor_header,)),
|
|
71
|
+
native_extension("_magnetism", "src/native/magnetism/module.cpp", depends=(neighbor_header,)),
|
|
72
|
+
],
|
|
73
|
+
zip_safe=False,
|
|
74
|
+
)
|