ACEsuit / ACE.jl

Parameterisation of Equivariant Properties of Particle Systems
65 stars 15 forks source link

Basis functions info #18

Closed casv2 closed 3 years ago

casv2 commented 3 years ago

It'd be nice to obtain the species and interaction order of a basis function. Also, it'd be great to go the other way, e.g. having a rough idea of an important basis function, and retrieve higher n/l/m basis functions "in that direction".

cortner commented 3 years ago

thanks for starting this discussion - Could you and David draft (here in this issue)

E.g. will you normally want one piece of information about the entire basis., or one piece of information about one specific basis function, or maybe all the information about one specific basis function? about the entire basis?

Before I proceed to implementing this, it would be good to specify the interface. We can iterate on it later, but let's try and make as good a start as we can.

casv2 commented 3 years ago

Just thinking about this I think it'd be most useful to obtain the information about one specific basis function. That way we have an idea of which basis functions we're using and maybe start "sensing" which basis functions are most important, e.g. species/body order. It might show us some are more important and we can start thinking about a tailoring bases for specific systems.

Also in regularisation we can start thinking about turning some basis functions "off" e.g. per N or only high polydeg N in some specific interaction.

Generally most information about the "entire" bases we tend to store in the filenames of our fits/DB's.

cortner commented 3 years ago

We now have the following output from get_spec for the symmetrised basis (similar for PIbasis) in ACE2. I hope this is more than enough?

julia> ACE.get_spec(basis)
96-element Vector{Vector{NamedTuple{(:n, :l), Tuple{Int64, Int64}}}}:
 [(n = 1, l = 0)]
 [(n = 2, l = 0)]
 [(n = 3, l = 0)]
 [(n = 4, l = 0)]
 [(n = 5, l = 0)]
 [(n = 6, l = 0)]
 [(n = 1, l = 0), (n = 1, l = 0)]
 [(n = 2, l = 0), (n = 1, l = 0)]
 [(n = 3, l = 0), (n = 1, l = 0)]
 [(n = 4, l = 0), (n = 1, l = 0)]
 [(n = 5, l = 0), (n = 1, l = 0)]
 [(n = 6, l = 0), (n = 1, l = 0)]
 [(n = 2, l = 0), (n = 2, l = 0)]
 [(n = 3, l = 0), (n = 2, l = 0)]
 [(n = 4, l = 0), (n = 2, l = 0)]
 [(n = 5, l = 0), (n = 2, l = 0)]
 [(n = 6, l = 0), (n = 2, l = 0)]
 [(n = 1, l = 1), (n = 1, l = 1)]
 [(n = 2, l = 1), (n = 1, l = 1)]
 [(n = 3, l = 1), (n = 1, l = 1)]
 [(n = 4, l = 1), (n = 1, l = 1)]
 [(n = 5, l = 1), (n = 1, l = 1)]
 [(n = 3, l = 0), (n = 3, l = 0)]
 [(n = 4, l = 0), (n = 3, l = 0)]
 [(n = 5, l = 0), (n = 3, l = 0)]
 [(n = 2, l = 1), (n = 2, l = 1)]
 [(n = 3, l = 1), (n = 2, l = 1)]
 [(n = 4, l = 1), (n = 2, l = 1)]
 ⋮
 [(n = 1, l = 1), (n = 2, l = 0), (n = 1, l = 1)]
 [(n = 2, l = 1), (n = 2, l = 0), (n = 1, l = 1)]
 [(n = 3, l = 1), (n = 2, l = 0), (n = 1, l = 1)]
 [(n = 4, l = 1), (n = 2, l = 0), (n = 1, l = 1)]
 [(n = 3, l = 0), (n = 3, l = 0), (n = 2, l = 0)]
 [(n = 4, l = 0), (n = 3, l = 0), (n = 2, l = 0)]
 [(n = 2, l = 1), (n = 2, l = 1), (n = 2, l = 0)]
 [(n = 3, l = 1), (n = 2, l = 1), (n = 2, l = 0)]
 [(n = 1, l = 2), (n = 1, l = 2), (n = 2, l = 0)]
 [(n = 2, l = 2), (n = 1, l = 2), (n = 2, l = 0)]
 [(n = 3, l = 0), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 1, l = 2), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 4, l = 0), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 2, l = 2), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 5, l = 0), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 3, l = 2), (n = 1, l = 1), (n = 1, l = 1)]
 [(n = 2, l = 1), (n = 3, l = 0), (n = 1, l = 1)]
 [(n = 3, l = 1), (n = 3, l = 0), (n = 1, l = 1)]
 [(n = 1, l = 2), (n = 2, l = 1), (n = 1, l = 1)]
 [(n = 4, l = 0), (n = 2, l = 1), (n = 1, l = 1)]
 [(n = 2, l = 2), (n = 2, l = 1), (n = 1, l = 1)]
 [(n = 3, l = 1), (n = 1, l = 2), (n = 1, l = 1)]
 [(n = 1, l = 3), (n = 1, l = 2), (n = 1, l = 1)]
 [(n = 3, l = 0), (n = 3, l = 0), (n = 3, l = 0)]
 [(n = 2, l = 1), (n = 3, l = 0), (n = 2, l = 1)]
 [(n = 1, l = 2), (n = 3, l = 0), (n = 1, l = 2)]
 [(n = 2, l = 1), (n = 2, l = 1), (n = 1, l = 2)]
 [(n = 1, l = 2), (n = 1, l = 2), (n = 1, l = 2)]