TACE 0.2.0__tar.gz → 0.2.1__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.
- {tace-0.2.0 → tace-0.2.1}/PKG-INFO +9 -2
- tace-0.2.1/README.md +201 -0
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/PKG-INFO +9 -2
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/SOURCES.txt +85 -48
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/requires.txt +11 -1
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/top_level.txt +1 -0
- tace-0.2.1/eqx/README.md +324 -0
- tace-0.2.1/eqx/__init__.py +3 -0
- tace-0.2.1/eqx/co3/__init__.py +21 -0
- tace-0.2.1/eqx/co3/cartesian_harmonics.py +75 -0
- tace-0.2.1/eqx/co3/gate.py +148 -0
- tace-0.2.1/eqx/co3/irreps.py +313 -0
- tace-0.2.1/eqx/co3/layout.py +79 -0
- tace-0.2.1/eqx/co3/linear.py +197 -0
- tace-0.2.1/eqx/co3/projector.py +39 -0
- tace-0.2.1/eqx/co3/tensor_product.py +336 -0
- tace-0.2.1/eqx/co3/utils.py +33 -0
- tace-0.2.1/eqx/docs/source/conf.py +45 -0
- tace-0.2.1/eqx/o2/__init__.py +24 -0
- tace-0.2.1/eqx/o2/asymmetric_contraction.py +411 -0
- tace-0.2.1/eqx/o2/circular_harmonics.py +89 -0
- tace-0.2.1/eqx/o2/gate.py +221 -0
- tace-0.2.1/eqx/o2/irreps.py +408 -0
- tace-0.2.1/eqx/o2/linear.py +419 -0
- tace-0.2.1/eqx/o2/local_frame.py +422 -0
- {tace-0.2.0/tace/models/so2 → tace-0.2.1/eqx/o2}/rotation_matrix.py +9 -5
- tace-0.2.1/eqx/o2/tensor_product.py +387 -0
- tace-0.2.1/eqx/o2/wigner.py +163 -0
- {tace-0.2.0 → tace-0.2.1}/pyproject.toml +45 -4
- {tace-0.2.0 → tace-0.2.1}/tace/__init__.py +1 -2
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/dataloader.py +34 -31
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/datamodule.py +73 -58
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/element.py +4 -5
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/graph.py +13 -17
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/neighbour_list.py +5 -5
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/quantity.py +170 -167
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/read.py +57 -36
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/sampler.py +8 -4
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/split.py +6 -7
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/statistics.py +181 -52
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/utils.py +19 -16
- {tace-0.2.0 → tace-0.2.1}/tace/foundations/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/foundations/download_link.py +9 -18
- {tace-0.2.0 → tace-0.2.1}/tace/foundations/u_shift.py +4 -3
- tace-0.2.1/tace/interface/ase/__init__.py +10 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/ase/calculator.py +29 -31
- tace-0.2.1/tace/interface/ase/general_calculator.py +81 -0
- tace-0.2.1/tace/interface/ase/optimizer.py +540 -0
- tace-0.2.1/tace/interface/nvalchemi/__init__.py +4 -0
- tace-0.2.1/tace/interface/nvalchemi/wrapper.py +404 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/torchsim/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/interface/torchsim/torchsim.py +14 -16
- {tace-0.2.0 → tace-0.2.1}/tace/interface/uspex26/relax.py +5 -4
- {tace-0.2.0 → tace-0.2.1}/tace/lightning/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/lightning/lit_model.py +94 -89
- {tace-0.2.0 → tace-0.2.1}/tace/lightning/lora.py +0 -1
- tace-0.2.0/tace/lightning/los_skip.py → tace-0.2.1/tace/lightning/loss_skip.py +6 -9
- tace-0.2.1/tace/lightning/torch_model.py +114 -0
- {tace-0.2.0 → tace-0.2.1}/tace/lightning/trainer.py +29 -24
- tace-0.2.1/tace/lightning/u_shift.py +141 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/__init__.py +8 -3
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/base.py +127 -83
- tace-0.2.1/tace/models/_e3nn/basis_change.py +48 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/default.py +74 -60
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/dropout.py +76 -80
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/edge.py +15 -20
- tace-0.2.1/tace/models/_e3nn/fused.py +280 -0
- tace-0.2.1/tace/models/_e3nn/inter.py +808 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/layer_norm.py +41 -33
- tace-0.2.1/tace/models/_e3nn/legacy_so2.py +982 -0
- tace-0.2.1/tace/models/_e3nn/les.py +395 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/node.py +65 -66
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/nonlinear.py +111 -66
- tace-0.2.1/tace/models/_e3nn/o2.py +626 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/paths.py +11 -15
- {tace-0.2.0/tace/models/_cart → tace-0.2.1/tace/models/_e3nn}/prod.py +84 -49
- tace-0.2.1/tace/models/_e3nn/readout.py +309 -0
- {tace-0.2.0/tace/models/_cart → tace-0.2.1/tace/models/_e3nn}/representation.py +174 -64
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/residual.py +10 -11
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/scatter_norm.py +6 -6
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/symmetric_contraction.py +3 -3
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/tace.py +329 -256
- {tace-0.2.0 → tace-0.2.1}/tace/models/_e3nn/ue.py +19 -22
- tace-0.2.1/tace/models/_e3nn/wigner6j.py +445 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/adapter.py +89 -92
- {tace-0.2.0 → tace-0.2.1}/tace/models/angular.py +43 -15
- {tace-0.2.0 → tace-0.2.1}/tace/models/blocks.py +26 -37
- {tace-0.2.0 → tace-0.2.1}/tace/models/compile/aot.py +77 -48
- {tace-0.2.0 → tace-0.2.1}/tace/models/compile/compile.py +35 -6
- {tace-0.2.0 → tace-0.2.1}/tace/models/compile/wrapper.py +75 -23
- {tace-0.2.0/tace/models/_cue → tace-0.2.1/tace/models/cue}/__init__.py +2 -2
- {tace-0.2.0/tace/models/_cue → tace-0.2.1/tace/models/cue}/_tp_scatter.py +2 -4
- {tace-0.2.0/tace/models/_cue → tace-0.2.1/tace/models/cue}/paths.py +5 -4
- tace-0.2.1/tace/models/eqt/__init__.py +17 -0
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/_tp_uuu.py +3 -6
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/nn/sparse_product.py +18 -12
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/nn/tensor_products.py +36 -20
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/structs/__init__.py +2 -1
- {tace-0.2.0 → tace-0.2.1}/tace/models/ictd.py +82 -83
- tace-0.2.1/tace/models/kspace.py +194 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/lammps.py +6 -10
- tace-0.2.1/tace/models/layout.py +140 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/linear.py +74 -52
- tace-0.2.1/tace/models/mag.py +157 -0
- tace-0.2.1/tace/models/mlp.py +191 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/normalizer.py +3 -3
- tace-0.2.1/tace/models/oeq/__init__.py +6 -0
- {tace-0.2.0/tace/models/_oeq → tace-0.2.1/tace/models/oeq}/_tp_scatter.py +21 -18
- {tace-0.2.0 → tace-0.2.1}/tace/models/radial.py +166 -190
- tace-0.2.1/tace/models/s2.py +377 -0
- tace-0.2.1/tace/models/scf/README.md +116 -0
- tace-0.2.1/tace/models/scf/__init__.py +34 -0
- tace-0.2.1/tace/models/scf/electrostatics.py +211 -0
- tace-0.2.1/tace/models/scf/energy_functional.py +170 -0
- tace-0.2.1/tace/models/scf/fixed_point.py +299 -0
- tace-0.2.1/tace/models/scf/local.py +188 -0
- tace-0.2.1/tace/models/scf/longrange/LICENSE.md +11 -0
- tace-0.2.1/tace/models/scf/longrange/NOTICE.md +6 -0
- tace-0.2.1/tace/models/scf/longrange/__init__.py +5 -0
- tace-0.2.1/tace/models/scf/longrange/__version__.py +1 -0
- tace-0.2.1/tace/models/scf/longrange/energy.py +194 -0
- tace-0.2.1/tace/models/scf/longrange/features.py +1013 -0
- tace-0.2.1/tace/models/scf/longrange/gto_utils.py +413 -0
- tace-0.2.1/tace/models/scf/longrange/kspace.py +256 -0
- tace-0.2.1/tace/models/scf/longrange/realspace_electrostatics.py +422 -0
- tace-0.2.1/tace/models/scf/longrange/realspace_grid_integrals.py +202 -0
- tace-0.2.1/tace/models/scf/longrange/slabs.py +246 -0
- tace-0.2.1/tace/models/scf/longrange/utils.py +123 -0
- tace-0.2.1/tace/models/scf/loss.py +84 -0
- tace-0.2.1/tace/models/scf/model.py +74 -0
- tace-0.2.1/tace/models/scf/qeq.py +132 -0
- tace-0.2.1/tace/models/scf/readout.py +147 -0
- tace-0.2.1/tace/models/scf/state.py +71 -0
- tace-0.2.1/tace/models/scf/utils.py +115 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/softmax.py +114 -122
- {tace-0.2.0 → tace-0.2.1}/tace/models/utils.py +26 -25
- {tace-0.2.0 → tace-0.2.1}/tace/models/zemin.py +61 -61
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/average.py +8 -10
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/clean.py +1 -3
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/convert.py +15 -11
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/eval.py +89 -35
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/export_eval.py +10 -3
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/export_lammps.py +1 -4
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/export_train.py +3 -1
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/finetune.py +25 -16
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/split.py +1 -2
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/train.py +73 -95
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/update.py +21 -19
- tace-0.2.1/tace/scripts/utils/__init__.py +0 -0
- tace-0.2.1/tace/scripts/utils/check_equi.py +132 -0
- tace-0.2.1/tace/scripts/utils/check_soc.py +262 -0
- tace-0.2.1/tace/scripts/utils/convert_to_xyz.py +215 -0
- {tace-0.2.0 → tace-0.2.1}/tace/utils/__init__.py +2 -2
- {tace-0.2.0 → tace-0.2.1}/tace/utils/_global.py +4 -5
- {tace-0.2.0 → tace-0.2.1}/tace/utils/callbacks.py +5 -8
- {tace-0.2.0 → tace-0.2.1}/tace/utils/cfg.py +1 -3
- {tace-0.2.0 → tace-0.2.1}/tace/utils/ema.py +19 -19
- {tace-0.2.0 → tace-0.2.1}/tace/utils/env.py +17 -23
- {tace-0.2.0 → tace-0.2.1}/tace/utils/hydra_resolver.py +1 -2
- {tace-0.2.0 → tace-0.2.1}/tace/utils/logger.py +3 -8
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/__init__.py +21 -22
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/common.py +28 -1
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/dens.py +561 -544
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/huber_fn.py +571 -438
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/l2mae_fn.py +119 -87
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/mae_fn.py +161 -101
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/mse_fn.py +161 -99
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/normal.py +67 -76
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/registry.py +41 -10
- {tace-0.2.0 → tace-0.2.1}/tace/utils/loss/special_fn.py +90 -91
- tace-0.2.1/tace/utils/loss/uncertainty.py +79 -0
- {tace-0.2.0 → tace-0.2.1}/tace/utils/lr_scheduler/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/utils/lr_scheduler/warmup.py +1 -2
- {tace-0.2.0 → tace-0.2.1}/tace/utils/lr_scheduler/wsd.py +33 -14
- {tace-0.2.0 → tace-0.2.1}/tace/utils/metrics.py +35 -28
- {tace-0.2.0 → tace-0.2.1}/tace/utils/metrics_bake.py +42 -28
- {tace-0.2.0 → tace-0.2.1}/tace/utils/optimizer/__init__.py +1 -1
- {tace-0.2.0 → tace-0.2.1}/tace/utils/optimizer/hybrid_muon.py +4 -4
- tace-0.2.1/tace/utils/optimizer/soap.py +1 -0
- {tace-0.2.0 → tace-0.2.1}/tace/utils/spectra.py +1 -2
- {tace-0.2.0 → tace-0.2.1}/tace/utils/strategy.py +4 -3
- {tace-0.2.0 → tace-0.2.1}/tace/utils/torch_scatter.py +56 -43
- {tace-0.2.0 → tace-0.2.1}/tace/utils/units.py +12 -12
- {tace-0.2.0 → tace-0.2.1}/tace/utils/utils.py +12 -19
- tace-0.2.1/tests/test_co3.py +289 -0
- tace-0.2.1/tests/test_compile.py +275 -0
- tace-0.2.1/tests/test_eqt.py +279 -0
- tace-0.2.1/tests/test_les.py +156 -0
- tace-0.2.1/tests/test_loss.py +164 -0
- tace-0.2.1/tests/test_magnetic_optimizer.py +122 -0
- tace-0.2.1/tests/test_o2.py +2685 -0
- tace-0.2.1/tests/test_scf.py +173 -0
- tace-0.2.1/tests/test_wigner6j.py +370 -0
- tace-0.2.0/README.rst +0 -171
- tace-0.2.0/tace/interface/ase/__init__.py +0 -3
- tace-0.2.0/tace/lightning/torch_model.py +0 -107
- tace-0.2.0/tace/lightning/u_shift.py +0 -59
- tace-0.2.0/tace/models/_cart/base.py +0 -24
- tace-0.2.0/tace/models/_cart/basis_change.py +0 -118
- tace-0.2.0/tace/models/_cart/cartesian.py +0 -150
- tace-0.2.0/tace/models/_cart/default.py +0 -216
- tace-0.2.0/tace/models/_cart/dropout.py +0 -8
- tace-0.2.0/tace/models/_cart/edge.py +0 -26
- tace-0.2.0/tace/models/_cart/fused.py +0 -531
- tace-0.2.0/tace/models/_cart/inter.py +0 -201
- tace-0.2.0/tace/models/_cart/layer_norm.py +0 -108
- tace-0.2.0/tace/models/_cart/node.py +0 -105
- tace-0.2.0/tace/models/_cart/nonlinear.py +0 -8
- tace-0.2.0/tace/models/_cart/paths.py +0 -65
- tace-0.2.0/tace/models/_cart/readout.py +0 -20
- tace-0.2.0/tace/models/_cart/residual.py +0 -8
- tace-0.2.0/tace/models/_cart/tace.py +0 -550
- tace-0.2.0/tace/models/_cart/ue.py +0 -8
- tace-0.2.0/tace/models/_e3nn/asymmetric_contraction.py +0 -1140
- tace-0.2.0/tace/models/_e3nn/basis_change.py +0 -113
- tace-0.2.0/tace/models/_e3nn/fused.py +0 -719
- tace-0.2.0/tace/models/_e3nn/inter.py +0 -683
- tace-0.2.0/tace/models/_e3nn/prod.py +0 -451
- tace-0.2.0/tace/models/_e3nn/readout.py +0 -200
- tace-0.2.0/tace/models/_e3nn/representation.py +0 -499
- tace-0.2.0/tace/models/_eqt/__init__.py +0 -4
- tace-0.2.0/tace/models/_oeq/__init__.py +0 -6
- tace-0.2.0/tace/models/layout.py +0 -84
- tace-0.2.0/tace/models/legacy.py +0 -2171
- tace-0.2.0/tace/models/mlp.py +0 -283
- tace-0.2.0/tace/models/precision.py +0 -82
- tace-0.2.0/tace/models/s2.py +0 -1006
- tace-0.2.0/tace/models/so2/__init__.py +0 -25
- tace-0.2.0/tace/models/so2/blocks.py +0 -1122
- tace-0.2.0/tace/models/so2/utils.py +0 -196
- tace-0.2.0/tace/models/so2/wigner.py +0 -365
- tace-0.2.0/tace/models/triton_ops/__init__.py +0 -9
- tace-0.2.0/tace/models/triton_ops/uu_so2_scatter.py +0 -837
- tace-0.2.0/tace/utils/loss/uncertainty.py +0 -89
- tace-0.2.0/tace/utils/optimizer/soap.py +0 -1
- tace-0.2.0/test/test_aoti_single_system.py +0 -207
- tace-0.2.0/test/test_neighbour_list.py +0 -188
- tace-0.2.0/test/test_solid_harmonics.py +0 -79
- tace-0.2.0/test/test_wigner6j.py +0 -214
- {tace-0.2.0 → tace-0.2.1}/LICENSE.md +0 -0
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/dependency_links.txt +0 -0
- {tace-0.2.0 → tace-0.2.1}/TACE.egg-info/entry_points.txt +0 -0
- {tace-0.2.0 → tace-0.2.1}/setup.cfg +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/dataset/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/lammps/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/lammps/mliap.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/openmm/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/interface/uspex26/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/_cart/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/models/compile/__init__.py +2 -2
- {tace-0.2.0 → tace-0.2.1}/tace/models/compile/tace.py +0 -0
- {tace-0.2.0/tace/models/_cue → tace-0.2.1/tace/models/cue}/_tp_uuu.py +0 -0
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/__init__.py +0 -0
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/irreps/__init__.py +0 -0
- {tace-0.2.0/tace/models/_eqt → tace-0.2.1/tace/models/eqt}/equitorch/nn/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/scripts/__init__.py +0 -0
- {tace-0.2.0 → tace-0.2.1}/tace/utils/mask_metrics.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TACE
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: TACE - ST and ICT based equivariant atomistic model.
|
|
5
5
|
Author-email: Zemin Xu <xv_chana@163.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/xvzemin/tace
|
|
7
7
|
Requires-Python: >=3.9
|
|
8
8
|
License-File: LICENSE.md
|
|
9
|
-
Requires-Dist: torch
|
|
9
|
+
Requires-Dist: torch>=2.4
|
|
10
10
|
Requires-Dist: torch_geometric>=2.4
|
|
11
11
|
Requires-Dist: lightning
|
|
12
12
|
Requires-Dist: omegaconf
|
|
@@ -20,10 +20,17 @@ Requires-Dist: configargparse
|
|
|
20
20
|
Requires-Dist: pandas
|
|
21
21
|
Requires-Dist: lmdb
|
|
22
22
|
Requires-Dist: huggingface_hub
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest; extra == "dev"
|
|
25
|
+
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
|
|
23
26
|
Provides-Extra: oeq
|
|
24
27
|
Requires-Dist: openequivariance>=0.5.4; extra == "oeq"
|
|
25
28
|
Provides-Extra: torchsim
|
|
26
29
|
Requires-Dist: torch-sim-atomistic>=0.6.1; extra == "torchsim"
|
|
30
|
+
Provides-Extra: nvalchemi
|
|
31
|
+
Requires-Dist: nvalchemi-toolkit>=0.1.0; extra == "nvalchemi"
|
|
32
|
+
Requires-Dist: nvalchemi-toolkit-ops; extra == "nvalchemi"
|
|
33
|
+
Provides-Extra: scf
|
|
27
34
|
Provides-Extra: cueq12
|
|
28
35
|
Requires-Dist: cuequivariance; extra == "cueq12"
|
|
29
36
|
Requires-Dist: cuequivariance-torch; extra == "cueq12"
|
tace-0.2.1/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
[](https://pypi.org/project/tace/)
|
|
2
|
+
[](https://tace.readthedocs.io/en/latest/)
|
|
3
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
|
+
[](https://matbench-discovery.materialsproject.org/)
|
|
5
|
+
|
|
6
|
+
# Tensor Atomic/Edge Cluster Expansion (TACE/TECE)
|
|
7
|
+
|
|
8
|
+
TACE is designed with physical priors and strong inductive biases to enhance extrapolation capability.
|
|
9
|
+
It performs Atomic Cluster Expansion and Edge Cluster Expansion based on spherical tensors
|
|
10
|
+
or irreducible Cartesian tensors, with an optional attention architecture.
|
|
11
|
+
|
|
12
|
+
## Cartesian Architecture
|
|
13
|
+
|
|
14
|
+
<img src="fig/cartesian_arch.png" width="100%" align="center">
|
|
15
|
+
|
|
16
|
+
## Spherical/SO(2) Architecture
|
|
17
|
+
|
|
18
|
+
The architecture of the spherical model is largely the same as that of the Cartesian space.
|
|
19
|
+
For details on the SO(2) component, please refer to our paper and code.
|
|
20
|
+
|
|
21
|
+
## Wigner6j/O(2) Architecture
|
|
22
|
+
|
|
23
|
+
The current implementation is still subject to change, and backward compatibility is not guaranteed. Please refer to our paper and code for details.
|
|
24
|
+
|
|
25
|
+
## Documentation
|
|
26
|
+
|
|
27
|
+
[TACE DOCS](https://tace.readthedocs.io/en/latest/index.html)
|
|
28
|
+
|
|
29
|
+
## SOTA Foundation Model
|
|
30
|
+
|
|
31
|
+
[TACE FOUNDATION](https://github.com/xvzemin/tace-foundations)
|
|
32
|
+
|
|
33
|
+
Default Ranking on Matbench as of July 8, 2026
|
|
34
|
+
|
|
35
|
+
<img src="fig/matbench_tece_rra.png" width="100%" align="center">
|
|
36
|
+
|
|
37
|
+
## Install, Train and Tutorial
|
|
38
|
+
|
|
39
|
+
The docs contain a complete tutorial.
|
|
40
|
+
|
|
41
|
+
We also provide complete input files and example scripts for training, ASE,
|
|
42
|
+
TorchSim, LAMMPS, and other workflows in the
|
|
43
|
+
[TACE examples](https://github.com/xvzemin/tace/tree/main/example).
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Minimal install and training example
|
|
47
|
+
git clone https://github.com/xvzemin/tace
|
|
48
|
+
cd tace
|
|
49
|
+
pip install . # or pip install tace
|
|
50
|
+
cd example/train
|
|
51
|
+
tace-train -cn tace.yaml
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Fine-tuning
|
|
55
|
+
|
|
56
|
+
- ✅ Full-parameter.
|
|
57
|
+
|
|
58
|
+
- ✅ Freeze-parameter.
|
|
59
|
+
|
|
60
|
+
- ✅ LoRA.
|
|
61
|
+
|
|
62
|
+
## Overview
|
|
63
|
+
|
|
64
|
+
Currently, the officially supported properties include:
|
|
65
|
+
|
|
66
|
+
- Energy
|
|
67
|
+
- Forces (conservative | direct)
|
|
68
|
+
- Hessian (conservative, predict only)
|
|
69
|
+
- Stress (conservative | direct)
|
|
70
|
+
- Virials (conservative | direct)
|
|
71
|
+
- Charges (lagrangian or uniform_distribution)
|
|
72
|
+
- Dipole moment (conservative | direct)
|
|
73
|
+
- Polarization (conservative, multi-value for PBC systems)
|
|
74
|
+
- Polarizability (conservative | direct)
|
|
75
|
+
- Born effective charges (conservative, under electric field)
|
|
76
|
+
- Atomic stresses (conservative, predict only)
|
|
77
|
+
- Atomic virials (conservative, predict only)
|
|
78
|
+
- Absolute final collinear magmoms
|
|
79
|
+
- Noncollinear magnetic forces (SOC, full O(3))
|
|
80
|
+
|
|
81
|
+
For embedding property, we support:
|
|
82
|
+
|
|
83
|
+
- fidelity_idx (different computational levels)
|
|
84
|
+
- charges
|
|
85
|
+
- total charge
|
|
86
|
+
- electric field
|
|
87
|
+
- initial noncollinear magmoms (SOC, full O(3))
|
|
88
|
+
|
|
89
|
+
## Plugins
|
|
90
|
+
|
|
91
|
+
TACE currently supports the following plugin:
|
|
92
|
+
|
|
93
|
+
- **TACE-LES** (Latent Ewald Summation)
|
|
94
|
+
- **TACE-QEq** (Lagrangian)
|
|
95
|
+
- **mTACE** (Magnetic, Spin-Orbit Coupling)
|
|
96
|
+
|
|
97
|
+
## Interfaces
|
|
98
|
+
|
|
99
|
+
- ✅ Supports integration with [ASE Calculator](https://wiki.fysik.dtu.dk/ase/).
|
|
100
|
+
|
|
101
|
+
- ✅ Supports integration with [LAMMPS-ML-IAP](https://github.com/lammps/lammps).
|
|
102
|
+
|
|
103
|
+
- ✅ Supports integration with [TorchSim](https://torchsim.github.io/torch-sim/).
|
|
104
|
+
|
|
105
|
+
- ✅ Supports integration with [NVIDIA NValCHEMI](https://github.com/NVIDIA/nvalchemi-toolkit).
|
|
106
|
+
|
|
107
|
+
- ✅ Supports integration with [OpenMM-ML](https://github.com/openmm/openmm-ml) (OpenMM-ML -> ASE -> TACE).
|
|
108
|
+
|
|
109
|
+
- ✅ Supports integration with [USPEX](https://uspex-team.org/)
|
|
110
|
+
(USPEX -> LAMMPS-ML-IAP -> TACE) (Python=3.9).
|
|
111
|
+
|
|
112
|
+
## Contact
|
|
113
|
+
|
|
114
|
+
For bugs or feature requests, please use the
|
|
115
|
+
[TACE issue](https://github.com/xvzemin/tace/issues).
|
|
116
|
+
|
|
117
|
+
<!-- For usage discussions, you can join the TACE community through QQ or Discord.
|
|
118
|
+
|
|
119
|
+
<table>
|
|
120
|
+
<tr>
|
|
121
|
+
<th>QQ</th>
|
|
122
|
+
<th>Discord</th>
|
|
123
|
+
</tr>
|
|
124
|
+
<tr>
|
|
125
|
+
<td align="center">
|
|
126
|
+
<img src="fig/qq.jpg" alt="TACE QQ QR code" width="260">
|
|
127
|
+
</td>
|
|
128
|
+
<td align="center">
|
|
129
|
+
<img src="fig/discord.jpg" alt="TACE Discord QR code" width="260">
|
|
130
|
+
</td>
|
|
131
|
+
</tr>
|
|
132
|
+
</table> -->
|
|
133
|
+
|
|
134
|
+
## Citing
|
|
135
|
+
|
|
136
|
+
If you use TACE, please cite our papers:
|
|
137
|
+
|
|
138
|
+
```bibtex
|
|
139
|
+
@misc{xu2026spectralspatialtensoratomiccluster,
|
|
140
|
+
title={Spectral/Spatial Tensor Atomic Cluster Expansion with Universal Embeddings in Cartesian Space},
|
|
141
|
+
author={Zemin Xu and Wenbo Xie and P. Hu},
|
|
142
|
+
year={2026},
|
|
143
|
+
eprint={2509.14961},
|
|
144
|
+
archivePrefix={arXiv},
|
|
145
|
+
primaryClass={stat.ML},
|
|
146
|
+
url={https://arxiv.org/abs/2509.14961},
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
@misc{xu2026edgeclusterexpansionradial,
|
|
150
|
+
title={Edge Cluster Expansion with Radial Rotary Attention for Interatomic Potentials},
|
|
151
|
+
author={Zemin Xu and Wenbo Xie and P. Hu},
|
|
152
|
+
year={2026},
|
|
153
|
+
eprint={2607.10664},
|
|
154
|
+
archivePrefix={arXiv},
|
|
155
|
+
primaryClass={stat.ML},
|
|
156
|
+
url={https://arxiv.org/abs/2607.10664},
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
If you use Local O(2) Frame or Generalized Wigner-6j Convlution, please cite our papers:
|
|
161
|
+
|
|
162
|
+
```bibtex
|
|
163
|
+
@misc{xu2026completeo3interactionswigner6j,
|
|
164
|
+
title={Complete O(3) Interactions from Wigner-6j Recoupling to Local O(2) Frames},
|
|
165
|
+
author={Zemin Xu and Peijun Hu and Wenbo Xie},
|
|
166
|
+
year={2026},
|
|
167
|
+
eprint={2608.16592},
|
|
168
|
+
archivePrefix={arXiv},
|
|
169
|
+
primaryClass={physics.chem-ph},
|
|
170
|
+
url={https://arxiv.org/abs/2608.16592},
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
If you use cartnn, Cartesian-3j, cMACE, cNequIP, cAllegro, please cite our papers:
|
|
175
|
+
|
|
176
|
+
```bibtex
|
|
177
|
+
@inproceedings{xu2026a,
|
|
178
|
+
title={A Cartesian-3j Framework for Machine Learning Interatomic Potentials},
|
|
179
|
+
author={Zemin Xu and Chenyu Wu and Wenbo Xie and Peijun Hu},
|
|
180
|
+
booktitle={Forty-third International Conference on Machine Learning},
|
|
181
|
+
year={2026},
|
|
182
|
+
url={https://openreview.net/forum?id=9ZWK6gneWq}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Development
|
|
187
|
+
|
|
188
|
+
Install the development tools and run the same formatting and lint checks used by
|
|
189
|
+
pre-commit:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
pip install -e ".[dev]"
|
|
193
|
+
ruff check --fix tace
|
|
194
|
+
ruff format tace
|
|
195
|
+
ruff check tace
|
|
196
|
+
ruff format --check tace
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## License
|
|
200
|
+
|
|
201
|
+
The TACE code is published and distributed under the MIT License.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TACE
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: TACE - ST and ICT based equivariant atomistic model.
|
|
5
5
|
Author-email: Zemin Xu <xv_chana@163.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/xvzemin/tace
|
|
7
7
|
Requires-Python: >=3.9
|
|
8
8
|
License-File: LICENSE.md
|
|
9
|
-
Requires-Dist: torch
|
|
9
|
+
Requires-Dist: torch>=2.4
|
|
10
10
|
Requires-Dist: torch_geometric>=2.4
|
|
11
11
|
Requires-Dist: lightning
|
|
12
12
|
Requires-Dist: omegaconf
|
|
@@ -20,10 +20,17 @@ Requires-Dist: configargparse
|
|
|
20
20
|
Requires-Dist: pandas
|
|
21
21
|
Requires-Dist: lmdb
|
|
22
22
|
Requires-Dist: huggingface_hub
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest; extra == "dev"
|
|
25
|
+
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
|
|
23
26
|
Provides-Extra: oeq
|
|
24
27
|
Requires-Dist: openequivariance>=0.5.4; extra == "oeq"
|
|
25
28
|
Provides-Extra: torchsim
|
|
26
29
|
Requires-Dist: torch-sim-atomistic>=0.6.1; extra == "torchsim"
|
|
30
|
+
Provides-Extra: nvalchemi
|
|
31
|
+
Requires-Dist: nvalchemi-toolkit>=0.1.0; extra == "nvalchemi"
|
|
32
|
+
Requires-Dist: nvalchemi-toolkit-ops; extra == "nvalchemi"
|
|
33
|
+
Provides-Extra: scf
|
|
27
34
|
Provides-Extra: cueq12
|
|
28
35
|
Requires-Dist: cuequivariance; extra == "cueq12"
|
|
29
36
|
Requires-Dist: cuequivariance-torch; extra == "cueq12"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
LICENSE.md
|
|
2
|
-
README.
|
|
2
|
+
README.md
|
|
3
3
|
pyproject.toml
|
|
4
4
|
TACE.egg-info/PKG-INFO
|
|
5
5
|
TACE.egg-info/SOURCES.txt
|
|
@@ -7,6 +7,28 @@ TACE.egg-info/dependency_links.txt
|
|
|
7
7
|
TACE.egg-info/entry_points.txt
|
|
8
8
|
TACE.egg-info/requires.txt
|
|
9
9
|
TACE.egg-info/top_level.txt
|
|
10
|
+
eqx/README.md
|
|
11
|
+
eqx/__init__.py
|
|
12
|
+
eqx/co3/__init__.py
|
|
13
|
+
eqx/co3/cartesian_harmonics.py
|
|
14
|
+
eqx/co3/gate.py
|
|
15
|
+
eqx/co3/irreps.py
|
|
16
|
+
eqx/co3/layout.py
|
|
17
|
+
eqx/co3/linear.py
|
|
18
|
+
eqx/co3/projector.py
|
|
19
|
+
eqx/co3/tensor_product.py
|
|
20
|
+
eqx/co3/utils.py
|
|
21
|
+
eqx/docs/source/conf.py
|
|
22
|
+
eqx/o2/__init__.py
|
|
23
|
+
eqx/o2/asymmetric_contraction.py
|
|
24
|
+
eqx/o2/circular_harmonics.py
|
|
25
|
+
eqx/o2/gate.py
|
|
26
|
+
eqx/o2/irreps.py
|
|
27
|
+
eqx/o2/linear.py
|
|
28
|
+
eqx/o2/local_frame.py
|
|
29
|
+
eqx/o2/rotation_matrix.py
|
|
30
|
+
eqx/o2/tensor_product.py
|
|
31
|
+
eqx/o2/wigner.py
|
|
10
32
|
tace/__init__.py
|
|
11
33
|
tace/dataset/__init__.py
|
|
12
34
|
tace/dataset/dataloader.py
|
|
@@ -26,8 +48,12 @@ tace/foundations/u_shift.py
|
|
|
26
48
|
tace/interface/__init__.py
|
|
27
49
|
tace/interface/ase/__init__.py
|
|
28
50
|
tace/interface/ase/calculator.py
|
|
51
|
+
tace/interface/ase/general_calculator.py
|
|
52
|
+
tace/interface/ase/optimizer.py
|
|
29
53
|
tace/interface/lammps/__init__.py
|
|
30
54
|
tace/interface/lammps/mliap.py
|
|
55
|
+
tace/interface/nvalchemi/__init__.py
|
|
56
|
+
tace/interface/nvalchemi/wrapper.py
|
|
31
57
|
tace/interface/openmm/__init__.py
|
|
32
58
|
tace/interface/torchsim/__init__.py
|
|
33
59
|
tace/interface/torchsim/torchsim.py
|
|
@@ -36,7 +62,7 @@ tace/interface/uspex26/relax.py
|
|
|
36
62
|
tace/lightning/__init__.py
|
|
37
63
|
tace/lightning/lit_model.py
|
|
38
64
|
tace/lightning/lora.py
|
|
39
|
-
tace/lightning/
|
|
65
|
+
tace/lightning/loss_skip.py
|
|
40
66
|
tace/lightning/torch_model.py
|
|
41
67
|
tace/lightning/trainer.py
|
|
42
68
|
tace/lightning/u_shift.py
|
|
@@ -45,43 +71,20 @@ tace/models/adapter.py
|
|
|
45
71
|
tace/models/angular.py
|
|
46
72
|
tace/models/blocks.py
|
|
47
73
|
tace/models/ictd.py
|
|
74
|
+
tace/models/kspace.py
|
|
48
75
|
tace/models/lammps.py
|
|
49
76
|
tace/models/layout.py
|
|
50
|
-
tace/models/legacy.py
|
|
51
77
|
tace/models/linear.py
|
|
78
|
+
tace/models/mag.py
|
|
52
79
|
tace/models/mlp.py
|
|
53
80
|
tace/models/normalizer.py
|
|
54
|
-
tace/models/precision.py
|
|
55
81
|
tace/models/radial.py
|
|
56
82
|
tace/models/s2.py
|
|
57
83
|
tace/models/softmax.py
|
|
58
84
|
tace/models/utils.py
|
|
59
85
|
tace/models/zemin.py
|
|
60
86
|
tace/models/_cart/__init__.py
|
|
61
|
-
tace/models/_cart/base.py
|
|
62
|
-
tace/models/_cart/basis_change.py
|
|
63
|
-
tace/models/_cart/cartesian.py
|
|
64
|
-
tace/models/_cart/default.py
|
|
65
|
-
tace/models/_cart/dropout.py
|
|
66
|
-
tace/models/_cart/edge.py
|
|
67
|
-
tace/models/_cart/fused.py
|
|
68
|
-
tace/models/_cart/inter.py
|
|
69
|
-
tace/models/_cart/layer_norm.py
|
|
70
|
-
tace/models/_cart/node.py
|
|
71
|
-
tace/models/_cart/nonlinear.py
|
|
72
|
-
tace/models/_cart/paths.py
|
|
73
|
-
tace/models/_cart/prod.py
|
|
74
|
-
tace/models/_cart/readout.py
|
|
75
|
-
tace/models/_cart/representation.py
|
|
76
|
-
tace/models/_cart/residual.py
|
|
77
|
-
tace/models/_cart/tace.py
|
|
78
|
-
tace/models/_cart/ue.py
|
|
79
|
-
tace/models/_cue/__init__.py
|
|
80
|
-
tace/models/_cue/_tp_scatter.py
|
|
81
|
-
tace/models/_cue/_tp_uuu.py
|
|
82
|
-
tace/models/_cue/paths.py
|
|
83
87
|
tace/models/_e3nn/__init__.py
|
|
84
|
-
tace/models/_e3nn/asymmetric_contraction.py
|
|
85
88
|
tace/models/_e3nn/base.py
|
|
86
89
|
tace/models/_e3nn/basis_change.py
|
|
87
90
|
tace/models/_e3nn/default.py
|
|
@@ -90,8 +93,11 @@ tace/models/_e3nn/edge.py
|
|
|
90
93
|
tace/models/_e3nn/fused.py
|
|
91
94
|
tace/models/_e3nn/inter.py
|
|
92
95
|
tace/models/_e3nn/layer_norm.py
|
|
96
|
+
tace/models/_e3nn/legacy_so2.py
|
|
97
|
+
tace/models/_e3nn/les.py
|
|
93
98
|
tace/models/_e3nn/node.py
|
|
94
99
|
tace/models/_e3nn/nonlinear.py
|
|
100
|
+
tace/models/_e3nn/o2.py
|
|
95
101
|
tace/models/_e3nn/paths.py
|
|
96
102
|
tace/models/_e3nn/prod.py
|
|
97
103
|
tace/models/_e3nn/readout.py
|
|
@@ -101,28 +107,50 @@ tace/models/_e3nn/scatter_norm.py
|
|
|
101
107
|
tace/models/_e3nn/symmetric_contraction.py
|
|
102
108
|
tace/models/_e3nn/tace.py
|
|
103
109
|
tace/models/_e3nn/ue.py
|
|
104
|
-
tace/models/
|
|
105
|
-
tace/models/_eqt/_tp_uuu.py
|
|
106
|
-
tace/models/_eqt/equitorch/__init__.py
|
|
107
|
-
tace/models/_eqt/equitorch/irreps/__init__.py
|
|
108
|
-
tace/models/_eqt/equitorch/nn/__init__.py
|
|
109
|
-
tace/models/_eqt/equitorch/nn/sparse_product.py
|
|
110
|
-
tace/models/_eqt/equitorch/nn/tensor_products.py
|
|
111
|
-
tace/models/_eqt/equitorch/structs/__init__.py
|
|
112
|
-
tace/models/_oeq/__init__.py
|
|
113
|
-
tace/models/_oeq/_tp_scatter.py
|
|
110
|
+
tace/models/_e3nn/wigner6j.py
|
|
114
111
|
tace/models/compile/__init__.py
|
|
115
112
|
tace/models/compile/aot.py
|
|
116
113
|
tace/models/compile/compile.py
|
|
117
114
|
tace/models/compile/tace.py
|
|
118
115
|
tace/models/compile/wrapper.py
|
|
119
|
-
tace/models/
|
|
120
|
-
tace/models/
|
|
121
|
-
tace/models/
|
|
122
|
-
tace/models/
|
|
123
|
-
tace/models/
|
|
124
|
-
tace/models/
|
|
125
|
-
tace/models/
|
|
116
|
+
tace/models/cue/__init__.py
|
|
117
|
+
tace/models/cue/_tp_scatter.py
|
|
118
|
+
tace/models/cue/_tp_uuu.py
|
|
119
|
+
tace/models/cue/paths.py
|
|
120
|
+
tace/models/eqt/__init__.py
|
|
121
|
+
tace/models/eqt/_tp_uuu.py
|
|
122
|
+
tace/models/eqt/equitorch/__init__.py
|
|
123
|
+
tace/models/eqt/equitorch/irreps/__init__.py
|
|
124
|
+
tace/models/eqt/equitorch/nn/__init__.py
|
|
125
|
+
tace/models/eqt/equitorch/nn/sparse_product.py
|
|
126
|
+
tace/models/eqt/equitorch/nn/tensor_products.py
|
|
127
|
+
tace/models/eqt/equitorch/structs/__init__.py
|
|
128
|
+
tace/models/oeq/__init__.py
|
|
129
|
+
tace/models/oeq/_tp_scatter.py
|
|
130
|
+
tace/models/scf/README.md
|
|
131
|
+
tace/models/scf/__init__.py
|
|
132
|
+
tace/models/scf/electrostatics.py
|
|
133
|
+
tace/models/scf/energy_functional.py
|
|
134
|
+
tace/models/scf/fixed_point.py
|
|
135
|
+
tace/models/scf/local.py
|
|
136
|
+
tace/models/scf/loss.py
|
|
137
|
+
tace/models/scf/model.py
|
|
138
|
+
tace/models/scf/qeq.py
|
|
139
|
+
tace/models/scf/readout.py
|
|
140
|
+
tace/models/scf/state.py
|
|
141
|
+
tace/models/scf/utils.py
|
|
142
|
+
tace/models/scf/longrange/LICENSE.md
|
|
143
|
+
tace/models/scf/longrange/NOTICE.md
|
|
144
|
+
tace/models/scf/longrange/__init__.py
|
|
145
|
+
tace/models/scf/longrange/__version__.py
|
|
146
|
+
tace/models/scf/longrange/energy.py
|
|
147
|
+
tace/models/scf/longrange/features.py
|
|
148
|
+
tace/models/scf/longrange/gto_utils.py
|
|
149
|
+
tace/models/scf/longrange/kspace.py
|
|
150
|
+
tace/models/scf/longrange/realspace_electrostatics.py
|
|
151
|
+
tace/models/scf/longrange/realspace_grid_integrals.py
|
|
152
|
+
tace/models/scf/longrange/slabs.py
|
|
153
|
+
tace/models/scf/longrange/utils.py
|
|
126
154
|
tace/scripts/__init__.py
|
|
127
155
|
tace/scripts/average.py
|
|
128
156
|
tace/scripts/clean.py
|
|
@@ -135,6 +163,10 @@ tace/scripts/finetune.py
|
|
|
135
163
|
tace/scripts/split.py
|
|
136
164
|
tace/scripts/train.py
|
|
137
165
|
tace/scripts/update.py
|
|
166
|
+
tace/scripts/utils/__init__.py
|
|
167
|
+
tace/scripts/utils/check_equi.py
|
|
168
|
+
tace/scripts/utils/check_soc.py
|
|
169
|
+
tace/scripts/utils/convert_to_xyz.py
|
|
138
170
|
tace/utils/__init__.py
|
|
139
171
|
tace/utils/_global.py
|
|
140
172
|
tace/utils/callbacks.py
|
|
@@ -168,7 +200,12 @@ tace/utils/lr_scheduler/wsd.py
|
|
|
168
200
|
tace/utils/optimizer/__init__.py
|
|
169
201
|
tace/utils/optimizer/hybrid_muon.py
|
|
170
202
|
tace/utils/optimizer/soap.py
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
203
|
+
tests/test_co3.py
|
|
204
|
+
tests/test_compile.py
|
|
205
|
+
tests/test_eqt.py
|
|
206
|
+
tests/test_les.py
|
|
207
|
+
tests/test_loss.py
|
|
208
|
+
tests/test_magnetic_optimizer.py
|
|
209
|
+
tests/test_o2.py
|
|
210
|
+
tests/test_scf.py
|
|
211
|
+
tests/test_wigner6j.py
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
torch
|
|
1
|
+
torch>=2.4
|
|
2
2
|
torch_geometric>=2.4
|
|
3
3
|
lightning
|
|
4
4
|
omegaconf
|
|
@@ -26,6 +26,10 @@ cuequivariance-ops-torch-cu13
|
|
|
26
26
|
[d3]
|
|
27
27
|
torch_dftd
|
|
28
28
|
|
|
29
|
+
[dev]
|
|
30
|
+
pytest
|
|
31
|
+
ruff<0.17,>=0.16
|
|
32
|
+
|
|
29
33
|
[lammps12]
|
|
30
34
|
cython
|
|
31
35
|
cupy-cuda12x
|
|
@@ -39,6 +43,10 @@ ase
|
|
|
39
43
|
matscipy
|
|
40
44
|
vesin
|
|
41
45
|
|
|
46
|
+
[nvalchemi]
|
|
47
|
+
nvalchemi-toolkit>=0.1.0
|
|
48
|
+
nvalchemi-toolkit-ops
|
|
49
|
+
|
|
42
50
|
[oeq]
|
|
43
51
|
openequivariance>=0.5.4
|
|
44
52
|
|
|
@@ -47,5 +55,7 @@ openmm
|
|
|
47
55
|
openmm-ml
|
|
48
56
|
openmmtorch
|
|
49
57
|
|
|
58
|
+
[scf]
|
|
59
|
+
|
|
50
60
|
[torchsim]
|
|
51
61
|
torch-sim-atomistic>=0.6.1
|