TACE 0.2.1__tar.gz → 0.2.2__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.1 → tace-0.2.2}/PKG-INFO +6 -2
- {tace-0.2.1 → tace-0.2.2}/README.md +70 -54
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/PKG-INFO +6 -2
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/SOURCES.txt +107 -10
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/entry_points.txt +3 -1
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/requires.txt +6 -1
- tace-0.2.2/eqx/LICENSE.md +402 -0
- tace-0.2.2/eqx/README.md +116 -0
- tace-0.2.2/eqx/__init__.py +31 -0
- tace-0.2.2/eqx/_layout.py +30 -0
- tace-0.2.2/eqx/ace/__init__.py +5 -0
- tace-0.2.2/eqx/ace/contraction.py +82 -0
- tace-0.2.2/eqx/ace/cuda.py +251 -0
- tace-0.2.2/eqx/ace/tace.py +273 -0
- tace-0.2.2/eqx/co2/__init__.py +43 -0
- tace-0.2.2/eqx/co2/basis.py +125 -0
- tace-0.2.2/eqx/co2/cartesian_harmonics.py +68 -0
- tace-0.2.2/eqx/co2/gate.py +72 -0
- tace-0.2.2/eqx/co2/irreps.py +247 -0
- tace-0.2.2/eqx/co2/linear.py +173 -0
- tace-0.2.2/eqx/co2/o3_tensor_product.py +324 -0
- tace-0.2.2/eqx/co2/restriction.py +265 -0
- tace-0.2.2/eqx/co2/spherical.py +256 -0
- tace-0.2.2/eqx/co2/tensor_product.py +282 -0
- tace-0.2.2/eqx/co3/__init__.py +28 -0
- tace-0.2.2/eqx/co3/basis.py +155 -0
- tace-0.2.2/eqx/co3/cartesian_harmonics.py +123 -0
- tace-0.2.2/eqx/co3/gate.py +104 -0
- tace-0.2.2/eqx/co3/irreps.py +288 -0
- tace-0.2.2/eqx/co3/linear.py +268 -0
- tace-0.2.2/eqx/co3/symmetric.py +207 -0
- tace-0.2.2/eqx/co3/tensor_product.py +422 -0
- tace-0.2.2/eqx/conv/__init__.py +18 -0
- tace-0.2.2/eqx/conv/angular.py +101 -0
- tace-0.2.2/eqx/conv/attention.py +477 -0
- tace-0.2.2/eqx/conv/co3/__init__.py +6 -0
- tace-0.2.2/eqx/conv/co3/convolution.py +431 -0
- tace-0.2.2/eqx/conv/co3/linear.py +213 -0
- tace-0.2.2/eqx/conv/co3/polynomials.py +365 -0
- tace-0.2.2/eqx/conv/codegen.py +455 -0
- tace-0.2.2/eqx/conv/contraction.py +47 -0
- tace-0.2.2/eqx/conv/edge.py +181 -0
- tace-0.2.2/eqx/conv/graph.py +94 -0
- tace-0.2.2/eqx/conv/o2_o3/__init__.py +5 -0
- tace-0.2.2/eqx/conv/o2_o3/autotune.py +140 -0
- tace-0.2.2/eqx/conv/o2_o3/codegen.py +570 -0
- tace-0.2.2/eqx/conv/o2_o3/convolution.py +598 -0
- tace-0.2.2/eqx/conv/o2_o3/cuda.py +630 -0
- tace-0.2.2/eqx/conv/o2_o3/direction_codegen.py +433 -0
- tace-0.2.2/eqx/conv/o2_o3/geometry.py +369 -0
- tace-0.2.2/eqx/conv/o2_o3/schedule.py +209 -0
- tace-0.2.2/eqx/conv/o2_o3/transverse.py +512 -0
- tace-0.2.2/eqx/conv/o3/__init__.py +5 -0
- tace-0.2.2/eqx/conv/o3/codegen.py +455 -0
- tace-0.2.2/eqx/conv/o3/convolution.py +383 -0
- tace-0.2.2/eqx/conv/o3/cuda.py +346 -0
- tace-0.2.2/eqx/conv/o3/harmonics.py +550 -0
- tace-0.2.2/eqx/conv/program.py +244 -0
- tace-0.2.2/eqx/conv/radial.py +183 -0
- tace-0.2.2/eqx/conv/uu_o2/__init__.py +5 -0
- tace-0.2.2/eqx/conv/uu_o2/convolution.py +385 -0
- tace-0.2.2/eqx/conv/uv_o2/__init__.py +5 -0
- tace-0.2.2/eqx/conv/uv_o2/convolution.py +645 -0
- tace-0.2.2/eqx/conv/uv_o2/transverse.py +176 -0
- tace-0.2.2/eqx/kernels/__init__.py +5 -0
- tace-0.2.2/eqx/kernels/channel_product.py +150 -0
- tace-0.2.2/eqx/kernels/codegen.py +401 -0
- tace-0.2.2/eqx/kernels/csrc/runtime.cpp +174 -0
- tace-0.2.2/eqx/kernels/cuda.py +181 -0
- tace-0.2.2/eqx/kernels/cuda_graph.py +170 -0
- tace-0.2.2/eqx/kernels/layout.py +226 -0
- tace-0.2.2/eqx/kernels/quaternion.py +347 -0
- tace-0.2.2/eqx/kernels/recompute.py +180 -0
- tace-0.2.2/eqx/kernels/rotary.py +161 -0
- tace-0.2.2/eqx/kernels/rotation.py +135 -0
- tace-0.2.2/eqx/kernels/wigner.py +277 -0
- tace-0.2.2/eqx/models/__init__.py +1 -0
- tace-0.2.2/eqx/models/convolution.py +274 -0
- tace-0.2.2/eqx/models/equflash/__init__.py +5 -0
- tace-0.2.2/eqx/models/equflash/conversion.py +198 -0
- tace-0.2.2/eqx/models/mace/__init__.py +5 -0
- tace-0.2.2/eqx/models/mace/conversion.py +217 -0
- tace-0.2.2/eqx/models/nequip/__init__.py +5 -0
- tace-0.2.2/eqx/models/nequip/conversion.py +145 -0
- tace-0.2.2/eqx/models/prophet/__init__.py +5 -0
- tace-0.2.2/eqx/models/prophet/conversion.py +110 -0
- tace-0.2.2/eqx/models/sevennet/__init__.py +5 -0
- tace-0.2.2/eqx/models/sevennet/conversion.py +136 -0
- tace-0.2.2/eqx/models/tace/__init__.py +1 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/__init__.py +6 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/bilinear_contraction.py +91 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/bilinear_cuda.py +359 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/cuda.py +34 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/execution.py +265 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/interaction.py +203 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/product.py +248 -0
- tace-0.2.2/eqx/models/tace/tece_oam_rra/program.py +338 -0
- tace-0.2.2/eqx/o2/__init__.py +35 -0
- tace-0.2.2/eqx/o2/_clebsch_gordan.py +91 -0
- tace-0.2.2/eqx/o2/_layout.py +34 -0
- tace-0.2.2/eqx/o2/asymmetric_contraction.py +385 -0
- tace-0.2.2/eqx/o2/circular_harmonics.py +131 -0
- tace-0.2.2/eqx/o2/gate.py +434 -0
- tace-0.2.2/eqx/o2/irreps.py +625 -0
- tace-0.2.2/eqx/o2/linear.py +579 -0
- tace-0.2.2/eqx/o2/local_frame.py +421 -0
- tace-0.2.2/eqx/o2/o3_tensor_product.py +500 -0
- tace-0.2.2/eqx/o2/rotation_matrix.py +143 -0
- tace-0.2.2/eqx/o2/tensor_product.py +480 -0
- tace-0.2.2/eqx/o2/wigner.py +214 -0
- tace-0.2.2/eqx/o3/__init__.py +6 -0
- tace-0.2.2/eqx/o3/contraction.py +51 -0
- tace-0.2.2/eqx/o3/cuda.py +106 -0
- tace-0.2.2/eqx/o3/gate.py +108 -0
- tace-0.2.2/eqx/o3/linear.py +181 -0
- tace-0.2.2/eqx/utils.py +31 -0
- {tace-0.2.1 → tace-0.2.2}/pyproject.toml +20 -4
- {tace-0.2.1 → tace-0.2.2}/tace/__init__.py +5 -1
- tace-0.2.2/tace/dataset/augmentation.py +130 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/dataloader.py +65 -29
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/datamodule.py +12 -11
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/quantity.py +103 -62
- tace-0.2.2/tace/dataset/statistics.py +732 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/ase/calculator.py +1 -1
- {tace-0.2.1 → tace-0.2.2}/tace/interface/nvalchemi/wrapper.py +11 -18
- {tace-0.2.1 → tace-0.2.2}/tace/interface/torchsim/torchsim.py +77 -57
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/__init__.py +2 -1
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/lit_model.py +188 -59
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/torch_model.py +1 -1
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/trainer.py +2 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/__init__.py +6 -4
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/base.py +56 -17
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/default.py +77 -40
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/edge.py +12 -98
- tace-0.2.2/tace/models/_e3nn/fused.py +634 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/inter.py +388 -301
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/layer_norm.py +47 -35
- tace-0.2.2/tace/models/_e3nn/magnetic.py +201 -0
- tace-0.2.2/tace/models/_e3nn/node.py +355 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/nonlinear.py +15 -64
- tace-0.2.2/tace/models/_e3nn/o2.py +683 -0
- tace-0.2.2/tace/models/_e3nn/paths.py +176 -0
- tace-0.2.2/tace/models/_e3nn/prod.py +498 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/readout.py +19 -12
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/representation.py +304 -89
- tace-0.2.2/tace/models/_e3nn/symmetric_contraction.py +565 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/tace.py +34 -53
- tace-0.2.2/tace/models/_e3nn/tece_oam_rra.py +531 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/ue.py +34 -4
- tace-0.2.2/tace/models/_e3nn/wigner6j.py +553 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/adapter.py +20 -5
- {tace-0.2.1 → tace-0.2.2}/tace/models/angular.py +31 -60
- tace-0.2.2/tace/models/blocks.py +237 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/compile/aot.py +21 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/compile/compile.py +5 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/compile/tace.py +5 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/compile/wrapper.py +5 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/cue/paths.py +18 -11
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/__init__.py +3 -3
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/_tp_uuu.py +13 -3
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/irreps/__init__.py +1 -1
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/nn/sparse_product.py +3 -3
- {tace-0.2.1 → tace-0.2.2}/tace/models/lammps.py +1 -0
- tace-0.2.2/tace/models/layout.py +138 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/linear.py +119 -32
- {tace-0.2.1 → tace-0.2.2}/tace/models/mlp.py +1 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/oeq/_tp_scatter.py +10 -6
- {tace-0.2.1 → tace-0.2.2}/tace/models/radial.py +275 -249
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/kspace.py +0 -5
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/utils.py +2 -25
- {tace-0.2.1 → tace-0.2.2}/tace/models/softmax.py +8 -3
- tace-0.2.2/tace/models/time_reversal.py +60 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/utils.py +45 -0
- tace-0.2.2/tace/scripts/convert_cgtp.py +41 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/eval.py +0 -3
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/export_eval.py +7 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/export_lammps.py +7 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/finetune.py +1 -1
- tace-0.2.2/tace/scripts/plot_diatom.py +296 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/train.py +10 -11
- {tace-0.2.1 → tace-0.2.2}/tace/utils/env.py +31 -8
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/dens.py +4 -3
- {tace-0.2.1 → tace-0.2.2}/tace/utils/torch_scatter.py +1 -1
- {tace-0.2.1 → tace-0.2.2}/tace/utils/utils.py +3 -54
- tace-0.2.2/tests/test_cartesian.py +121 -0
- {tace-0.2.1 → tace-0.2.2}/tests/test_compile.py +97 -2
- {tace-0.2.1 → tace-0.2.2}/tests/test_eqt.py +63 -56
- tace-0.2.2/tests/test_eqx_integration.py +1487 -0
- {tace-0.2.1 → tace-0.2.2}/tests/test_les.py +0 -32
- tace-0.2.2/tests/test_local_o2.py +1535 -0
- {tace-0.2.1 → tace-0.2.2}/tests/test_loss.py +43 -65
- {tace-0.2.1 → tace-0.2.2}/tests/test_magnetic_optimizer.py +4 -30
- tace-0.2.2/tests/test_product.py +462 -0
- tace-0.2.2/tests/test_radial.py +250 -0
- {tace-0.2.1 → tace-0.2.2}/tests/test_scf.py +0 -6
- tace-0.2.2/tests/test_statistics.py +416 -0
- tace-0.2.2/tests/test_time_reversal.py +613 -0
- tace-0.2.2/tests/test_torchsim.py +169 -0
- tace-0.2.2/tests/test_wigner6j.py +495 -0
- tace-0.2.1/eqx/README.md +0 -324
- tace-0.2.1/eqx/__init__.py +0 -3
- tace-0.2.1/eqx/co3/__init__.py +0 -21
- tace-0.2.1/eqx/co3/cartesian_harmonics.py +0 -75
- tace-0.2.1/eqx/co3/gate.py +0 -148
- tace-0.2.1/eqx/co3/irreps.py +0 -313
- tace-0.2.1/eqx/co3/layout.py +0 -79
- tace-0.2.1/eqx/co3/linear.py +0 -197
- tace-0.2.1/eqx/co3/projector.py +0 -39
- tace-0.2.1/eqx/co3/tensor_product.py +0 -336
- tace-0.2.1/eqx/co3/utils.py +0 -33
- tace-0.2.1/eqx/docs/source/conf.py +0 -45
- tace-0.2.1/eqx/o2/__init__.py +0 -24
- tace-0.2.1/eqx/o2/asymmetric_contraction.py +0 -411
- tace-0.2.1/eqx/o2/circular_harmonics.py +0 -89
- tace-0.2.1/eqx/o2/gate.py +0 -221
- tace-0.2.1/eqx/o2/irreps.py +0 -408
- tace-0.2.1/eqx/o2/linear.py +0 -419
- tace-0.2.1/eqx/o2/local_frame.py +0 -422
- tace-0.2.1/eqx/o2/rotation_matrix.py +0 -88
- tace-0.2.1/eqx/o2/tensor_product.py +0 -387
- tace-0.2.1/eqx/o2/wigner.py +0 -163
- tace-0.2.1/tace/dataset/statistics.py +0 -586
- tace-0.2.1/tace/models/_cart/__init__.py +0 -7
- tace-0.2.1/tace/models/_e3nn/fused.py +0 -280
- tace-0.2.1/tace/models/_e3nn/legacy_so2.py +0 -982
- tace-0.2.1/tace/models/_e3nn/node.py +0 -237
- tace-0.2.1/tace/models/_e3nn/o2.py +0 -626
- tace-0.2.1/tace/models/_e3nn/paths.py +0 -71
- tace-0.2.1/tace/models/_e3nn/prod.py +0 -273
- tace-0.2.1/tace/models/_e3nn/symmetric_contraction.py +0 -566
- tace-0.2.1/tace/models/_e3nn/wigner6j.py +0 -445
- tace-0.2.1/tace/models/blocks.py +0 -456
- tace-0.2.1/tace/models/layout.py +0 -140
- tace-0.2.1/tace/models/mag.py +0 -157
- tace-0.2.1/tests/test_co3.py +0 -289
- tace-0.2.1/tests/test_o2.py +0 -2685
- tace-0.2.1/tests/test_wigner6j.py +0 -370
- {tace-0.2.1 → tace-0.2.2}/LICENSE.md +0 -0
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/dependency_links.txt +0 -0
- {tace-0.2.1 → tace-0.2.2}/TACE.egg-info/top_level.txt +0 -0
- {tace-0.2.1 → tace-0.2.2}/setup.cfg +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/element.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/graph.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/neighbour_list.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/read.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/sampler.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/split.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/dataset/utils.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/foundations/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/foundations/download_link.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/foundations/u_shift.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/ase/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/ase/general_calculator.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/ase/optimizer.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/lammps/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/lammps/mliap.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/nvalchemi/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/openmm/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/torchsim/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/uspex26/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/interface/uspex26/relax.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/lora.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/loss_skip.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/lightning/u_shift.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/basis_change.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/dropout.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/les.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/residual.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/_e3nn/scatter_norm.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/compile/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/cue/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/cue/_tp_scatter.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/cue/_tp_uuu.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/nn/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/nn/tensor_products.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/eqt/equitorch/structs/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/ictd.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/kspace.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/normalizer.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/oeq/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/s2.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/README.md +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/electrostatics.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/energy_functional.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/fixed_point.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/local.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/LICENSE.md +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/NOTICE.md +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/__version__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/energy.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/features.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/gto_utils.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/realspace_electrostatics.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/realspace_grid_integrals.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/longrange/slabs.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/loss.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/model.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/qeq.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/readout.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/state.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/scf/utils.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/models/zemin.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/average.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/clean.py +0 -0
- /tace-0.2.1/tace/scripts/convert.py → /tace-0.2.2/tace/scripts/convert_lora.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/export_train.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/split.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/update.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/utils/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/utils/check_equi.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/utils/check_soc.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/scripts/utils/convert_to_xyz.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/_global.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/callbacks.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/cfg.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/ema.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/hydra_resolver.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/logger.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/common.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/huber_fn.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/l2mae_fn.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/mae_fn.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/mse_fn.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/normal.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/registry.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/special_fn.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/loss/uncertainty.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/lr_scheduler/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/lr_scheduler/warmup.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/lr_scheduler/wsd.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/mask_metrics.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/metrics.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/metrics_bake.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/optimizer/__init__.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/optimizer/hybrid_muon.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/optimizer/soap.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/spectra.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/strategy.py +0 -0
- {tace-0.2.1 → tace-0.2.2}/tace/utils/units.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TACE
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
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
|
|
@@ -14,10 +14,11 @@ Requires-Dist: hydra-core>=1.3
|
|
|
14
14
|
Requires-Dist: matscipy
|
|
15
15
|
Requires-Dist: ase
|
|
16
16
|
Requires-Dist: numpy
|
|
17
|
-
Requires-Dist: e3nn
|
|
17
|
+
Requires-Dist: e3nn>=0.4.4
|
|
18
18
|
Requires-Dist: scipy
|
|
19
19
|
Requires-Dist: configargparse
|
|
20
20
|
Requires-Dist: pandas
|
|
21
|
+
Requires-Dist: matplotlib
|
|
21
22
|
Requires-Dist: lmdb
|
|
22
23
|
Requires-Dist: huggingface_hub
|
|
23
24
|
Provides-Extra: dev
|
|
@@ -25,6 +26,9 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
25
26
|
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
|
|
26
27
|
Provides-Extra: oeq
|
|
27
28
|
Requires-Dist: openequivariance>=0.5.4; extra == "oeq"
|
|
29
|
+
Provides-Extra: eqx
|
|
30
|
+
Requires-Dist: ninja; extra == "eqx"
|
|
31
|
+
Requires-Dist: filelock; extra == "eqx"
|
|
28
32
|
Provides-Extra: torchsim
|
|
29
33
|
Requires-Dist: torch-sim-atomistic>=0.6.1; extra == "torchsim"
|
|
30
34
|
Provides-Extra: nvalchemi
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[](https://pypi.org/project/tace/)
|
|
2
2
|
[](https://tace.readthedocs.io/en/latest/)
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
|
-
[](https://matbench-discovery.materialsproject.org/)
|
|
4
|
+
<!-- [](https://matbench-discovery.materialsproject.org/) -->
|
|
5
5
|
|
|
6
6
|
# Tensor Atomic/Edge Cluster Expansion (TACE/TECE)
|
|
7
7
|
|
|
@@ -9,30 +9,51 @@ TACE is designed with physical priors and strong inductive biases to enhance ext
|
|
|
9
9
|
It performs Atomic Cluster Expansion and Edge Cluster Expansion based on spherical tensors
|
|
10
10
|
or irreducible Cartesian tensors, with an optional attention architecture.
|
|
11
11
|
|
|
12
|
-
## Cartesian Architecture
|
|
12
|
+
## O(3) Cartesian Architecture
|
|
13
13
|
|
|
14
14
|
<img src="fig/cartesian_arch.png" width="100%" align="center">
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
```math
|
|
17
|
+
(A\otimes_k^\delta B)_{\boldsymbol i\boldsymbol j}
|
|
18
|
+
=\frac{1}{\sqrt{3^k}}\sum_{\boldsymbol a}
|
|
19
|
+
A_{\boldsymbol i\boldsymbol a}B_{\boldsymbol a\boldsymbol j},
|
|
20
|
+
\qquad l_3=l_1+l_2-2k,
|
|
21
|
+
````
|
|
22
|
+
|
|
23
|
+
```math
|
|
24
|
+
(A\otimes_k^\epsilon B)_{\boldsymbol i w\boldsymbol j}
|
|
25
|
+
=\frac{1}{\sqrt{2}}\frac{1}{\sqrt{3^k}}\sum_{\boldsymbol a,u,v}
|
|
26
|
+
A_{\boldsymbol i u\boldsymbol a}\epsilon_{wuv}
|
|
27
|
+
B_{\boldsymbol a v\boldsymbol j},
|
|
28
|
+
\qquad l_3=l_1+l_2-2k-1.
|
|
29
|
+
````
|
|
30
|
+
|
|
31
|
+
## Time-reversal O(3) Spherical/O(2)/Magnetic Architecture
|
|
32
|
+
|
|
33
|
+
The SO(2) implementation in TACE will be gradually replaced by an O(2) formulation
|
|
34
|
+
to ensure complete parity support for O(3). Backward compatibility will be maintained for the SO(2) implementation,
|
|
35
|
+
while backward compatibility for the O(2) implementation is not currently guaranteed.
|
|
36
|
+
|
|
37
|
+
<img src="fig/o2.svg" width="100%" align="center">
|
|
38
|
+
|
|
39
|
+
```math
|
|
40
|
+
\left.(l,p,t)_{O(3)\times\mathbb Z_2^{\mathcal T}}
|
|
41
|
+
\right\downarrow_{O(2)\times\mathbb Z_2^{\mathcal T}}
|
|
42
|
+
=
|
|
43
|
+
\underbrace{\bigl(0,p(-1)^l,t\bigr)}_{\text{1D},\,m=0}
|
|
44
|
+
\oplus
|
|
45
|
+
\underbrace{\bigoplus_{m=1}^{l}(m,0,t)}_{\text{2D},\,m>0}.
|
|
46
|
+
````
|
|
24
47
|
|
|
25
48
|
## Documentation
|
|
26
49
|
|
|
27
50
|
[TACE DOCS](https://tace.readthedocs.io/en/latest/index.html)
|
|
28
51
|
|
|
29
|
-
##
|
|
52
|
+
## Foundation Model
|
|
30
53
|
|
|
31
|
-
[
|
|
54
|
+
[HUGGING FACE](https://huggingface.co/xvzemin/tace-foundations/tree/main)
|
|
32
55
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<img src="fig/matbench_tece_rra.png" width="100%" align="center">
|
|
56
|
+
[FOUNDATION MODEL DOCS](https://tace.readthedocs.io/en/latest/guide/foundation.html)
|
|
36
57
|
|
|
37
58
|
## Install, Train and Tutorial
|
|
38
59
|
|
|
@@ -76,23 +97,16 @@ Currently, the officially supported properties include:
|
|
|
76
97
|
- Atomic stresses (conservative, predict only)
|
|
77
98
|
- Atomic virials (conservative, predict only)
|
|
78
99
|
- Absolute final collinear magmoms
|
|
79
|
-
-
|
|
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))
|
|
100
|
+
- Collinear magnetic forces
|
|
101
|
+
- Noncollinear magnetic forces
|
|
88
102
|
|
|
89
103
|
## Plugins
|
|
90
104
|
|
|
91
105
|
TACE currently supports the following plugin:
|
|
92
106
|
|
|
107
|
+
- **mTACE** (Magnetic, with and without Spin-Orbit Coupling)
|
|
93
108
|
- **TACE-LES** (Latent Ewald Summation)
|
|
94
|
-
- **TACE-QEq** (Lagrangian)
|
|
95
|
-
- **mTACE** (Magnetic, Spin-Orbit Coupling)
|
|
109
|
+
- **TACE-QEq** (Lagrangian, under reconstruction)
|
|
96
110
|
|
|
97
111
|
## Interfaces
|
|
98
112
|
|
|
@@ -137,37 +151,37 @@ If you use TACE, please cite our papers:
|
|
|
137
151
|
|
|
138
152
|
```bibtex
|
|
139
153
|
@misc{xu2026spectralspatialtensoratomiccluster,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
154
|
+
title={Spectral/Spatial Tensor Atomic Cluster Expansion with Universal Embeddings in Cartesian Space},
|
|
155
|
+
author={Zemin Xu and Wenbo Xie and P. Hu},
|
|
156
|
+
year={2026},
|
|
157
|
+
eprint={2509.14961},
|
|
158
|
+
archivePrefix={arXiv},
|
|
159
|
+
primaryClass={stat.ML},
|
|
160
|
+
url={https://arxiv.org/abs/2509.14961},
|
|
147
161
|
}
|
|
148
162
|
|
|
149
163
|
@misc{xu2026edgeclusterexpansionradial,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
164
|
+
title={Edge Cluster Expansion with Radial Rotary Attention for Interatomic Potentials},
|
|
165
|
+
author={Zemin Xu and Wenbo Xie and P. Hu},
|
|
166
|
+
year={2026},
|
|
167
|
+
eprint={2607.10664},
|
|
168
|
+
archivePrefix={arXiv},
|
|
169
|
+
primaryClass={stat.ML},
|
|
170
|
+
url={https://arxiv.org/abs/2607.10664},
|
|
157
171
|
}
|
|
158
172
|
```
|
|
159
173
|
|
|
160
|
-
If you use Local O(2) Frame
|
|
174
|
+
If you use Local O(2) Frame, please cite our papers:
|
|
161
175
|
|
|
162
176
|
```bibtex
|
|
163
|
-
@misc{
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
177
|
+
@misc{xu2026lookingglassefficientparitycompletelearning,
|
|
178
|
+
title={Through the Looking-Glass: Efficient Parity-Complete Learning via Local $O(2)$ Frames},
|
|
179
|
+
author={Zemin Xu and Wenbo Xie},
|
|
180
|
+
year={2026},
|
|
181
|
+
eprint={2608.16592},
|
|
182
|
+
archivePrefix={arXiv},
|
|
183
|
+
primaryClass={physics.chem-ph},
|
|
184
|
+
url={https://arxiv.org/abs/2608.16592},
|
|
171
185
|
}
|
|
172
186
|
```
|
|
173
187
|
|
|
@@ -175,11 +189,11 @@ If you use cartnn, Cartesian-3j, cMACE, cNequIP, cAllegro, please cite our paper
|
|
|
175
189
|
|
|
176
190
|
```bibtex
|
|
177
191
|
@inproceedings{xu2026a,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
192
|
+
title={A Cartesian-3j Framework for Machine Learning Interatomic Potentials},
|
|
193
|
+
author={Zemin Xu and Chenyu Wu and Wenbo Xie and Peijun Hu},
|
|
194
|
+
booktitle={Forty-third International Conference on Machine Learning},
|
|
195
|
+
year={2026},
|
|
196
|
+
url={https://openreview.net/forum?id=9ZWK6gneWq}
|
|
183
197
|
}
|
|
184
198
|
```
|
|
185
199
|
|
|
@@ -199,3 +213,5 @@ ruff format --check tace
|
|
|
199
213
|
## License
|
|
200
214
|
|
|
201
215
|
The TACE code is published and distributed under the MIT License.
|
|
216
|
+
EquivariantX (`eqx`) is licensed separately under
|
|
217
|
+
[Creative Commons Attribution 4.0 International (CC BY 4.0)](eqx/LICENSE.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TACE
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
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
|
|
@@ -14,10 +14,11 @@ Requires-Dist: hydra-core>=1.3
|
|
|
14
14
|
Requires-Dist: matscipy
|
|
15
15
|
Requires-Dist: ase
|
|
16
16
|
Requires-Dist: numpy
|
|
17
|
-
Requires-Dist: e3nn
|
|
17
|
+
Requires-Dist: e3nn>=0.4.4
|
|
18
18
|
Requires-Dist: scipy
|
|
19
19
|
Requires-Dist: configargparse
|
|
20
20
|
Requires-Dist: pandas
|
|
21
|
+
Requires-Dist: matplotlib
|
|
21
22
|
Requires-Dist: lmdb
|
|
22
23
|
Requires-Dist: huggingface_hub
|
|
23
24
|
Provides-Extra: dev
|
|
@@ -25,6 +26,9 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
25
26
|
Requires-Dist: ruff<0.17,>=0.16; extra == "dev"
|
|
26
27
|
Provides-Extra: oeq
|
|
27
28
|
Requires-Dist: openequivariance>=0.5.4; extra == "oeq"
|
|
29
|
+
Provides-Extra: eqx
|
|
30
|
+
Requires-Dist: ninja; extra == "eqx"
|
|
31
|
+
Requires-Dist: filelock; extra == "eqx"
|
|
28
32
|
Provides-Extra: torchsim
|
|
29
33
|
Requires-Dist: torch-sim-atomistic>=0.6.1; extra == "torchsim"
|
|
30
34
|
Provides-Extra: nvalchemi
|
|
@@ -7,30 +7,119 @@ 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/LICENSE.md
|
|
10
11
|
eqx/README.md
|
|
11
12
|
eqx/__init__.py
|
|
13
|
+
eqx/_layout.py
|
|
14
|
+
eqx/utils.py
|
|
15
|
+
eqx/ace/__init__.py
|
|
16
|
+
eqx/ace/contraction.py
|
|
17
|
+
eqx/ace/cuda.py
|
|
18
|
+
eqx/ace/tace.py
|
|
19
|
+
eqx/co2/__init__.py
|
|
20
|
+
eqx/co2/basis.py
|
|
21
|
+
eqx/co2/cartesian_harmonics.py
|
|
22
|
+
eqx/co2/gate.py
|
|
23
|
+
eqx/co2/irreps.py
|
|
24
|
+
eqx/co2/linear.py
|
|
25
|
+
eqx/co2/o3_tensor_product.py
|
|
26
|
+
eqx/co2/restriction.py
|
|
27
|
+
eqx/co2/spherical.py
|
|
28
|
+
eqx/co2/tensor_product.py
|
|
12
29
|
eqx/co3/__init__.py
|
|
30
|
+
eqx/co3/basis.py
|
|
13
31
|
eqx/co3/cartesian_harmonics.py
|
|
14
32
|
eqx/co3/gate.py
|
|
15
33
|
eqx/co3/irreps.py
|
|
16
|
-
eqx/co3/layout.py
|
|
17
34
|
eqx/co3/linear.py
|
|
18
|
-
eqx/co3/
|
|
35
|
+
eqx/co3/symmetric.py
|
|
19
36
|
eqx/co3/tensor_product.py
|
|
20
|
-
eqx/
|
|
21
|
-
eqx/
|
|
37
|
+
eqx/conv/__init__.py
|
|
38
|
+
eqx/conv/angular.py
|
|
39
|
+
eqx/conv/attention.py
|
|
40
|
+
eqx/conv/codegen.py
|
|
41
|
+
eqx/conv/contraction.py
|
|
42
|
+
eqx/conv/edge.py
|
|
43
|
+
eqx/conv/graph.py
|
|
44
|
+
eqx/conv/program.py
|
|
45
|
+
eqx/conv/radial.py
|
|
46
|
+
eqx/conv/co3/__init__.py
|
|
47
|
+
eqx/conv/co3/convolution.py
|
|
48
|
+
eqx/conv/co3/linear.py
|
|
49
|
+
eqx/conv/co3/polynomials.py
|
|
50
|
+
eqx/conv/o2_o3/__init__.py
|
|
51
|
+
eqx/conv/o2_o3/autotune.py
|
|
52
|
+
eqx/conv/o2_o3/codegen.py
|
|
53
|
+
eqx/conv/o2_o3/convolution.py
|
|
54
|
+
eqx/conv/o2_o3/cuda.py
|
|
55
|
+
eqx/conv/o2_o3/direction_codegen.py
|
|
56
|
+
eqx/conv/o2_o3/geometry.py
|
|
57
|
+
eqx/conv/o2_o3/schedule.py
|
|
58
|
+
eqx/conv/o2_o3/transverse.py
|
|
59
|
+
eqx/conv/o3/__init__.py
|
|
60
|
+
eqx/conv/o3/codegen.py
|
|
61
|
+
eqx/conv/o3/convolution.py
|
|
62
|
+
eqx/conv/o3/cuda.py
|
|
63
|
+
eqx/conv/o3/harmonics.py
|
|
64
|
+
eqx/conv/uu_o2/__init__.py
|
|
65
|
+
eqx/conv/uu_o2/convolution.py
|
|
66
|
+
eqx/conv/uv_o2/__init__.py
|
|
67
|
+
eqx/conv/uv_o2/convolution.py
|
|
68
|
+
eqx/conv/uv_o2/transverse.py
|
|
69
|
+
eqx/kernels/__init__.py
|
|
70
|
+
eqx/kernels/channel_product.py
|
|
71
|
+
eqx/kernels/codegen.py
|
|
72
|
+
eqx/kernels/cuda.py
|
|
73
|
+
eqx/kernels/cuda_graph.py
|
|
74
|
+
eqx/kernels/layout.py
|
|
75
|
+
eqx/kernels/quaternion.py
|
|
76
|
+
eqx/kernels/recompute.py
|
|
77
|
+
eqx/kernels/rotary.py
|
|
78
|
+
eqx/kernels/rotation.py
|
|
79
|
+
eqx/kernels/wigner.py
|
|
80
|
+
eqx/kernels/csrc/runtime.cpp
|
|
81
|
+
eqx/models/__init__.py
|
|
82
|
+
eqx/models/convolution.py
|
|
83
|
+
eqx/models/equflash/__init__.py
|
|
84
|
+
eqx/models/equflash/conversion.py
|
|
85
|
+
eqx/models/mace/__init__.py
|
|
86
|
+
eqx/models/mace/conversion.py
|
|
87
|
+
eqx/models/nequip/__init__.py
|
|
88
|
+
eqx/models/nequip/conversion.py
|
|
89
|
+
eqx/models/prophet/__init__.py
|
|
90
|
+
eqx/models/prophet/conversion.py
|
|
91
|
+
eqx/models/sevennet/__init__.py
|
|
92
|
+
eqx/models/sevennet/conversion.py
|
|
93
|
+
eqx/models/tace/__init__.py
|
|
94
|
+
eqx/models/tace/tece_oam_rra/__init__.py
|
|
95
|
+
eqx/models/tace/tece_oam_rra/bilinear_contraction.py
|
|
96
|
+
eqx/models/tace/tece_oam_rra/bilinear_cuda.py
|
|
97
|
+
eqx/models/tace/tece_oam_rra/cuda.py
|
|
98
|
+
eqx/models/tace/tece_oam_rra/execution.py
|
|
99
|
+
eqx/models/tace/tece_oam_rra/interaction.py
|
|
100
|
+
eqx/models/tace/tece_oam_rra/product.py
|
|
101
|
+
eqx/models/tace/tece_oam_rra/program.py
|
|
22
102
|
eqx/o2/__init__.py
|
|
103
|
+
eqx/o2/_clebsch_gordan.py
|
|
104
|
+
eqx/o2/_layout.py
|
|
23
105
|
eqx/o2/asymmetric_contraction.py
|
|
24
106
|
eqx/o2/circular_harmonics.py
|
|
25
107
|
eqx/o2/gate.py
|
|
26
108
|
eqx/o2/irreps.py
|
|
27
109
|
eqx/o2/linear.py
|
|
28
110
|
eqx/o2/local_frame.py
|
|
111
|
+
eqx/o2/o3_tensor_product.py
|
|
29
112
|
eqx/o2/rotation_matrix.py
|
|
30
113
|
eqx/o2/tensor_product.py
|
|
31
114
|
eqx/o2/wigner.py
|
|
115
|
+
eqx/o3/__init__.py
|
|
116
|
+
eqx/o3/contraction.py
|
|
117
|
+
eqx/o3/cuda.py
|
|
118
|
+
eqx/o3/gate.py
|
|
119
|
+
eqx/o3/linear.py
|
|
32
120
|
tace/__init__.py
|
|
33
121
|
tace/dataset/__init__.py
|
|
122
|
+
tace/dataset/augmentation.py
|
|
34
123
|
tace/dataset/dataloader.py
|
|
35
124
|
tace/dataset/datamodule.py
|
|
36
125
|
tace/dataset/element.py
|
|
@@ -75,15 +164,14 @@ tace/models/kspace.py
|
|
|
75
164
|
tace/models/lammps.py
|
|
76
165
|
tace/models/layout.py
|
|
77
166
|
tace/models/linear.py
|
|
78
|
-
tace/models/mag.py
|
|
79
167
|
tace/models/mlp.py
|
|
80
168
|
tace/models/normalizer.py
|
|
81
169
|
tace/models/radial.py
|
|
82
170
|
tace/models/s2.py
|
|
83
171
|
tace/models/softmax.py
|
|
172
|
+
tace/models/time_reversal.py
|
|
84
173
|
tace/models/utils.py
|
|
85
174
|
tace/models/zemin.py
|
|
86
|
-
tace/models/_cart/__init__.py
|
|
87
175
|
tace/models/_e3nn/__init__.py
|
|
88
176
|
tace/models/_e3nn/base.py
|
|
89
177
|
tace/models/_e3nn/basis_change.py
|
|
@@ -93,8 +181,8 @@ tace/models/_e3nn/edge.py
|
|
|
93
181
|
tace/models/_e3nn/fused.py
|
|
94
182
|
tace/models/_e3nn/inter.py
|
|
95
183
|
tace/models/_e3nn/layer_norm.py
|
|
96
|
-
tace/models/_e3nn/legacy_so2.py
|
|
97
184
|
tace/models/_e3nn/les.py
|
|
185
|
+
tace/models/_e3nn/magnetic.py
|
|
98
186
|
tace/models/_e3nn/node.py
|
|
99
187
|
tace/models/_e3nn/nonlinear.py
|
|
100
188
|
tace/models/_e3nn/o2.py
|
|
@@ -106,6 +194,7 @@ tace/models/_e3nn/residual.py
|
|
|
106
194
|
tace/models/_e3nn/scatter_norm.py
|
|
107
195
|
tace/models/_e3nn/symmetric_contraction.py
|
|
108
196
|
tace/models/_e3nn/tace.py
|
|
197
|
+
tace/models/_e3nn/tece_oam_rra.py
|
|
109
198
|
tace/models/_e3nn/ue.py
|
|
110
199
|
tace/models/_e3nn/wigner6j.py
|
|
111
200
|
tace/models/compile/__init__.py
|
|
@@ -154,12 +243,14 @@ tace/models/scf/longrange/utils.py
|
|
|
154
243
|
tace/scripts/__init__.py
|
|
155
244
|
tace/scripts/average.py
|
|
156
245
|
tace/scripts/clean.py
|
|
157
|
-
tace/scripts/
|
|
246
|
+
tace/scripts/convert_cgtp.py
|
|
247
|
+
tace/scripts/convert_lora.py
|
|
158
248
|
tace/scripts/eval.py
|
|
159
249
|
tace/scripts/export_eval.py
|
|
160
250
|
tace/scripts/export_lammps.py
|
|
161
251
|
tace/scripts/export_train.py
|
|
162
252
|
tace/scripts/finetune.py
|
|
253
|
+
tace/scripts/plot_diatom.py
|
|
163
254
|
tace/scripts/split.py
|
|
164
255
|
tace/scripts/train.py
|
|
165
256
|
tace/scripts/update.py
|
|
@@ -200,12 +291,18 @@ tace/utils/lr_scheduler/wsd.py
|
|
|
200
291
|
tace/utils/optimizer/__init__.py
|
|
201
292
|
tace/utils/optimizer/hybrid_muon.py
|
|
202
293
|
tace/utils/optimizer/soap.py
|
|
203
|
-
tests/
|
|
294
|
+
tests/test_cartesian.py
|
|
204
295
|
tests/test_compile.py
|
|
205
296
|
tests/test_eqt.py
|
|
297
|
+
tests/test_eqx_integration.py
|
|
206
298
|
tests/test_les.py
|
|
299
|
+
tests/test_local_o2.py
|
|
207
300
|
tests/test_loss.py
|
|
208
301
|
tests/test_magnetic_optimizer.py
|
|
209
|
-
tests/
|
|
302
|
+
tests/test_product.py
|
|
303
|
+
tests/test_radial.py
|
|
210
304
|
tests/test_scf.py
|
|
305
|
+
tests/test_statistics.py
|
|
306
|
+
tests/test_time_reversal.py
|
|
307
|
+
tests/test_torchsim.py
|
|
211
308
|
tests/test_wigner6j.py
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
tace-average = tace.scripts.average:main
|
|
3
3
|
tace-clean = tace.scripts.clean:main
|
|
4
4
|
tace-compile = tace.scripts.export_eval:main
|
|
5
|
-
tace-convert = tace.scripts.
|
|
5
|
+
tace-convert-cgtp = tace.scripts.convert_cgtp:main
|
|
6
|
+
tace-convert-lora = tace.scripts.convert_lora:main
|
|
6
7
|
tace-eval = tace.scripts.eval:main
|
|
7
8
|
tace-export-eval = tace.scripts.export_eval:main
|
|
8
9
|
tace-export-lammps = tace.scripts.export_lammps:main
|
|
9
10
|
tace-export-train = tace.scripts.export_train:main
|
|
10
11
|
tace-finetune = tace.scripts.finetune:main
|
|
12
|
+
tace-plot-diatom = tace.scripts.plot_diatom:main
|
|
11
13
|
tace-split = tace.scripts.split:main
|
|
12
14
|
tace-train = tace.scripts.train:main
|
|
13
15
|
tace-update = tace.scripts.update:main
|
|
@@ -6,10 +6,11 @@ hydra-core>=1.3
|
|
|
6
6
|
matscipy
|
|
7
7
|
ase
|
|
8
8
|
numpy
|
|
9
|
-
e3nn
|
|
9
|
+
e3nn>=0.4.4
|
|
10
10
|
scipy
|
|
11
11
|
configargparse
|
|
12
12
|
pandas
|
|
13
|
+
matplotlib
|
|
13
14
|
lmdb
|
|
14
15
|
huggingface_hub
|
|
15
16
|
|
|
@@ -30,6 +31,10 @@ torch_dftd
|
|
|
30
31
|
pytest
|
|
31
32
|
ruff<0.17,>=0.16
|
|
32
33
|
|
|
34
|
+
[eqx]
|
|
35
|
+
ninja
|
|
36
|
+
filelock
|
|
37
|
+
|
|
33
38
|
[lammps12]
|
|
34
39
|
cython
|
|
35
40
|
cupy-cuda12x
|