[x] Construct SHIPBasis from transform and cutoff rather than a bunch of parameters => not clear this is feasible, revisit
[x] combine implementations of SHIPBasis and 2BBasis.
[x] correct the meaning of bodyorder
[x] properly test calculator implementations, in particular virial
[x] move most of the non-allocating calculators into JuLIP
[x] alloc_temp, alloc_temp_d should move to JuLIP and become part of the workflow there
[x] full implementation of File-IO
[x] get rid of temporary arrays in the SHIPBasis and move to alloc_temp => JuLIP
Decisions
[ ] Simplify SHIPBasis to only store the NuZ tuples specifying the basis set. To construct it, we use a BasisSpecification but this need not be stored inside of SHIPBasis. Then we can construct enrichment and sparsification procedures, which will drop the BasisSpecification anyhow.
[ ] create NBodyIPs as a supermodule with APIPs and SHIPs two submodules; but if we retire APIPs, then maybe this will not be necessary.
[ ] precompute the basis coefficients?
[ ] reduce dimensionality of the Clebsch-Gordan storage tensor to numY x numY x maxL (or possibly less?)
[ ] have CG return 0.0 when an illegal argument is passed in?
High Priority:
General Stuff:
alloc_B, alloc_dB
should move toJuLIP.MLIPs
SHIPBasis
from transform and cutoff rather than a bunch of parameters => not clear this is feasible, revisitSHIPBasis
and2BBasis
.bodyorder
JuLIP
alloc_temp, alloc_temp_d
should move toJuLIP
and become part of the workflow thereSHIPBasis
and move toalloc_temp
=> JuLIPDecisions
SHIPBasis
to only store theNuZ
tuples specifying the basis set. To construct it, we use aBasisSpecification
but this need not be stored inside ofSHIPBasis
. Then we can construct enrichment and sparsification procedures, which will drop theBasisSpecification
anyhow.NBodyIPs
as a supermodule withAPIPs
andSHIPs
two submodules; but if we retire APIPs, then maybe this will not be necessary.